| bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| 字节1 | FF | RTR | x | x | DLC 数据长度 | |||
| 字节2 | 报文识别码 ID.10-ID.3 | |||||||
| 字节3 | ID.2-ID.0 | x | x | x | x | x | ||
| 字节4 | 数据1 | |||||||
| 字节5 | 数据2 | |||||||
| 字节6 | 数据3 | |||||||
| 字节7 | 数据4 | |||||||
| 字节8 | 数据5 | |||||||
| 字节9 | 数据6 | |||||||
| 字节10 | 数据7 | |||||||
| 字节11 | 数据8 | |||||||
字节1 :第7位FF表示帧格式(在标准帧中FF=0,在扩展帧中FF=1);
第6位RTR 表示帧的类型(RTR=0表示为数据帧 RTR=1表示为远程帧);
DLC 表示在数据帧时实际的数据长度
字节2-3 :为报文识别码(过滤ID的高11位)
字节4-11:为数据帧的实际数据,远程帧时无效。
为了十六进制的计算方便,特把11bit的报文ID转换为16bit,即2个16进制字节
ID11b = ((ID16bHighByte*0x0100+ID16bLowByte)>>5)&0x07ff;
例如:
Tools : 08H FCH 00H 03H 19H 02H FFH 00H 00H 00H 00H
ECU : 08H FDH 00H 04H 59H 02H FFH 01H 80H 01H 00H
7E0 = ((0xFC*0x0100+0X00)>>5)&0x07ff;
7E8 = ((0xFD*0x0100+0X00)>>5)&0x07ff;