stm32解析OBD信号-ISO9141

ISO9141-2协议是汽车行业最常用的通信协议之一,属于标准OBDII协议的一种,下面从通信过程,物理层特性,系统进入,帧结构、命令交互、交互时间参数、常用命令来介绍。

 

2.2物理层特性

空闲电平通常为12V;数据位格式为1+8+1,没有校验位;使用的波特率通常为10416BPS和9600BPS两种。

2.3系统进入初始化

ISO协议采用地址码进入方式,先使用5BPS发送地址码,ECU响应55H,KW1,KW2,设备对KW2取反发回给ECU,ECU对地址码取反发回给设备,完成系统初始化交互。其中55H这个字节用来规定后面的通信波特率。

2.4帧结构

帧头(3个字节)+数据(最大为7个字节)+校验(通常为校验和)。数据帧有两种:命令帧和响应帧。命令帧由Tools发出,响应帧是ECU对命令帧的响应。帧头结构如下图: 2.5命令交互

命令交互通常情况下为1对1,但也存在1对多或者多对1的情况。下面是一组命令交互举例

Tools: 68H 6AH F1H BEH 81H

ECU: 48H 6BH 28H FEH 31H 32H 33H 40H 42H 43H 34H

在命令中,目标地址是固定的;ECU响应设备的命令字在设备命令字的基础上+0x40。

2.6交互时间参数

设备发送命令字节间的时间间隔P1,通常为5ms-20ms,取6ms; 

ECU返回命令字节间的时间间隔P2,通常为0ms

设备发送完一帧命令后等待ECU响应的时间P3,为25ms-50ms,一般取30ms; 

设备接收到ECU响应后到发送下一帧命令的时间P4,通常为55ms-5000ms,一般取60ms。

2.7服务命令

系统退出:0x20 

清除故障码:0x14

读版本信息:0xBE,

读数据流:0XB1 

K线检测电路如下

使用示波器测量K线波形

 

猜你喜欢

转载自blog.csdn.net/gd1984812/article/details/106101447