3. CAN通信物理层:差分信号原理、CAN_H与CAN_L电平标准、终端电阻匹配、总线拓扑

物理层是CAN通信的基石,约80%的现场总线故障源于物理层问题。本章深入剖析差分信号原理、电平标准、终端电阻匹配及总线拓扑结构,帮助你在XMC系列项目中快速定位硬件故障。

3.1 差分信号原理

CAN总线采用差分信号传输,通过两条线(CAN_H和CAN_L)的电压差来表示逻辑状态。这种设计具有极强的共模抑制能力,能够抵抗工业现场的电磁干扰。

  • 显性电平(Dominant):CAN_H > CAN_L,电压差约为2V,对应逻辑“0”。
  • 隐性电平(Recessive):CAN_H ≈ CAN_L,电压差约为0V,对应逻辑“1”。
故障排查要点:使用示波器测量CAN_H与CAN_L之间的差分电压。正常通信时,显性位差分电压应在1.5V~3.0V之间,隐性位应接近0V。若差分电压低于1.2V,节点可能无法正确识别显性位。
CAN总线差分信号波形示意图 隐性(Recessive) 显性(Dominant) 隐性(Recessive) 显性 CAN_H CAN_L Vdiff ≈ 2V Vdiff ≈ 0V Vdiff ≈ 0V 时间 t

3.2 CAN_H与CAN_L电平标准

根据ISO 11898-2标准,高速CAN(最高1Mbps)的物理电平定义如下:

参数 隐性电平(逻辑1) 显性电平(逻辑0)
CAN_H电压 2.5V(典型值) 3.5V(典型值)
CAN_L电压 2.5V(典型值) 1.5V(典型值)
差分电压(Vdiff) 0V(-0.5V ~ +0.05V) 2.0V(1.5V ~ 3.0V)
共模电压 2.5V 2.5V
XMC调试技巧:使用XMC的CAN模块时,可通过BRU(Bit Rate Unit)配置采样点位置。建议将采样点设置在75%~85%位时间处,以避开信号边沿抖动区域,提高抗干扰能力。

3.3 终端电阻匹配

终端电阻用于消除信号在总线末端的反射,保证信号完整性。标准CAN总线要求在最远端的两个节点各接入一个120Ω电阻。

  • 标准值:120Ω(±1%),对应特性阻抗约120Ω的双绞线。
  • 并联等效:两个120Ω电阻并联后为60Ω,这是总线正常工作的直流负载。
  • 测量方法:在总线断电状态下,测量CAN_H与CAN_L之间的电阻。正常值应为60Ω(两端都有终端电阻)或120Ω(仅一端有)。
常见故障:
  • 终端电阻缺失 → 信号反射导致位错误(Bit Error),总线长度受限。
  • 终端电阻过多(超过2个) → 总线负载过重,差分电压下降,通信距离缩短。
  • 终端电阻阻值偏差 > 5% → 阻抗不匹配,信号振铃。

3.4 总线拓扑结构

CAN总线采用直线型(总线型)拓扑,所有节点通过分支(stub)连接到主干线。分支长度受通信速率严格限制。

通信速率 最大总线长度 最大分支长度 推荐分支长度
1 Mbps 40 m 0.3 m < 0.1 m
500 kbps 100 m 1.0 m < 0.3 m
250 kbps 250 m 3.0 m < 1.0 m
125 kbps 500 m 6.0 m < 2.0 m
50 kbps 1000 m 15.0 m < 5.0 m
CAN总线直线型拓扑与终端电阻配置 R1 120Ω R2 120Ω 节点1 节点2 节点3 节点4 分支长度(Stub) 总线主干长度(受速率限制) 拓扑规则 终端电阻必须位于总线最远端两个节点 分支长度应尽可能短,高速率下建议 < 0.1m

3.5 XMC物理层故障排查清单

在XMC系列项目中,遇到CAN通信异常时,按以下顺序排查物理层:

  1. 测量终端电阻:断电状态下,在总线任意位置测量CAN_H与CAN_L之间电阻,应为60Ω(两端有终端电阻)。
  2. 检查共模电压:上电后,测量CAN_H和CAN_L对GND的直流电压。隐性时均应为2.5V左右,偏差超过±0.5V说明收发器或电源异常。
  3. 观察差分波形:使用示波器测量CAN_H与CAN_L的差分波形,确认显性位差分电压 > 1.5V。
  4. 验证XMC CAN配置:检查波特率、采样点、位时序寄存器(BRP、TSEG1、TSEG2)是否与总线匹配。
  5. 检查接地:所有节点的GND必须共地,共模电压差不应超过2V。
XMC实战案例:某产线使用XMC4500控制多个驱动器,CAN通信间歇性中断。排查发现终端电阻为120Ω(仅一端有),总线末端信号反射严重。在远端节点补装120Ω电阻后,通信恢复正常,错误帧计数归零。