0%

诊断指令说明--OBD模块

通讯测试

串口测试车辆通讯问题
SendID:0730;RecvID:0738
33 33 07 38 FF FF 88 88 设置滤波 只接收ID为0738的指令
55 55 07 30 02 10 03 00 00 00 00 00 88 88 发送指令 发送ID为0730
其中: 02 10 03 00 00 00 00 00 为CAN指令,第一位为长度位。
为什么用55指令测试通讯:

55指令中不包含CAN通讯等待的时间参数,不会出现第三版协议因超时时间较短而导致收不到车辆回复。

第三版协议指令说明

发送数据

F0 F0
XX XX// 数据长度
XX //指令类型:
  10: CAN数据(针对ISO15765协议而定)
  13: 设置CAN通信滤波ID
  14: 只发送指定长度(小于等于8)CAN数据
  15:设置CAN通信波特率及标准帧拓展帧
  20 :K线数据
  25: 设置K线初始化波特率及通信波特率
  05: 设置超时时间 CAN通讯短等待回复时间,默认100ms,长等待时间,默认5000ms
XX XX XX XX //本机ID
XX XX XX XX //目标ID
XX n…//数据
FF//结尾

接收数据

0F 0F
XX XX// 数据长度
XX //指令类型:
  10: CAN数据(针对ISO15765协议而定)
  13: 设置CAN通信滤波ID
  14: 接收到已设置了CAN通信滤波ID的CAN数据
  15:设置CAN通信波特率及标准帧拓展帧
  20: K线数据
  25: 设置K线初始化波特率及通信波特率
  05: 设置通信响应超时时间成功的响应指令
  7F: 收到错误回复,比如超时、数据格式错误等
XX XX XX XX //本机ID
XX XX XX XX //目标ID
XX n…//数据
FF//结尾

示例:
发送:F0 F0 00 0C 10 00 00 07 20 00 00 07 30 10 03 FF
接收:0F 0F 00 10 10 00 00 07 20 00 00 07 30 50 03 00 32 01 F4 FF

设置指定滤波ID及读取超时时间(0x12)

发送:F0 F0 00 07 12 00 00 07 30 14 FF
接收:若CAN总线上指定滤波ID(00 00 07 20)对应的数据及超时时间(20*10=200ms),则返回:
0F 0F 00 0E 12 00 00 07 30 00 01 02 03 04 05 06 07 FF //(00 00 07 30 目标ID)
否则返回超时提示;

设置滤波ID(0x13)

发送:F0 F0 00 0A 13 00 00 07 20 FF FF FF FF FF
接收:若CAN总线上有设置的ID对应的数据,则返回:
0F 0F 00 0E 14 00 00 07 30 50 03 00 32 01 F4 FF//(00 00 07 30 目标ID)
否则无返回;

只发送单帧数据(0x14)

发送:F0 F0 00 0E 14 00 00 07 20 00 00 00 00 12 34 56 78 FF
发送的目标ID: 00 00 07 20 发送的CAN数据: 12 34 56 78

设置波特率及标准帧拓展帧(0x15)

第6字节及第7字节表示设置波特率大小,单位kbps
第8字节及第9字节表示设置标准帧或拓展帧:00 00 标准帧 00 01 拓展帧
接收数据01代表设置成功,无返回或者返回其他字节数目则设置失败,请注意检测数据格式。
比如
发送:F0 F0 00 06 15 01 F4 00 01 FF//设置波特率500K,拓展帧
接收:0F 0F 00 03 15 01 FF//设置成功

设置波特率及标准帧拓展帧,无返回确认指令(针对0x15)(0x16)

第6字节及第7字节表示设置波特率大小,单位kbps
第8字节及第9字节表示设置标准帧或拓展帧:00 00 标准帧 00 01 拓展帧
设置成功与否,都不返回数据
发送:F0 F0 00 06 16 01 F4 00 01 FF//设置波特率500K,拓展帧
接收:无

K-Line设置初始波特率及正常通讯波特率(0x25)

第6字节及第7字节表示设置初始波特率(单位:bps),默认200bps
第8字节及第9字节表示设置正常通讯波特率(单位:bps),默认10400bps
接收数据01代表设置成功,无返回或者返回其他字节数目则设置失败,请注意检测数据格式。

发送:F0 F0 00 06 25 00 C8 28 A0 FF//设置波初始波特率200bps及正常通讯波特率10400bps
接收:0F 0F 00 03 25 01 FF//设置成功

K线指令(0x20)

发送:F0 F0 00 08 20 80 28 F1 01 81 1b FF
接收:0F 0F 00 0A 20 80 F1 28 03 C1 6B 8F 57 FF

通讯错误的回复指令(0x7F)

0F 0F 00 03 7F XX FF

故障码说明

XX故障码(Hex) 说明
00 等待接收或延时发送
02 发送单帧100ms超时未收到CAN数据
03 5000ms超时提示
04 接收多帧时,未收到数据100ms超时提示
05 读取指定ID数据,超时提示
11 接收多帧时未收到流控帧提示
12 接收到的CAN数据长度大于7错误提示
13 接收到未符合要求的数据类型
21 发送Kline数据500ms超时未收到CAN数据
F2 接收到PC数据不是以0xFF结尾
F1 CAN数据超过4096个字节
2A K线初始化后未接收到”格式”字节
2B K线初始化后自反馈是未接收到指定长度K线数据
2C K线未接收到0x80字节