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