3. CAN总线硬件:收发器、控制器与终端电阻
CAN总线硬件层是故障定位的物理基础。收发器、控制器与终端电阻三者协同工作,任何一环异常都会导致通信失败。本节从器件选型、功能对比到故障特征,逐一拆解。
3.1 CAN收发器:TJA1050 与 SN65HVD230
收发器负责将CAN控制器的逻辑电平转换为差分信号(CAN_H / CAN_L),并提供总线驱动与保护。主流收发器对比如下:
| 参数 | TJA1050(NXP) | SN65HVD230(TI) |
|---|---|---|
| 工作电压 | 4.75V ~ 5.25V | 3.0V ~ 3.6V |
| 速率 | 最高 1 Mbps | 最高 1 Mbps |
| 待机模式 | 支持(STB引脚) | 支持(S引脚) |
| 总线引脚保护 | ±8 kV ESD(HBM) | ±16 kV ESD(HBM) |
| 共模范围 | -2V ~ +7V | -7V ~ +12V |
| 典型应用 | 5V系统(传统汽车ECU) | 3.3V系统(工业/嵌入式) |
故障排查提示: 若总线隐性电平(CAN_H ≈ 2.5V,CAN_L ≈ 2.5V)或显性电平(CAN_H ≈ 3.5V,CAN_L ≈ 1.5V)偏离超过 ±0.3V,优先检查收发器供电与参考地。
3.2 CAN控制器:SJA1000 与 MCP2515
控制器实现CAN协议的数据链路层:帧封装、仲裁、错误检测与重发。独立控制器常用于MCU无内置CAN外设的场景。
- SJA1000(NXP): 支持BasicCAN与PeliCAN模式,5V供电,需外部晶振(16MHz典型值),通过地址/数据总线与MCU通信。
- MCP2515(Microchip): 支持CAN 2.0B,3.3V/5V兼容,SPI接口(最高10 MHz),内置屏蔽与过滤器,适合低引脚数MCU。
| 特性 | SJA1000 | MCP2515 |
|---|---|---|
| 接口类型 | 并行(8位) | SPI(串行) |
| 供电电压 | 5V | 2.7V ~ 5.5V |
| 接收缓冲器 | 64字节FIFO | 2个接收缓冲器 + 3个发送缓冲器 |
| 错误中断 | 总线错误、仲裁丢失、错误被动 | 错误状态、总线活动、帧错误 |
| 典型故障 | 地址冲突、晶振停振 | SPI时序错误、MISO电平异常 |
常见故障点: MCP2515的SPI通信速率过高(超过10 MHz)会导致数据错位;SJA1000的ALE引脚悬空会造成地址锁存错误。测量控制器输出TX引脚与收发器输入TX引脚之间的波形,可快速定位数据链路断点。
3.3 终端电阻:120Ω 的物理意义
CAN总线两端各需一个120Ω终端电阻,用于匹配传输线阻抗、抑制信号反射。电阻缺失或阻值偏差是导致总线波形畸变、位定时错误的首要硬件原因。
- 标准值: 每个终端电阻 120Ω ±1%,总线等效负载约 60Ω。
- 测量方法: 断电状态下,在总线任意节点测量CAN_H与CAN_L之间的直流电阻。正常值约 60Ω(两端电阻并联)。
- 异常判断:
- ≈ 120Ω:仅一端有终端电阻,另一端缺失。
- ≈ 40Ω:存在三个或更多终端电阻并联。
- ≈ 0Ω:CAN_H与CAN_L短路。
- ∞:总线开路或终端电阻全部缺失。
实训要点: 使用万用表电阻档测量总线终端电阻时,必须断开所有节点电源,否则测量结果会被节点内部偏置电阻干扰。
3.4 硬件故障快速定位流程
- 供电检查: 测量收发器VCC引脚电压(TJA1050需5V,SN65HVD230需3.3V),偏差超过±5%即异常。
- 终端电阻测量: 断电测CAN_H与CAN_L间电阻,正常约60Ω。若为120Ω,检查远端终端电阻是否脱落。
- 隐性电平验证: 上电后示波器测CAN_H与CAN_L对地电压,均应为2.5V左右。若偏差>0.3V,检查收发器偏置或总线对电源/地短路。
- 显性电平验证: 发送数据帧时,CAN_H应升至3.5V,CAN_L降至1.5V,差分电压约2V。若差分<1.2V,总线驱动能力不足。
- 控制器输出检查: 示波器测控制器TX引脚,应有清晰方波(逻辑0为0V,逻辑1为VCC)。若无波形,检查晶振与SPI/并行通信。
实训案例: 某CAN网络偶发通信中断,测量总线电阻为120Ω,确认远端节点终端电阻缺失。补装120Ω电阻后,通信恢复正常,波形过冲消失。