OBD诊断(ISO15031) 02服务

文章目录

功能简介

02服务,即 Request powertrain freeze frame data(读取动力系统冻结帧数据)服务,此服务的目的是允许访问冻结帧中与排放相关数据值。

SAE J1979-DA中包含了冻结帧的PID规格、缩放信息和显示格式。
服务0x02 PID 0x02表示导致freeze frame冻结帧数据被存储的DTC。如果冻结帧数据未存储在ECU中,系统应报告0x0000 作为DTC。

请求和响应

1、read-supported PIDs

1.1、请求

基本格式

<SID> + <PID> + <frame>

1.2、肯定响应

基本格式:

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

2、read PID value

1.1、请求

基本格式

<SID> + <PID> + <frame>

1.2、肯定响应

基本格式:

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

3、同时请求多个PID

ECU应支持最多三(3)个PID的请求。

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


4、同时读取多个PID数据


Parameter definition

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

报文示例

1、单个PID请求和读取

第 1 步,从车辆请求支持的动力系统冻结帧PID

外部测试设备向车辆请求所有支持的冻结帧0x00的动力总成冻结帧PID。

作为受支持的PID请求的结果,外部测试设备为每个ECU创建一个受支持的PID的内部列表。

  • ECU#1(ECM)支持以下PID:02h-09h,0Bh-0Eh。
  • ECU#2(TCM)不支持此服务的任何PID。

第 2 步,从车辆请求PID 02h "导致存储冻结帧的DTC"

1、冻结帧数据存储在ECU#1中

现在,外部测试设备向车辆请求冻结帧0x00的PID 0x02。
由于ECU#2(TCM)不存储冻结帧数据记录,因此只有ECU#1(ECM)会发送响应消息。

在本例中,冻结帧数据是根据DTCP0130事件存储的。PID0216"导致所需冻结顿数据存储的DTC"的参数值设置为DTCP0130。

2、任何ECU中都未存储冻结帧数据
如果未存储冻结帧数据,则支持该服务但未存储任何冻结帧的ECU应发送一条响应消息,其中PID 0x02 "导致所需冻结帧数据存储的DTC" 的data_A和data_B参数值设置为0x0000。

2、多个PID请求和读取


相关推荐
国通快递驿站3 个月前
理解JVM中的死锁:原因及解决方案
android·java·jvm·spring·诊断
疯狂的机器人7 个月前
【Python搞定车载自动化测试】——Python实现CAN总线Bootloader刷写(含Python源码)
python·自动化·can·诊断·uds·bootloader·刷写
疯狂的机器人7 个月前
【Python搞定车载自动化测试】——Python基于Pytest框架实现UDS诊断自动化(含Python源码)
python·自动化·pytest·can·诊断·allure·uds
OceanBase数据库官方博客10 个月前
如何修炼成“神医”——《OceanBase诊断系列》之一
oceanbase·分布式数据库·诊断·故障排查·运维管理·实践经验
up up day1 年前
UDS诊断(ISO14229-1) 36服务
诊断·uds·汽车电子
trw7771 年前
OceanBase 4.2.1社区版 最小资源需求安装方式
oceanbase·ocp·obd
CyberSecurity_zhang1 年前
8.AUTOSAR 诊断栈分析(一)
autosar·dem·诊断·错误处理·dcm
Overboom1 年前
[UDS] --- CommunicationControl 0x28
诊断·诊断14229
runscript.sh1 年前
docker 网络访问诊断
网络·docker·容器·诊断