1、CAN2.0B扩展帧格式
bit
7
6
5
4
3
2
1
0
字节1
FF
RTR
x
x
DLC 数据长度
字节2
报文识别码 ID.28-ID.21
字节3
ID.20-ID.13
字节4
ID.12-ID.5
字节5
ID.4-ID.0
x
x
x
字节6
数据1
字节7
数据2
字节8
数据3
字节9
数据4
字节10
数据5
字节11
数据6
2、
字节12
数据7
字节13
数据8
字节1:为帧信息
第7位FF 表示帧格式(在标准帧中FF=0,在扩展帧中FF=1);
第6位RTR 表示 帧的类型(RTR=0表示为数据帧,RTR=1表示为远程帧);
DLC表示在数据帧时实际的数据长度
字节2-5 为报文识别码(过滤ID的高29位)
字节6-13 为数据帧的实际数据,远程帧时无效
为了十六进制的计算方便,特把29bit的报文ID转换为32bit,即4个16进制字节
ID29b =((ID32b_1Byte
3、0x01000000+ID32b_2Byte*0x010000+ID32b_3Byte*0x0100+ID32b_4Byte)>>3)&0x1fffffff;
例如:
Tools : 88H C6H D0H 8FH 88H 03H 19H 02H 08H 00H 00H 00H 00H CS
ECU : 88H C6H D7H 88H 88H 10H 14H 59H 02H 0CH C1H 55H 01H CS
ECU : 88H C6H D7H 88H 88H 21H 08H 00H 36H 01H 08H 00H 45H CS
ECU : 88H C6H D7H 88H 88H 22H 01H 08H 01H 16H 01H 08H 00H CS
18DA11F1 =((0XC6*0x01000000+0XD0*0x010000+0X8F*0x0100+0X88)>>3)&0x1fffffff;
18DAF111 =((0XC6*0x01000000+0XD7*0x010000+0X88*0x0100+0X88)>>3)&0x1fffffff;