1. CAN协议概述:工业通信的神经脉络
CAN(Controller Area Network)总线协议诞生于1983年德国博世公司,最初是为解决汽车电子系统中大量线束带来的复杂性问题。如今它已成为工业自动化、汽车电子、医疗设备等领域的标配通信协议。与RS-485、I2C等传统总线相比,CAN总线具有三个显著特征:
- 多主架构:所有节点均可主动发起通信,无需中心控制器协调
- 非破坏性仲裁:通过标识符优先级解决总线冲突,高优先级报文不会被低优先级阻塞
- 差分信号传输:采用CAN_H和CAN_L双线差分传输,抗干扰能力极强
提示:在汽车电子中,CAN总线通常以500kbps速率运行,而工业领域常用250kbps或125kbps,这是考虑到工业环境电磁干扰更复杂。
2. CAN协议的核心工作机制
2.1 报文帧结构解析
标准CAN帧(2.0A版)包含以下字段:
| 字段名 | 位数 | 说明 |
|---|---|---|
| SOF | 1 | 帧起始,显性电平(逻辑0) |
| Identifier | 11 | 报文ID,决定优先级(值越小优先级越高) |
| RTR | 1 | 远程传输请求位,数据帧为显性,远程帧为隐性 |
| Control | 6 | 包含IDE位(标准帧显性)和DLC(数据长度码,0-8字节) |
| Data Field | 0-64 | 实际传输数据,每字节MSB先传 |
| C |
