【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十节】

发布于:2025-02-14 ⋅ 阅读:(156) ⋅ 点赞:(0)

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(报文长度错误)

三、关键测试场景详解

  1. TC14-007 存储器写保护处理
  • 测试步骤:
    1. 通过硬件仿真器激活EEPROM写保护
    2. 发送0x14 0xFFFFFF清除所有DTC
  • 预期行为:
    • ECU返回NRC=0x72(通用编程错误)
    • 系统日志记录错误码0x8015(存储器保护触发)
  1. TC14-016 报文长度错误处理
  • 测试步骤:
    1. 发送仅包含0x14服务标识符的空请求(无DTC组号)
    2. 检查ECU响应
  • 验证要点:
    • ECU应检测报文长度不符合标准定义(标准要求3字节组号)
    • 返回NRC=0x13需包含错误详情字段

四、测试执行建议

  1. 工具链配置:

    • 使用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数量 
        }
      }
      
  2. 异常场景模拟:

    • 使用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诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉