CAN 总线属于高速差分通信,总线上的信号实际上是高速脉冲。

当信号在线缆中传播时,如果线缆末端“阻抗不匹配”,信号到达末端后,就会像水波撞墙一样被反弹回来。

这种现象叫:

  • 信号反射(Reflection)

反射之后会导致:

  • 波形畸变

  • 电压震荡

  • 通信错误

  • CRC 错误

  • 丢帧

  • 波特率越高越严重

尤其在:

  • 500kbps

  • 1Mbps

  • 长距离通信

中非常明显。


二、终端电阻的作用

CAN 总线两端通常各加一个:

120Ω 终端电阻

作用就是:

1、阻抗匹配

CAN 双绞线的特性阻抗一般约为:

120Ω

因此在线缆末端并联 120Ω 电阻,可以让信号“认为线路还在继续”,从而吸收信号能量,避免反射。

这就是:

阻抗匹配

原理。


三、为什么是两个 120Ω?

标准 CAN 总线结构:

120Ω —— CAN节点 —— CAN节点 —— 120Ω

即:

  • 总线首端一个 120Ω

  • 总线末端一个 120Ω

两个并联后:

R=120×120120+120=60ΩR=\frac{120\times120}{120+120}=60\Omega

所以整个 CAN 总线看到的等效阻抗约为:

60Ω

这也是很多 CAN 设备测量 CANH 与 CANL 阻值时,看到约 60Ω 的原因。


四、不加终端电阻会怎样?

如果没有终端电阻:

低速时

可能还能通信。

比如:

  • 10kbps

  • 50kbps

因为速度慢,反射影响较小。


高速时

会出现:

  • 数据错乱

  • 波形毛刺

  • 仲裁失败

  • 频繁掉线

  • 无法通信

尤其:

  • 1Mbps

  • 长线

  • 多节点

问题会非常严重。


五、终端电阻还有一个作用:提高抗干扰能力

CAN 使用的是:

差分通信

CANH 与 CANL 之间存在差分电压。

终端电阻可以:

  • 稳定总线共模电压

  • 提高信号完整性

  • 降低 EMI

  • 增强抗干扰能力

因此汽车、工业现场、机器人等强干扰环境中,终端电阻非常关键。


六、为什么不能随便多加终端电阻?

很多新手会犯一个错误:

每个节点都加120Ω

这是错误的。

因为多个终端电阻并联后:

总阻值会越来越小。

例如:

  • 3个120Ω并联 → 40Ω

  • 4个120Ω并联 → 30Ω

阻值过小会导致:

  • 总线负载过重

  • 驱动电流增大

  • 波形幅度下降

  • 通信异常


七、正确接法

正确结构:

[120Ω]=================[120Ω]
  |        |        |
节点A    节点B    节点C

注意:

  • 只有总线两端加终端电阻

  • 中间节点不能加

  • 尽量使用双绞线

  • 支线(Stub)不要太长


八、实际工程经验

1、测量总线是否正常

断电后测:

CANH ↔ CANL

正常应约:

60Ω

如果:

  • 120Ω → 少一个终端

  • 无穷大 → 两个都没接

  • 30Ω → 多接了终端


2、高速 CAN 对布线很敏感

例如:

  • 1Mbps

  • 车载 CAN FD

支线太长也会产生反射。

因此:

  • 主干尽量直

  • 支线尽量短

  • 两端终端必须标准