当前位置: 首页 > news >正文

UDS诊断 - DTC状态位

UDS诊断 - DTC状态位

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

文章目录

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

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

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

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

位状态定义:
‘0’ = DTC 测试的最新结果,表示未检测出失效。
‘1’ = DTC 测试的最新结果,表示失效结果已成形。

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

状态第 0 位 testFailed 的逻辑

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

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

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

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

位状态定义:
‘0’ = testFailed:当前操作循环期间或在当前操作循环发出 0x14 服务请求后,未报告任何结果。
‘1’ = testFailed:当前操作循环期间至少已报告一个结果。

下图为状态第 1 位 testFailedThisOperationCycle 的逻辑。
状态第 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 的逻辑。
状态第 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 的逻辑。

状态第 3 位 confirmedDTC 的逻辑

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

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

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

位状态定义:
‘0’ = 自清除上一次诊断信息后至少进行一次 DTC 测试,不论是否合格。
‘1’ = 自清除上一次诊断信息后,未完成 DTC 测试。

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

状态第 4 位 testNotCompletedSinceLastClear 的逻辑

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

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

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

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

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

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

testFailedSinceLastClear 的逻辑

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

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

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

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

位状态定义:
‘0’ = 在当前行驶循环内(火灾当前操作循环内,清除上一次诊断信息后)重新进行 DTC 测试,不论结果为合格或 testFailedThisOperationCycle = 1。
‘1’ = 在当前操作循环内(或在本次操作循环内,清除上一次诊断信息后)未完成测试。

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

状态第 6 位 testNotCompletedThisOperationCycle 的逻辑

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

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

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

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

位状态定义:
‘0’ = 服务器未请求激活报警指示器。
‘1’ = 服务器正在请求激活报警指示器。

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

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

9. DTC状态位操作示例

该示例概述了两个操作循环中,排放相关 OBD 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’。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Unity SceneView 相机聚焦到指定位置
  • Linux awk案例
  • Qt模态对话框与非模态对话框
  • 手搓智能体第三弹之复刻 ⌈ AI智能搜索 ⌋
  • 【C++ 第十九章】异常
  • 哈希 详解
  • 10分钟了解OPPO中间件容器化实践
  • 专栏前言-WooYun漏洞库环境搭建
  • SaaS行业渠道管理的深度探索:两种增长模式哪个更强?
  • 非标机械设计项目“规范”笔记
  • 使用 Nginx 部署 Vue.js 前端项目指南
  • 王立铭脑科学50讲后续6,自己从课程中提起自己所需的知识,安放到自己的知识体系中。
  • Elasticsearch 向量数据库本地部署 及操作方法
  • OpenStack概论和部署
  • npm 换源
  • .pyc 想到的一些问题
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • Babel配置的不完全指南
  • ESLint简单操作
  • exif信息对照
  • Java IO学习笔记一
  • JavaScript 奇技淫巧
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • mysql innodb 索引使用指南
  • MySQL的数据类型
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • 从零开始在ubuntu上搭建node开发环境
  • 警报:线上事故之CountDownLatch的威力
  • 漂亮刷新控件-iOS
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 一道闭包题引发的思考
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (SpringBoot)第二章:Spring创建和使用
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (一)SpringBoot3---尚硅谷总结
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)一些感悟
  • . NET自动找可写目录
  • .aanva
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .NET : 在VS2008中计算代码度量值
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET_WebForm_layui控件使用及与webform联合使用
  • .netcore 获取appsettings
  • .NET性能优化(文摘)
  • .NET中统一的存储过程调用方法(收藏)
  • .pop ----remove 删除
  • // an array of int
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面