CAN总线通信协议中数据帧由7个不同的位域组成,分别为帧起始、仲裁域、控制域、数据域、CRC域、应答域和帧结束。标准数据着呢的报文格式如下图所示。
数据帧各个位域定义如下:
帧起始(SOF):就是数据帧和远程帧的开始,它由一个“显性”位构成。CAN的同步规则表明,只有当总线空闲(隐性)时,节点才能开始发送信号,而全部的节点都得同步于第一个开始发送信息的节点的帧起始前沿。
仲裁域:仲裁域由标识符(ID)和远程发送请求位标志(RTR)组成。对于CAN2.0A标准,其仲裁域由长度为11位的标识符和RTR位组成,标识符位有ID28~ID18。对于CAN2.0B标准,仲裁域包括长度为29位的标识符、SRR位、IDE位和RTR位组成,标识符位有ID28~ID18。
控制域:控制域由6位组成,包括2个保留位和4个数据长度码。其中2个保留位必须发送显性位,4位的数据长度码指出数据域的字节数目。
数据域:发送缓冲区的数据按照长度代码指示长度发送,数据域一般由被传送的数据组成,它可为0~8个字节,每个字节8位,首先发送的是最高位。
CRC域:由CRC域(15位)以及1位CRC界定符组成。
应答域:应答域由发送方发出的2个隐性位组成,包括应答间隙(ACK SLOT)和应答界定符(ACK DELIMITER)。在应答域中,所有接收到正确的CRC序列的节点,都会在发送节点的应答间隙上将发送的隐性位改为显性位。应答界定符是应答域的第二个隐性位。因此,应答间隙两边有两个隐性位,即CRC界定符合应答界定符。
帧结束:每一个数据帧或远程帧均有一串7个隐性位组成帧结束域结尾,这样可以使得接收节点能正确地检测一个帧的传输结束。 |