1. 从一次通信间歇性丢帧说起为什么偏偏是120Ω如果你在车载电子或者工业控制现场待过大概率遇到过这种场景CAN总线在实验室台架上跑得好好的一装车、一进现场通信就开始间歇性丢帧示波器抓波形一看上升沿附近有明显的振铃眼图几乎闭合。排查了一圈线束、节点、供电最后发现问题出在终端电阻上——要么没接要么接了个随便翻出来的220Ω要么两端都接了但中间又并联了一个。这类问题的答案几乎都会指向同一个数字120Ω。但很多人只是记住了CAN总线两端各接一个120Ω电阻这条口诀却说不清楚这个数字是怎么来的为什么不是100Ω、不是150Ω为什么是两端各一个而不是单端一个为什么高速CAN和低速容错CAN在这件事上处理方式完全不同。这篇内容就是想把这件事从头讲透。核心关键词是CAN总线、终端电阻、120Ω、阻抗匹配、信号完整性。我会从传输线的基本模型讲起把120Ω这个数字的推导过程还原出来再落到实际工程中的选型、布局、测量和排错。适合已经会接CAN线但没深究过物理层的工程师也适合正在做CAN通信物理层容错测试、需要判断故障排查时到底要不要加终端电阻的测试人员。读完你应该能自己算、自己测、自己判断而不是背口诀。先说一个反直觉的结论终端电阻的首要作用不是给总线提供直流偏置回路而是吸收信号在电缆末端的反射能量。很多人把它理解成上拉/下拉电阻这是把它当成了I2C的玩法。CAN是差分总线它的终端电阻干的是射频里匹配负载的活。理解这一点后面所有的为什么都会顺理成章。2. 120Ω这个数字是怎么算出来的从电缆特性阻抗到匹配条件2.1 先把CAN线当成一根传输线很多工程师习惯用电路的思维看CAN节点是负载线是导线电阻分压。这套思维在低频、短线、慢沿的情况下勉强能用但CAN的典型速率是500kbps上升沿时间可以做到几十纳秒这时候信号沿的波长和线长已经可比了必须用传输线的视角来看。一根双绞线的核心参数是特性阻抗记作Z0。它由单位长度的电感L和电容C决定Z0 sqrt(L / C)注意Z0和线长无关只和线的几何结构、绝缘材料、绞距有关。汽车上常用的CAN双绞线特性阻抗标称值就是120Ω严格说是95Ω到140Ω之间典型值120Ω。工业上常用的屏蔽双绞线也基本落在这个区间。所以终端电阻用120Ω的第一层原因非常朴素它要等于电缆的特性阻抗。当负载阻抗等于传输线特性阻抗时信号到达末端不会反射能量被完全吸收。这就是阻抗匹配。2.2 不匹配会怎样反射系数告诉你答案反射的大小用反射系数Γ描述Γ (ZL - Z0) / (ZL Z0)如果末端开路ZL ∞Γ 1信号100%反射回来而且是同相叠加末端电压会翻倍。如果末端短路ZL 0Γ -1信号100%反射但反相末端电压被拉低。如果ZL Z0 120ΩΓ 0没有反射。CAN总线两端各接一个120Ω从任意一端看进去两个120Ω通过总线并联等效负载是60Ω。等等这里有个容易绕晕的点为什么不是让等效负载等于120Ω而是让每个终端等于120Ω关键在于信号是从一端向另一端传播的。当信号到达远端时它看到的是远端的那个120Ω终端电阻此时近端的电阻还没被信号感知到信号还没跑回来。所以远端必须放一个等于Z0的电阻来吸收。同理当近端节点发送、远端节点发送时角色互换。两端各放一个120Ω是为了保证无论哪个方向传播末端都能匹配。那为什么总线上量出来是60Ω因为用万用表测的时候你测的是两个120Ω并联的直流电阻。这个60Ω是判断总线是否正常的经典依据后面排错章节会详细讲。2.3 为什么不是其他值容差与工程折中理论上终端电阻应该严格等于Z0。但实际电缆的Z0有制造公差标称120Ω的线实际可能在100Ω到130Ω之间波动。终端电阻用1%精度的120Ω已经能把反射系数控制在很小的范围。有人会问用100Ω行不行算一下假设Z0120ΩZL100ΩΓ (100-120)/(100120) -0.09约9%的反射。对于短总线、低速率这点反射可能被裕量吃掉但对于长总线、高速率9%的反射叠加在信号上足以让接收端在采样点附近误判。所以工程上宁可用标称值也不轻易偏离。还有人问为什么不用一个60Ω的电阻跨在总线中间这样直流上等效也是60Ω。问题在于中间一个60Ω只能匹配一个方向另一个方向的信号到达这个中点时看到的是60Ω并联另一段线的Z0匹配关系被破坏。而且实际布线中中间这个位置很难定义。所以标准做法就是两端各120Ω。3. 高速CAN与容错CAN终端电阻的两种截然不同的玩法3.1 高速CAN两端各120Ω简单直接ISO 11898-2定义的高速CAN物理层就是上面说的那套线性总线两端各一个120Ω终端电阻速率从125kbps到1Mbps。这是最常见的CAN形态车载动力总成、底盘控制基本都是这个。高速CAN的收发器输出的是差分信号CAN_H和CAN_L的共模电压大约2.5V显性位时CAN_H约3.5V、CAN_L约1.5V差分电压2V隐性位时两者都约2.5V差分电压0V。终端电阻除了匹配还提供一个微弱的直流负载让总线在隐性状态时保持确定的共模电平。这里有个实操细节高速CAN的终端电阻必须放在总线的物理两端不能放在中间节点上。我见过有人图省事把120Ω焊在某个中间ECU的板子上结果那段分支stub太长分支末端产生反射波形上能看到明显的台阶。分支长度一般建议控制在0.3米以内速率越高要求越严。3.2 低速容错CAN分布式终端每个节点都参与ISO 11898-3定义的低速容错CAN也叫FT-CAN速率通常不超过125kbps用于车身舒适系统比如车窗、座椅、门锁。它的物理层拓扑完全不同不是线性总线而是可以星型、可以多分支而且终端电阻是分布式的。典型做法是每个节点各接一个电阻到各自的偏置电压所有节点的电阻并联后等效终端电阻落在100Ω到130Ω之间。这样做的目的是容错即使某根线断了、某个节点短路总线还能靠剩下的节点维持通信。这也是容错二字的由来。所以当有人问CAN通信物理层容错测试故障排查需要增加终端电阻吗答案取决于你测的是哪种CANCAN类型标准终端方式排错时是否加终端高速CANISO 11898-2两端各120Ω缺终端必须补且只在两端低速容错CANISO 11898-3每节点分布式一般不需要额外加检查各节点电阻是否正常单线CANSAE J2411单端不适用双绞线匹配逻辑低速容错CAN如果按高速CAN的方式在两端硬加120Ω反而会破坏它原有的偏置网络导致显性电平异常。这一点在混测两种总线时特别容易搞错。3.3 为什么容错CAN敢用分布式终端根本原因是速率低。125kbps对应的信号沿相对缓波长长反射能量在采样点之前基本衰减掉了对匹配的要求没那么苛刻。加上容错设计本身要容忍拓扑的不规则分布式终端是速率和可靠性之间的折中。高速CAN速率高反射的影响直接体现在采样点上所以必须严格匹配。这就是为什么同样是CAN终端电阻的处理方式差这么多。理解了这个逻辑你就不会再把两种总线的终端规则混为一谈。4. 终端电阻缺失或错误的典型波形长什么样4.1 缺一个终端振铃与过冲假设总线一端有120Ω另一端开路。发送端发出的信号到达开路端Γ1全反射回来和入射波叠加。在示波器上看显性位的上升沿之后会出现明显的振铃幅度可能超过正常差分电压的20%到50%然后慢慢衰减。这种波形在低速、短线上可能还能通信因为接收端采样点在振铃稳定之后。但一旦速率提高或者线加长采样点正好落在振铃区误码率就上去了。我实测过一条约10米的CAN线缺一个终端时500kbps下误码率从10^-9量级恶化到10^-4量级基本不可用。4.2 两端都缺反射更严重共模也漂两端都开路信号在两端来回反射形成驻波。波形上表现为持续的振荡眼图完全糊掉。同时因为没有直流负载共模电压可能漂移到收发器共模输入范围之外接收端直接失效。4.3 终端电阻值不对反射系数不为零接220ΩΓ (220-120)/(220120) 0.29约29%反射。接60ΩΓ (60-120)/(60120) -0.33约33%反射且反相。两种情况波形都不干净。所以终端电阻不是随便接一个就行值必须对。4.4 多接了终端总线负载过重有人在总线中间又并了一个120Ω总等效电阻变成40Ω。直流上收发器要驱动更重的负载显性差分电压可能被拉低交流上中间这个电阻对两个方向的匹配都是错的反而引入新的反射点。所以终端电阻只能有两个且必须在两端。5. 动手测怎么判断总线终端是否正常5.1 断电测直流电阻最快的一招把总线断电所有节点停止发送用万用表测CAN_H和CAN_L之间的电阻。正常应该是约60Ω两个120Ω并联。如果测到120Ω说明只接了一个终端测到无穷大说明两个都没接测到40Ω左右说明多接了一个测到明显小于60Ω可能有节点内部短路或者接了不该接的电阻。这个测量有个前提必须断电且总线上不能有正在驱动的节点。有些收发器在断电时呈现低阻会干扰测量必要时把节点一个个拔掉排查。5.2 上电测差分波形看振铃和眼图用示波器差分探头或者两个单端探头做数学运算看CAN_H减CAN_L。正常波形应该是干净的方波上升沿有轻微圆角但无振铃。如果看到振铃、过冲、台阶基本可以怀疑终端或分支问题。测的时候注意探头接地要短长地线引入的振铃会误导判断。我一般用弹簧地针尽量贴近测试点。5.3 用TDR思路定位问题点如果有条件用TDR时域反射计或者带TDR功能的示波器可以看到阻抗不连续点的位置。反射点距离 传播速度 × 往返时间 / 2。双绞线的传播速度大约是光速的0.6到0.7倍即约2×10^8 m/s。这个方法能精确定位是哪个连接器、哪段分支出了问题比盲猜高效得多。5.4 物理层容错测试中的终端处理做容错测试时经常要模拟断线、短路、节点失效。这时候终端电阻的处理原则是先确认被测总线的类型和标准拓扑再决定终端配置。高速CAN测试断线时如果断点在终端之前断点外侧的终端就失效了此时总线等效只有一个终端波形会变差这是预期现象不要误判为被测件故障。测试方案里应该明确记录终端配置否则复现性很差。6. 选型、布局与焊接那些文档里不写的细节6.1 电阻选型精度、功率、封装终端电阻建议用1%精度的金属膜电阻功率至少0.25W。虽然稳态功耗不高显性时差分电压2V加在120Ω上约33mW但瞬态和故障情况下可能有大电流留点裕量没坏处。封装上0805或1206都常见关键是布局时靠近连接器。温度系数也要考虑车载环境温度范围大温漂大的电阻会让匹配在极端温度下变差。一般选100ppm/℃以内的。6.2 布局终端电阻要贴着连接器放这是最容易被忽视的一点。终端电阻的作用是吸收到达线缆末端的信号如果电阻离连接器有一段走线这段走线本身就是一段未匹配的传输线会在电阻和连接器之间产生反射。所以终端电阻必须尽可能靠近连接器引脚中间走线越短越好。我见过一块板子把120Ω放在离连接器5厘米的地方500kbps下波形就有可见的台阶。挪到连接器旁边后波形立刻干净。6.3 可插拔终端调试期的实用设计产品定型后终端电阻是焊死的但调试阶段经常需要临时加/去终端。我的做法是在板子上留一个2pin排针用跳线帽短接来接入120Ω。这样调试时灵活量产时把跳线帽换成焊锡短接或者直接贴片。注意跳线帽本身的寄生参数高速下可能引入小反射所以最终产品不要用跳线帽。6.4 分支stub长度控制每个节点到总线的分支长度要尽量短。经验值500kbps时分支不超过0.3米125kbps时可以放宽到1米左右。分支越长它自身的反射越明显。如果拓扑上无法避免长分支可以考虑在分支末端也加终端但这会改变总等效负载需要重新核算。7. 几个高频疑问的正面回答7.1 终端电阻发热正常吗正常通信时几乎不发热33mW的功耗摸不出来。如果明显发热说明有持续的大电流流过可能是总线短路、某个节点驱动异常或者电阻值选错了。这时候要立刻排查别让它继续烧。7.2 能不能用两个60Ω串联代替一个120Ω直流上等效交流上如果两个60Ω紧挨着放中间点悬空那这个中间点就是一个阻抗不连续点会引入反射。除非你把中间点也处理好否则不如直接用120Ω。这种小聪明在射频里是大忌。7.3 为什么有些节点内部自带终端电阻有些ECU为了方便内部集成了120Ω通过配置决定是否接入。这在做台架测试时很方便但装车时要确认哪些节点接了、哪些没接否则容易出现三个终端的情况。我建议内部终端做成可配置的默认不接需要时再使能。7.4 终端电阻和共模扼流圈的关系很多CAN接口在收发器和连接器之间会放共模扼流圈用来抑制共模干扰。终端电阻一般放在扼流圈的哪一侧通常放在连接器侧也就是扼流圈和连接器之间这样扼流圈看到的是匹配好的负载。具体位置要看收发器手册和EMC测试结果不同方案有差异。7.5 信号完整性仿真能帮上什么忙如果总线拓扑复杂、分支多、速率高可以用信号完整性仿真工具建模把线缆的Z0、分支长度、终端位置都放进去看眼图和反射。仿真的价值在于在打板之前发现拓扑问题而不是替代实测。仿真模型里的线缆参数要用实测或者厂家提供的S参数否则结果不可信。8. 我在实际项目里踩过的几个坑第一个坑是把终端电阻当上拉用。早期做CAN接口我照着I2C的思路以为终端电阻是给总线提供高电平的结果在只有单端终端的板子上怎么调都不对。后来才明白CAN是差分终端电阻是匹配负载和上拉是两码事。第二个坑是分支太长。有次一个节点装在离总线主干两米远的地方500kbps下通信时好时坏。查了很久最后用示波器看到分支末端的反射台阶把分支缩短到0.2米后问题消失。这个教训让我后来画板子时对CAN分支长度特别敏感。第三个坑是混测两种CAN。一次项目里同时有高速CAN和容错CAN测试时按高速CAN的习惯给容错CAN两端加了120Ω结果容错CAN的显性电平异常。后来查标准才知道容错CAN是分布式终端不能这么加。这件事让我养成了先确认总线类型再动手的习惯。第四个坑是万用表测电阻时没断电。有次测总线电阻忘了断电测出来一个乱七八糟的值差点误判为短路。后来固定流程测电阻前先断电、先确认没有节点在驱动。这些坑的共同点是都源于对终端电阻作用的理解不到位。一旦你把匹配这个核心概念刻进脑子里很多问题在发生之前就能避免。9. 给不同阶段工程师的实操建议如果你是刚接触CAN的新人先把两端各120Ω、总线测60Ω这条基线记住遇到通信问题先量电阻。这个动作能解决相当一部分物理层问题。如果你在做硬件设计画CAN接口时把终端电阻放在连接器旁边留可配置的跳线分支走线尽量短。板子回来先测直流电阻再上电看波形。如果你在做测试或排错先确认总线类型和标准拓扑再决定终端配置。测波形时注意探头接地别把探头引入的振铃当成总线问题。做容错测试时把终端配置写进测试记录保证可复现。如果你在做系统集成装车前确认每个节点的终端配置避免出现零个、一个或三个终端的情况。拓扑复杂时考虑做信号完整性仿真但仿真参数要靠谱。120Ω这个数字背后是传输线理论、差分信号、标准定义和工程折中的共同结果。它不是随便定的也不是可以随便改的。把这一层想清楚CAN物理层的很多玄学问题都会变得有迹可循。
阅读完成 · 觉得有帮助?