UDS 里面 SID 0x14 也就是 ClearDiagnosticInformation 清除诊断信息服务,是汽车 CAN 诊断最常用的基础服务,作用是让诊断仪下发指令,擦掉 ECU 内部存储的故障码 DTC、快照帧、扩展故障数据、故障计数等全部诊断记录,遵循 ISO14229 标准,在整车标定、售后维修、台架测试里高频使用。很多新手容易踩坑,以为 0x14 发出去就代表故障消失,实际上它只擦除已经存下来的诊断日志,不会修复硬件本身故障,如果故障条件还存在,ECU 监测逻辑依旧会重新报 DTC;另外这个服务没有子功能,也不支持抑制正响应位,报文结构简单,但对会话条件、电压、ECU 状态有要求,不满足条件会返回否定响应。我们先把报文格式、常用分组、负响应码讲清楚,再给实操流程,最后说开发和测试里的注意点。
报文结构说明表
| 报文方向 | 内容 | 说明 |
|---|---|---|
| 诊断仪→ECU(请求) | 0x14 + groupOfDTC [3 字节] + [MemorySelection 可选] | 基础固定 4 字节,MemorySelection 是 2020 版标准新增,用来选择不同 DTC 存储区,属于可选字段 |
| ECU→诊断仪(正响应) | 0x54 | 只有 1 字节,0x14+0x40 得到正响应 SID;就算本来没有故障码,请求合法也返回 0x54 |
| ECU→诊断仪(负响应) | 0x7F 0x14 NRC | 0x7F 固定否定标识,0x14 是目标服务 ID,NRC 代表错误原因 |
groupOfDTC 常用分组清单
- 0xFF FF FF:清除该 ECU 下全部 DTC(日常维修、测试最常用)
- 0xFF FF 0x01:车身域 DTC(B 类故障码)
- 0xFF FF 0x02:底盘域 DTC(C 类故障码)
- 0xFF FF 0x03:网络通信类 DTC(U 类故障码)
- 0xFF FF 0x33:排放相关动力总成 DTC(P 类 OBD 故障码)
- 自定义 3 字节 DTC 编号:只清除指定单条故障码
高频 NRC 否定响应码释义
| NRC | 名称 | 常见原因 |
|---|---|---|
| 0x13 | IncorrectMessageLengthOrInvalidFormat | 报文长度不对、字节排版错误,比如少发 groupOfDTC |
| 0x22 | ConditionsNotCorrect | 条件不满足:电压超限、当前会话不允许、车辆运行状态禁止清故障 |
| 0x31 | RequestOutOfRange | 传入的 groupOfDTC 分组不存在,ECU 不支持该 DTC 组 |
| 0x72 | GeneralProgrammingFailure | 擦写非易失存储(EEPROM/Flash)失败,硬件存储异常 |
| 0x78 | ResponsePending | 擦除耗时较长,ECU 先返回这个,擦完再发 0x54,防止诊断仪超时 |
实操调用步骤
- 先切换诊断会话:大部分 ECU 要求在默认会话或者扩展会话下才能执行 0x14,编程会话一般不开放清 DTC
- 前置读取 DTC:先用 0x19 服务读取并保存故障、快照数据,清掉之后快照数据无法找回
- 下发 0x14 请求报文,比如清全部故障:0x14 0xFF 0xFF 0xFF
- 接收 ECU 响应:收到 0x54 代表清除指令执行完成;收到 0x78 则等待后续报文;收到其他 NRC 对照表格排查问题
- 校验结果:再次调用 0x19 读取 DTC 列表,确认对应故障记录已经清空
开发与测试重点注意事项
- 0x14 清除范围包含:DTC 状态字节、冻结帧快照、扩展故障数据、故障计数器、首次故障时间记录,不是只清 DTC 编号
- 故障真实存在时,清除之后监视器还会重新置位 DTC,不能靠 0x14 掩盖硬件故障
- 部分整车有策略限制:发动机运转、车速不为 0 时,禁止清除排放相关 DTC,直接返回 0x22
- MemorySelection 属于可选扩展,很多老 ECU 不支持,不要随便追加这个字节,避免报 0x13 长度错误
【常见问题】
问题 1:UDS SID 0x14 ClearDiagnosticInformation 服务返回 0x54,是不是代表车辆故障已经修好?
回答 1:不是,UDS SID 0x14 ClearDiagnosticInformation 服务返回 0x54 只代表 ECU 成功擦除存储的诊断信息,硬件故障条件还存在的话,ECU 监测逻辑会再次上报 DTC。
问题 2:UDS SID 0x14 ClearDiagnosticInformation 服务,0x14 FF FF FF 这条报文作用是什么?
回答 2:UDS SID 0x14 ClearDiagnosticInformation 服务里 0x14 FF FF FF 是最常用指令,groupOfDTC 填 0xFFFFFF,代表清除当前 ECU 内部存储的全部 DTC 以及配套快照、扩展诊断数据。
问题 3:调用 UDS SID 0x14 ClearDiagnosticInformation 收到负响应 7F 14 22,一般是什么原因?
回答 3:调用 UDS SID 0x14 ClearDiagnosticInformation 收到 7F 14 22,NRC 为 0x22,代表 ConditionsNotCorrect,ECU 当前条件不允许清除诊断信息,常见是会话不对、电压异常、车辆工况限制。
问题 4:UDS SID 0x14 ClearDiagnosticInformation 服务有没有子功能,能不能使用抑制正响应位?
回答 4:UDS SID 0x14 ClearDiagnosticInformation 服务没有子功能字段,协议明确不支持 suppressPosRspMsgIndicationBit 抑制正响应位,只要执行成功一定会回复 0x54 正响应。
【参考资料】
[2026-11-11](详解 UDS CAN 诊断:ClearDiagnosticInformation Service(SID:0x14))电子工程专辑
[2026-10-30](0x14 ClearDiagnosticInformation — UDS DTC Clear)udssimulator.com
[2025-04-16](Clear Diagnostic Information (0x14) Service in UDS Protocol)PiEmbSysTech
[2024-07-20](UDS 基础知识介绍)汽车测试网
【免责声明】
本文基于 ISO14229-1 标准公开内容整理讲解 UDS SID 0x14 ClearDiagnosticInformation 服务,不同主机厂、ECU 软件会增加自定义限制策略;报文示例、NRC 说明仅用于学习测试,实车标定、维修诊断请配合原厂诊断规范,不直接作为量产开发、线下维修的唯一依据。
