汽车DTC(Diagnostic Trouble Code(DTC) 诊断故障)代码。 在不解体(或仅卸下个别零件)的条件下,确定汽车技术状况,查明故障部位及原因的检查。包括汽车发动机的检测与诊断,汽车底盘的检测与诊断,汽车车身及附件的检测与诊断以及汽车排气污染物与噪声的检测等内容。
中文名 | 汽车DTC | 外文名 | Diagnostic Trouble Code(DTC) |
作 用 | 提供汽车故障诊断代码 | 类 别 | 汽车 |
汽车控制器(ECU)中DTC的状态位”,(DTC:Diagnostic Trouble Codes,中文含义:故障码),该文主要是介绍故障环境参数故障状态位。
从汽车ECU中读取储存的DTC(故障码)时,除了故障码本身,还可以读出很多其他的信息,包括优先级、发生次数计数器、发生时的里程和时间,以及本文中所讲的状态位(DTC status)。
bit 0 : testFailed
通常来说,ECU内部以循环的方式不断地针对预先定义好的错误路径进行测试,如果在最近的一次测试中,在某个错误路径中发现了故障,则相应DTC的这一个状态位就要被置1,表征出错。此时DTC的testFailed位被置1,但是它不一定被ECU存储到non-volatile memory中,只有当pendingDTC或confirmedDTC被置1时DTC才会被存储。而pendingDTC或confirmedDTC被置1的条件应该是检测到错误出现的次数或时间满足某个预定义的门限。当错误消失或者诊断仪执行了清除DTC指令时,testFailed会再次被置为0。
bit 1 :testFailedThisOperationCycle
这个bit用于标识某个DTC在当前的operation cycle中是否出现过testFailed置1的情况,即是否出现过错误。operation cycle的起始点是ECU通过网络管理唤醒到ECU通过网络管理进入睡眠,对于没有网络管理的ECU,这个起始点就是KL15通断。通过bit 0我们无法判断某个DTC是否出现过,比如,当前testFailed = 0, 说明当前这个DTC没有出错,如果testFailedThisOperationCycle = 1的话,就说明这个DTC在当前这个operation cycle中出过错,但是当前错误又消失了。
bit 2 : pendingDTC
根据规范的解释,pendingDTC = 1表示某个DTC在当前或者上一个operation cycle中是否出现过。pendingDTC位其实是位于testFailed和confirmedDTC之间的一个状态,有的DTC被确认的判定条件比较严苛,需要在多个operation cycle中出现才可以被判定为confirmed的状态,此时就需要借助于pendingDTC位了。pendingDTC = 1的时候,DTC就要被存储下来了,如果接下来的两个operation cycle中这个DTC都还存在,那么confirmedDTC就要置1了。如果当前operation cycle中,故障发生,pendingDTC = 1,但是在下一个operation cycle中,故障没有了,pendingDTC 仍然为 1,再下一个operation cycle中,故障仍然不存在,那么pendingDTC 就可以置0了。
bit 3 : confirmedDTC
当confirmedDTC = 1时,则说明某个DTC已经被存储到ECU的non-volatile memory中,说明这个DTC曾经满足了被confirmed的条件。但是请注意,confirmedDTC = 1时,并不意味着当前这个DTC仍然出错,如果confirmedDTC = 1,但testFailed = 0,则说明这个DTC表示的故障目前已经消失了。将confirmedDTC 重新置0的方法只有删除DTC,UDS用0x14服务,OBD用0x04服务。
bit 4 : testNotCompletedSinceLastClear
这个bit用于标识,自从上次调用了清理DTC的服务(UDS用0x14服务,OBD用0x04服务)之后,是否成功地执行了对某个DTC的测试(不管测试结果是什么,只关心是否测了)。因为很多DTC的测试也是需要满足某些边界条件的,并不是ECU上电就一定会对DTC进行检测。
testNotCompletedSinceLastClear = 1 : 自从清理DTC之后还没有完成过针对该DTC的测试。
testNotCompletedSinceLastClear = 0 : 自从清理DTC之后已经完成过针对该DTC的测试。
bit 5 : testFailedSinceLastClear
这个位与bit 1 :testFailedThisOperationCycle有些类似,后者标识某个DTC在当前的operation cycle中是否出现过testFailed置1的情况,而testFailedSinceLastClear标识的是在上次执行过清理DTC之后某个DTC是否出过错。
testFailedSinceLastClear = 0 , 自从清理DTC之后该DTC没有出过错。
testFailedSinceLastClear = 1, 自从清理DTC之后该DTC出过至少一次错。
bit 6 : testNotCompletedThisOperationCycle
这个位与bit 4 : testNotCompletedSinceLastClear类似,后者标识自从上次调用了清理DTC的服务之后,是否成功地执行了对某个DTC的测试。而testNotCompletedThisOperationCycle则标识在当前operation cycle中是否成功地执行了对某个DTC的测试。
testNotCompletedThisOperationCycle = 1 : 在当前operation cycle中还没在完成过针对该DTC的测试。
testNotCompletedThisOperationCycle = 0 : 在当前operation cycle中已经完成过针对该DTC的测试。
bit 7 : warningIndicatorRequested
某些比较严重的DTC会与用户可见的警告指示相关联,比如仪表上的报警灯,或者是文字,或者是声音。这个warningIndicatorRequested就用于此类DTC。
warningIndicatorRequested = 1 : ECU请求激活警告指示。
warningIndicatorRequested = 0: ECU不请求激活警告指示。
注意,如果这个DTC不支持警告指示,则这个位永远置0。
总结来说,这8个状态位只用文字描述的话会略显抽象,如果在工作中看到这些状态位的变化,那么就很好理解它了。
DIC开头的字母表示被监测到的故障系统:
P为动力系统:B为车身系统:C为底盘系统;U为网络或数据通讯传输系统故障码。
第一个数字是通用码(对所有的车辆制造商),或是制造商专用码。比如:
0 指一般码,1指制造商专用码。美国通用汽车公司就有帮助你诊断车辆技术状况所特定的数字类型编码。
第二个数字指出了受影响的故障系统类型,数字从1-7:
1 为燃油及空气计量系统;
2 为燃油及空气计量系统(特指喷射系统回路功能不良);
3 为点火系统或缺缸监测系统;
4 为辅助排放系统;
5 为车速控制和怠速控制系统;
6 为计算机输出线路系统;
7 为变速箱;
最后两位数字指出了系统中出现故障的部件或部位,此处不敷述。
01101001
Bit 0
Bit 0: testFailed,测试错误/故障激活。
该值为1:表示当前故障DTC激活。
01101001
Bit 1
Bit 1:testFailedThisOperationCycle,当前运行周期内测试错误/故障激活过。
该值为0:即当前周期内故障未发生过。
01101001
Bit 2
Bit 2: pendingDTC,当前运行周期内故障码发生过,待确认。
该值为0:当前运行周期内故障码未发生过,且上次运行周期内故障码也未发生过
01101001
Bit 3
Bit 3:confirmedDTC,确认DTC。
该值为1:DTC已确认,已存储到ECU的non-volatile memory内存中。
bit 3 confirmedDTC,该故障码已确认。该故障在测试程序内连续出现。激活,当前运行周期下,该故障可认为足够成熟,作为确认的故障。如果故障激活,且经多次测试故障成熟,该字位bit 3值为1,否则为0。只有当VCDS“清除故障码”,该字位bit 3才会置零。