一. 简介
通过 CAN 总线传输数据是需要按照一定协议进行的。CAN 协议提供了 5 种帧格式来传输数据:数据帧、遥控帧、错误帧、过载帧和帧间隔。
前面一篇文章学习了其中的一种数据帧传输格式:数据帧。文章如下:
本文来学习 遥控帧与错误帧。
二. CAN总线协议:遥控帧与错误帧
1. 遥控帧
接收单元向发送单元请求数据的时候就用遥控帧,遥控帧由
6
个段组成:
① 帧起始,表示数据帧开始的段。
② 仲裁段,表示该帧优先级的段。
③ 控制段,表示数据的字节数及保留位的段。
④
CRC
段,检查帧的传输错误的段。
⑤
ACK
段,表示确认正常接收的段。
⑥ 帧结束,表示数据帧结束的段。
遥控帧结构如下图
所示:
可以看出,遥控帧结构基本和数据帧一样,最主要的区别就是遥控帧没有数据段。
遥控帧的
RTR
位为隐性的,数据帧的
RTR
位为显性,因此,可以通过
RTR
位来区分遥控
帧和没有数据的数据帧。遥控帧没有数据,因此,
DLC
表示的是所请求的数据帧数据长度,遥控
帧的其他段参考数据帧的描述即可。
2. 错误帧
当接收或发送消息出错的时候使用错误帧来通知,错误帧由错误标志和错误界定符两部分组成,错误帧结构如下图
所示:
错误标志有主动错误标志和被动错误标志两种,主动错误标志是
6
个显性位,被动错误标志是
6
个隐性位,错误界定符由
8
个隐性位组成。