
诊断故障码(Diagnostic Trouble Code,简称DTC)是汽车电子控制单元(ECU)在检测到系统异常时生成的数字编码标识符。作为故障的“身份标识符”,每个DTC对应一种特定故障类型,维修人员通过诊断仪读取DTC后,可快速定位故障范围。DTC的本质意义在于其标准化——通过ISO 15031-6、SAE J2012等国际标准,DTC实现了跨车型、跨ECU的通用性。
国家标准《道路车辆 车辆和外部设备之间排放相关诊断的通信 第6部分:诊断故障码定义》(计划号:20243432-T-339)正在制定中,该标准等同采用ISO 15031-6:2015。截至2026年7月,DTC已成为汽车诊断领域最基础的通信语言。
DTC由五个字符组成,遵循ISO 15031-6标准。五个字符各自承载不同的信息维度:
第1字符(故障所属系统) :采用字母前缀标识。
P(Powertrain,动力总成):发动机、变速箱等动力相关部件
C(Chassis,底盘):制动系统、悬挂系统等行驶机构
B(Body,车身):安全气囊、车载电子设备等车身部件
U(Network,网络通信):CAN总线、LIN总线等车载通信协议
这一PCBU分类体系覆盖了车辆四大核心系统。
第2字符(故障类型) :标识故障码的标准化程度。
0:ISO/SAE标准定义的通用故障码
1:汽车制造商自定义的故障码
2/3:ISO/SAE预留
第3字符(子系统) :进一步细化故障所属的子系统范围。以动力总成(P)为例,0代表燃油与排放控制系统,1代表燃油与空气计量系统,2代表喷油器相关故障。
第4-5字符(具体故障对象与类型) :定位具体故障部件或故障现象。
以故障码P0127为例:P表示动力总成系统,0表示ISO/SAE标准故障,1表示燃油与空气子系统,27表示进气温度过高。
在底层通信层面,DTC由三个字节组成:DTC High Byte、DTC Middle Byte和DTC Low Byte。其中前两个字节对应五位标准故障码,Low Byte描述故障种类和子类型(如信号异常、电路故障、短路等),若不需要该字节可填充为0x00。
DTC并非一旦生成便永久存在。系统为每个DTC设定了完整的生命周期管理机制。
DTC状态字节由8个bit位组成,分别表示故障在不同时间维度的状态。其中:
bit0(testFailed) :表示当前时间点是否检测到故障
bit1(testFailedThisOperationCycle) :表示当前操作周期(从车辆上电启动到熄火休眠)内是否检测到故障
bit3(confirmedDTC) :表示故障已被确认并可记录到非易失性存储器中
为防止故障误报,ISO 14229规定了防抖(Debounce)功能——只有满足一定条件(基于计数器或基于时间)时,才能确认故障发生。
DTC老化(Aging)机制则负责故障码的自动清除。当系统持续处于“测试通过”(TestPassed)状态达到一定数量的操作循环后(通常为30或40个循环),系统会认为该故障已恢复,自动清除该DTC。
以下为OBD-II系统中最常见的几个故障码:
P0171 - 系统过稀(第1排) :表示混合气中空气过多、燃油过少。可能原因包括空气流量传感器后方的空气泄漏、PCV系统泄漏、氧传感器故障、燃油滤清器污染、喷油器堵塞等。
P0300 - 随机/多缸失火:表示一个或多个气缸未按预期方式燃烧混合气。可能原因包括火花塞或点火线圈故障、燃油压力异常、EGR阀卡滞等。失火率过高可能导致三元催化转换器过热损坏。
P0420 - 催化转换器效率低于阈值(第1排) :指示三元催化器性能下降。可能原因包括三元催化器老化或堵塞、氧传感器故障、排气系统泄漏等。
维修人员通过诊断仪向车辆发送UDS协议$19服务**(读取故障信息请求),ECU即反馈存储的DTC。维修完成后,通过**$14服务清除ECU中记录的故障信息。
2026年起,OBD检测正式成为燃油车年检的前置必检项目。根据现行规定,OBD检查的核心内容包括:
MIL故障灯:启动后必须熄灭,常亮直接不合格
排放相关故障码:P0xxx等排放类故障码(当前码或历史码)将导致不合格;非排放类历史故障码一般不影响通过
通讯与就绪状态:能正常读取数据,就绪未完成项不超过2项
OBD有未清除的历史故障码会拒检。使用OBD信号屏蔽器屏蔽故障码出具虚假合格报告属于环境违法行为。
DTC技术正随汽车智能化进程持续演进。UDS(统一诊断服务)协议正逐步取代传统OBD诊断模式,支持更丰富的诊断功能。车载以太网(DoIP) 的普及使DTC的传输带宽与实时性大幅提升。在软件定义汽车时代,DTC将与整车软件架构深度整合,支持远程诊断与预测性维护。国家标准层面,中国正加快推动OBD诊断设备技术要求等标准的制定与实施。