☰
CAN 总线挂死?别只怪节点,看看终端电阻与阻抗匹配
2026/10/8 19:19:25 网站建设 项目流程

摘要:CAN 总线接上第三个节点就通讯异常?示波器看波形振铃严重?不是节点芯片坏了,而是终端电阻缺失或阻抗不连续。本文解析 CAN 总线最容易被忽略的物理层陷阱。


一、问题描述(现象)

**双绞线接了两个节点,通讯好好的;

再加一个节点,总线直接挂死,错误帧满天飞;

示波器看 CANH/CANL,波形有明显的振铃(Ringing)。**

很多工程师的排查方向是:

  1. 波特率不一致?

  2. 某个节点 ID 冲突?

  3. 换一个 CAN 收发器芯片?


二、原理分析

1. 物理模型

CAN 总线是差分、阻抗受控的传输线。

CANH ---+----------------+--- CANH | | [Rterm] [Rterm] | | CANL ---+----------------+--- CANL

2. 核心参数

  • 特性阻抗(Z₀):标准规定120Ω。

  • 终端电阻(Rterm):总线两端各接120Ω。

  • 传播延迟:信号在线上往返的时间。

3. 反直觉真相

CAN 总线不是“随便两根线绞在一起”就能用的。

  • 没有终端电阻:信号在总线末端发生反射,形成振铃。

  • 中间加终端电阻:阻抗不连续,反射更严重。

  • 分支过长:哪怕只有 10cm,也会导致严重的信号完整性问题。


三、工程级解决方案

方案 1:只在物理两端加电阻(铁律)

有且仅有在总线的物理起点和物理终点加 120Ω 电阻。

  • ✅ 正确:Bus Start ←→ Node A ←→ Node B ←→ Bus End

  • ❌ 错误:Bus Start ←→ Node A ←→ Node B ←→ Node C ←→ Bus End(Node B 上加电阻)

方案 2:计算实际电阻值

车上环境恶劣,电阻值允许一定公差。

  • 推荐范围:100Ω ~ 130Ω。

  • 用万用表量 CANH-CANL 之间的电阻:

    • 只有 1 个节点:约 60Ω(并联)。

    • 2 个节点:约 120Ω。

    • 3 个节点:必须只有两端有电阻。

方案 3:检查线缆与连接器

  • 线缆:必须使用双绞线,绞距越密越好(< 2cm)。

  • 连接器:避免螺丝端子,优先用 IDC 或压接。

  • 分支长度:尽量短于 30cm。


四、选型避坑建议

  1. 不要省收发器:低端 MCU 内置 CAN PHY 往往驱动能力弱,长距离必挂。

  2. 共模电感:工业现场强烈建议加共模扼流圈(Common Mode Choke)。

  3. 地线回流:所有节点的 GND 必须共地,否则共模电压超标。


五、总结 Checklist

  • [ ] 是否用示波器看过 CAN 波形是否有振铃?

  • [ ] 120Ω 电阻是否只加在总线两端?

  • [ ] 分支长度是否 < 30cm?

  • [ ] 所有节点是否共地?


六、写在最后(关注我,少走弯路)

我是 gqqsherry,一个拒绝调包、专注底层逻辑的嵌入式工程师。

CAN 总线是汽车电子的命脉,但 80% 的故障都在物理层。

关注我的专栏《嵌入式底层避坑指南》,我会持续更新 CAN、UART、SPI 等外设的真实调试案例和量产级解决方案。

👉下一篇预告:《CAN 波特率 500k 配不出来?别只怪晶振,看看 SJW 与 BS1/BS2》


References

  • ISO 11898-2 – Road vehicles — Controller area network (CAN)

  • TI Application Report SLLA270 – CAN Bus Termination


如果你在调试 CAN 总线时遇到过“加个节点就挂”的灵异事件,欢迎在评论区交流。​

原创文章,转载请注明出处。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询