诊断故障代码(Diagnostic-Trouble-Code)是现代汽车故障诊断的重要工具。
当汽车出现故障时,车载ECU(电子控制单元)会监测相关传感器和执行器的数据,并根据预设的诊断策略进行分析。如果检测到故障,ECU会将相应的DTC存储在存储器中。
DTC故障码的作用
DTC故障码主要用来就行线下的检测和故障的维修。
1)下线检测
整车下线(EOL)测试是汽车生产过程中极为关键的一环,它是在整车组装完成后、交付客户前进行的最后一项全面检测。EOL测试与零部件测试不同,它着眼于整车的性能和功能,确保每个零部件都能协同工作,从而达到整车的预期性能。
2)故障维修
汽车维修是汽车维护和修理的泛称。就是对出现故障的汽车通过技术手段排查,找出故障原因,并采取一定措施使其排除故障并恢复达到一定的性能和安全标准。汽车维修包括汽车大修和汽车小修,汽车大修是指用修理或更换汽车任何零部件(包括基础件)的方法,恢复汽车的完好技术状况和完全(或接近完全)恢复汽车寿命的恢复性修理。而汽车小修是指:用更换或修理个别零件的方法,保证或恢复汽车工作能力的运行性修理。
DTC故障码的格式及组成
故障代码由 3 个字节组成:故障代码高字节、 故障代码中字节及故障代码低字节(故障代码失效类型)。
如我们读取DTC时,会直接读取到三个字节的十六进制四数字,如依次从高字节到低字节为0x43 0xE7 0x11,叫做故障内码,或我自己称为DTCraw值。
前两个字节代表发生故障的对象,也就是故障内码;对应5位标准故障码(第一位是字母,后面四位是数字)。而故障代码的低字节代表故障失效类型信息。
DTC之故障所属系统
DTC最高字节的最高两位,指示的就是DTC属于哪个系统,即故障代码高字节的第一位是字母,表示故障所属系统;有如下的四种情况:
故障内码bit14bit15:0x00、0x01、0x10、0x11;
标准故障码表示字符:P、C、U、B;
所属系统:Powertrain动力系统故障、Chassis底盘故障、Body车身故障、Network网络故障;
通俗理解即第1个字符占用2位数据长度,表示故障所属系统,每个数值的具体意义如下
00=P,代表动力总成(引擎、传动系统、排气等)故障;
01=C,代表底盘故障,如制动系统或底盘控制模块故障;
10=B,代表车身故障,如车身电子系统故障(仪表、BCM、座椅、天窗、电动后尾门之类);
11=U,代表网络通信故障,表示车辆各系统之间的通信故障;
DTC之故障类型
故障代码高字节的第二位是数字,表示故障类型,即DTC High Byte的bit5&bit4。有如下的四种情况:
0x00:ISOSAE标准定义故障码,此处表示的是国际标准组织和SAE定义的标准故障码。此处需注意,并没有强制规定,必须满足。
0x01:制造商自定义类型故障码(主要由OEM和供应商决定)。
0x10:ISOSAE保留码。
0x11:ISOSAE保留码。
DTC之所属子系统
故障代码高字节的第三位是数字,第3个字符占用4位数据长度,表示故障所属的子系统;
以对动力系统为例(P开头的故障码),有以下的情况:
0:表示燃油和空气计量辅助排放控制整个系统;
1:表示燃油和空气计量系统;
2:表示燃油和空气计量系统(喷油器)
3:表示点火系统;
4:表示废气控制系统;
5:表示巡航、怠速控制系统;
6:车载电脑和输出信号;
7:传动系统控制;
8:传动系统控制;
以网络系统为例,有以下的情况:
0:代表网络电器,是代表网络电器自身故障(如短路,短路啥的),网络电器是指,网关,交换器,等用于转发,寻址,路由的机器。
1、2:代表网络通讯,代表节点之间失去通讯(如ECU1与ECU2,他们提供0x001和0x002相互通讯,且都是循环帧,此类帧暂时可命名为通讯帧,用户需要定义多长时间未收到通讯帧,如100ms未收到,则报出此DTC)。
3:代表网络软件,是代表网络与机器不匹配。
4、5 :代表网络数据,代表网络数据无效或错误。
对于车身域和底盘域,ISO/SAE也规定了,一部分代码,按照图中的显示表示,最多车身域和底盘域能划分为15个子系统。但是现在不知道,子系统是如何划分的。按照一般经验,子系统不应该由ISO/SAE规定,因为不同的车型,具有不同的配置,应该根据项目来实际定义。
DTC故障码的表示
诊断通信获取的DTC通常是16进制数值,而非5个字符形式,需要转换一下。将标准故障码的第一、第二位(如下例中的“U0”、“B1”)换算为对应的内码格式,再以16进制表示出来;
至于后面的其他内容,其格式本来就是16进制进行表示的,直接照着写下来即可
就是说只要将标准故障码的第一、二位进行转换即可。
例如:P0127→P(00)0(00)1(0001)2(0010)7(0111) →0x0127