汽车CAN总线的信息包括两部分:信息部分和数据部分。
头两个字节为信息部分,其前是一位为标识符,标识符中的前8位用作接收判断,应包涵本信息包的目的地址。
然后是以为RTR位(应设置为0),最后是4位的DLC。DLC是数据长度位,即所发数据的实际长度,单位是字节。
其余8个字节是数据部分,存有实际要发的数据可以参考下面这个图:
在进行数据传送时,发出报文的单元称为该报文的发送器。该单元在总线空闲或丢失仲裁前恒为发送器,如果一个单元补是报文发送器,并且总线不处于空闲状态,则该单元为接收器。
对于报文发送器和接收器,报文的实际有效时刻是不同的,对与发送器而言,如果直到帧结束尾一直未出错,则对于发送器报文有效。如果报文受损,将允许按照优先权顺序自动发送。为了能同其他报文进行CAN总线访问竞争,总线一旦空闲,重发送立即开始。对于接收器而言,如果直到帧结束的最后一位一直未出错,则对于接收器报文有效。
构成一帧的帧起始、仲裁场、控制场、数据场和CRC序列均借助位填充规则进行编码。当发送器在发送的位流中检测到5位连续的相同数值时,将自动地在实际发送的位流中插入一个补码位。数据帧和远程帧的其余位场采用固定格式,不进行填充。出错帧和超载帧同样是固定格式,也不进行位填充。
数据帧携带数据由发送器至接收器,远程帧通过CAN总线单元发送,以情丢发送具有相同标识符的数据帧,出错帧由检测出CAN总线错误的任何单元发送,超载帧用于提供当前的和后续的数据帧的附加延迟,数据帧和远程帧借助帧间空间与当前帧分开。