3. CAN物理层:差分信号、CAN_H与CAN_L电平定义、终端电阻的作用与计算
CAN(Controller Area Network)物理层是总线通信的基石,它定义了信号如何在物理介质上传输。与常见的UART或I2C单端信号不同,CAN总线采用差分信号传输,这一设计赋予了它极强的抗干扰能力和远距离传输能力。本章将深入剖析CAN物理层的核心要素:差分信号原理、CAN_H与CAN_L的电平定义,以及终端电阻的作用与计算方法。
3.1 差分信号原理
差分信号使用两根导线(CAN_H和CAN_L)来传输一个逻辑信号。发送端在两根线上施加大小相等、极性相反的电压;接收端则通过计算两根线的电压差(Vdiff = VCAN_H − VCAN_L)来还原数据。这种“共模抑制”特性使得外部电磁干扰(EMI)在两根线上产生几乎相同的噪声,而差分计算会抵消这些噪声,从而保证信号完整性。
关键优势:
- 抗干扰强:共模噪声被差分接收器抑制。
- 远距离:在125 kbps速率下,总线长度可达500米以上。
- 错误检测:物理层可检测总线短路、断路等故障。
3.2 CAN_H与CAN_L电平定义
CAN总线定义了两种逻辑状态:显性(Dominant)和隐性(Recessive)。这两种状态通过CAN_H和CAN_L的电压差来区分。在ISO 11898-2标准中,具体电平定义如下:
| 逻辑状态 | CAN_H电压 | CAN_L电压 | 差分电压 Vdiff | 总线行为 |
|---|---|---|---|---|
| 显性(逻辑0) | 3.5 V | 1.5 V | +2.0 V | 覆盖隐性,仲裁获胜 |
| 隐性(逻辑1) | 2.5 V | 2.5 V | 0 V | 总线空闲或释放 |
施肥机应用提示:在施肥机CAN网络中,显性电平(逻辑0)用于表示“数据有效”或“请求响应”,而隐性电平(逻辑1)表示总线空闲。当多个节点同时发送时,显性位会覆盖隐性位,这是CAN总线非破坏性仲裁的基础。
3.3 终端电阻的作用与计算
终端电阻(Termination Resistor)是CAN总线物理层的关键组件,它连接在总线最远两端节点的CAN_H和CAN_L之间。其主要作用包括:
- 消除信号反射:防止高速信号在总线末端产生反射,避免数据帧损坏。
- 提供总线空闲电平:确保隐性状态下CAN_H和CAN_L电压相等(2.5V)。
- 保证差分阻抗匹配:使总线特性阻抗与电缆阻抗一致,通常为120Ω。
3.4 终端电阻计算方法
标准CAN总线(ISO 11898-2)要求总线两端各接一个120Ω电阻,并联后等效电阻为60Ω。这个值对应双绞线的典型特性阻抗。计算公式如下:
R_total = (R1 × R2) / (R1 + R2)
当 R1 = R2 = 120Ω 时:
R_total = (120 × 120) / (120 + 120) = 14400 / 240 = 60Ω
施肥机布线警告:
- 终端电阻必须安装在总线物理末端,而非节点内部(除非节点位于末端)。
- 使用错误阻值(如100Ω或150Ω)会导致信号反射,增加误码率。
- 在施肥机多节点网络中(如主控ECU、排肥电机、GPS模块),确保只有两端节点启用终端电阻。
3.5 终端电阻配置对比
| 配置方式 | 等效电阻 | 适用场景 | 注意事项 |
|---|---|---|---|
| 两端各120Ω | 60Ω | 标准CAN网络(≤40m) | 最常用,匹配双绞线阻抗 |
| 单端120Ω | 120Ω | 短距离测试(<1m) | 不推荐用于生产网络 |
| 两端各60Ω | 30Ω | 低阻抗总线(特殊电缆) | 需确认电缆特性阻抗 |
| 无终端电阻 | ∞(开路) | 仅用于低速/调试 | 信号反射严重,通信不可靠 |
3.6 施肥机CAN总线物理层设计要点
在施肥机实际应用中,物理层设计需考虑以下因素:
- 线缆选择:使用特性阻抗120Ω的屏蔽双绞线(如AWG22),减少电磁干扰。
- 节点数量:标准CAN总线最多支持110个节点,施肥机网络通常为5-20个节点。
- 总线长度:施肥机整机长度一般不超过20米,125kbps速率下可轻松覆盖。
- 电源隔离:每个节点建议使用DC-DC隔离电源,防止地环路干扰。
实践检查清单:
- ☐ 使用万用表测量CAN_H与CAN_L之间的电阻,应为60Ω(总线断电时)。
- ☐ 测量CAN_H对地电压约为2.5V(隐性)或3.5V(显性)。
- ☐ 测量CAN_L对地电压约为2.5V(隐性)或1.5V(显性)。
- ☐ 确认终端电阻安装在总线物理两端,而非中间节点。
通过本章学习,您应能理解差分信号如何赋予CAN总线高可靠性,掌握CAN_H/CAN_L的电平定义,并能够正确计算和配置终端电阻。这些物理层知识是后续理解CAN帧结构、仲裁机制和错误处理的基础。