1. CAN协议及标准规格
CAN 协议经ISO 标准化后有ISO11898 标准和ISO11519-2 标准两种。ISO11898 和ISO11519-2 标准对于数据链路层的定义相同,但物理层不同。
- 关于ISO11898
ISO11898 是通信速度为125kbps-1Mbps的CAN高速通信标准。 - 关于ISO11519
ISO11519 是通信速度为125kbps以下的CAN低速通信标准。
2. CAN协议
2.1 帧的种类
帧类型 | 帧用途 |
---|---|
数据帧 | 用于发送单元向接收单元传送数据的帧 |
遥控帧 | 用于接收单元向具有相同 ID 的发送单元请求数据的帧 |
错误帧 | 用于当检测出错误时向其它单元通知错误的帧 |
过载帧 | 用于接收单元通知其尚未做好接收准备的帧 |
帧间隔 | 用于将数据帧及遥控帧与前面的帧分离开来的帧 |
2.2. 数据帧
帧起始、仲裁段、控制端、数据端、CRC端、ACK端、帧结束
标准帧
扩展帧
显性电平和隐性电平
- 总线上执行逻辑上的线“与”时,显性电平的逻辑值为“0”,隐性电平为“1”。
- “显性”具有“优先”的意味,只要有一个单元输出显性电平,总线上即为显性电平。并且,“隐
性”具有“包容”的意味,只有所有的单元都输出隐性电平,总线上才为隐性电平。(显性电平比 隐性电平更强。)
帧起始
显性电平的逻辑值为“0”,隐性电平为“1”。
仲裁段
- 表示数据的优先级的段。
- 显性(0)优先级高,即ID为00000000000优先级最高
- RTR位(Remote Transmission Request Bit):远程传输请求位,用于区分数据帧和远程帧,显性电平时表示数据帧,隐性电平时表示遥控帧。
- IDE位(Identifier Extension Bit):ID扩展位,用于区分标准格式和扩展格式,显性电平时表示标准格式,隐性电平时表示扩展格式。
- SRR位(Substitute Remote Request Bit):
控制端
控制段由6个位构成,表示数据段的字节数。标准格式和扩展格式的构成有所不同。
- 保留位(r0、r1)
- 数据长度码(DLC):数据的字节数必须为 0~8 字节,但接收方对DLC = 9~15 的情况并不视为错误。