CAN 总线挂死?别只怪节点,看看终端电阻与阻抗匹配
摘要CAN 总线接上第三个节点就通讯异常示波器看波形振铃严重不是节点芯片坏了而是终端电阻缺失或阻抗不连续。本文解析 CAN 总线最容易被忽略的物理层陷阱。一、问题描述现象**双绞线接了两个节点通讯好好的再加一个节点总线直接挂死错误帧满天飞示波器看 CANH/CANL波形有明显的振铃Ringing。**很多工程师的排查方向是波特率不一致某个节点 ID 冲突换一个 CAN 收发器芯片二、原理分析1. 物理模型CAN 总线是差分、阻抗受控的传输线。CANH ---------------------- CANH | | [Rterm] [Rterm] | | CANL ---------------------- CANL2. 核心参数特性阻抗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 EndNode B 上加电阻方案 2计算实际电阻值车上环境恶劣电阻值允许一定公差。推荐范围100Ω ~ 130Ω。用万用表量 CANH-CANL 之间的电阻只有 1 个节点约 60Ω并联。2 个节点约 120Ω。3 个节点必须只有两端有电阻。方案 3检查线缆与连接器线缆必须使用双绞线绞距越密越好 2cm。连接器避免螺丝端子优先用 IDC 或压接。分支长度尽量短于 30cm。四、选型避坑建议不要省收发器低端 MCU 内置 CAN PHY 往往驱动能力弱长距离必挂。共模电感工业现场强烈建议加共模扼流圈Common Mode Choke。地线回流所有节点的 GND 必须共地否则共模电压超标。五、总结 Checklist[ ] 是否用示波器看过 CAN 波形是否有振铃[ ] 120Ω 电阻是否只加在总线两端[ ] 分支长度是否 30cm[ ] 所有节点是否共地六、写在最后关注我少走弯路我是 gqqsherry一个拒绝调包、专注底层逻辑的嵌入式工程师。CAN 总线是汽车电子的命脉但 80% 的故障都在物理层。关注我的专栏《嵌入式底层避坑指南》我会持续更新 CAN、UART、SPI 等外设的真实调试案例和量产级解决方案。下一篇预告《CAN 波特率 500k 配不出来别只怪晶振看看 SJW 与 BS1/BS2》ReferencesISO 11898-2 – Road vehicles — Controller area network (CAN)TI Application Report SLLA270 – CAN Bus Termination如果你在调试 CAN 总线时遇到过“加个节点就挂”的灵异事件欢迎在评论区交流。原创文章转载请注明出处。