3、CAN通信物理层设计:CAN收发器选型、终端电阻匹配、共模扼流圈与ESD防护、CAN总线长度与节点数限制

大家好,我是你们的BMS硬件设计讲师。今天咱们聊聊CAN通信物理层设计。说实话,这块内容看起来基础,但恰恰是很多项目翻车的重灾区。我见过太多因为收发器选型不对、终端电阻没焊好,导致整车通信时好时坏的案例。嗯,咱们一步步来拆解。

3.1 CAN收发器选型:TJA1040 vs SN65HVD230

收发器是CAN控制器的“嘴巴”和“耳朵”。它把控制器输出的逻辑电平,转换成差分信号发到总线上,再把总线上的差分信号转回来。选型时,我主要看三点:工作电压、速率、以及——耐不耐造。

TJA1040 是NXP家的经典款,5V供电。我个人习惯在商用车和工业BMS上用这颗。为什么?因为它支持待机模式,功耗低,而且总线引脚耐压高,能扛住±15kV的ESD(人体模型)。

SN65HVD230 是TI家的,3.3V供电。如果你主控是3.3V的MCU,比如STM32F4系列,用这颗可以省掉电平转换。但要注意,它的ESD能力稍弱,只有±8kV。我在一个乘用车项目里用过它,后来发现总线浪涌测试老是不过,最后加了一堆防护器件才搞定。

参数 TJA1040 SN65HVD230
供电电压 5V 3.3V
最高速率 1 Mbps 1 Mbps
ESD (HBM) ±15 kV ±8 kV
待机模式 支持 不支持
典型应用 商用车、工业 乘用车、低压系统
我的建议: 如果你做的是BMS主控板,周围有大功率MOS管、继电器,电磁环境恶劣,优先选TJA1040。它的抗干扰能力确实更强。3.3V系统也不是不能用,但要做好外围防护。

3.2 终端电阻匹配:为什么是120Ω?

CAN总线两端各需要一颗120Ω电阻。为什么是120Ω?说白了,是为了匹配双绞线的特性阻抗。双绞线的特性阻抗一般在120Ω左右,终端电阻匹配好了,信号反射就小。

我曾经在一个项目里,为了省两颗电阻,只在一端焊了120Ω。结果总线长度超过10米后,通信误码率飙升。后来用示波器一看,信号波形上全是振铃,反射波把正常信号都淹没了。

终端电阻的放置位置:

  • 必须放在总线的最远端两端
  • 不能放在中间节点上
  • 如果节点数少、总线短(<1米),可以只用一端电阻,但我不建议这么干
注意: 有些收发器内部集成了终端电阻,比如TJA1051。但BMS应用中,我建议还是用外置的120Ω电阻,功率选0.25W以上。因为万一总线短路到电源,电阻会发热,内置的容易烧。

3.3 共模扼流圈与ESD防护

共模扼流圈,说白了就是两个绕在同一磁芯上的线圈。它对差模信号(CAN_H和CAN_L的差分信号)阻抗很小,但对共模干扰(两根线上同时出现的噪声)阻抗很大。BMS里电机驱动、DC-DC产生的共模噪声,全靠它来滤。

选型参数:

  • 共模阻抗:100Ω @ 100MHz 左右
  • 额定电流:至少100mA
  • 直流电阻:越小越好,别超过1Ω

ESD防护: 我习惯在CAN_H和CAN_L对地各加一颗TVS管,比如PESD1CAN。注意TVS管的结电容要小,否则会吃掉信号边沿。我一般选结电容<5pF的。

避坑指南: 我曾经在产线上发现一批板子CAN通信不稳定,查了半天,发现是TVS管焊反了方向。ESD防护器件有极性,千万别焊反。另外,TVS管要尽量靠近CAN连接器放置,走线越短越好。

3.4 CAN总线长度与节点数限制

这两个参数是相互制约的。总线越长,能挂的节点就越少。为什么?因为信号在线上传输有延迟,而且总线电容会拉低信号边沿。

经验公式:

  • 1 Mbps 速率下,总线长度不超过 40 米
  • 250 kbps 速率下,总线长度可以到 250 米
  • 每个节点会增加约 20-30 pF 的电容负载

节点数方面,标准CAN(ISO 11898)最多支持 110 个节点。但实际BMS中,我建议别超过 30 个。为什么?因为每个节点都有输入阻抗,节点多了,总线差分阻抗会下降,信号幅值也会降低。

速率 最大总线长度 建议最大节点数
1 Mbps 40 m 20-30
500 kbps 100 m 30-50
250 kbps 250 m 50-80
125 kbps 500 m 80-110
小技巧: 如果你需要长距离传输,可以降低波特率。BMS里电池包内部通信,我一般用250 kbps,既保证速度,又能覆盖整个电池包的长度。

3.5 知识体系结构图

下面这张图,是我梳理的CAN物理层设计核心逻辑。你一看就明白,各个部分是怎么关联的。

CAN物理层设计 收发器选型 TJA1040 / SN65HVD230 终端电阻匹配 120Ω 两端放置 共模扼流圈 & ESD 滤波 + 防护 总线长度 & 节点数 相互制约关系 5V vs 3.3V ESD 耐压 反射抑制 共模噪声滤除 TVS 保护 波特率影响 电容负载 核心:阻抗匹配 + 噪声抑制 + 防护冗余

你看,整个物理层设计,核心就是三件事:阻抗匹配、噪声抑制、防护冗余。收发器选型决定了基础性能,终端电阻保证了信号质量,共模扼流圈和TVS管负责抗干扰,而长度和节点数则是系统层面的约束。这几块缺一不可。

最后说一句: 设计CAN物理层时,别光看datasheet。拿示波器实际测一下总线波形,看看信号幅值、边沿斜率、振铃情况。我每次做BMS项目,都会在CAN_H和CAN_L之间挂个探头,确认波形干净了才放心。嗯,经验都是踩坑踩出来的。

公众号:蓝海资料掘金营,微信deep3321