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米以上。
  • 错误检测:物理层可检测总线短路、断路等故障。
差分信号原理示意图 差分信号原理示意图 发送节点 接收节点 CAN_H CAN_L Vdiff = VH − VL 共模干扰 差分信号抗干扰原理 干扰在两根线上产生相同噪声(共模), 接收器通过差分计算抵消噪声,还原原始信号。

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总线非破坏性仲裁的基础。
CAN_H与CAN_L电平波形图 CAN_H与CAN_L电平波形图 5.0V 3.5V 2.5V 1.5V 0V CAN_H CAN_L 隐性 显性 隐性 显性 隐性 显性 隐性 显性 显性时 Vdiff = 2.0V,隐性时 Vdiff = 0V

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总线物理层设计要点

在施肥机实际应用中,物理层设计需考虑以下因素:

  1. 线缆选择:使用特性阻抗120Ω的屏蔽双绞线(如AWG22),减少电磁干扰。
  2. 节点数量:标准CAN总线最多支持110个节点,施肥机网络通常为5-20个节点。
  3. 总线长度:施肥机整机长度一般不超过20米,125kbps速率下可轻松覆盖。
  4. 电源隔离:每个节点建议使用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帧结构、仲裁机制和错误处理的基础。