资讯详情

资讯详情

CAN总线终端电阻为何必须是120Ω:阻抗匹配与信号完整性解析

1. 从一次通信异常说起为什么终端电阻值得单独聊CAN总线在汽车电子、工业控制和储能系统里用得极广搞过嵌入式的人几乎都碰过它。但有个现象很有意思很多人能熟练配置CAN控制器、写报文收发代码、调波特率却对物理层上那两个小小的终端电阻一知半解。我见过不止一个项目样机阶段通信正常一到批量装车或者长线缆场景就开始随机丢帧、错误帧飙升最后查来查去问题就出在终端电阻上——要么没接要么只接了一端要么阻值用错。这篇文章就围绕一个核心问题展开CAN总线的终端电阻为什么必须是120Ω。这不是一个拍脑袋定下来的数字它背后是传输线理论、阻抗匹配和信号完整性三件事拧在一起的结果。我会从原理讲到实操把阻抗匹配的来龙去脉、120Ω的推导过程、实际布线中的坑、以及怎么用示波器和仿真工具去验证尽量讲透。适合已经上手过CAN通信、但想搞清楚物理层底层逻辑的工程师也适合正在做硬件设计、需要给CAN接口选型的同学。读完你至少能明白为什么拆掉一个终端电阻眼图就塌了为什么两个120Ω并联之后变成60Ω这个60Ω又是给谁看的。先把结论摆出来CAN总线用的是双绞线差分传输线缆本身有特征阻抗典型值就是120Ω。总线两端各挂一个120Ω电阻是为了让收发器看到的负载阻抗和线缆特征阻抗一致从而消除信号在末端的反射。两个120Ω并联等于60Ω这是直流负载而交流意义上每个末端各自匹配120Ω才是抑制反射的关键。这个区别很多人搞混后面会细讲。2. 传输线视角下的CAN为什么普通导线思维会翻车2.1 低速信号可以忽略线缆CAN不行很多人对导线的直觉是“理想导体”电流瞬间到达电压处处相等。这个直觉在低频、短距离下没问题比如你按个按钮点亮LED导线多长都无所谓。但CAN的波特率常见是500kbps、1Mbps信号上升沿只有几十纳秒这时候信号在导线上的传播时间就不能忽略了。电信号在铜线里的传播速度大约是光速的2/3也就是每纳秒走20厘米左右。CAN总线最长可以到40米1Mbps以下还能更长信号从一端走到另一端需要几百纳秒。当信号的上升沿时间跟传播时间在同一量级时导线就不再是“一根线”而是一条传输线。传输线上的每一点都有电压和电流的瞬态分布信号到达末端时如果末端阻抗和线缆特征阻抗不匹配能量没法被完全吸收就会反射回来。反射波和原始信号叠加会造成过冲、下冲、振铃严重时接收端在采样点判错电平直接导致位错误。这就是为什么CAN在物理层上必须认真对待终端电阻而不是随便焊一个上去。2.2 特征阻抗是怎么来的双绞线的特征阻抗由单位长度的电感L和电容C决定公式是 Z0 √(L/C)。这个值跟线缆的几何结构、绝缘材料、绞距都有关系。常见的CAN双绞线比如汽车上用的屏蔽或非屏蔽双绞线特征阻抗标称就是120Ω左右允许有一定偏差比如100Ω到130Ω之间。这里要强调一点特征阻抗不是用万用表量出来的电阻。你用万用表去量一段双绞线两端开路时电阻是无穷大短路时接近零。特征阻抗是高频信号“看到”的阻抗是瞬态概念。很多新手拿万用表量线缆电阻发现不是120Ω就慌了其实量错了对象。2.3 反射是怎么发生的信号沿传输线传播到达末端时如果末端负载阻抗等于特征阻抗能量全部被负载吸收没有反射。如果末端开路阻抗无穷大信号会全反射回来反射波和入射波同相叠加电压翻倍。如果末端短路阻抗为零反射波反相电压抵消。CAN总线两端如果不接终端电阻收发器的高阻输入对传输线来说近似开路反射非常严重。接了120Ω之后末端阻抗和线缆特征阻抗匹配反射被压到很低。这就是终端电阻最核心的作用阻抗匹配吸收反射。3. 120Ω这个数字是怎么定下来的3.1 从线缆特征阻抗倒推120Ω不是凭空选的它是跟着线缆走的。CAN标准ISO 11898-2里规定的总线线缆特征阻抗标称值就是120Ω。终端电阻要匹配线缆自然就取120Ω。如果线缆换成100Ω的理论上终端电阻也该用100Ω但实际工程里大家默认都用120Ω因为绝大多数CAN线缆都是按120Ω设计的。这里有个细节标准里允许的特征阻抗范围是95Ω到140Ω终端电阻也允许一定偏差。所以你在实际产品里看到120Ω±5%甚至±10%的电阻都是正常的。但如果你用47Ω或者220Ω那就明显偏离了反射会变大。3.2 两个120Ω并联等于60Ω这个60Ω给谁看这是最容易混淆的点。总线两端各一个120Ω从任意一个节点看进去两个终端电阻是并联的直流电阻是60Ω。这个60Ω是直流负载它决定了收发器输出差分电压时的负载电流。ISO 11898-2里规定总线上的差分负载应该在45Ω到65Ω之间60Ω正好落在中间。但抑制反射靠的不是这个60Ω而是每个末端各自的120Ω。因为反射发生在末端末端看到的必须是120Ω才能匹配。如果你只在总线一端接一个60Ω另一端开路那末端还是开路反射照样发生。所以“两个120Ω并联成60Ω”是直流负载的结果不是匹配的手段。很多人把这两件事混为一谈导致接线时只在一端接电阻或者用一个大功率60Ω电阻跨接在总线两端都是错的。3.3 为什么不是其他值一个简单的仿真对比我做过一组简单的仿真用理想传输线模型线缆特征阻抗120Ω长度10米信号上升沿20纳秒终端分别接开路、60Ω、120Ω、240Ω看接收端的波形。结果很直观终端配置反射情况接收端波形质量两端开路全反射严重振铃过冲超过30%两端各60Ω欠匹配有反射过冲约10%两端各120Ω匹配波形干净过冲小于5%两端各240Ω过匹配上升沿变缓幅度略降这个对比说明120Ω是让波形最干净的值。60Ω虽然直流负载对但交流匹配不对还是有反射。240Ω则匹配不足信号边沿被拖慢。实际工程里120Ω是经过大量验证的折中。4. 实操终端电阻怎么接、怎么选、怎么测4.1 接线位置和拓扑要求CAN总线必须是线性拓扑也就是一条主干线节点挂在主干上不能搞星型或者环形。终端电阻必须接在总线的两个物理末端也就是离收发器最远的两个点。如果总线有分支分支长度要尽量短一般建议不超过0.3米否则分支也会引起反射。我见过一个典型错误有人在总线中间的一个节点上接了两个120Ω以为这样就是两端了。实际上总线两端还是开路反射依旧。正确的做法是找到线缆的两个尽头各接一个120Ω中间节点不接。还有一种情况是总线很短比如台架上只有半米线这时候终端电阻的影响没那么明显但不代表可以不接。短线上反射周期短可能和信号边沿混在一起看不出来但EMC测试或者长线场景就会暴露。4.2 电阻选型功率、精度、封装终端电阻的功率怎么算CAN总线差分电压典型2V60Ω负载上的电流是33mA单个120Ω上的功耗是 I²R 0.033² × 120 ≈ 0.13W。所以理论上0805封装0.125W勉强够但实际建议用1206或者更大留足余量。汽车级产品里常见的是1206或2512封装的120Ω电阻功率0.25W到0.5W。精度方面1%足够5%也能用但批量一致性差一些。温度系数要注意汽车环境温度范围大选100ppm/℃以内的比较稳。封装上如果空间允许用两个120Ω并联成60Ω再串联一个电容到地这种是“分裂终端”能进一步改善共模特性但成本高普通场景用单个120Ω就够了。注意终端电阻不要用可调电阻或者电位器振动环境下阻值会漂导致通信时好时坏排查起来非常痛苦。4.3 用万用表快速判断终端电阻是否正常最实用的现场排查方法断电用万用表量总线CAN_H和CAN_L之间的电阻。正常应该是60Ω左右两个120Ω并联。如果量出来是120Ω说明只接了一个终端电阻如果量出来是无穷大或者很大说明两个都没接或者线断了如果量出来是30Ω左右说明多接了终端电阻可能有节点误焊。这个方法简单粗暴但非常有效。我每次到现场排查CAN通信问题第一步就是量这个电阻。量之前一定要断电因为收发器内部可能有保护二极管带电测量会不准。4.4 示波器看波形反射长什么样如果有示波器可以直接看CAN_H和CAN_L的差分波形。正常匹配的情况下差分信号的上升沿干净过冲小眼图张开。如果终端电阻缺失你会看到明显的振铃上升沿之后有衰减振荡严重时振荡幅度超过差分阈值接收端就会判错。看波形的时候探头要用差分探头或者用两个单端探头做数学运算。普通单端探头看CAN_H对地也能看到反射但不如差分直观。触发点设在显性位到隐性位的跳变时间档调到几十纳秒每格就能看清边沿细节。5. 那些年踩过的终端电阻坑5.1 只接一端短距离能通长距离就挂这是最经典的坑。台架上总线只有一两米只接一个终端电阻通信看起来正常因为短线反射周期短和信号边沿重叠接收端还能容忍。但装到车上线缆拉到十几米反射周期变长正好落在采样点附近就开始随机丢帧。这种问题最难查因为实验室复现不了。我的经验是不管线多短终端电阻必须两端都接。不要心存侥幸不要等出了问题再补。5.2 终端电阻放在节点内部节点拔掉就断有些设计把终端电阻做在某个节点的PCB上这个节点一拔总线就少一个终端。如果这个节点正好是末端那总线就变成单端匹配反射立刻出现。更麻烦的是如果这个节点不是末端那终端电阻的位置就不对等于在总线中间接了一个电阻匹配效果大打折扣。正确的做法是终端电阻要么做在总线线束的末端连接器里要么做在一个专门的总线端接模块上不要依赖某个功能节点。如果必须做在节点里要确保这个节点永远在末端并且拔掉时要有替代端接。5.3 用错阻值47Ω、220Ω都见过有人手头没有120Ω就用两个47Ω串联凑94Ω或者用220Ω代替。这些都会破坏匹配。47Ω太小负载过重差分幅度下降220Ω太大匹配不足反射增加。实测下来阻值偏离120Ω超过20%波形就开始明显变差。如果实在没有120Ω可以用两个240Ω并联得到120Ω精度和功率都更好。或者用两个60Ω串联但60Ω不常见。最稳妥的还是备料时多买一些120Ω的电阻不贵但关键时候能救命。5.4 终端电阻和分裂终端的选择分裂终端是把一个120Ω拆成两个60Ω中间接一个电容到地。这样做的好处是给共模信号提供低阻抗回路改善EMC性能。但电容值要选好太大影响差分信号太小起不到作用。一般用4.7nF到100nF具体要看波特率和EMC要求。普通场景用单个120Ω就够了分裂终端多用在汽车电子或者对EMC要求高的场合。如果你做的是消费类或者工业类产品没有严格的EMC测试不用折腾分裂终端。6. 阻抗匹配问题排查速查表现象可能原因排查方法解决措施短距离正常长距离丢帧终端电阻缺失或只接一端断电量CAN_H-CAN_L电阻两端各接120Ω通信完全不通总线短路或终端电阻过多量电阻正常60Ω检查节点是否误焊电阻波形振铃严重终端电阻阻值不对示波器看差分波形更换为120Ω随机错误帧EMC测试失败终端电阻位置不对或分支过长检查拓扑和端接位置端接移到物理末端缩短分支拔掉某节点后通信异常终端电阻做在该节点内确认端接位置端接独立于功能节点这张表是我自己排查时总结的基本覆盖了终端电阻相关的常见问题。实际用的时候先量电阻再看波形最后查拓扑三步下来大部分问题都能定位。7. 仿真与实测怎么验证你的终端匹配7.1 用ADS做信号完整性仿真如果手头有ADS或者类似的信号完整性仿真工具可以搭一个简单的传输线模型理想传输线特征阻抗120Ω延迟根据线长设置两端各接120Ω中间加一个差分激励源看接收端眼图。然后把终端电阻改成开路或者60Ω对比眼图变化。仿真的价值在于快速验证不同阻值和拓扑的影响不用反复焊板子。但仿真模型要准线缆的损耗、连接器的寄生参数都要考虑否则仿真结果和实测差很多。我一般用仿真做趋势判断最终还是要靠实测确认。7.2 实测眼图和误码率实测最直接的方法是看眼图。用示波器的眼图模板把CAN差分信号长时间累积看眼图的张开程度。匹配良好的总线眼图张开大交叉点清晰。匹配不好的眼图闭合噪声容限下降。更严格的是测误码率但CAN总线一般不用误码率仪而是看错误帧计数。在CAN分析仪上观察错误帧数量如果每分钟有几十个错误帧基本可以确定物理层有问题。正常的总线错误帧应该是零或者极少数。7.3 一个真实的调试案例之前有个项目CAN总线在整车上偶发丢帧概率大概千分之一。台架上怎么都复现不了。后来把整车线束拆下来量发现总线末端的一个连接器里终端电阻虚焊时通时断。重新焊接后问题消失。这个案例说明终端电阻不仅要接还要接牢。振动环境下虚焊是常见故障。另一个案例是某产品EMC测试辐射超标查到最后是终端电阻的地线太长形成了天线效应。把电阻的地线缩短直接接到连接器地针辐射降了6dB。所以终端电阻的布局也很重要尽量靠近连接器地线要短。8. 几个容易被忽略的细节8.1 终端电阻和共模扼流圈的关系很多CAN接口会在收发器和连接器之间加共模扼流圈用来抑制共模干扰。共模扼流圈对差分信号影响小但对共模信号呈现高阻抗。终端电阻如果放在扼流圈的总线侧匹配的是线缆如果放在收发器侧匹配的是收发器输出。一般建议放在总线侧靠近连接器这样反射在进入扼流圈之前就被吸收了。8.2 不同波特率下的终端电阻有人问波特率低的时候能不能不接终端电阻比如125kbps上升沿几百纳秒线缆短的话反射影响小。理论上可以但实际工程里不建议。因为EMC测试、总线长度变化、节点数量变化都会影响不接终端电阻等于埋雷。统一接120Ω省心。8.3 终端电阻的失效模式终端电阻常见的失效是开路和阻值漂移。开路一般是焊接问题或者电阻本身断裂阻值漂移一般是电阻质量差或者过热。如果总线上的错误帧随温度变化比如冷车正常热车异常要怀疑终端电阻的温度特性。选电阻的时候温度系数和功率余量都要留够。9. 写在最后一些个人体会搞CAN总线物理层终端电阻是最基础也最容易出错的地方。我自己的习惯是任何CAN项目原理图评审时第一眼看终端电阻PCB评审时第一眼看终端电阻的位置和地线现场调试时第一件事量终端电阻。这三个“第一”帮我省了很多时间。还有一点不要迷信“经验值”。120Ω是标准值但你的线缆如果特征阻抗不是120Ω理论上要跟着调整。虽然大多数情况120Ω都能用但如果你做的是高速CAN或者长线CAN最好实测一下线缆的特征阻抗再决定终端电阻。实测方法也简单用TDR或者网络分析仪量一下没有这些设备就用仿真反推。最后分享一个小技巧如果你不确定总线末端在哪里可以用万用表量每个节点到两端的电阻找到电阻最大的两个点那就是末端。这个方法在复杂的整车线束里特别有用比翻图纸快多了。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →