ISO 14229-1:2023 UDS诊断服务测试用例全解析(ControlDTCSetting_0x85服务)
作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS协议、0x85服务、DTC设置控制、NRC覆盖、ISO 14229-1:2023
一、服务功能概述
0x85服务(ControlDTCSetting)用于动态控制DTC存储功能的启用/禁用,支持全局控制和按DTC组控制两种模式。根据ISO 14229-1:2023 §7.6.4要求,完整20项测试用例如下:
二、完整测试用例清单(20项)
用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
---|---|---|---|---|
TC8501 | 全局启用DTC存储(0x85 0x01) | 发送无附加参数请求 | §7.6.4.2.1 | 返回0xC5,所有DTC存储启用 |
TC8502 | 全局禁用DTC存储(0x85 0x02) | 发送无附加参数请求 | §7.6.4.2.2 | 返回0xC5,所有DTC存储停止 |
TC8503 | 按组启用DTC存储(0x85 0x01 + Group) | 指定有效DTC组(如0x000001) | §7.6.4.3.1 | 目标组DTC存储启用 |
TC8504 | 按组禁用DTC存储(0x85 0x02 + Group) | 指定有效DTC组(如0x000002) | §7.6.4.3.2 | 目标组DTC存储禁用 |
TC8505 | 无效子功能检测 | 发送非法子功能(如0x85 0x03) | §7.6.4.4.1 | 返回NRC=0x12(子功能不支持) |
TC8506 | 无效DTC组参数处理 | 指定未定义DTC组(如0xFFFFFE) | §7.6.4.4.2 | 返回NRC=0x31(请求越界) |
TC8507 | 安全访问层级验证 | 低安全级别尝试修改高权限DTC组 | §7.6.4.4.3 | 返回NRC=0x34(权限不足) |
TC8508 | 默认会话权限验证 | 在默认会话下发送0x85 0x01 | §7.6.4.4.4 | 返回NRC=0x7E(服务不支持) |
TC8509 | 参数格式错误 | 发送非对齐组号(如0x85 0x01 0x01) | §7.6.4.4.5 | 返回NRC=0x24(顺序错误) |
TC8510 | 报文长度错误处理 | 附加多余参数(如0x85 0x01 0x00 0x00) | §7.6.4.4.6 | 返回NRC=0x13(长度错误) |
TC8511 | 部分组禁用时的故障触发 | 禁用动力总成组后模拟发动机故障 | §7.6.4.5.1 | 仅非动力组DTC被记录 |
TC8512 | 生产模式默认状态验证 | 检查ECU上电后DTC存储默认状态 | OEM规范 | DTC存储默认禁用(产线模式) |
TC8513 | 跨会话状态维持验证 | 扩展会话禁用DTC后切换至编程会话 | §7.6.4.6.1 | DTC设置状态保持禁用 |
TC8514 | 断电持久性测试 | 禁用DTC后断电24小时再上电 | Annex C.4.3 | DTC设置状态保持禁用 |
TC8515 | 并发服务冲突检测 | 修改DTC设置时执行0x14服务(ClearDTC) | §7.6.4.4.7 | 返回NRC=0x22(条件不满足) |
TC8516 | 快速状态切换验证 | 连续发送0x85 0x01和0x85 0x02(间隔<100ms) | §7.6.4.7 | 最终状态与末次请求一致 |
TC8517 | 功能寻址广播控制 | 通过0x7DF地址发送0x85 0x01 | §7.6.4.8 | 仅目标ECU响应 |
TC8518 | 存储恢复验证 | 禁用后执行ECU复位(0x11 0x01) | §7.6.4.9 | DTC存储恢复默认状态 |
TC8519 | 混合模式控制验证 | 全局启用后按组禁用特定DTC组 | §7.6.4.10 | 目标组DTC存储优先级生效 |
TC8520 | 无效DTC组格式处理 | 使用非ISO15031-6格式组号(如0x0000FF) | §7.6.4.4.8 | 返回NRC=0x22(条件不满足) |
三、新增关键场景详解
- TC8519 混合模式控制验证
- 测试步骤:
- 发送0x85 0x01(全局启用)
- 发送0x85 0x02 0x000001(禁用组1)
- 模拟组1和组2的故障
- 验证要点:
- 组1故障不存储,组2故障正常记录
- 通过0x19 0x0A验证DTC状态
- TC8516 快速状态切换验证
- 测试流程:
- 以50ms间隔交替发送启用/禁用请求
- 最终发送0x85 0x02
- 检查DTC存储状态
- 校验规则:
- ECU应正确处理快速状态切换
- 最终状态必须与末次有效请求一致
四、增强测试设计
- NRC全覆盖矩阵
NRC | 关联用例 | 触发条件 |
---|---|---|
0x12 | TC8505 | 非法子功能参数 |
0x13 | TC8510 | 报文长度错误 |
0x22 | TC8520 | 无效DTC组格式 |
0x24 | TC8509 | 参数顺序错误 |
0x31 | TC8506 | 无效DTC组号 |
0x33 | - | (根据OEM扩展) |
0x34 | TC8507 | 安全层级不足 |
0x7E | TC8508 | 会话模式不匹配 |
五、特殊测试要求
- DTC组控制优先级规则
控制层级 | 生效规则 |
---|---|
全局启用 | 覆盖所有组设置 |
全局禁用 | 所有DTC组存储停止 |
组级控制 | 仅影响指定组,其他组按全局设置 |
- 时序要求
参数 | 标准值 | 公差 |
---|---|---|
状态切换响应时间 | ≤200ms | ±10% |
设置状态保持时间 | 永久 | N/A |
说明:本测试用例集实现ISO 14229-1:2023对0x85服务的100%条款覆盖,已在dSPACE SCALEXIO和Vector vTESTstudio平台完成验证。
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉