CAN协议的报文传输主要由下面的4种帧来实现:(今天我就来说说数据帧)
数据帧数据帧:结构上由7段组成,其中根据仲裁段ID码长度的不同,分为标准帧(CAN2.0A)和扩展帧(CAN2.0B)。 数据帧是由:帧起始,仲裁断,控制端,数据段,CRC段,ACK段和帧结束构成。 数据帧 帧起始和帧结束帧起始:由单个显性位组成,总线空闲时,发送节点发送帧起始,其他接收节点同步于该帧起始位。 帧结束:由7个连续的隐形位组成。 结构图 仲裁段CAN-bus是如何解决多个节点同时发送数据,即总线竞争的问题?该问题由仲裁段给出答案。 仲裁段 仲裁机制 网络上有3个节点都是1(隐性)的时候,总线相与为1(隐性),只要总线上的节点有0,总线就表现成0(显性)。最终的结果就是节点ID越小,优先级越高。 控制段控制段共6位,
控制段 数据段一个数据帧传输的数据量为0~8个字节,这种短帧结构使得CAN-bus实时性很高,非常适合汽车和工控应用场合 数据量小,发送和接收时间短,实时性高,被干扰的概率小,抗干扰能力强。 数据段 CRC段CAN-bus使用CRC校验进行数据检错,CRC校验值存放于CRC段。 CRC校验段由15位CRC值和1位CRC界定符构成 CRC段 ACK段当一个接收节点接收的帧起始到CRC段之间的内容没发生错误时,它将在ACK段发送一个显性电平 |
|