DTC状态掩码(Status Of DTC)

DTC状态掩码(Status Of DTC)

DTC状态掩码表

BIT Status Comment
0 testFailed 测试故障位 (当前故障)
1表示一个故障被监测到
1 testFailedThisOperationCycle 当前操作循环测试故障位
1表示当前操作周期或从上一次ClearDiagnosticlnformation命令清零后已经监测到一次故障
2 pendingDTC 待确定DTC
1成立条件与TestFailedThisOperationCycle相同,不同之处为清零条件,此位清零条件为一个完整的操作周期内未出现故障或ClearDiagnosticInformation命令
3 confirmedDTC DTC确认 (历史故障)
1表示存在历史故障
4 testNotCompletedSinceLastClear 在故障清除后测试没有完成
1表示从上次ClearDiagnosticInformation命令复位(置1)后,新的故障测试还未完成
5 testFailedSinceLastClear 在故障清除后测试失败
1表示从上次ClearDiagnosticInformation或其他条件清零后,已经监测到被确定的故障
6 testNotCompletedThisOperationCycle 当前操作循环测试没有完成
1表示从上次ClearDiagnosticInformation命令复位(置1)后,本操作周期内当前测试未运行完成
7 warningIndicatorRequested 故障指示请求
1表示需要故障报警标识的故障已经处于ConfirmedDTC状态(bit3)和TestFailed状态(bit0)

DTC状态掩码详细解释

bit 0 : testFailed

如果在最近的一次测试中,在某个错误路径中发现了故障,则相应DTC的这一个状态位就要被置1。也就是DTC的testFailed位被置1,但是它不一定被ECU存储到EEProm中,只有当pending DTC或confirmed DTC被置1时故障码才会被存储。

指示最近执行test的结果,test失败置1,但是它不一定被ECU存储到EEprom中,只有当bit2或bit3被置1时DTC才会被存储。test通过则置0,如果调用了14服务清除DTC的话,也需要重新置0

0:DTC测试的最新结果表明未检测到故障。

1: DTC测试的最新结果表明了一个成熟的失败结果。

bit 1 : testFailedThisOperationCycle

用于标识某个DTC在当前的operation cycle中是否出现过testFailed置1的情况,即是否出现过错误,也就是在当前操作循环内的测试结果,该操作循环内只要发生过错误,就置"1"; 开始新的操作循环或发送清故障码服务后,就置"0";

该位表示在当前test中,诊断test是否已经报告了一个testFailed结果。当新的检测循环开始时,这个位需要置0,在调用了14服务后也需要置0。如果该位置1,那么一直保持置1状态直到新的检测循环开始,因此bit1可以理解为当前DTC。如果bit2和bit3通常一起使用。对于没有网络管理的 ECU,这个起始点就是 KL15 通断。也就是说上电时间内出现的故障,该位都会置1,不管是否存储。

0:testFailed:在当前操作周期内或在当前操作周期内调用ClearDiagnosticInformation后,尚未报告testFailed结果。

1: testFailed:在当前操作周期中至少报告了一次testFailed结果。

bit 2 : pendingDTC

当前循环内,故障发生,pendingDTC = 1,但是在下一个循环内,故障没有了,pendingDTC 仍然为 1,再下一个循环内,故障仍不存在,那么pendingDTC 就可以置0了。如果接下来的两个循环内,这个DTC都还存在,那么confirmedDTC就要置1了。

根据ISO 14229的定义,当一个test结束时,若某个DTC满足故障触发条件,则bit2置1。bit2位其实是表示DTC处于testFailed和confirmedDTC之间的一个状态,称为待定DTC。因为DTC并不是一达到触发位就会被报出来的,而是故障出现一段时间后才会被确认,而中间的这个状态就用bit2位来表示,因此bit2位又可被称为待定DTC。当某个DTC刚达到判定条件的时候,bit2被置1,若一段时间后故障条件不满足了,则bit2置0,若一段时间后故障仍然存在,那么bit3就要置1了。

0: 在完成测试完成且未检测到故障的操作循环后或调用ClearDiagnosticInformation服务时,该位应设置为0。

1: 如果在当前操作循环中检测到故障,则该位应设置为1并锁定

bit 3 : confirmedDTC

当confirmedDTC = 1时,则说明某个DTC已经被存储到ECU的EEProm中,说明这个DTC曾经满足了被confirmed的条件。但是请注意,confirmedDTC = 1时,并不意味着当前这个DTC仍然出错,如果confirmedDTC = 1,但testFailed = 0,则说明这个DTC表示的故障目前已经消失了。将confirmedDTC 重新置0的方法 UDS 14服务(清除故障码)。

当bit3置1时,说明故障已经发生了一段时间,也就是bit2至少有一次被置1了。需要注意的是,bit3置1的时候,DTC被存储在EEprom中,但并不代表现在故障还存在,所以可以理解为历史故障。在调用14服务清除DTC后需要置0。

0:自上次调用ClearDiagnosticInformation后,或在满足故障诊断码的老化条件(或由于故障记忆溢出而清除了故障诊断码)后,从未确认过故障诊断码。

1: 自上次调用ClearDiagnosticInformation后至少确认一次的DTC,且尚未满足老化标准

bit 4 : testNotCompletedSinceLastClear

因为并不是所有的DTC测试都是从上电就开始的,所以该位用来表示上次调用14服务清除诊断消息后,是否进行过完整的test。如果进行了完整的test,无论结果如何,都置0,否则置1。

0:自上次清除诊断信息以来,DTC测试至少返回一次测试结果(无论通过或失败)。

1:自上次清除诊断信息后,DTC测试尚未运行到完成。

bit 5 : testFailedSinceLastClear

该位表示在上次调用14服务清除后DTC后,若test DTC未进行测试或者测试了但结果是pass时置0,如果test运行完成并且返回结果为fails,那么该位置1。在调用14服务清除DTC后需要置0。bit4和bit5通常一起使用。

0 :自上次清除诊断信息后,DTC测试未显示失败结果。如果满足老化阈值或发生故障记忆溢出,则车辆制造商应负责将该位重置为零(“0”)。

1:自上次清除诊断信息以来,DTC测试至少返回一次失败结果。

bit 6 : testNotCompletedThisOperationCycle

该位表示在当前检测循环周期过程中DTC test是否完成,若完成了置0,未完成置1。在调用ClearDiagnosticDTC后需要置1。

0 :在当前operation cycle中(或自上次在当前操作循环期间清除诊断信息以来)完成。

1 :在当前operation cycle中(或自上次清除此操作循环的诊断信息后),DTC测试尚未运行到完成。

bit 7 : warningIndicatorRequested

该位报告警告指示,比如说仪表盘上的警示灯等。

但不是所有的DTC都会有警告指示,如果没有和DTC相关的警告存在,该位应置0;

如果该DTC有相关警告指示,bit3置1的时候,bit7也要置1。在调用14服务清除DTC后需要置0。

0:ECU不请求激活警告指示。

1:ECU请求激活警告指示。

《AUTOSAR谱系分解(ETAS工具链)》之总目录

《AUTOSAR谱系分解(ETAS工具链)》之总目录

猜你喜欢

转载自blog.csdn.net/PlutoZuo/article/details/132714169