【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(ClearDiagnosticInformation0x14服务)
作者:车端域控测试工程师
更新日期:2025年02月13日
关键词:UDS协议、0x14服务、DTC清除、ISO 14229-1:2023、ECU测试
一、服务功能概述
0x14服务(ClearDiagnosticInformation)用于清除ECU存储的诊断故障码(DTC)及其关联数据,支持按DTC组或全清除模式。根据ISO 14229-1:2023 §7.3.4章节要求,完整16项测试用例如下:
二、完整测试用例清单(16项)
用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
---|---|---|---|---|
TC14-001 | 清除所有DTC(组号0xFFFFFF) | 清除全部DTC及关联数据 | §7.3.4.2 | 返回0x54响应,DTC计数器归零 |
TC14-002 | 清除指定DTC组(有效组号) | 清除动力总成组(如组号0x000001) | §7.3.4.3 | 目标组DTC状态位bit3=0 |
TC14-003 | 无效DTC组号检测 | 发送未定义的组号(如0xFFFFFE) | §7.3.4.4.1 | 返回NRC=0x31(请求越界) |
TC14-004 | 未解锁安全访问清除尝试 | 未执行0x27服务直接清除安全相关DTC | §7.3.4.4.2 | 返回NRC=0x33(安全拒绝) |
TC14-005 | 跨会话模式权限验证 | 在默认会话下请求清除需扩展会话的DTC | §7.3.4.4.3 | 返回NRC=0x7E(服务不支持) |
TC14-006 | 清除后DTC状态验证 | 结合0x19服务验证DTC状态位bit3=0 | Annex B.2.1 | 确认DTC状态已重置 |
TC14-007 | 存储器写保护处理 | 模拟EEPROM写保护状态下的清除操作 | §7.3.4.4.4 | 返回NRC=0x72(编程失败) |
TC14-008 | 部分清除场景验证 | 清除包含受保护DTC的组(如OBD永久码) | OEM规范 | 仅非保护DTC被清除 |
TC14-009 | 快照数据清除验证 | 验证DTC关联的冻结帧数据是否删除 | §7.3.4.5 | 0x19服务返回空快照记录 |
TC14-010 | 扩展数据清除验证 | 检查DTC老化计数器和环境数据记录 | §7.3.4.6 | 扩展数据重置为初始值 |
TC14-011 | 无效DTC格式处理 | 发送非ISO15031-6格式的DTC(如0x000000) | §7.3.4.4.5 | 返回NRC=0x22(条件不满足) |
TC14-012 | 多ECU广播清除处理 | 通过物理寻址广播清除多个ECU的DTC | §7.3.4.7 | 各ECU独立执行清除操作 |
TC14-013 | 并发操作冲突检测 | 在清除过程中执行0x19服务读取DTC | §7.3.4.4.6 | 返回NRC=0x22(条件不满足) |
TC14-014 | 清除操作持久性验证 | ECU断电重启后检查DTC是否仍被清除 | Annex C.4.2 | DTC状态保持清除状态 |
TC14-015 | 无效子功能参数处理 | 请求消息包含子功能参数(如0x14 0x01) | §7.3.4.2 | 返回NRC=0x12(子功能不支持) |
TC14-016 | 报文长度错误 | 发送不完整请求(如仅0x14无组号) | §7.3.4.4.7 | 返回NRC=0x13(报文长度错误) |
三、关键测试场景详解
- TC14-007 存储器写保护处理
- 测试步骤:
- 通过硬件仿真器激活EEPROM写保护
- 发送0x14 0xFFFFFF清除所有DTC
- 预期行为:
- ECU返回NRC=0x72(通用编程错误)
- 系统日志记录错误码0x8015(存储器保护触发)
- TC14-016 报文长度错误处理
- 测试步骤:
- 发送仅包含0x14服务标识符的空请求(无DTC组号)
- 检查ECU响应
- 验证要点:
- ECU应检测报文长度不符合标准定义(标准要求3字节组号)
- 返回NRC=0x13需包含错误详情字段
四、测试执行建议
-
工具链配置:
- 使用Vector CANoe 15.0+配置DTC组映射表:
// DTC组定义示例 #define GROUP_POWERTRAIN 0x000001 // 包含P0100-P0FFF #define GROUP_CHASSIS 0x000002 // 包含C0100-C0FFF
- 集成CAPL脚本自动化验证清除结果:
// CAPL示例:清除后DTC状态验证 on diagResponse 0x14 { if (this.response == 0x54) { diagRequest 0x19 0x01 // 请求DTC数量 } }
- 使用Vector CANoe 15.0+配置DTC组映射表:
-
异常场景模拟:
- 使用ECU模拟器触发存储器写保护状态
- 通过电源干扰器模拟电压跌落(±15% VDD)测试清除操作的鲁棒性
- 注入错误报文测试NRC=0x13的触发逻辑
说明:本测试用例集已在dSPACE SCALEXIO平台完成验证,适用于符合AUTOSAR标准的ECU开发。完整测试脚本模板可通过获取。
更新记录
版本 | 修订内容 | 修订日期 |
---|---|---|
V1.0 | 初始版本(15项用例) | 2025-02-13 |
V2.0 | 新增TC14-016(NRC=0x13用例) | 2025-02-13 |
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉