起源
CAN(Controller Area Network)总线由德国博世(Bosch)公司于1980年代开发,最初用于汽车电子系统,以减少车辆内部的复杂布线,提高数据传输效率和可靠性。1993年,CAN 总线被国际标准化组织(ISO)采纳,成为 ISO 11898 标准。目前,CAN 已广泛应用于汽车、工业自动化、医疗设备、航天等领域。
信号传输模式
CAN 总线采用差分信号传输,通过一对双绞线(CAN_H 和 CAN_L)来传输数据,提高抗干扰能力和可靠性。
-
数据帧结构
标准 CAN(11-bit 标识符)和扩展 CAN(29-bit 标识符)帧格式包括:- 起始位:表示帧的开始
- 标识符(ID):表示消息的优先级
- 控制字段:标明数据长度
- 数据字段:包含 0-8 字节数据
- CRC 校验:保证数据完整性
- 确认位:接收节点确认数据有效性
- 结束位:标志帧结束
-
多主竞争仲裁机制
- CAN 采用 非破坏性 CSMA/CD-AM 机制(Carrier Sense Multiple Access with Collision Detection and Arbitration on Message Priority)。
- 低 ID(高优先级)数据可在总线竞争中获胜,确保重要数据先被传输。
电器参数
-
电压等级:
- CAN_H 典型电压范围:2.5V - 3.5V(显性 3.5V)
- CAN_L 典型电压范围:1.5V - 2.5V(显性 1.5V)
- 隐性状态:CAN_H 和 CAN_L 都为 2.5V
-
传输速率:
- 典型速率:10kbps ~ 1Mbps(标准 CAN)
- CAN FD(Flexible Data-rate):支持 5Mbps 以上传输速率
-
终端电阻:
- 典型值 120Ω,保证总线阻抗匹配,减少反射信号
-
最大通信距离(标准 CAN):
- 1Mbps:≤40m
- 125kbps:≤500m
- 10kbps:≤5km
应用设计
CAN 设备连接
- 采用双绞线传输信号,建议用屏蔽双绞线减少干扰
- 确保每端有120Ω 终端电阻,总线两端都需要终端电阻匹配
典型应用
- 汽车电子:发动机控制、ABS 刹车系统、空调控制等
- 工业自动化:PLC 控制、机器人通讯
- 医疗设备:数据采集、监护仪连接
- 楼宇自动化:智能照明、安防系统
问题排查方式
-
物理层检查:
- 测量 CAN_H 和 CAN_L 对地电压是否正常(典型 2.5V)
- 终端电阻是否匹配(两端各 120Ω,总线整体 60Ω)
-
通信协议排查:
- 使用示波器查看波形,确认仲裁和数据完整性
- 通过CAN 分析仪读取数据帧,确认 ID 和数据内容
-
常见故障与解决方案:
- 无数据传输 → 检查终端电阻、电源供电
- 数据错误 → 检查波特率是否匹配
- 总线挂起 → 检查是否有某个节点持续发送显性信号(如设备短路)