3. CAN物理层:差分信号原理、CAN_H与CAN_L电平定义、总线拓扑结构、终端电阻作用

CAN(Controller Area Network)物理层是总线通信的基石。与常见的UART、I2C等单端信号传输不同,CAN总线采用差分信号传输方式,具备极强的抗电磁干扰能力和远距离传输能力。本章将深入剖析CAN物理层的核心要素,包括差分信号原理、CAN_H与CAN_L的电平定义、总线拓扑结构以及终端电阻的关键作用。

3.1 差分信号原理

差分信号使用两根导线(CAN_H和CAN_L)来传输一路信号,接收端通过比较两根导线上的电压差来判断逻辑电平。这种设计使得外部电磁干扰在两根导线上产生几乎相同的共模噪声,而差分电压保持不变,从而大幅提升抗干扰能力。

核心优势: 差分信号对共模噪声(如电机启动、电磁阀动作产生的干扰)具有天然抑制能力,非常适合农业机械中强电磁干扰的作业环境。
差分信号原理与抗干扰示意 发送节点 接收节点 CAN_H CAN_L 共模噪声 Vdiff = V(CAN_H) - V(CAN_L) 说明: 当外部干扰同时作用于CAN_H和CAN_L时,两根导线上的电压同步变化,差分电压Vdiff保持不变。 接收器只关心Vdiff,因此干扰被有效抑制。这是CAN总线在农机恶劣电磁环境中稳定工作的关键。

3.2 CAN_H与CAN_L电平定义

CAN总线定义了两种逻辑状态:显性(Dominant)和隐性(Recessive)。显性电平对应逻辑“0”,隐性电平对应逻辑“1”。当多个节点同时发送时,显性电平会覆盖隐性电平,实现总线仲裁。

参数 隐性电平(逻辑1) 显性电平(逻辑0)
CAN_H 电压 约 2.5V 约 3.5V
CAN_L 电压 约 2.5V 约 1.5V
差分电压 Vdiff 约 0V(≤0.5V) 约 2.0V(≥0.9V)
总线状态 空闲或发送1 发送0(仲裁获胜)
实战提示: 使用示波器测量CAN_H和CAN_L对地电压,是排查总线故障的常用手段。正常通信时,两根线电压应在1.5V~3.5V之间摆动,且波形对称。

3.3 总线拓扑结构

CAN总线采用多主总线的线性拓扑结构,所有节点都并联在同一对双绞线上。节点之间通过CAN收发器(如TJA1050、SN65HVD230)连接到总线。总线两端必须各接一个120Ω的终端电阻。

  • 线性总线: 主干线从一端延伸到另一端,节点通过短支线(<1m)接入。
  • 多主通信: 任何节点都可以主动发起通信,无需主机轮询。
  • 支线长度限制: 支线越短越好,过长会导致信号反射,影响通信质量。
CAN总线线性拓扑结构 CAN 主干线(双绞线) 120Ω 120Ω 节点1 节点2 节点3 节点4 节点5 支线长度建议小于1米,过长会导致信号反射。总线两端必须各接一个120Ω终端电阻。

3.4 终端电阻作用

终端电阻是CAN总线物理层中至关重要的元件,通常为120Ω,安装在总线的最远两端。其主要作用包括:

作用 说明 后果(无终端电阻)
消除信号反射 匹配总线特性阻抗,防止信号在总线末端反射,造成波形畸变 通信误码率升高,严重时无法通信
提供差分电压 隐性状态时,终端电阻将总线电压拉到2.5V共模电平 隐性电平不稳定,总线无法正确识别空闲状态
保证总线电平 显性状态时,电流流过终端电阻产生差分电压 显性电平幅值不足,节点无法驱动总线
常见错误: 在CAN总线调试中,忘记安装终端电阻或只在单端安装一个120Ω电阻,是导致通信异常的常见原因。使用万用表测量CAN_H与CAN_L之间的电阻,正常值应为60Ω(两个120Ω并联)。

3.5 物理层参数速查表

参数 典型值 说明
总线长度 ≤40m(1Mbps) 速率越低,总线长度可越长(如250kbps时可达250m)
终端电阻 120Ω(两端各1个) 与双绞线特性阻抗匹配
共模电压范围 -2V ~ +7V CAN收发器可容忍的共模电压范围
最大节点数 110个(标准) 受收发器驱动能力限制,实际建议不超过30个
支线最大长度 ≤1m 支线过长会导致信号反射
实战要点: 在变量施肥控制器设计中,建议将CAN总线速率设置为250kbps,既能满足施肥控制指令的实时性要求,又能保证总线长度覆盖大型农机(如拖拉机+施肥机)的物理距离。总线两端务必安装120Ω终端电阻,且使用屏蔽双绞线以增强抗干扰能力。