设备接收到ECU响应后到发送下一帧命令的时间P4,通常为20ms~26ms ? 常用命令字:
系统进入:81H 系统退出:82H 链路保持:3EH 读故障码:18H 清除故障码:14H 读版本信息:1AH 读数据流:21H
2. ISO-9141-2协议
ISO-9141-2协议是最常用的通信协议之一,也是属于OBD II标准协议的一种。下面从物理层特性、系统进入、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。
? 物理层特性:空闲电平通常为12V;数据位格式为1+8+1,没有校验位;使用的波特
率通常为10416BPS和9600BPS两种。
? 系统进入初始化:ISO协议采用地址码进入方式,先使用5BPS发送地址码,ECU响
应55H,KW1,KW2,设备对KW2取反发回给ECU,ECU对地址码取反发回给设备,完成系统初始化交互。其中55H这个字节用来规定后面的通信波特率。参见下图:
Tool————> <— <— <— —> <— ECU
ADD 55H Kw1 Kw2 /Kw2 /ADD T1 |<->| T2 |<->|T3|<->|T4|<->| T5 |<->| T6 |<->| T7 图 2-2-1 其中: T1 ≥ 300 ms
60 ms ≤ T2≤ 300 ms 5 ms ≤ T3 ≤20 ms 0 ms ≤ T4 ≤ 20 ms 25 ms ≤ T5 ≤ 50 ms 25 ms ≤ T6 ≤ 50 ms 55 ms ≤ T7 ≤ 5000 ms
? 帧结构:帧头(3个字节)+数据(最大为7个字节)+校验(通常为校验和)。数据
帧有两种:命令帧和响应帧。命令帧由Tools发出,响应帧是ECU对命令帧的响应。帧头结构如下图:
帧头字节1 帧头字节2 帧头字节3 源地址 F1H 28H Priority/Type 目标地址 6AH 6BH Request(Tools->ECU) 68H Response(ECU->Tools) 48H
图 2-2-2
数据区包含传送的数据。对于命令帧,DATA区是命令字节及命令参数;对于响应帧,DATA区是命令响应及响应的数据。
校验是校验字节,为前面字节的累加和,包括帧头和数据区。
? 命令交互:命令交互通常情况下为1对1,但也存在1对多或者多对1的情况。下面
是一组命令交互举例:(注意:不是简单地交换目标地址和源地址) Tools: 68H 6AH F1H BEH 81H
ECU: 48H 6BH 28H FEH 31H 32H 33H 40H 42H 43H 34H 蓝色版本信息 在命令中,目标地址是固定的;ECU响应设备的命令字在设备命令字的基础上+0x40。 ? 交互时间参数:包括4个时间参数,如下:
设备发送命令字节间的时间间隔P1,通常为5ms-20ms,取6ms; ECU返回命令字节间的时间间隔P2,通常为0ms
设备发送完一帧命令后等待ECU响应的时间P3,为25ms-50ms,一般取30ms;
设备接收到ECU响应后到发送下一帧命令的时间P4,通常为55ms-5000ms,一般取60ms。
? 常用命令字:
系统退出:20H 读故障码:03H 清除故障码:14H 读版本信息:BEH 读数据流:B1H 3. PWM协议
SAEJ1850 PWM协议也是OBD II标准中的一种,通常应用在FORD车系汽车中,已知的还有JAGUAR,MAZDA。PWM英文全称是Pulse Width Modulation,即脉宽调制。下面从物理层特性、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。
? 物理层特性:波特率为41.7kbps;线路物理特性:双线,双向,半双工(差分信号)。
通信电平通常为12V。数据位描述,位1见图2-3-1,位0见图2-3-2:
图2-3-1
图2-3-2
时间参数定义如下: TP1:常规为8us,取值范围,在发送命令中7<=TP1<=9,在接收命令时,6<=TP1<=11 TP2:常规为16us,取值范围,在发送命令中15<=TP1<=17,在接收命令时,14<=TP1<=19
TP3(一个位的时间长度):常规为24us,取值范围,在发送命令中23<=TP1<=25.5,在接收命令时,22<=TP1<=27
图2-3-3是MAZDA原厂设备IDS系统进入命令的一部分波形
图2-3-3
? 帧结构:命令头(3个字节)+ 数据区(命令) + CRC校验。一帧命令最长为12个字
节。
在命令头中,包括以下几个部分的内容:格式字节(C4H)+目标地址+源地址。 请参见图2-3-4和图2-3-5
图2-3-4
图2-3-5
TP4:SOF(帧起始标志)时间,常规为48us,取值范围,发送时47<=TP4<=51,接收时46<=TP4<=63
TP5:EOF(帧结束标志)时间,常规为72us,取值范围,发送时70<=TP5<=76.5,接收时TP5》=70
命令体的内容中:命令字+命令内容。命令内容可以没有。 举例如下:
C4H 10H F5H 13H C7H 第一个字节C4H为格式
第二个字节10H为ECU目标地址 第三个字节F5H为Tools源地址
第四个字节(PID,功能号)13H为命令字,表示系统读码 最后一个字节04H为前面4个字节的校验和
? 命令交互:命令交互通常情况下为1对1,但也存在1对多的情况。下面是一组命令
交互举例: Tools: C4H 10H F5H 22H 11H 00H 3BH
Ecu: C4H F5H 10H 62H 11H 00H 09H FFH 00H 00H 6AH 在交互中,因为发送命令的对象不一样,所以目标地址和源地址是进行了互换;同时,ECU响应设备的命令字在设备命令字的基础上+0x40 注:无链路保持。 ? 常用命令字:
读故障码:13H 清除故障码:14H 读数据流:22H 读版本信息:1AH 4. VPW协议
SAE J1850 VPW协议也是OBD II标准中的一种,通常应用于GM车系中。VPW英文全称是Variable Pulse Width Modulated,即可变脉宽调制。下面从物理层特性、电平接口、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。 ? 物理层特性:
采用10.4KB/S的波特率;通讯电平通常为7.5V;每个字节采用8位二进制数形式,没有起始位、停止位和校验位;通讯引脚为J1850 BUS+,既为OBD-2PIN。 ? 电平接口:
协议通讯采用10.4Kbps VPW方式,初始电平为0V,在第1帧数据前有一个163至239
微秒(us)的高电平表示SOF(帧头即数据开始标志),接下来以不同长短的高低电平表示二进制数据0或1,其中:
高电平宽度介于34-96us表示“1”,高电平宽度介于96-163us表示“0”, 低电平宽度介于34-96us表示“0”,低电平宽度介于96-163us表示“1”,
传输时按字节顺序,且每个字节都是高位在前,低位在后的顺序,高低电平相间用于表示传输的数据,字节与字节之间没有间隔,传送完一帧数据之后有一个宽度大于239us的低电平表示EOF(帧尾即帧结束标志)。 ? 帧结构:
GM车型中的帧结构:(通用车型)
Tools: 0x6C + ECU地址 + 设备地址 + Fun_ID + (command information) + CRC ECU: 0x6C + 设备地址 + ECU地址 + Fun_ID + (command information) + CRC OBDII中的帧结构: Tools: 0x68 + 0x6A + ECU地址 + Fun_ID + (command information) + CRC ECU: 0x48 + 0x6B + 设备地址 + Fun_ID + (command information) + CRC
ECU地址为每个系统的标示号,设备地址一般为0xF1或0xF0;而Fun_ID为不同功能的标示号,ECU响应的Fun_ID在tools命令的基础上+0x40;CRC(循环冗余校验)为校验字节。
? 命令交互:命令交互通常情况下为1对1,但也存在1对多或者多对1的情况。下面
是两组命令交互举例:(ECU地址10H,设备地址F1H) GM:
Tools: 6CH 10H F1H 20H 64H 红色为命令字 ECU: 6CH F1H 10H 60H 72H OBDII:
Tools: 68H 6AH F1H 01H 00H 17H
ECU: 48H 6BH 10H 41H 00H BEH 3FH B8H 10H C9H (10H与28H的区别) 在交互中,因为发送命令的对象不一样,所以目标地址和源地址是进行了互换;同时,ECU响应设备的命令字在设备命令字的基础上+0x40 ? 交互时间参数:
设备发出命令后到ECU应答命令的时间间隔为320微秒(us)到100毫秒(ms)。 ECU应答命令后到设备发下一条命令的时间间隔为320微秒(us)到100ms。 如果设备或ECU同时发送多帧命令时,每帧之间的时间间隔为3到5ms。 同一帧命令中的字节与字节之间无时间间隔。 ? 常用命令字:
GM车型中的常用命令字:
系统进入:20H 数据流设置:2CH 数据流读取:2AH 读故障码:19HH 清除故障码:14H 读版本信息:3CH OBD II中常用命令字:
读数据流:01H 读故障码:03H