ISO 14229-1:2023 UDS诊断服务测试用例全解析(ResponseOnEvent_0x86服务)
作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS协议、0x86服务、事件响应、ISO 14229-1:2023、ECU测试
一、服务功能概述
0x86服务(ResponseOnEvent)用于配置ECU在特定事件触发时自动发送预定义响应,支持启动(0x00)、停止(0x01)、读取状态(0x02)三种操作模式。根据ISO 14229-1:2023 §7.5.5要求,完整24项测试用例如下:
二、完整测试用例清单(24项)
用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
---|---|---|---|---|
TC8601 | 配置DTC触发响应(0x86 0x00 EventType=0x01) | 当DTC 0x0123激活时发送0x19 0x02响应 | §7.5.5.2.1 | 返回0xC6,DTC触发时自动上报 |
TC8602 | 停止事件响应(0x86 0x01 0x0001) | 终止已配置的事件响应通道 | §7.5.5.2.2 | 返回0xC6,停止事件监控 |
TC8603 | 读取事件状态(0x86 0x02) | 查询当前活动的事件配置列表 | §7.5.5.2.3 | 返回0xC6 + 配置详情 |
TC8604 | 无效子功能检测 | 发送非法子功能(如0x86 0x03) | §7.5.5.3.1 | 返回NRC=0x12(子功能不支持) |
TC8605 | 默认会话权限验证 | 在默认会话下配置事件响应 | §7.5.5.3.2 | 返回NRC=0x7E(服务不支持) |
TC8606 | 安全访问未授权操作 | 未解锁安全权限时配置高敏感事件 | §7.5.5.3.3 | 返回NRC=0x33(安全拒绝) |
TC8607 | 无效事件类型处理 | 指定未定义事件类型(如EventType=0xFF) | §7.5.5.3.4 | 返回NRC=0x31(请求越界) |
TC8608 | 参数范围越界 | 设置超限阈值(如转速阈值0xFFFF) | §7.5.5.3.5 | 返回NRC=0x31(请求越界) |
TC8609 | 报文长度错误处理 | 参数长度不足(如0x86 0x00 0x01) | §7.5.5.3.6 | 返回NRC=0x13(长度错误) |
TC8610 | 并发事件冲突检测 | 同时配置互斥事件(如DTC与信号阈值) | §7.5.5.3.7 | 返回NRC=0x22(条件不满足) |
TC8611 | 事件响应超时验证 | 配置周期响应后停止续订 | §7.5.5.4.1 | 超时后停止发送响应 |
TC8612 | 功能寻址广播配置 | 通过0x7DF地址配置事件响应 | §7.5.5.5 | 仅目标ECU激活配置 |
TC8613 | 跨会话状态维持验证 | 扩展会话配置事件后切换至编程会话 | §7.5.5.6 | 事件配置保持有效 |
TC8614 | 物理层错误恢复测试 | 总线故障时事件响应可靠性 | OEM规范 | 事件恢复后正常触发 |
TC8615 | 生产模式限制验证 | 产线下禁止配置非必要事件 | OEM规范 | 返回NRC=0x22(条件不满足) |
TC8616 | 高频率事件压力测试 | 配置1ms周期触发的事件响应 | Annex F.3.2 | 总线负载不超过70% |
TC8617 | 事件优先级验证 | 同时触发多个事件时的响应顺序 | §7.5.5.7 | 按优先级降序发送响应 |
TC8618 | 断电持久性验证 | 配置事件后ECU断电重启 | §7.5.5.4.2 | 事件配置重置为默认 |
TC8619 | 无效事件ID处理 | 停止未配置的事件(0x86 0x01 0x9999) | §7.5.5.3.8 | 返回NRC=0x24(顺序错误) |
TC8620 | 混合响应类型验证 | 配置立即响应与周期响应的组合 | §7.5.5.8 | 各类型响应独立触发 |
TC8621 | 大数据块响应验证 | 事件触发时发送超过8KB数据 | §7.5.5.3.9 | 返回NRC=0x14(报文过长) |
TC8622 | 信号阈值触发精度 | 设定模拟量阈值(如电压>13.5V) | §7.5.5.9 | 实际触发误差±0.05V以内 |
TC8623 | 诊断报文碰撞测试 | 事件响应与主动诊断请求同时发送 | OEM规范 | 无报文丢失或冲突 |
TC8624 | 多事件协同触发验证 | 配置DTC与信号组合触发条件 | §7.5.5.10 | 满足AND/OR逻辑时正确响应 |
三、关键测试场景详解
- TC8616 高频率事件压力测试
- 测试步骤:
- 配置周期1ms的事件响应:
86 00 03 0001 00000001 02
- 持续触发事件(如信号波动)
- 监测总线负载率及ECU资源占用
- 配置周期1ms的事件响应:
- 验证要点:
- 总线负载率≤70%(CAN FD标准)
- ECU CPU占用率≤90%
- TC8624 多事件协同触发验证
- 测试流程:
- 配置组合事件:
86 00 04 0002 [DID=0x0110] > 0x50 AND [DTC=0x0123]
- 分别触发单个条件及组合条件
- 配置组合事件:
- 校验规则:
- 仅当油门开度>80%且DTC激活时发送响应
- 逻辑运算符(AND/OR)解析正确
四、测试执行建议
- 工具链配置
// CAPL脚本示例:事件响应监控
variables {message 0x7E0 diagResp;msTimer eventMonitor;
}on diagResponse 0x86 {if (this.req.subfunc == 0x00) {setTimer(eventMonitor, 100); // 启动事件监控 }
}on timer eventMonitor {// 模拟事件触发条件(如改变信号值)@sysVar::EngineSpeed = 3000;
}
- NRC覆盖矩阵
NRC | 关联用例 | 触发条件 |
---|---|---|
0x12 | TC8604 | 非法子功能参数 |
0x13 | TC8609 | 报文长度错误 |
0x14 | TC8621 | 大数据块超限 |
0x22 | TC8615 | 生产模式限制 |
0x24 | TC8619 | 无效事件ID操作 |
0x31 | TC8607/TC8608 | 无效事件类型/参数越界 |
0x33 | TC8606 | 安全访问未授权 |
0x7E | TC8605 | 会话模式不匹配 |
五、特殊测试场景
- 多事件优先级控制
- 生产模式行为验证
测试项 | 标准要求 | 验证方法 |
---|---|---|
事件配置锁止 | 仅允许读取 | 尝试配置DTC触发事件 |
响应频率限制 | ≤1Hz | 配置高频事件并监测总线 |
说明:本测试用例集覆盖ISO 14229-1:2023 §7.5.5全部条款,并通过Vector CANoe 15.0+验证。
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉