1 . 寻址模式
每一个接入 CAN/CAN FD 总线的控制器,根据所处网段要求,可使用 标准帧格式(11 位标识符)或扩展帧格式(29 位标识符)进行诊断寻址。
2 . 寻址类型
3. 诊断帧 DLC 定义
4. (单、多)帧传输


无论单帧还是多帧,每一帧的0号字节的高四位用于区别帧类型:
0:SF(单帧)
1:FF(首帧)
2:CF(连续帧)
3:CF(流控帧)
单帧: 单帧意味着这一帧的数据场部分有效字节数<=8,不足的地方多以0xAA等填充;对于单帧,PCI 第一个字节(Byte1)低4位【SF_DL】表示数据长度,表示需要读后面多长的数据(即后续有多 少有效的数据位)。例子:
TBOX:681 Tx d 8 03 28 03 03 00 00 00 00
ECU : 689 Rx d 8 02 68 03 aa aa aa aa aa
首帧:对于 CAN 诊断系统的首帧报文类型用于长度超过 7 字节的数据包,它和一个或多个连 续帧组合使用。PCI 第一个字节(Byte1)的高半字节为 0001b,第一个字节的低半字节和第 二个字节(Byte2)表示数据的长度。 对于 CAN FD 诊断系统的第一帧报文类型,当 CAN_DL≤4095 时,FF_DL 应设置在 63≤ FF_DL≤4095 的范围内,当 CAN_DL>4095 时,FF_DL 应设置在 4095<FF_DL≤0xFFFFFFFF 的 范围内。例子:
TBOX:681 Tx d 8 10 0b 34 00 44 1f ff 80
ECU : 689 Rx d 8 30 00 00 aa aa aa aa aa
连续帧:连续帧出现在第一帧之后,PCI 第一个字节(Byte1)的高半字节为0010b,低半字节表示连续帧序列号 (SN),SN根据以下规则定义: 连续帧的第一帧SN值为1; 每增加一个连续帧,SN值增加1; 流控制帧不影响SN值的计算; 当SN值达到15后,下一个连续帧的SN值为0。例子:
ECU :689 Rx d 8 30 00 00 aa aa aa aa aa
TBOX:681 Tx d 8 21 01 84 ff 1f 49 84 ff
TBOX:681 Tx d 8 22 1f 49 84 ff 1f 49 84
TBOX:681 Tx d 8 23 ff 1f 49 84 ff 1f 49
TBOX:681 Tx d 8 24 84 ff 1f 00 00 00 00
TBOX:681 Tx d 8 25 00 00 00 00 00 00 00
TBOX:681 Tx d 8 26 00 00 00 00 00 49 84
TBOX:681 Tx d 8 27 ff 1f 49 84 ff 1f 00
TBOX:681 Tx d 8 28 00 00 00 49 84 ff 1f
TBOX:781 Tx d 8 29 c9 c1 ff 1f 1b 9f ff
TBOX:781 Tx d 8 2a 1f 25 9f ff 1f 2f 9f
TBOX:781 Tx d 8 2b ff 1f 39 9f ff 1f 43
TBOX:781 Tx d 8 2c 9f ff 1f 4d 9f ff 1f
TBOX:781 Tx d 8 2d 57 9f ff 1f 61 9f ff
TBOX:781 Tx d 8 2e 1f 6b 9f ff 1f 75 9f
TBOX:781 Tx d 8 2f ff 1f 7f 9f ff 1f 89
TBOX:781 Tx d 8 20 9f ff 1f 93 9f ff 1f
TBOX:781 Tx d 8 21 9d 9f ff 1f a7 9f ff
TBOX:781 Tx d 8 22 1f b1 9f ff 1f bb 9f
ECU : 689 Rx d 8 30 00 00 aa aa aa aa aa


