帧类型
在 CAN 总线中,有四种不同的帧类型[4][5]:
◇数据帧(Data Frame) 数据帧带有应用数据。我们将在下面对其进行详细的
介绍。
◇远程帧(Remote Frame) 通过发送远程帧可以向网络请求数据,启动其他资
源节点传送他们各自的数据。远程帧包含
6 个不同的位域:帧起始、仲裁域、控制域 、
CRC 域、应答域、帧结尾。仲裁域中的 RTR 位的隐极性表示为远程帧。
◇错误帧(Error Frame) 错误帧能够报告每个节点的出错,由两个不同的域组
成,第一个域是不同站提供的错误标志的叠加,第二个域是错误界定符。
◇过载帧(Overload Frame) 如果节点的接收尚未准备好就会传送过载帧,由
两个不同的域组成,第一个域是过载标志,第二个域是过载界定符。
数据帧结构
数据帧由以下七个不同的位域(Bit Field)组成:帧起始、仲裁域、
控制域、数据域、
CRC 域、应答域、帧结尾。其标准帧结构如下表所示:
(1)帧起始:标志帧的开始,它由单个显性位构成,在总线空闲时发送,在总线
上产生同步作用;
(2)仲裁域:由 11 位标识符(ID10~ID0)和远程发送请求位(RTR)组成,RTR 位为
显性表示该帧为数据帧,隐性表示该帧为远程帧;标识符由高至低按次序发送,且
前
7 位 (ID10~ID4)不能全为显性位。标识符 ID 用来描述数据的含义而不用于通信寻
址,
CAN 总线的帧是没有寻址功能的。标识符还用于决定报文的优先权,ID 值越低
优先权越高,在竞争总线时,优先权高的报文优先发送,优先权低报文退出总线竞
争。
CAN 总线竞争的算法效率很高,是一种非破坏性竞争。
(3)控制域:为数据长度码;(DLC3~ DLC0),表示数据域中数据的字节数,不得
超过
8;
(4)数据域:由被发送数据组成,数目与控制域中设定的字节数相等,第一个字
节的最高位首先被发送。其长度在标准帧中不超过
8 个字节;
(5)CRC 域:包括 CRC(循环冗余码校验)序列(15 位)和 CRC 界定符(1 个隐性位),
用于帧校验;
(6)应答域:由应答间隙和应答界定符组成,共两位;发送站发送两个隐性位,
接收站在应答间隙中发送显性位。应答界定符必须是隐性位。
(7)帧结束:由 7 位隐性位组成。
4.自订的 CAN 高层协议