说到DTC,想必大家并不陌生,DTC有时已经成为了车辆诊断的代名词。原因嘛,就如大家所知,车辆诊断最重要的作用就是去解决车辆的故障,因此我们需要通过DTC来判断车辆的状态,从而来解决存在的故障问题。DTC的形成、老化及清除是大家一直都非常关心的话题。今天这一讲,我们就来谈谈DTC的老化问题。
关于DTC的形成和清除,大家是有一定概念的。所谓“形成”,即满足一定的设定条件,控制器就会记录相应的DTC。“清除”就更好理解了,即满足一定的条件,系统或是人工就可以将相关的故障码清除掉。那么DTC老化又是什么呢?这需要从诊断系统设计时设置的一个参数谈起。
在诊断系统设计时,我们需要设置每一个DTC的“故障恢复条件”。简单的理解,就是满足一定的条件,系统会认为从故障中恢复。
例如:欠电压故障(又称“电压过低故障”)
故障的设置条件:Voltage < 9V;t > 500ms。如图所示:



图一:故障电压

故障的恢复条件:9.5V < Voltage < 18V;t > 500ms。如图所示:


图二:正常电压
我们认为达到这个条件即为TestPassed。那么问题来了:是不是达到了这个条件,系统就会清除这个DTC呢?答案是否定的。故障的设置条件中需要增加一个自恢复的条件。原因是,车辆行驶的过程中所记录的DTC,并不会一直被记录下去,而是需要通过一个过程。当一直处于TestPassed,才可将这个DTC清除掉,这个过程的结果被称为自恢复,而这个过程,我们就叫做DTC的老化。
现在,我们对DTC老化有了一个初步的概念,那么这个过程是什么样的呢?这需要从DTC设计条件,UDS的附录D.7及AUTOSAR DEM三个方面去解释这个老化的过程。
一、DTC设计条件
DTC的老化是一个过程,这个过程是以循环周期作为单位。有几种周期被采用:

  • 上下电作为一个循环周期;
  • warm-up作为一个循环周期。
注:warm-up是指发动机预热达到某个预设温度。warm-up循环一般是针对排放相关DTC所设定的循环周期。
在诊断自恢复过程中,往往我们会定义30个或40个循环周期作为自恢复的条件。原因是,在一个相对较长的过程中,如果车辆没有发生这个故障,我们可以认为这个故障是一个偶发的现象,也可以认为现在的车辆处于一个相对稳定的状态。因而,可以将这个故障码清除。
二、UDS的附录D.7
下图为UDS附录D.7,用图例的方式解释了DTC老化的过程。


图三:DTCAgingCounter example
科普小知识提示:在解释协议定义的老化过程前,我们先来解释一下上图中各位的含义。

  • "TestFailed"(Bit0):当发生该DTC故障时,"TestFailed"被置1,反之被置0;
  • "TestFailedThisOperationCycle"(Bit1):在本循环周期,发生该DTC故障,该位被置1,反之置0;
  • "PendingDTC"(Bit2):该位标明是否完成了在本周期或是上一个周期的测试结果(该测试结果指的是TestPassed或是TestFailed的条件);
  • "ConfirmedDTC"(Bit3):标明该DTC故障被确认,该故障DTC代码将保存在长期存储器中;
  • "TestFailedSinceLastClear"(Bit5):表示在上次清除再次发生该DTC故障。
在ISO14229-1附录D.7中描述了DTC 老化计数器的过程。

  • 在上图中我们清晰的发现,在第二个循环周期后,“TestFailed”(Bit0)一直置0,这说明在第二循环周期后并未发生该故障。
  • “ConfirmedDTC”在44个循环周期的时候,该位被置0,说明老化过程结束,内存可以将该DTC故障移除。
  • 在上图DTC老化计数开始之所以在第五个循环周期,是因为“PendingDTC”位在第五个循环周期前置1。而发生“PendingDTC”位在第四个循环周期结束时被置0,原因是上图描述了一个情况,即“TestNotCompletedSinceLastClear”(Bit5)在第三个循环周期未完成测试,因此DTC老化计数器开始是在第五个循环周期。
  • DTC老化计数器在标号6的位置达到设定的阀值40个循环周期,换而言之,老化计数器退出是在第41个周期。
从UDS协议附录的图示来看,说明了一个问题,即DTC老化计数器的开启,需要两个条件:一个是“ConfirmedDTC”位需要置1;另一个是“PendingDTC“位,“TestFailed”位等需要置0。
三、AUTOSAR DEM
AUTOSAR DEM文档中对于DTC的老化进行了详细的定义。我们以AUTOSAR4.2.2版本为例。
1. 在AUTOSAR DEM文档中定义的DTC老化的开始阀值(见下图);
“WarningIndicatorRequested bit == 0”该位为DTC状态位的第7位。当该位置0,表示为“healing is completed”,即故障已经被治愈。那么有人会提出一个问题:如果我们在实际的工况中未设置第7位,如何进行判断呢?那只能通过“TestFailed”设置来判断是否完成“healing is completed”。除了这个判断条件,阀值在AUTOSAR设定需要涉及一个参数“DemAgingAllowed[ECUC_Dem_00622]”,两个判断条件:true: aging allowed;false: aging not allowed。
2. AUTOSAR DEM中老化计数器;
老化计数器"aging counter",用于进行老化次数的计算。诊断扩展数据老化次数就是从老化计数器这个参数提取的。老化计数器涉及"DemAgingCycleRef[ECUC_Dem_00624]"这个参数,该参数定义触发老化计数器的开启。
3. AUTOSAR DEM中需要在内存中保持;
这个被内存存储的过程,在[SWS_Dem_00824]中有详细的描述。该过程需要满足下述条件:
“UDSstatus bit3 (ConfirmedDTC) set to 1 and UDSstatus bit0 (TestFailed) set to 0.”
当满足这个条件时,DEM需要分配一个“event memory”的位置来记录DTC。
4. AUTOSAR DEM对于DTC老化的一些特殊设置;
在[SWS_Dem_01054]中描述“the UDS status bit5(TestFailedSinceLastClear)”取决于参数“DEM_STATUS_BIT_AGING_AND_DISPLACEMENT”。如果该参数被设置,则老化计数器达到阀值,UDS status bit5 (TestFailedSinceLastClear)需要被置为0。
5. AUTOSAR DEM对于排放相关DTC的设置。在[SWS_Dem_01176]中定义了除了满足相关的DTC老化机制外,需要增加200小时的条件,而且老化计数器阀值为40,也就是说必须满足40个循环周期。此外,还有一个条件,即循环周期的设置必须为“warm-up cycle”。
总结:
DTC的老化只是DTC设置的一个小问题,但是应该引起重视,特别是在制定诊断需求规范的时候,应明确DTC老化的具体措施。在之前的测试中发现,出现了TestPassed后即清除该DTC的情况。DTC的老化也是对车辆的一种保护,可以帮助诊断工程师更好的分析当前故障。
转载于:https://zhuanlan.zhihu.com/p/76717524 版权归原作者所有。