起源
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 和数据内容
常见故障与解决方案:
无数据传输 → 检查终端电阻、电源供电
数据错误 → 检查波特率是否匹配
总线挂起 → 检查是否有某个节点持续发送显性信号(如设备短路)
评论区