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