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


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逻辑时正确响应

三、关键测试场景详解

  1. TC8616 高频率事件压力测试
  • 测试步骤:
    1. 配置周期1ms的事件响应:86 00 03 0001 00000001 02
    2. 持续触发事件(如信号波动)
    3. 监测总线负载率及ECU资源占用
  • 验证要点:
    • 总线负载率≤70%(CAN FD标准)
    • ECU CPU占用率≤90%
  1. TC8624 多事件协同触发验证
  • 测试流程:
    1. 配置组合事件:86 00 04 0002 [DID=0x0110] > 0x50 AND [DTC=0x0123]
    2. 分别触发单个条件及组合条件
  • 校验规则:
    • 仅当油门开度>80%且DTC激活时发送响应
    • 逻辑运算符(AND/OR)解析正确

四、测试执行建议

  1. 工具链配置
cpp 复制代码
// CAPL脚本示例:事件响应监控 
variables {
  message 0x7E0 diagResp;
  msTimer eventMonitor;
}
 
on diagResponse 0x86 {
  if (this.req.subfunc == 0x00) {
    setTimer(eventMonitor, 100);  // 启动事件监控 
  }
}
 
on timer eventMonitor {
  // 模拟事件触发条件(如改变信号值)
  @sysVar::EngineSpeed = 3000;
}
  1. NRC覆盖矩阵
NRC 关联用例 触发条件
0x12 TC8604 非法子功能参数
0x13 TC8609 报文长度错误
0x14 TC8621 大数据块超限
0x22 TC8615 生产模式限制
0x24 TC8619 无效事件ID操作
0x31 TC8607/TC8608 无效事件类型/参数越界
0x33 TC8606 安全访问未授权
0x7E TC8605 会话模式不匹配

五、特殊测试场景

  1. 多事件优先级控制

ECU Tester 事件A响应(优先级1) 事件B响应(优先级2) 事件A优先发送 ECU Tester

  1. 生产模式行为验证
测试项 标准要求 验证方法
事件配置锁止 仅允许读取 尝试配置DTC触发事件
响应频率限制 ≤1Hz 配置高频事件并监测总线

说明:本测试用例集覆盖ISO 14229-1:2023 §7.5.5全部条款,并通过Vector CANoe 15.0+验证。

系列目标

系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

相关推荐
初学者7.8 分钟前
lodash手写源码-cloneDeep,debounce,throttle
笔记·学习·loadsh
eggcode1 小时前
IDEA与Maven使用-学习记录(持续补充...)
学习·maven·intellij-idea
LaughingZhu2 小时前
PH热榜 | 2025-03-10
前端·人工智能·经验分享·搜索引擎·产品运营
孞㐑¥2 小时前
C++vector类
开发语言·c++·经验分享·笔记
charlie1145141913 小时前
从0开始的操作系统手搓教程33:挂载我们的文件系统
学习·系统架构·操作系统·教程·文件系统·手搓教程
zsmydz8883 小时前
汽车一键启动按钮更换注意事项
汽车
尚学教辅学习资料4 小时前
基于SSM+Vue的汽车维修保养预约系统+LW示例
前端·vue.js·汽车·java毕设·汽车维修
雨墨C4 小时前
LLM学习之路-01-第一章-预训练/搞懂大模型的分词器(二)
人工智能·学习·自然语言处理·chatgpt·大模型·transformer
skywalk81634 小时前
OWL(Optimized Workforce Learning): 优化劳动力学习的通用智能体,用于处理现实世界的自动化任务(58.18 平均分)
人工智能·学习·自动化·agent