一、物理层
A)工作电平:
ECU 工作电平:12V
TOOLS工作电平:12V
B)通讯电平:1.5~2.5V
C)通讯波特率:
Can Network Baud Rate: 500KBps
D)通信脚:PIN16—6#,14#,全双工通信,相对设备6#发送,14#接收
E)初始化过程:
Diagnostic CAN 不需要初始化过程,所有功能任何时候都是处于响应状态。
二、链路层
1、帧格式:
A)单帧
07 DF 08 02 01 00 99 99 99 99 99 CHK
BYTE0,BYTE1是系统地址
BYTE2是固定值,表示从BYTE3到BYTE10数据的长度,同时也决定整个帧长是12个BYTE
BYTE3在单帧中是从表示它以后数据部分有效数据的长度,无效的数据位用”99”填补。
BYTE4功能的模式号
BYTE5—BYTE10 系统要传送的数据信息
BYTE11是校验位,对前面11个字节的异或校验(CRC)
第二种格式: 08 07 DF 02 01 00 99 99 99 99 99 CHK
2、帧类型:
A)单帧(Single Frame)
B)第一帧(First Frame)
C)流控制帧(Flow Frame)
D)连续帧(Consecutive Frame)
3、命令交互:
A)发1帧回1帧:
Tools: 08H FCH 00H 03H 19H 02H FFH 00H 00H 00H 00H(单帧)
ECU : 08H FDH 00H 10H 0FH 59H 02H FFH 01H 80H 00H(单帧)
其中报文识别码 FC 00(我们常说的系统过滤 ID)是不准确的,应该右移 5 位,即 0x7E0 才是真正的报文识别码。通常情况下,标准 CAN 协议的响应帧报文识别码就是请求帧的报文识别码加上 8,即0x7E8,左移 5 位后就是我们所看到的 FD 00。
B) 发1帧回多帧 :
Tools: 08H FCH 00H 03H 19H 02H FFH 00H 00H 00H 00H(单帧)
ECU : 08H FDH 00H 10H 0FH 59H 02H FFH 01H 80H 10H(第一帧)
Tools: 08H FCH 00H 30H 00H 00H 00H 00H 00H 00H 00H(流控制帧)
ECU : 08H FDH 00H 21H FFH 01H 79H F1H E3H 01H 62H (连续帧)
ECU : 08H FDH 00H 22H F1H FFH 00H 00H 00H 00H 00H(连续帧)
发送一条帧后,响应帧的第四个字节最高位为1,则表示回多帧 ; 响应帧的有效数据长度为 0x100F&0x0FFF=0x0F,表示有 15 个有效数据的回复帧。蓝色表示有效数据。
C)发多帧回1帧:
Tools: 08H FCH 00H 10H 09H 01H 02H 03H 04H 05H 06H(第一帧)
ECU : 08H FDH 00H 30H 00H 00H 00H 00H 00H 00H 00H(流控制帧)
Tools: 08H FCH 00H 21H 07H 08H 09H 00H 00H 00H 00H(连续帧)
ECU : 08H FDH 00H 04H 59H 02H 2FH 01H 00H 00H 00H(单帧)
发送帧的第四个字节最高位为1,表示发多帧;发送的命令数据长度有第 4,第 5 个字节一起决定,在这里数据长度为 9。蓝色表示有效数据。
--------------------- 作者:Clock_Wu 来源:优快云 原文:https://blog.youkuaiyun.com/qq_41924435/article/details/81025906?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!