CAN总线基础与收发器角色定位:为什么我们需要TJA1050和SN65HVD230?
去年冬天在实验室调一块STM32F407的CAN通信板,示波器探头刚搭上CAN_H引脚,波形直接给我看懵了——本该是2.5V共模电平的差分信号,硬生生飘到了4.8V,还带着高频毛刺。查了三天,最后发现是收发器供电纹波过大,加上终端电阻焊错了位置。那次之后我养成了一个习惯:选型之前先把收发器的内部架构和电气特性吃透,否则调试时流的泪,都是选型时脑子里进的水。
今天这篇笔记,咱们就从最底层聊起:CAN总线为什么需要收发器?TJA1050和SN65HVD230这两个老伙计,到底在扮演什么角色?
一、CAN物理层的“翻译官”困境
很多人以为CAN通信就是两根线(CAN_H、CAN_L)直接怼到MCU的CAN控制器引脚上。别这样写代码,会烧芯片的。MCU的CAN控制器输出的是3.3V或5V的TTL/CMOS逻辑电平(比如TX、RX引脚),而CAN总线要求的是差分信号,且共模电压范围、驱动能力、抗干扰特性完全不在一个量级。
收发器干的事,说白了就是“翻译”+“功率放大”:
- 电平转换:把控制器输出的单端逻辑电平,转换成CAN总线要求的差分电平(显性/隐性)
- 驱动能力:总线长度可能几十米甚至几百米,节点数几十个,没有收发器的强驱动,信号早衰减成渣了
- 保护隔离:总线上的过压、短路、电磁干扰,先让收发器扛着,别直接烧了MCU