第4章:CAN总线网络设计——终端电阻、拓扑结构与布线规范

大家好,我是老张。做嵌入式十几年,CAN总线是我打交道最多的现场总线之一。说实话,很多工程师在单板调试时跑得挺顺,一到组网就出各种怪问题。今天这章,咱们就把CAN总线网络设计的关键点掰开揉碎讲清楚。

4.1 终端电阻:为什么必须加?怎么选?

先问个问题:你见过CAN总线不加终端电阻能正常通信吗?我见过。但那是实验室环境,线缆只有20厘米。一旦拉到几十米,波形反射能把信号干废。

终端电阻的作用说白了就两个:

  • 消除信号反射:高速信号在总线末端会反射回来,叠加到原信号上造成误码
  • 保证差分电平:CAN总线隐性状态时,靠终端电阻把总线拉回2.5V共模电平

标准值:120Ω(±1%精度,功率1/4W以上)

为什么是120Ω?因为CAN总线使用的双绞线特性阻抗约为120Ω。阻抗匹配才能消除反射。

我在项目中遇到过一件事:有个现场设备通信时好时坏,查了两天。最后发现终端电阻用的是100Ω的贴片电阻。换回120Ω,问题立刻消失。嗯,有时候就是这种小细节坑人。

终端电阻的放置位置

  • 直线型拓扑:只在总线两端各放一个120Ω电阻
  • 星型拓扑:每个分支末端都要考虑,但一般不推荐星型
  • 绝对不能:在中间节点加电阻,那会破坏阻抗匹配

注意:有些CAN收发器(如TJA1050)内部集成了终端电阻,但通常不建议使用。我习惯在PCB上单独焊120Ω电阻,方便调试和更换。

4.2 总线拓扑结构:直线型 vs 星型

CAN总线标准推荐的是直线型(总线型)拓扑。说白了就是一根主线,所有节点都挂在这根线上。

直线型拓扑(推荐)

  • 结构简单,信号质量最好
  • 终端电阻容易放置
  • 节点增减方便
  • 最大总线长度可达1km(低速时)

星型拓扑(尽量避免)

我曾经在一个项目中被迫用了星型拓扑——现场布线已经做好了,改不了。结果呢?通信速率只能降到50kbps,还时不时丢包。

  • 信号反射严重,每个分支都是反射源
  • 终端电阻难以配置
  • 总线长度受限严重
  • 如果一定要用,每个分支长度建议不超过3米

我的建议:能走直线型就别想别的。如果现场必须星型,考虑加CAN中继器或CAN网桥来隔离分支。

4.3 节点数量与总线长度的关系

这个很多人搞混。我直接给个经验公式和表格:

核心原则:节点越多,总线越长,通信速率就必须越低。

通信速率 最大总线长度 最大节点数(典型)
1 Mbps 40 m 30
500 kbps 100 m 50
250 kbps 250 m 80
125 kbps 500 m 100
50 kbps 1000 m 110

你想想看,为什么速率越高距离越短?因为高速信号的上升沿更陡,反射影响更大。我做过一个测试:1Mbps下,总线超过50米,波形已经没法看了。

节点数限制因素:

  • 收发器的驱动能力(标准CAN最多110个节点)
  • 总线电容负载(每个节点约20-30pF)
  • 信号衰减(长距离时更明显)

如果需要更多节点,用CAN中继器或CAN FD(支持更多节点)。

4.4 CAN总线布线规范

这部分是我最想强调的。很多工程师觉得布线无所谓,结果现场调试时哭都来不及。

4.4.1 线缆选择

  • 必须使用双绞线:CAN_H和CAN_L绞在一起,绞距建议2-3cm
  • 推荐线径:0.5mm² ~ 1.0mm²(AWG20~AWG18)
  • 特性阻抗:120Ω ± 10%
  • 屏蔽层:工业环境建议用屏蔽双绞线,单端接地

4.4.2 布线规则

  • 分支线越短越好:每个节点到主线的分支线建议不超过0.3米
  • 避免环形拓扑:CAN总线不支持环形,会形成信号环路
  • 远离干扰源:不要和变频器、大功率电机线平行走线
  • 接地处理:屏蔽层单端接地(通常在控制器端)

我曾经踩过的坑:一个项目里,现场工人把CAN线和220V电源线绑在一起走了50米。结果通信完全瘫痪。后来分开走管,问题解决。记住:CAN线要单独走管,间距至少20cm以上。

4.4.3 连接器与端子

  • 推荐使用DB9或RJ45连接器(工业环境用M12更可靠)
  • 接线顺序:CAN_H接引脚7(DB9),CAN_L接引脚2
  • 每个节点接线要牢固,避免松动导致通信中断

4.4.4 电源与地线

  • 每个节点独立供电,避免共地干扰
  • CAN_GND必须连接所有节点(参考地)
  • 电源地线线径建议≥1.0mm²

我的布线检查清单:

  1. 两端是否各有一个120Ω终端电阻?
  2. 分支线是否超过0.3米?
  3. 双绞线绞距是否均匀?
  4. 屏蔽层是否单端接地?
  5. CAN_GND是否全部连通?

每次项目验收前,我都会拿着这个清单过一遍。省心。

4.5 实战经验总结

最后说几句掏心窝子的话:

  • 终端电阻别省:省两个电阻的钱,可能花两天时间查故障
  • 拓扑结构别乱改:直线型是CAN的命根子,星型、树型都是妥协方案
  • 布线规范别偷懒:现场环境复杂,规范布线能省90%的后期维护工作
  • 先仿真再施工:我习惯先用CAN分析仪抓波形,确认信号质量再批量布线

嗯,这章内容就到这里。下一章咱们聊CAN总线数据帧结构,那个更有意思。到时候我会拿一个实际项目的报文来拆解,保证你一看就懂。


公众号:蓝海资料掘金营,微信deep3321