分享

OBD协议介绍,资料分享

 Kuai2012 2022-04-26
OBD是On Board Diagnose的简称,其主要用于与排放相关的ECU,目的是为了监控排放相关的参数,例如尾气中的氧含量,发动机转速等,使其满足国家的排放标准。
与OBD相关标准主要为ISO15031和SAE J1979等,其OSI模型如下图所示。
图1 OSI分层模型
下面主要来看看SAE J1979中阐述的OBD的9个诊断服务。
Service $01 -请求动力系统当前数据
通过该服务请求车辆动力系统的一些数据,其中数据都是预先定义好的,数据的标识符为PID(parameter Identifiers),其取值范围为0x00~0xFF,与UDS中的DID概念类似,区别点在PID分可以分为两类:一类用于表示具体的参数,这与DID概念的完全相同,例如PID 0x05表示电机的冷却温度,其数据格式如图2所示,第二类用于表示该ECU支持的PID,包括0x00,0x20,0x40等,如图3所示,通常在连接诊断设备的时候,会通过第二类PID确认ECU所支持的PID。
图2 PID 0x01的数据格式
图3 PID 0x00的数据格式
Service $02 - 请求冻结帧数据
当故障故障确认后,需要把故障时刻的相关数据存储下来,用于后续的故障排查、分析,存储下来的数据就是所谓的冻结帧,其步骤通常是先读取造成冻结帧的DTC,数据格式如图4所示。
图4 读取DTC数据格式
然后在读取所支持的PID和PID的数值,其数据格式如图5所示。
图5 02服务请求支持的PID和PID数值的数据格式
Service $03 - 请求排放相关的故障码
03服务主要用于读取当前确认的的故障码,即DTC status的bit3被置位的故障码。以此来了解车辆发生了什么故障,其命令形式很简单,上位机只需发送03即可,详细的数据格式如图6所示。
图6 03服务数据格式
Service 04 - 清除排放相关的故障信息
04服务用于清除ECU中存储的与排放相关的DTC以及相关信息,如图7所示。其数据格式比03服务更简单,上位机仅需发送04,ECU响应为44,如图8所示。该服务只有在发动机没有运转的时候执行,否则执行负响应,NRC为22。
图7 清除的信息
图8 04服务的数据格式
Service $05 - 请求氧传感器的检测结果
05服务用于检测氧传感器的状态,但是基于CAN的OBD不支持该服务,通常有06服务来实现该功能。
Service $06 -请求指定监控系统的测试结果
通常在ECU开发OBD的时候,会定义一组MID,获取ECU支持哪些MID的方法,与01服务的00 02 04类似。
通过06服务获取测试结果的数据格式如图9所示。每个MID至少包含一个TID,一个完整的MID+TID的数据格式如下:
MID
TID
Unit And Scaling ID,用于表示TID的测试内容,例如电压、时间等。
Test Value,实际测量值
Min. Test Limit,测量值的最小值
Max. Test Limit,测量值的最大值

图9 06服务的数据格式
Service $07 -请求请求当前或上一驱动周期检测到的排放相关的故障码
07服务跟03服务类似,都是用于请求故障码,但是与03服务请求确认故障码不相同的是,07服务请求的是pending故障码,其主要目的是方便维修人员修理完、清理故障之后,确认该故障是否真正解决,因此需要重新测试,通过03服务,至少需要3个循环,而07服务,仅需一个循环。其数据格式如图10所示。
图10 07服务数据格式
Service $08 -请求控制车载系统、组件
08服务主要用于控制系统和组件,例如打开或关闭某个组件,类似于UDS中的0x2F服务。其数据格式如图11所示,但是这个服务用的很少。
图11 08服务的数据格式
Service 09 - 请求车辆信息
09服务用来读取车辆的信息,例如VIN码、ECU名称、IPT等,类似于UDS的0x22服务,读取某个DID的信息。09服务的数据格式如下。
图12 09服务的数据格式

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多