基本概念
CAN协议是一种两线半双工高速串行网络技术,用于小半径区域不同设备之间的通信,如汽车。
CAN协议是基于消息优先级的载波侦听多路访问冲突检测仲裁,冲突检测通过根据消息的指定优先级选择消息来确保避免冲突。
CAN由125kbps到1Mbps速率,并提供2048个不同的消息标识符,CAN协议符合ISO-11898标准并使用7层开放系统互联模型。
CAN的11898分层架构由三层组成
- 应用层:与操作系统或CAN设备的应用程序交互
- 数据链路层:发送、接收、和验证数据方面将实际数据连接到协议。
- 物理层:代表实际硬件
帧格式
一个标准通信的CAN网络可以配置不同帧格式,如下:
1、标准或基本帧格式或CAN 2.0A
2、扩展帧格式或CAN 2.0B
两种帧格式在于位长度,基本帧11bit位长度标识符,扩展帧支持29bit标识符。IDE位不同于CAN扩展帧格式和CAN基本帧格式,其中IDE在11位情况下作为显性传输,在29位帧情况下作为隐形传输。一些支持扩展帧的CAN控制器可以发送或接收基本帧格式。
- SOF——帧开始:消息从这里开始
- Identifier——标识符:决定消息优先级,二进制越低,优先级越高
- SRR——标识符:固定数值,SRR位永远置1,对它的解释 一般是‘代替标准帧中的 RTR 远程请求位,无实际意义’。
- RTR——远程传输请求:需要来自另一个节点信息时,它是显性的,每个节点都收到请求,但只有标识符与消息的标识符匹配的节点才是所需节点。每个节点也收到响应。
- IDE——单一识别扩展:如果它是显性,则正在传