前言
在汽车生产、售后问题的分析过程中,DTC扮演重要角色。拿到问题车之后,最先解读的信息,应该就是故障码信息了。为什么车辆开着开着动力不足,甚至熄火、为什么仪表突然亮起了故障灯、为什么好好的Carplay 没了声音,等等,这些问题的分析都离不开对DTC的分析。各个OEM的诊断设备或许有差异,故障码的含义也千差万别,但对故障码状态位的规定大同小异。在此,总结下自己对DTC 状态位的理解。
一、DTC的形式
我们使用诊断工具中获取的车辆诊断报告中,DTC是这样的,
或者是这样的。
一般DTC内容包括显示故障码及其描述、故障码的状态。从故障码及其描述,我们能大致了解故障发生的原因;从故障码的状态,我们可以看出当前故障是否还存在。
二、故障码状态及含义
故障码状态由一个字节,即8位2进制数表示。
DTC状态位及含义做了详细的解释,可在ISO14229 中查询。按照理解,作下整理如下:
Bit 0 testFailed
Bit 0 表示最近一次的诊断测试结果是否失败。逻辑“1”表示,最近一次测试,DTC的诊断测试失败。逻辑“0”表示,最近一次测试,DTC的诊断测试没有失败。这一位为“1”,不一定会被ECU存储。DTC被清除的话,这一位会变为0。“1”与“0”转换的逻辑如下图。
e.g. 拔除发动机上某传感器插头,在点火开关一直2档的状态下,DTC状态由“27”变为“26”。Test failed 这一位从1 变为0。即最近一次诊断的结果passed,状态位出现变化。
Bit 1 testFailedThisOperationCycle
Bit 1 指示当前Operation Cycle 是否测试失败。逻辑“1” 表示,当前Operation Cycle 测试失败;逻辑“0”表示,当前Operation Cycle 测试无失败。
Operation Cycle 是一个重要概念,指诊断指监控开始到结束的时间段,一个Operation Cylce 可以包含一个或多个Monitoring Cycle。Operation Cylce开始和结束的条件,一般可以由OEM自己制定,但对于和排放相关的诊断,开始和结束的条件一般在法规中有规定,OEM需要遵循相关规定。
常用到的Operation Cycle 有控制单元上下电的时间段、点火开关开关、暖机循环(排放相关DTC)等。逻辑“1”和“0”转换关系。下一个Operation Cycle 开始时但开始但未完成监控,这一位为0,与上一个Operation Cycle 的测试结果无关。总线上报文见下图。
Bit 2 pendingDTC
Bit 2 指示当前或者上一个Operation Cycle测试是否出现过测试失败的情况。逻辑 “1”表示当前或者上个Operation Cycle 出现过测试失败的情况;逻辑“0” 表示当前或者上个Operation Cylce 未出现过测试失败的情况。
从下图可见,Bit 2 与Bit 1 置逻辑“1 ”的条件相同,但从逻辑“1” 变为“0” 的条件不同。
Bit 2 新Operation Cylce 不会直接置“0”,只有在测试结果通过时,才会变为“0”。
Bit 3 confirmedDTC
Bit 3 指示故障是否完全确认。逻辑 “1”,故障已经被完全确认存在,逻辑“0”则故障不完全被确认。一般由OEM规定Confirmed DTC 的判断条件,例如,连续2次operation Cycle 都测试失败,该逻辑位置“1”、或者1个operation Cycle,连续监控结果都是失败。
这一位为“1”不一定代表当前operation cycle 故障一定还存在,因为逻辑“1”变为“0”需要一定的条件,如40 warm-up cycles 都没有测试失败的情况,逻辑“1”才能变为逻辑“0”。
Bit 4 testNotCompletedSinceLastClear
Bit 4 指示上次清错之后,测试是否完成。逻辑“1”表示测试未完成,逻辑“0”测试已经完成。这一位与测试结果无关,与测试过程是否完成有关。这一位比较好理解,按照字面意思理解即可。
Bit 5 testFailedSinceLastClear
Bit 5 指示上次清错之后,是否测试失败。逻辑“1”表示上次清错之后,至少存在1次测试失败的情况;逻辑“0”表示上次清错之后,没有测试失败。与Bit 1 相似,bit 1 前提条件是这个operation Cycle,而Bit 5前提条件是清错之后。“0”“1”转换条件如下。
Bit 6 testNotCompletedThisOperationCycle
Bit 6指示当前operatio Cycle 测试是否完成。逻辑“1”表示当前Operation Cycle已完成,逻辑“0”表示当前操作循环测试未完成。
Operation Cycle 开始时,测试未完成,Bit 6 为逻辑“1”,测试完成后,Bit 6 变为逻辑“0”。
Bit 7 warningIndicatorRequested
Bit 7指示ECU是否请求故障灯或者仪表报警。逻辑“1”表示请求故障灯或仪表报警,逻辑“0”表示不请求故障灯或仪表报警。
这一位特别注意的是,有些DTC由于OEM设定从来就不会触发报警,则这一位一直为“0”,如一些舒适性相关的故障码;故障灯点亮的触发条件与故障确认的触发条件不完全相同,多说情况下会更苛刻,比如连续两次确认故障码存在才能点亮故障灯,以免造成驾驶员恐慌。
总结
DTC 状态位的种类比较多,实际问题中可以多加体会。针对一些不稳定的故障,我们可以根据故障码的状态位,给出一些合理的推断及解决问题的方法。