4、CAN总线终端电阻:终端电阻作用、120Ω匹配原理、终端电阻测量方法、常见终端电阻故障
说到CAN总线,终端电阻是个绕不开的话题。我见过太多现场问题,最后查来查去,就是这两个小小的电阻在作怪。别看它不起眼,没了它,CAN总线根本没法正常工作。
4.1 终端电阻的作用
终端电阻放在总线的最两端,主要干三件事:
- 消除信号反射——高速信号在总线末端会反弹,造成波形畸变
- 保证显性电平——提供足够的电流回路,让CAN收发器能拉出显性位
- 稳定总线电平——让CAN_H和CAN_L在隐性状态时回到2.5V左右
说白了,没有终端电阻,你的CAN总线就像一根没接负载的音响线——信号会在末端弹回来,跟原来的信号叠加,数据就乱了。我有个项目,现场总线上挂了20多个节点,通信时好时坏,最后发现是末端一个节点被人拔了,终端电阻跟着没了。
核心要点:CAN总线必须且只能在最远两端各放一个120Ω终端电阻。中间节点绝对不能加。
4.2 120Ω匹配原理
为什么偏偏是120Ω?这不是拍脑袋定的。CAN总线的双绞线特性阻抗大约就是120Ω。在高速通信中,要消除反射,终端电阻就得等于传输线的特性阻抗。
你想想看,信号在线上跑,遇到阻抗突变就会反射。终端电阻等于特性阻抗,信号到了末端就被吸收掉了,不会反弹。这就是阻抗匹配。
另外,两个120Ω并联后是60Ω。这个60Ω很关键——CAN收发器在发送显性位时,需要在这60Ω上产生约1.5V的压降,从而形成显性差分电压。电阻值不对,显性电平就拉不到位。
| 参数 | 数值 | 说明 |
|---|---|---|
| 单端电阻 | 120Ω | 与双绞线特性阻抗匹配 |
| 并联等效 | 60Ω | 两端电阻并联后的总线负载 |
| 显性差分电压 | 约1.5V ~ 2.0V | 收发器在60Ω上产生的电压 |
| 隐性差分电压 | 约0V | 总线自然回退到2.5V共模 |
我的习惯:选终端电阻时,精度至少1%,功率1/4W以上。别用5%的碳膜电阻,温度一漂,阻值就跑了。
4.3 终端电阻测量方法
测量终端电阻,最直接的办法是拿万用表量CAN_H和CAN_L之间的电阻。但这里有个坑——必须在系统断电后测,而且得等总线电容放完电。
具体步骤:
- 系统断电——所有节点断电,等30秒让电容放电
- 万用表打到电阻档——200Ω或自动量程
- 表笔接CAN_H和CAN_L——在总线任意位置测量
- 读数判断:
- 60Ω左右 → 两端电阻都在,正常
- 120Ω左右 → 只有一端有电阻,另一端丢了
- 无穷大 → 两端电阻都没了
- 接近0Ω → 总线短路了
注意:不要在系统上电时测电阻!万用表的电流可能会干扰总线通信,甚至损坏收发器。我见过有人带电测,结果表笔一碰,整个网络就挂了。
还有一种方法是用示波器看波形。正常波形在隐性状态时,CAN_H和CAN_L都在2.5V左右,差分电压接近0V。如果终端电阻缺失,你会看到波形末端有明显的过冲和振铃。
4.4 常见终端电阻故障
这些年我遇到的终端电阻故障,归纳起来就这几种:
| 故障类型 | 现象 | 排查方法 |
|---|---|---|
| 电阻缺失 | 通信不稳定,偶发错误帧 | 万用表测总线电阻,读数120Ω或无穷大 |
| 电阻开路 | 焊点脱落或电阻烧断,现象同上 | 单独测电阻两端,阻值无穷大 |
| 电阻短路 | 总线电阻接近0Ω,无法通信 | 万用表测CAN_H和CAN_L,阻值接近0 |
| 阻值漂移 | 波形畸变,误码率升高 | 拆下来用精密万用表测实际阻值 |
| 位置错误 | 电阻没放在最远端,反射依然存在 | 检查拓扑,确认电阻在物理末端 |
电阻缺失是最常见的。我有个项目,现场工程师图省事,只在控制柜里放了一个120Ω电阻,另一端没放。结果总线长度超过100米,信号反射严重,每天丢包几百次。后来加上第二个电阻,问题立刻消失。
阻值漂移比较隐蔽。有一次在高温车间,终端电阻长期工作在80℃环境下,120Ω慢慢变成了135Ω。总线虽然还能通信,但错误帧明显增多。换了高精度低温漂电阻后,波形才恢复正常。
位置错误也经常遇到。很多人以为电阻放在分支末端就行,其实必须放在总线主干的最远端。如果总线有T型分支,电阻要放在分支末端,而不是分支起点。
避坑指南:我曾经在一个项目中,发现总线电阻测出来是60Ω,但通信就是不稳定。查了半天,原来是两个电阻都放在同一端了——一个在节点A内部,一个在节点A旁边的接线盒里。两个电阻并联成60Ω,但另一端完全没有终端匹配。记住:电阻必须分居总线两端。
下面这张图展示了终端电阻在CAN总线中的正确位置和信号流向:
最后说一句,终端电阻虽小,但它是CAN总线稳定运行的基石。下次遇到通信问题,先拿万用表量一下总线电阻——60Ω正常,120Ω缺一个,无穷大全丢了。这个排查习惯,能帮你省下大量时间。