OBD诊断(ISO15031) 01服务

功能简介

01服务,即 Request current powertrain diagnostic data(读取动力系统当前的诊断数据)服务,比如某个传感器的状态、发动机转速、DTC数量、故障指示灯是否亮起等

这些数据都是需要预先定义好的,如何进行定义呢,在ISO标准规定了一些参数标识符即PID(parameter Identifiers),每个PID代表一个变量参数。

OBD诊断中,ECU 至少应支持服务0x01PID 0x00

PID 的功能

PID 的大小占一个字节。
ISO其实定义了部分PID参数,其余的值都保留,并不要求所有的主机厂把这些参数都实现,也就是说PID参数是可以选择支持的。
那么ECU到底支持哪些PID?
实际上,PID分为两类,一类用于表示具体的数据,而另一类则用于指出该ECU支持哪些PID。
如PID 0x00\0x20\0x40\0x60\0x80等就是用来查询到底支持哪些服务的,
读取其中一个PID后ECU会返回4个字节(32 bit)的结果,依次对应ECU对其后 32 个PID是否支持。具体如何使用如下:

  • PID 0x00 用于查询(0x01~0x20)之间支持的PID参数
  • PID 0x20 用于查询(0x21~0x40)之间支持的PID参数
  • PID 0x40 用于查询 (0x41~0x60)之间支持的PID参数
  • 以此类推后面的0x60 0x80

在这里插入图片描述

请求和响应

1、read-supported PIDs

1.1、请求

基本格式

<SID> + <PID>

在这里插入图片描述

1.2、肯定响应

基本格式:

<SID + 0x40> + <PID> + <支持的 PID PID PID PID>

在这里插入图片描述

2、read PID value

1.1、请求

基本格式

<SID> + <PID>

在这里插入图片描述

1.2、肯定响应

基本格式:

<SID + 0x40> + <PID> + <返回数据>
在这里插入图片描述

3、同时请求多个PID

ECU应支持最多六(6)个PID的请求。
请求消息可以多次包含相同的PID。ECU应处理每个PID作为单独的参数,并根据请求经常用每个PID的数据进行响应(对于同一PID返回的数据可能不同)。
响应消息中PID的顺序不需要与请求消息中的顺序相匹配。

在这里插入图片描述
在这里插入图片描述

3、同时读取多个PID数据

在这里插入图片描述
在这里插入图片描述

Parameter definition

SAE J1979-DA specifies the interpretation of the data record of supported PIDs.

报文示例

1、单个PID请求和读取

第 1 步,向车辆请求支持的PID
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第 2 步,Request PID from vehicle

PID 01h: Number of emission-related powertrain DTCs and MIL status.
在这里插入图片描述

在这里插入图片描述

2、多个PID请求和读取

第 1 步,向所有ECU请求支持的PID
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第 2 步,读取多个支持的PID数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 15
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值