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