【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逻辑时正确响应 |
三、关键测试场景详解
- 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诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉
相关文章:
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十八节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(ResponseOnEvent_0x86服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x86服务、事件响应、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x86…...
Spring Boot自动装配:约定大于配置的魔法解密
#### 一、自动装配的哲学思考 在传统Spring应用中,开发者需要手动配置大量的XML或JavaConfig。Spring Boot通过自动装配机制实现了**约定大于配置**的设计理念,其核心思想可以概括为: 1. **智能预设**:基于类路径检测自动配置 2…...
[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义
上周简单整理了《deepseek-r1的不同版本(满血版、蒸馏版、量化)》,这次继续完善对其的认知——补充“剪枝”,并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…...
【koa】05-koa+mysql实现数据库集成:连接和增删改查
前言 前面我们已经介绍了第二阶段的第1-4点内容,本篇介绍第5点内容:数据库集成(koamysql) 也是第二阶段内容的完结。 一、学习目标 在koa项目中正常连接数据库,对数据表进行增删改查的操作。 二、操作步骤 本篇文章…...
【数据结构】队列(Queue)
Queue 定义 Java中的队列(Queue)是一种先进先出(FIFO)的数据结构。队列只允许在一段进行插入数据操作,称为入队,在另一端进行删除数据操作,称为出队。我们可以把队列形象看作为排队。在最前面的进行出队,从最后面进行入队。 队列…...
机器学习PCA和LDA
主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。 PCA(主成分分析…...
RocketMQ - 常见问题
RocketMQ常见问题 文章目录 RocketMQ常见问题一:消息幂等问题1:什么是消费幂等2:消息重复的场景分析2.1:发送时消息重复2.2:消费时消息重复2.3:Rebalance时消息重复 3:通用解决方案3.1ÿ…...
kafka消费能力压测:使用官方工具
背景 在之前的业务场景中,我们发现Kafka的实际消费能力远低于预期。尽管我们使用了kafka-go组件并进行了相关测试,测试情况见《kafka-go:性能测试》这篇文章。但并未能准确找出消费能力低下的原因。 我们曾怀疑这可能是由我的电脑网络带宽问题或Kafka部…...
基于Spring Boot的社区居民健康管理平台的设计与实现
目录 1 绪论 1.1 研究现状 1.2 研究意义 1.3 组织结构 2 技术介绍 2.1 平台开发工具和环境 2.2 Vue介绍 2.3 Spring Boot 2.4 MyBatis 2.5 环境搭建 3 系统需求分析 3.1 可行性分析 3.2 功能需求分析 3.3 系统用例图 3.4 系统功能图 4 系统设计 4.1 系统总体描…...
网络安全架构战略 网络安全体系结构
本节书摘来自异步社区《网络安全体系结构》一书中的第1章,第1.4节,作者【美】Sean Convery 1.4 一切皆为目标 网络安全体系结构 当前的大型网络存在着惊人的相互依赖性,作为一名网络安全设计师,对这一点必须心知肚明。Internet就…...
【Spring+MyBatis】_图书管理系统(中篇)
【SpringMyBatis】_图书管理系统(上篇)-CSDN博客文章浏览阅读654次,点赞4次,收藏7次。(1)当前页的内容records(类型为List);参数:userNameadmin&&pas…...
Python - 爬虫利器 - BeautifulSoup4常用 API
文章目录 前言BeautifulSoup4 简介主要特点:安装方式: 常用 API1. 创建 BeautifulSoup 对象2. 查找标签find(): 返回匹配的第一个元素find_all(): 返回所有匹配的元素列表select_one() & select(): CSS 选择器 3. 访问标签内容text 属性: 获取标签内纯文本get_t…...
宝塔面板开始ssl后,使用域名访问不了后台管理
宝塔面板后台开启ssl访问后,用的证书是其他第三方颁发的证书 再使用 域名/xxx 的形式:https://域名:xxx/xxx 访问后台,结果出现如下,不管使用 http 还是 https 的路径访问都进不后台管理 这个时候可以使用 https://ip/xxx 的方式来…...
大一计算机的自学总结:前缀树(字典树、Trie树)
前言 前缀树,又称字典树,Trie树,是一种方便查找前缀信息的数据结构。 一、字典树的实现 1.类描述实现 #include <bits/stdc.h> using namespace std;class TrieNode { public:int pass0;int end0;TrieNode* nexts[26]{NULL}; };Tri…...
docker 安装的open-webui链接ollama出现网络错误
# 故事背景 部署完ollama以后,使用谷歌浏览器的插件Page Assist - 本地 AI 模型的 Web UI 可以比较流畅的使用DeepSeek,但是只局限于个人使用,想分享给更多的小伙伴使用,于是打算使用open-webui 来管理用户,经官网推荐…...
未来游戏:当人工智能重构虚拟世界的底层逻辑
未来游戏:当人工智能重构虚拟世界的底层逻辑 在《赛博朋克2077》夜之城的霓虹灯下,玩家或许已经注意到酒吧里NPC开始出现微表情变化;在《艾尔登法环》的开放世界中,敌人的战术包抄逐渐显露出类人智慧。这些细节预示着游戏产业正站…...
Redis集群主从切换源码解读
一切的开始 打开Redis5.0.5的源码中server.c,找到如下代码,这里运行了一个定时任务,每隔100毫秒执行一次。 /* Run the Redis Cluster cron. *//** 每隔100毫秒执行一次* 要求开启集群模式*/run_with_period(100) {if (server.cluster_enabl…...
javacv将mp4视频切分为m3u8视频并播放
学习链接 ffmpeg-demo 当前对应的 gitee代码 Spring boot视频播放(解决MP4大文件无法播放),整合ffmpeg,用m3u8切片播放。 springboot 通过javaCV 实现mp4转m3u8 上传oss 如何保护会员或付费视频?优酷是怎么做的? - HLS 流媒体加密 ffmpe…...
Golang学习笔记_33——桥接模式
Golang学习笔记_30——建造者模式 Golang学习笔记_31——原型模式 Golang学习笔记_32——适配器模式 文章目录 桥接模式详解一、桥接模式核心概念1. 定义2. 解决的问题3. 核心角色4. 类图 二、桥接模式的特点三、适用场景1. 多维度变化2. 跨平台开发3. 动态切换实现 四、与其他…...
蜂鸟视图发布AI智能导购产品:用生成式AI重构空间服务新范式
在人工智能技术飞速发展的今天,北京蜂鸟视图正式宣布推出基于深度求索(DeepSeek)等大模型的《AI智能导购产品》,通过生成式AI与室内三维地图的深度融合,重新定义空间场景的智能服务体验。 这一创新产品将率先应用于购物…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...
