标准格式数据帧:
1.帧起始:占1位,显性0,张开总线,告知设备要进行数据传输(由于正常状态下CAN总线为隐性1)
2.报文ID(通常为11位):表示后面数据的功能,用于区分报文信息,还用于区分优先级
3.RTR(远程请求标志位):占1位,用于区分数据帧还是遥控帧(数据帧为显性0,遥控帧为隐性1)
注:报文ID+RTR为仲裁段(类似于IIC里的 7位从机地址加1位读写位)
4.IDE(ID扩展标志位),占1位,用于区分式标准格式还是扩展格式,标准格式为显性0,扩展格式为隐性1
5.r0(保留位),设计者的远瞻
6.DLC(表示数据段的长度),4位,如数据段为1个字节。那么DLC位0001。8个字节就是1000
7.数据段0-64位,最大为8字节数据
8.CRC校验位(15位)
9.CRC界定符:1位,必须是显性电平1。
10.ACK槽:发送方发送隐性1(在CRC界定符中释放),释放总线,接收方发送显性0,拉开总线,说明接收方接收到了数据。
11.ACK界定符:接受方不能一直拉着总线,在ANK界定符这一帧,接收方发送隐性1,释放总线
12.EOF(帧结束)占7位,全为隐性1
扩展格式多一个SRR占1位,必须为隐性1,为了兼容标准格式与仲裁(没有实际意义),