诊断故障码-DTC解析与应用指南

相信相信的力量,相信坚持的力量
乘风立潮头,扬帆追梦行。

目录

1、基本概念

2、DTC的构成

3、故障码解析

4、DTC状态掩码(StatusOfDTC)

4.1、DTC状态掩码详细解释

bit 0 : testFailed

​bit 1 : testFailedThisOperationCycle

bit 2 : pendingDTC

​bit 3 : confirmedDTC

bit 4 : testNotCompletedSinceLastClear

bit 5 : testFailedSinceLastClear

bit 6 : testNotCompletedThisOperationCycle

bit 7 : warningIndicatorRequested

4.2、历史故障与当前故障

5、快照数据和扩展数据

6、相关术语


1、基本概念

DTC(Diagnostic Trouble Code)即诊断故障码,DTC是汽车电子系统故障的身份ID”,ECU检测到某个系统或部件出现故障时,它会生成一个DTC,每个DTC都唯一对应一个特定的故障类型或诊断事件。通过读取和分析DTC,技术人员可以了解故障的具体信息,如触发条件、解除条件以及系统的功能表现等。

2、DTC的构成

根据ISO 15301-6和ISO 14229-1的故障诊断码格式规定,故障码信息由四字节组成,如下表

其中前三个字节表示故障诊断码即DTC,StatusOfDTC表示故障码状态。其中DTCHighByte、DTCMiddleByte这两个字节表示故障内码,对应五位标准故障码,第一位是字母,后面四位是数字;而故障代码的低字节代表故障失效类型信息。

3、故障码解析

1、故障诊断码高字节的第一位是字母,表示故障所属系统

2、故障诊断码高字节的第二位是数字0、1、2或3,表示故障类型

3、故障诊断码高字节的第三位是数字,表示故障所属的子系统,以动力系统故障为例

0:表示燃油和空气计量辅助排放控制整个系统;
1:表示燃油和空气计量系统;
2:表示燃油和空气计量系统(喷油器)
3:表示点火系统;
4:表示废气控制系统;
5:表示巡航、怠速控制系统;
6:车载电脑和输出信号;
7、8:传动系统控制;

4、标准故障码的第四、五位也是数字,表示具体故障对象和类型;DTCLowByte则是描述故障种类和子类型,该部分内容遵循ISO 15031-6,对于不需要该字节的DTC,可填充为0x00。

具体故障种类在ISO 15031-6中详细定义:

4、DTC状态掩码(StatusOfDTC)

DTC状态位,又叫DTC状态掩码,用来指示DTC所对应的故障是否发生,是否被确认等状态。包含1个byte,每个bit都有各自的含义,但是这8个bit不一定都要使用,各个主机厂可以根据自己的需求使用其中的几个,下图为DTC状态掩码表:

4.1、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测试的最新结果表明了一个确认的失败结果。

DTC Bit0 更新逻辑


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结果。

DTC Bit1更新逻辑

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并锁定

DTC Bit2更新逻辑


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,且尚未满足老化标准

DTC Bit3更新逻辑

bit 4 : testNotCompletedSinceLastClear

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

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

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

DTC Bit4更新逻辑

bit 5 : testFailedSinceLastClear

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

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

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

DTC Bit5更新逻辑

bit 6 : testNotCompletedThisOperationCycle

该位表示在当前检测循环周期过程中DTC test是否通过,每次进入新的cycle都会先置0,若完成了置0,未完成置1。在调用ClearDiagnosticDTC后需要置1。

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

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

DTC Bit6更新逻辑

bit 7 : warningIndicatorRequested

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

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

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

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

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

DTC Bit7更新逻辑

4.2、历史故障与当前故障

历史故障是过去发生但当前还没有清除的故障码,历史故障产生的原因有两种情况,一种是故障己经排除,只是未清除故障码,此代码清除后,故障就不会再次发生;另一种是故障并未排除,只是当前没有发生,此代码清除后,当故障再次发生时,故障还会出现。

当前故障是正发生的故障产生的故障码,当前故障是确实存在的故障引起的,它属于持续性故障产生的故障码,它不会被清除。

历史故障与当前故障对应上表,当前故障为bit0是1的故障,历史故障是指bit0为0但bit3为1的故障。

5、快照数据和扩展数据

除了DTC本身之外,项目中最常用的功能就是快照数据和扩展数据。

DTC快照数据

DTC快照指与某个DTC相关的特定数据记录,存储在服务器内存中,DTCSnapshot通常用于在检测到系统故障时存储对应数据。
DTCSnapshot可作为自系统发生故障后数据值的快照。DTCSnapshot内存储的数据参数应该与DT相关联。
一般是指电源模式、温度、时间戳、车速等信息。

如何获取DTC快照数据

通过19 04服务,诊断工具可以获取相关的DTCSnapshot信息,通过获取DTC快照数据,通过DTC特定数据参数可以帮助技术人员在检修时减少错误的故障隔离操作。

DTC扩展数据

在故障发生时其他的辅助故障信息,DTC故障发生次数、老化次数、故障持续时间、故障后行驶里程等,可以通过19 06服务获取DTC扩展数据。

6、相关术语

测试(test)

就是判断当前条件是否满足故障码上报的条件,不同DTC的判断条件不同,判断时机和周期也不同,有些故障在一个操作循环内仅运行一次,有些则是周期性判断。

操作循环(operation cycle)

定义了测试开始和结束条件,operation cycle开始时开始检测故障,结束时停止检测。

老化(aging)

被记录的DTC,如果这个故障不再出现,那就不会一直被记录下去,这时是需要一个过程:当测试结果连续出现多少次通过,才可以将这个DTC清除,这个过程就叫老化,多少次称为老化阈值。
常用老化阈值:40cycle

本文参考:DTC状态掩码(Status Of DTC)-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值