1131 字
6 分钟
CAN 总线物理层调试基础知识

1. 引言#

控制器局域网络(CAN, Controller Area Network)凭借其卓越的稳健性和多主架构,已成为汽车及工业自动化领域的标准通信协议。然而,CAN 总线的物理层设计往往是初学者最容易出错的地方——阻抗匹配不当、位时间(Bit-time)配置错误或共模干扰,都可能导致通信完全中断。本文将从工程实战角度出发,分享一套标准化的 CAN 物理层调试流程。


2. 调试工具箱#

工欲善其事,必先利其器。调试 CAN 总线需要以下“三剑客”:

  • 数字万用表 (DMM):用于静态检查阻抗、导通性及节点供电。
  • 示波器 (Oscilloscope):要求带宽至少 20MHz,支持差分计算或具备差分探头,用于观察眼图及边沿质量。
  • CAN 接口分析仪(可选):如 USB-CAN 卡,用于在物理层波形确认后进行协议层数据分析。

3. CAN 物理层电平:核心原理解析#

CAN 总线采用差分信号传输。理解“显性(Dominant)”与“隐性(Recessive)”电平是调试的关键。

  • 显性电平 (Logic 0):收发器内部 MOSFET 导通,CANH 引脚拉高,CANL 引脚拉低。典型的差分电压 。此时总线具有抗干扰能力。
  • 隐性电平 (Logic 1):收发器处于高阻态,总线电位由电阻钳位至 。此时差分电压 (规范要求小于 0.5V)。

4. 静态检查:阻抗与连接(断电操作)#

在上电前,必须进行静态测量:

  1. 终端匹配检查
  • 测量方法:使用万用表测量总线两端的 CANH 与 CANL 之间的电阻。
  • 标准值:CAN 总线要求两端各接一个 120Ω 电阻。理想阻抗应为 。
  • 典型偏差:若实测为 ,说明漏接了一个终端电阻;若实测远小于 ,则可能存在短路或节点内部集成了冗余电阻。
  1. 导通性检查:确认 CANH 对 CANL、以及两者对地(GND/Shield)没有短路。

5. 动态检查:电源与收发器信号(上电操作)#

确认接线无误后,进行上电检查:

  • 供电测量:确保收发器的 VCC 引脚在 5V(或 3.3V)±5% 范围内。注意检查电源纹波,过大的纹波会通过共模方式耦合到总线上。
  • TXD 驱动能力
  • 案例分析:如果示波器显示 TXD 引脚上升沿极慢(例如超过 1µs),会导致位时间采样偏移。
  • 对策:检查 MCU 引脚是否配置为开漏输出?通常需要配置为推挽输出或添加 4.7kΩ 外部上拉电阻

6. 示波器波形调试实战#

将示波器探头分别接在 CANH 和 CANL 上,并使用减法功能(Math: Ch1 - Ch2)观察差分波形。

6.1 观察关键点:#

  • 幅值:显性差分电压是否稳定在 之间?
  • 边沿过冲:如果边沿存在严重的振铃(Ringing),说明电缆阻抗不匹配或分支(Stub)过长。
  • 地偏移:检查模拟地与总线参考地之间是否存在巨大的共模电位差,这可能导致收发器进入保护状态。

6.2 ACK 位——诊断的捷径:#

在 CAN 协议中,发送方在发送完数据后会释放总线,等待接收方回复一个“显性”ACK。

  • 如果你在示波器上看到 TXD 发出了完整帧,但 RXD 始终没有收到正确的响应,或者 ACK 位处电平异常,通常意味着波特率不匹配节点连接异常

7. 常见问题排查清单#

故障现象可能原因解决方法
总线报 Error Counter 错误终端电阻缺失确保总线两端各有 120Ω 电阻
信号反射严重/振铃分支线(Stub)过长缩短节点连接线,或降低波特率
通信偶尔中断共模干扰或地电位差使用屏蔽双绞线,或更换隔离型 CAN 收发器
无法进入显性电平收发器处于 Standby/Silent 模式检查芯片的 STB 或 EN 引脚电平配置

8. 总结#

CAN 物理层的调试应遵循“先静态、后动态、由本地到整体”的原则。80% 的 CAN 通信故障都源于终端电阻不匹配或物理连接质量。通过示波器观察差分波形的质量,是定位隐蔽硬件缺陷(如阻抗不连续、驱动能力不足)的唯一可靠手段。

CAN 总线物理层调试基础知识
https://hw.rscclub.website/posts/tislyt529/
作者
杨月昌
发布于
2019-06-16
许可协议
CC BY-NC-SA 4.0