CAN 物理层 -- 差分信号、拓扑与终端电阻

1. 什么是 CAN 总线

CAN(Controller Area Network,控制器局域网)是由 Bosch 公司于 1986 年开发的一种串行通信协议,最初用于汽车内部电子控制单元(ECU)之间的通信。如今已广泛应用于工业自动化、医疗设备、船舶电子等领域。

1.1 为什么需要 CAN?

在汽车中,有数十个甚至上百个 ECU(发动机控制、ABS、空调、仪表盘等)。早期的点对点布线方式需要大量线束,成本高且不可靠。CAN 总线通过共享一根通信线,大幅减少线束数量。

1.2 CAN 与其他总线的对比

特性CANI2CSPIUART
通信方式差分信号单端单端单端
线数2 根(CAN_H + CAN_L)2 根(SDA + SCL)3+ 根(MOSI/MISO/SCK/CS)2 根(TX + RX)
最大速率1 Mbps(经典 CAN)3.4 Mbps(高速模式)数十 Mbps取决于距离
多主支持是(带仲裁)是否(单主)否
抗干扰能力强(差分)一般一般弱
典型应用汽车、工业控制板内低速外设板内高速外设点对点通信

2. 物理层详解

2.1 CAN_H 和 CAN_L 差分信号线

CAN 总线使用两根信号线传输数据:

  • CAN_H(CAN High):高电平线
  • CAN_L(CAN Low):低电平线

接收端通过两根线的电压差来判断逻辑状态,而不是看单根线的绝对电压。这种差分信号方式具有极强的抗干扰能力。

2.2 显性电平 vs 隐性电平

状态逻辑值CAN_H 电压CAN_L 电压差分电压
显性(Dominant)0~3.5V~1.5V~2.0V
隐性(Recessive)1~2.5V~2.5V~0V

关键特性:

  • 显性电平覆盖隐性电平 —— 这是 CAN 仲裁机制的物理基础
  • 当多个节点同时发送时,只要有一个节点发送显性(0),总线上就表现为显性

2.3 位速率

速率典型应用最大总线长度
125 kbps工业现场500m
250 kbps汽车舒适系统250m
500 kbps汽车动力系统100m
1 Mbps高速工业控制40m

速率与距离成反比 —— 总线越长,最大可用速率越低。


3. 拓扑结构

3.1 线性总线拓扑

CAN 总线采用线性总线结构:

[节点1]───[节点2]───[节点3]───[节点4]───[节点5]
  │         │         │         │         │
  └─终端电阻─┘                             └─终端电阻─┘
  (120Ω)                                   (120Ω)
  • 所有节点并联在总线上
  • 总线两端各有一个 120Ω 终端电阻
  • 不支持星型、环型拓扑(除非使用中继器或网关)

3.2 节点数量限制

  • 理论:无限制(由 CAN 协议本身不限制)
  • 实际:受收发器驱动能力限制,通常最多 110 个节点
  • 常见配置:10-30 个节点

3.3 分支长度限制

从主干到节点的分支线(stub)应尽量短:

  • 1 Mbps 时:分支 < 0.3m
  • 125 kbps 时:分支 < 3m

过长的分支会引起信号反射,导致通信错误。


4. 终端电阻

4.1 为什么需要终端电阻?

终端电阻的作用是消除信号反射。当信号到达总线末端时,如果没有匹配的终端电阻,信号会反射回总线,与后续信号叠加,造成数据错误。

4.2 阻值选择

  • 标准值:120Ω
  • 等效阻抗:两个 120Ω 并联 = 60Ω(匹配 CAN 总线特性阻抗)
  • 位置:总线两端,不是每个节点都加

4.3 如何判断终端电阻是否正常?

用万用表测量 CAN_H 与 CAN_L 之间的电阻:

  • 正常值:约 60Ω
  • 只接了一个终端电阻:约 120Ω
  • 都没有接:开路(无穷大)

5. 关键知识点总结

知识点要点
差分信号抗干扰能力强,显性覆盖隐性
显性/隐性显性 = 逻辑 0,隐性 = 逻辑 1
仲裁基础显性覆盖隐性 → ID 越小优先级越高
终端电阻120Ω × 2,安装在总线两端
速率与距离速率越高,最大距离越短
拓扑线性总线,不支持星型/环型

★ Insight ─────────────────────────────────────

  • CAN 的"显性覆盖隐性"特性是协议设计的精髓 —— 物理层直接实现了仲裁的基础,不需要额外的冲突检测机制。
  • 终端电阻看似简单,却是工业现场最常见的故障源之一。实际排查时,第一步就是测量总线两端的电阻是否为 60Ω。
  • 差分信号与单端信号的本质区别:差分看的是电压差,而不是对地电压,因此共模噪声(如电磁干扰)会被抵消。 ─────────────────────────────────────────────────

下一步

→ 02-can-frame-format.md —— 深入了解 CAN 帧格式和仲裁机制

如果这篇文章对你有帮助,欢迎请我喝杯咖啡 ☕
Cygnus Yang 支付宝支付宝
Cygnus Yang 微信微信