OBD服务简述1--0x01服务

目录

说在前面: 

0x01服务

请求ECU支持的PIDs:

请求查值PID:

示例

STEP1:请求ECU支持哪些查值PID

STEP2:请求ECU支持的查值PID携带的数据信息


 

说在前面: 

PID分为两类:

一类PID用于指出该ECU支持哪些PID.

这些PID包括是0x00,0x20,0x40,0x60,0x80,0xA0,0xC0,0xE0,SWS标准中称为"availability PIDs";读取其中一个PID后ECU会返回4个字节的结果,这4个字节中的每个bit表示其所对应的PID是否被支持。

例如:PID 0x00表示0x01到 0x20之间的PID,PID 0x20表示0x21到0x40之间的PID。

每次请求最多包含6个availability PID.

另一类用于查询具体数据值的PID.

SWS标准中称为 not "availability PIDs"

上述概念同样适用于OBD MonitorIDs/TIDs/INFOTYPEs,分别对应0x02、0x06 、0x08 、0x09  .服务。

下面介绍不同OBD服务的请求和响应数据格式(参考15031-5, 2015)

0x01服务

该服务用于读取动力系统当前的诊断数据,比如某个传感器的状态、发动机转速、DTC数量、故障指示灯是否亮起等,命令格式是SID + 若干PID(Parameter ID)。每个PID也是一个byte,所以理论上PID取值范围是0x00至0xFF,但是ISO-15031-5只明确定义了部分PID,其余的值都保留。

请求ECU支持的PIDs:

请求格式:

响应格式:

请求查值PID:

请求格式:

响应格式: 

并非所有与排放有关的ECU都支持请求消息中包含的所有PID,其应符合iso15031的这一部分。因此,每辆车的ECU,其中至少支持1个PID,应发送包含数据的PID的响应消息。 

示例
STEP1:请求ECU支持哪些查值PID

ECU应响应所有支持的范围。一个范围被定义为32个PID的块(例如范围#1:PID 01-20)。ECU不应响应不支持的PID范围,除非随后范围有一个支持的PID。

 不同ECU支持的PID范围不同,假设有两个ECU,分别为ECU1、ECU2,其各自的响应如下:

ECU1#:

从响应信息可看出:ECU1支持的PID包括:0x01 , 0x03 - 0x09 , 0x0B - 0x11 , 0x13 , 0x15 , 0x19  , 0x1C , 0x20 , 0x21.  

ECU2#:

从响应信息可看出:ECU2支持的PID包括:0x01 , 0x0D.

STEP2:请求ECU支持的查值PID携带的数据信息

外部测试设备在一个请求消息中请求最多六(6)个pid的组合,以获得显示当前数据的最佳性能:

发送请求消息:

响应数据流:

ECU1#:

从响应数据可看出:ECU #1 (ECM)报告MIL命令,三个存储dtc,所有监视器支持,催化剂,加热催化剂,氧传感器和氧传感器加热器未完成,所有其他监视器已完成。

 ECU2#:

从响应信息可以看出:ECU #2 (TCM)报告MIL命令关闭,一个存储DTC,支持完整的综合组件监视器,不支持所有其他监视器。 

注意:响应消息中PID的顺序不需要与请求消息中的PID顺序匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值