UDS诊断 - DTC状态位

UDS诊断 - DTC状态位

Bit Value
0 testFailed(测试不合格)
1 testFailedThisOperationCycle(本操作循环中测试不合格)
2 pendingDTC(待定 DTC)
3 confirmedDTC(已确认 DTC)
4 testNotCompletedSinceLastClear
5 testFailedSinceLastClear(自上次清除后测试不合格)
6 testNotCompletedThisOperationCycle(本操作循环中测试未完)
7 warningIndicatorRequested(请求警告指示灯)

文章目录

  • [UDS诊断 - DTC状态位](#UDS诊断 - DTC状态位)
    • [1. Bit 0:testFailed(测试不合格)](#1. Bit 0:testFailed(测试不合格))
    • [2. Bit 1:testFailedThisOperationCycle(本操作循环中测试不合格)](#2. Bit 1:testFailedThisOperationCycle(本操作循环中测试不合格))
    • [3. Bit 2:pendingDTC(待定 DTC)](#3. Bit 2:pendingDTC(待定 DTC))
    • [4. Bit 3:confirmedDTC(已确认 DTC)](#4. Bit 3:confirmedDTC(已确认 DTC))
    • [5. Bit 4:testNotCompletedSinceLastClear(自上次清除后测试未完成)](#5. Bit 4:testNotCompletedSinceLastClear(自上次清除后测试未完成))
    • [6. Bit 5:testFailedSinceLastClear(自上次清除后测试不合格)](#6. Bit 5:testFailedSinceLastClear(自上次清除后测试不合格))
    • [7. Bit 6:testNotCompletedThisOperationCycle(本操作循环中测试未完)](#7. Bit 6:testNotCompletedThisOperationCycle(本操作循环中测试未完))
    • [8. Bit 7:warningIndicatorRequested(请求警告指示灯)](#8. Bit 7:warningIndicatorRequested(请求警告指示灯))
    • [9. DTC状态位操作示例](#9. DTC状态位操作示例)

1. Bit 0:testFailed(测试不合格)

本位指示最近的测试结果。逻辑值 '1' 表明上次测试不合格,即失效已完全成形。如果最近的测试结果显示为 "合格" 表示满足非成熟标准,则应将该逻辑值重置为 '0'。其他重置条件均可由车辆制造商 / 实施程序规定。

当发出 0x14 服务请求后,逻辑值重置为 ' 0'。

位状态定义:

'0' = DTC 测试的最新结果,表示未检测出失效。

'1' = DTC 测试的最新结果,表示失效结果已成形。

下图为状态第 0 位 testFailed 的逻辑。

2. Bit 1:testFailedThisOperationCycle(本操作循环中测试不合格)

本位将说明,在当前操作循环内,诊断测试是否随时报告 testFail(换言之,在当前操作循环期间和最后一次发出 0x14 服务请求后,均报告 testFailed)。初始化全新操作循环时或发出 0x14 服务请求后,将逻辑重置为 '0'。

若本位原逻辑值为 '1',则开始全新操作循环前,其逻辑值一直保持为 '1'。

发出 0x14 服务请求后,将逻辑值重置为 '0'。

位状态定义:

'0' = testFailed:当前操作循环期间或在当前操作循环发出 0x14 服务请求后,未报告任何结果。

'1' = testFailed:当前操作循环期间至少已报告一个结果。

下图为状态第 1 位 testFailedThisOperationCycle 的逻辑。

3. Bit 2:pendingDTC(待定 DTC)

本位将说明,在当前或上次完成的操作循环内,诊断测试是否随时报告 testFailed。进行测试且完成后才能更新此状态。pendingDTC 位和 testFailedThisOperationCycle 的设置标准相同。二者的区别在于,testFailedThisOperationCycle 状态位在各操作循环开始时即清除,而 pendingDTC 状态位将保留至操作循环结束,其测试结果至少有一次为合格且后续未出现任何不合格结果。

若当前操作循环内测试未完成,则状态位不变。例如,若设定确认 DTC 后监测程序停止运行,则 pendingDTC 须保持为 '1'。对于 OBD DTC,在第一个行驶循环检测到故障后,需将其保存为 pendingDTC。

发出 0x14 服务请求后,将逻辑值重置为 '0'。

位状态定义:

'0' = 第一个操作循环结束后(测试完成)且未检测出任何故障或发出 0x14 服务请求,须将该位设置为 0。

'1' = 在当前操作循环内,如果检测出故障,则须将该位设定为 1 保持不变。

下图为状态第 2 位 pendingDTC 的逻辑。

4. Bit 3:confirmedDTC(已确认 DTC)

本位将说明故障被检测次数是否足以确保 DTC 需被存入长期存储器。

confirmedDTC 并非始终表示发出请求时已出现故障(能根据 testFailed 确定请求时是否已存在故障)。

发出 0x14 服务请求或达到老化阈值(例如,发动机暖机 40 次后,未检测出其他故障)后,将逻辑重置为 '0'。而且,根据车辆制造商规定故障存储器溢位要求,若本 DTC 相关故障记录被更新 DTC 覆盖,则需重置本位。

DTC确认阈值和老化阈值由车辆制造商规定或由车载诊断法规指定。

发出 0x14 服务请求后,将逻辑值重置为 '0'。

位状态定义:

'0' = 自上一次发出 0x14 服务请求后或 DTC 满足老化标准(或故障存储器溢位清除 DTC 已被清除)后,未确认 DTC。

'1' = 自上一次发出 0x14 服务请求后未满足老化标准前,至少已确认 DTC 一次。

下图为状态第 3 位 confirmedDTC 的逻辑。

5. Bit 4:testNotCompletedSinceLastClear(自上次清除后测试未完成)

本位将说明,自上一次发出 0x14 服务请求后,是否进行并完成 DTC 测试。'1' 表示未完成 DTC 测试。若进行测试,不论是否合格(如,testFailedThisOperationCycle = '1'),须将本位设置为 '0'(并保持不变)。

发出 0x14 服务请求后,将逻辑值重置为 '1'。

位状态定义:

'0' = 自清除上一次诊断信息后至少进行一次 DTC 测试,不论是否合格。

'1' = 自清除上一次诊断信息后,未完成 DTC 测试。

下图为状态第 4 位 testNotCompletedSinceLastClear 的逻辑。

6. Bit 5:testFailedSinceLastClear(自上次清除后测试不合格)

本位将说明,自上一次发出 0x14 服务请求后,是否完成 DTC 测试及测试结果是否为不合格(即保持 testFailedThisOperationCycle = '1')。

'0' 表示未进行测试,或已进行 DTC 测试且结果为合格(无任何故障)。若进行 DTC 测试且结果为不合格,则需将本位应保持为 '1' 不变。车辆制造商应规定本位达到老化标准或故障存储器溢位时是否需进行重置。

发出 0x14 服务请求后,将逻辑值重置为 '0'。

位状态定义:

'0' = 自上一次清除诊断信息后,DTC 测试未显示任何不合格及格。车辆制造商应规定本位达到老化标准或故障存储器溢位时是否需进行重置为 0。

'1' = 自上一次清除诊断信息后,至少有一次 DTC 测试结果不合格。

下图为状态第 5 位 testFailedSinceLastClear 的逻辑。

7. Bit 6:testNotCompletedThisOperationCycle(本操作循环中测试未完)

本位将说明,在当前操作循环内,是否已进行并完成 DTC 测试(或在当前操作循环期间上一次发出 0x14 服务请求后完成测试)。

逻辑值 '1' 表示在当前次操作循环内,未完成 DTC 测试。若已进行测试,不论是否合格,进行下一次操作循环开始前须将本位设置(并保持不变)为 '0'。

发出 0x14 服务请求后,将逻辑值重置为 '1'。

位状态定义:

'0' = 在当前行驶循环内(火灾当前操作循环内,清除上一次诊断信息后)重新进行 DTC 测试,不论结果为合格或 testFailedThisOperationCycle = 1。

'1' = 在当前操作循环内(或在本次操作循环内,清除上一次诊断信息后)未完成测试。

下图为状态第 6 位 testNotCompletedThisOperationCycle 的逻辑。

8. Bit 7:warningIndicatorRequested(请求警告指示灯)

本位将报告与特定 DTC 相关的各报警指示器状态。报警输出由指示灯、文本信息等构成。若某特定 DTC 无相应报警指示器,则该状态将被默认为逻辑值 '0' 状态。

激活报警指示器的条件须由车辆制造商 / 实施程序规定。但是,若出现某指定 DTC 时报警指示器亮起,需将 confirmedDTC 也设定为 '1'(下述情况除外)。

发出 0x14 服务请求后,将逻辑值重置为 '0'。某些 ECU 可能保持当前操作循环中与特定确定故障相关的失效保护策略。发出 0x14 服务请求后,若失效保护不变使得该报警指示器仍发送请求,则本位不得复位为 '0'。应保持本位逻辑值为 '1',直至失效保护策略失活(如,测试完成且结果合格)。其他重置条件均由车辆制造商 / 实施程序规定。

位状态定义:

'0' = 服务器未请求激活报警指示器。

'1' = 服务器正在请求激活报警指示器。

下图为状态第 7 位 warningIndicatorRequested 的逻辑。

图例
1. 报警指示灯亮且达到标准要求 = 特定 DTC 有报警指示灯,且(confirmedDTC = 1 或达到车辆制造商或实施程序规定的报警指示灯启用标准)

9. DTC状态位操作示例

该示例概述了两个操作循环中,排放相关 OBD DTC 状态位的操作。该图所示为两个操作循环中,排放相关 OBD DTC 的处理。这种处理同样适用于排放无关 OBD DTC,此图仅供参考。

图例
0 收到 0x14 服务请求 -> DTC 状态字节初始化

1、2 相关诊断监测程序报告合格样本数量满足 DTC 合格要求 -> testNotComplete(未完成测试)位(4 和 6)从 1 转换为 0,表明已完成检测程序且操作循环 1 自上次清除后,DTC 已准备就绪。

3、4、5、6 相关诊断检测程序报告不合格样本数量满足 DTC 不合格要求 -> testFailed、testFailedThisOperationCycle、pendingDTC 和 testFailedSinceLastClear 位均从 0 转换至 1,表明已检到出故障但在 2 个操作循环期间未得到确认。

7 相关诊断监测程序报告合格样本数量满足 DTC 合格要求 -> testFailed 位从 1 转换至 0,表明当前不存在有效故障。

8 相关诊断检测程序报告不合格样本数量满足 DTC 不合格要求 -> testFailed 位从 0 转换至 1,表明操作循环 1 内已重复检测到故障。

9、10 操作循环 1 结束,操作循环 2 开始,testFailedThisOperationCycle 从 1 转换至 0 且 testNotCompleteThisOperationCycle 从 0 转换至 1;由制造商决定是否在操作循环即将结束时或新循环即将开始时进行重置。

11 新操作循环开始后(由制造商规定从操作循环 1 过渡至操作循环 2 的过程是否保持 testFailed 状态),相关诊断监测程序报告合格测试数量已达到 DTC 合格要求 -> testFailed 位转换为 0.

12 新操作循环开始后,相关诊断监测程序报告合格样本数量满足 DTC 合格要求 -> testNotCompleteThisOperationCyle 位从 1 转换至 0,表明在新操作循环内至少已完成了一次监测。

13、14 相关诊断监测程序报告不合格样本数量满足 DTC 不合格要求 -> testFailed 和 testFailedThisOperationCycle 位从 0 转换至 1,表明在新操作循环内已检测到故障。

15 confirmedDTC 位从 0 转换至 1,表明上一次操作循环内检测的相关故障仍然存在。

16 DTC 状态切换至 confirmedDTC 时,TripCounter(故障监测诊断器)跳至 '2',并立即重置为 '0'。

相关推荐
敲代码敲到头发茂密2 天前
怎么做好白盒测试?
java·数据库·mysql·算法·单元测试·模块测试·测试覆盖率
小白~小黑3 天前
软件测试基础三十 (Python + Flask实现Mock平台搭建)
python·功能测试·测试工具·自动化
北京青翼科技3 天前
【FMC169】基于VITA57.1标准的4发4收射频子模块(基于ADRV9026)
图像处理·人工智能·信号处理·模块测试
Dreams°1234 天前
【大数据测试HDFS + Flask详细教程与实例】
大数据·功能测试·hdfs·单元测试·flask
CSXB996 天前
三十八、Python(pytest框架-上)
python·功能测试·测试工具·单元测试·pytest
无所事事的海绵宝宝6 天前
selenium元素定位校验以及遇到的元素操作问题记录
python·功能测试·selenium·测试工具
惜.己7 天前
Jmeter中的配置原件(四)
java·前端·功能测试·jmeter·1024程序员节