ISO9141-2协议解析


原文链接: ISO9141-2协议解析

ISO-9141-2协议是最常用的通信协议之一,也是属于OBD II标准协议的一种。下面从物理层特性、系统进入、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。
Ø 物理层特性:空闲电平通常为12V;数据位格式为1+8+1,没有校验位;使用的波特率通常为10416BPS和9600BPS两种。
Ø 系统进入初始化:ISO协议采用地址码进入方式,先使用5BPS发送地址码,ECU响应55H,KW1,KW2,设备对KW2取反发回给ECU,ECU对地址码取反发回给设备,完成系统初始化交互。其中55H这个字节用来规定后面的通信波特率。参见下图:

   Tool————>    <—   <—   <—      —>     <—   ECU

             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
Priority/Type   目标地址    源地址

Request(Tools->ECU) 68H 6AH F1H
Response(ECU->Tools) 48H 6BH 28H

                 图 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

`