$19服务:DTCStatusMask和statusofDTC bit 定义
Posted 诊断协议那些事儿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了$19服务:DTCStatusMask和statusofDTC bit 定义相关的知识,希望对你有一定的参考价值。
诊断协议那些事儿
诊断协议那些事儿专栏系列文章,当ECU产生DTC时,我们只知道有故障发生了,并不清楚该故障什么时候发生,现在是否已经恢复、发生过几次,恢复过几次等信息,基于此ISO发布的14229-1使用DTC状态位这一概念来得描述上述信息,使我们对该故障的产生以及恢复有个清晰的认识,便于我们快速定位问题所在。本文将介绍UDS中DTC信息的最后一个byte解析:StatusofDTC位的定义,供19服务ReadDTCInformation使用。每个服务器都应遵守本文中定义的DTC状态信息的约定。
关联文章:19服务List
文章目录
术语解释
Test-测试:测试是确定部件或系统(通常为单个操作周期内)故障状态的车载软件算法。它通常在单个运行周期内确定组件或系统的故障状态。有些测试在一个运行周期内只运行一次。其他测试可以运行每个程序循环,每几毫秒采样一次。测试的最终结果代表完全matured/qualified 成熟/合格的条件(即,通过或故障)。这意味着,需要在特定时间内进行故障条件或在考虑组件之前评估额外的合理性检查的测试,只有在所有 maturation criteria 成熟标准都得到满足后,才会返回“Failed”条件。每个DTC都与代表可检测故障症状的测试相关联。
Test results∶当测试运行或完成后,它可能会向内部故障处理程序指示以下结果之一∶
–PreFailed∶ECU中的测试可以使用此状态来指示测试当前正在成熟的故障条件。此信息的一个用例是在制造中加速故障检测以优化工作流程,同时保持现场容错。
–Failed∶此状态在测试运行完成后可用,并指示一个完全成熟的故障条件。
–Passed∶ 此状态在测试运行完成后可用,并指示系统或组件未出现故障。
操作周期:操作循环规定了监测程序运行的起止状态。一个操作循环内可能包含多个监测周期(不论其测试结果)。ECU支持的操作循环由多种形式体现,由制造商规定(如,ECU上电至断电,电火至熄火)。根据发动机运行或停机间隔时间确定排放相关动力系统ECU操作循环,又称行驶循环。
Driving cycle驾驶循环/周期∶用于排放相关ECU的特定类型的运行周期。
DTCofStatus bit
每一个DTC均有对应的DTC状态位,该DTC状态位由一个字节表示,每个bit都有其重要含义,具体解释如下图所示:
Bit0: 请求时刻测试结果为失败;
Bit1: 在当前点火循环至少失败过1次;
Bit2: 在当前或者上一个点火循环测试结果不为失败;
Bit3: 请求时刻DTC被确认,一般确认是在一个点火周期内发生错误1次;
Bit4: 自上次清除DTC之后测试结果已完成,即测试结果为PASS或者FAIL结果;
Bit5: 自上次清除DTC后测试结果都不是FAIL;
Bit6: 在当前点火周期内测试结果已完成,即为PASS或FAIL状态;
Bit7: ECU没有得到点亮警示灯请求;
DTC Status bit0定义
规定了DTC状态第0位:testFailed(测试不合格)
DTC Status bit1定义
规定了DTC状态第1位testFailedThisOperationCycle(本操作循环中测试不合格)
DTC Status bit2定义
规定了DTC状态第2位pendingDTC(待定DTC)
DTC Status bit3定义
规定了DTC状态第3位confirmedDTC(已确认DTC)
DTC Status bit4定义
规定了DTC状态第4位testNotCompletedSinceLastClear(自上次清除后测试未完成)
DTC Status bit5定义
规定了DTC状态第5位testFailedSinceLastClear(自上次清除后测试不合格)
DTC Status bit6定义
规定了DTC状态第6位testNoCompletedThisOperationCycle(本操作循环中测试未完成)
DTC Status bit7定义
规定了DTC状态第7位WarningIndicatorRequested(请求警告指示灯)
1.WarningIndicatorOnCriteriaFullfilled(报警指示灯亮且达到标准要求)=特定DTC有报警指示灯,且(confirmedDTC(已确认DTC)=1或达到车辆制造商或实施程序规定的报警指示灯启用标准)
DTC状态位操作示例
下图为两个操作循环中,排放相关OBD DTC状态位的操作处理。
0:收到清除诊断信息请求——DTC状态字节初始化
1-2:相关诊断监测程序报告合格样本数量满足DTC合格要求——testNotCompleted(未完成测试)位(bit4和bit6)从1转换为0,表明已完成监测程序且操作循环1中自上次清除后,DTC已准备就绪。
3-6:相关诊断监测程序报告不合格样本数量满足DTC不合格要求——testFailed(测试不合格)(bit0从1转换为0)、testFailedThisMonitoringCycle(本监测周期内测试结果为不合格)、pendingDTC(待定DTC)和testFailedSinceLastClear(自上一次清除后测试结果为不合格)位均从0转换为1,表明已检到出故障但在两个操作循环期间未得到确认。
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合格要求——testNotCompleteThisOperationCycle(本操作循环未完成测试)位从1转换为0,表明在新操作循环内至少已完成了一次监测。
13-14:相关诊断监测程序报告不合格样本数量满足DTC不合格要求——testFailed(测试不合格)和testFailedThisMonitoringCycle(本监测周期内测试结果为不合格)位从0转换为1,表明在新操作循环内已检测到故障。
15:confirmedDTC(已确认DTC)位从0转换为1,表明上一操作循环内检测的相关故障仍然存在。
16:DTC状态切换至confirmedDTC(已确认DTC)时tripCounter(故障监测诊断器)调至2,并立即重置为0
以上是关于$19服务:DTCStatusMask和statusofDTC bit 定义的主要内容,如果未能解决你的问题,请参考以下文章
14服务-ClearDiagnosticlnformation