CAN总线是工业现场和车载网络中极其重要的通信方式。但在实际调试中,你是否也常遇到这种情况:单个设备测试正常,物理线路检查也没问题,可一旦组网通信,就会出现数据乱码、间歇性丢包,甚至通信时断时续的“玄学”问题?
其实,这类问题的根源,常常就出在一个看似不起眼、却又至关重要的细节上——CAN总线的终端电阻。不是没接,就是接错了位置或数量。
终端电阻是什么?它的工作原理其实很简单
终端电阻,本质就是一个阻值固定的小电阻元件,它必须安装在整条CAN总线的物理两端(最头端和最末端)的设备上。
它的工作原理围绕一个核心:阻抗匹配。CAN通信采用的是高速差分信号(CAN_H 与 CAN_L)。信号在双绞线中向前传输,当抵达线路末端时,如果末端是“开路”状态(阻抗无穷大),信号能量无法被吸收,就会像声音碰到墙壁一样产生反射,形成“信号回波”。
这些反射波会沿着线缆反向传播,与后续发出的新信号发生叠加和干涉,导致信号波形畸变、逻辑电平判断错误,从而引发乱码和丢包。
终端电阻的作用,就是为信号提供一个“能量吸收器”。它的阻值被设计成与电缆的特性阻抗相等,当信号传输到末端时,其能量会被电阻几乎完全吸收并转化为热能,从而消除了信号的反射。这样,线缆上传输的每一帧数据都是“干净”的,通信自然就稳定了。
简单来说,没有终端电阻,信号会在总线两端“来回吵架”(反射);正确安装了终端电阻,信号就能“平稳着陆”,通信畅通无阻。

为什么必须是120Ω?能不能用其他阻值?
答案是:不能随意更改,必须使用120Ω。这是由国际标准(如 ISO 11898)和物理现实共同决定的。
标准CAN总线所使用的双绞线,其特性阻抗在出厂时就被设计为 120Ω。这个数值是由线缆的物理结构(如导体直径、绝缘材料、绞距等)决定的。
终端电阻要实现完美的阻抗匹配、彻底消除信号反射,其阻值必须等于线缆的特性阻抗。因此,120Ω 成为了CAN总线终端电阻的唯一标准值。
如果使用其他阻值(例如100Ω或150Ω),就会造成阻抗不匹配。即便在通信距离很短、波特率很低的情况下可能勉强通信,但只要距离一长、波特率一高,信号反射问题就会立刻显现,导致通信失败。所以,记住这个硬性规定:CAN终端电阻,固定120Ω。
现场如何正确安装?记住一个核心原则
安装规则非常简单,但必须严格执行:
终端电阻只安装在整条CAN总线最远端的两台设备上,中间的所有节点设备一律不安装。
具体接线方法:将一颗120Ω电阻的两只引脚,分别跨接在设备通信接口的 CAN_H 和 CAN_L 两个接线端子之间。
万用表实测校验法(现场诊断的金标准)
这是排查终端电阻问题最直接、最可靠的方法。当总线上两端设备都正确安装了120Ω电阻后,从总线任意一点测量CAN_H与CAN_L之间的电阻,这两个电阻在总线上是并联关系。
你可以使用万用表的电阻档,断开所有设备电源,直接在总线任意节点测量CAN_H与CAN_L之间的直流电阻,根据读数可以迅速判断接线状态:
- 两端终端电阻均正确安装:理论值应为
120Ω // 120Ω = 60Ω。实际测量读数约60Ω(通常为55-65Ω之间,因万用表及线路微小阻抗可能略有偏差)。
- 只安装了一端的终端电阻:读数约120Ω。
- 安装了三个或更多终端电阻:例如装了3个120Ω电阻并联,总阻值约40Ω。读数会显著低于60Ω(如40Ω左右)。
- 两端都未安装终端电阻:线路开路,万用表读数显示为无穷大(OL)。
这个方法直观有效,是现场工程师必须掌握的基础技能。
日常调试中最容易踩中的“坑”
- 只接一端电阻:这是最常见的错误。反射只能在一端被消除,另一端仍会产生反射,导致通信不稳定,表现为长期偶发性丢包、特定条件下乱码。
- 用其他阻值电阻凑合:例如随手用更常见的150Ω或100Ω电阻代替。短期内低速通信可能正常,但系统可靠性极差,在高波特率或长距离应用时必然崩溃。
- 中间节点设备也加电阻/私自增加终端数量:这是非常危险的操作。多个电阻并联会导致总线总负载阻抗大幅下降,严重偏离120Ω的设计值。后果轻则信号严重畸变、错误帧频发;重则导致总线驱动器过载发热,甚至烧毁接口芯片,造成整个网络通信瘫痪。
总结来说,确保CAN总线稳定通信,必须严格遵循“两端接、120Ω、勤测量”的原则。很多令人头疼的通信故障,归根结底就是这个基础细节没做到位。如果你在工控或车载通信中遇到了类似难题,不妨先用万用表测一下终端电阻,或许问题就能迎刃而解。更多的工业通信实战技巧与原理剖析,欢迎在云栈社区与同行们深入交流。