【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…...
Qt 中使用 SQLite 数据库的完整指南
SQLite 是一款轻量级、嵌入式的关系型数据库,无需独立的服务器进程,数据以文件形式存储,非常适合桌面和移动端应用的本地数据管理。Qt 通过 Qt SQL 模块提供了对 SQLite 的原生支持,开发者可以轻松实现数据库的增删改查、事务处理…...
2024 年 CSDN 博客之星年度评选:技术创作与影响力的碰撞(统计时间2025-02-17 11:06:06)
摘要:在技术的海洋里,每一位博主都像是一座独特的灯塔,用自己创作的光芒照亮他人前行的道路。2024 年 CSDN 博客之星年度评选活动,正是对这些灯塔的一次盛大检阅,让我们看到了众多优秀博主在技术创作领域的卓越表现以及…...
Java零基础入门笔记:(3)程序控制
前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类&…...
后端生成二维码,前端请求接口生成二维码并展示,且多个参数后边的参数没有正常传输问题处理
一、后端代码 1、controller GetMapping("/generateQRCode/{url}")ApiOperation(value "生成url链接二维码",notes "生成url链接二维码")public JsonResult<NewsQRCodeVo> generateQRCode(PathVariable String url,HttpServletRespons…...
(8/100)每日小游戏平台系列
项目地址位于:小游戏导航 新增一个打地鼠游戏! 打地鼠(Whack-a-Mole)是一款经典的休闲游戏,玩家需要点击随机出现的地鼠,以获取分数。游戏时间有限,玩家需要在规定时间内尽可能多地击中地鼠&am…...
【jar包启动命令简单分享】
最近在做springcloud项目,整理了下启停脚本 批量启动脚本 #!/bin/bashAPP_HOME/data/java/ APP_NAMES("ruoyi-auth.jar""ruoyi-gateway.jar""ruoyi-modules-file.jar""ruoyi-modules-gen.jar""ruoyi-modules-job.jar…...
[Python人工智能] 五十.PyTorch入门 (5)快速搭建神经网络及模型保存
从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解PyTorch构建分类神经网络。这篇文章将介绍如何利用PyTorch快速构建神经网络,之前的代码比较复杂,通过自定义Net类实现,本文通过Torch函数定义神经网络。前面我们的Python人工智能主要以Tens…...
SpringBoot+Vue+数据可视化的动漫妆造服务平台(程序+论文+讲解+安装+调试+售后等)
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,我会一一回复,希望帮助更多的人。 系统介绍 在当今数字化高速发展的时代,动漫产业迎来了前所未有的繁荣,动漫…...
Go入门之语言变量 常量介绍
func main(){var a int8 10var b int 5var c int 6fmt.Println("a", a, "b", b, "c", c)d : 10fmt.Printf("a%v leixing%T\n", d, d) } main函数是入口函数,fmt包有三个打印的函数Println,Print,Printf。第…...
基于web的留守儿童网站的设计与实现
开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…...
鸡兔同笼问题
鸡兔同笼问题是这样一个问题: 现有鸡、兔合装在一个笼子里。数头一共100个头,数脚一共300只脚。问有多少只鸡多少只兔? 在这里讨论这个问题的解法当然太小儿科了。但是y_tab这个C语言解释器只提供了1维数组。如果需要用到2维数组时ÿ…...
使用 Spring Boot 和 Canal 实现 MySQL 数据库同步
文章目录 前言一、背景二、Canal 简介三、主库数据库配置1.主库配置2.创建 Canal 用户并授予权限 四.配置 Canal Server1.Canal Server 配置文件2.启动 Canal Server 五.开发 Spring Boot 客户端1. 引入依赖2. 配置 Canal 客户端3. 实现数据同步逻辑 六.启动并测试七.注意事项八…...
中上211硕对嵌入式AI感兴趣,如何有效规划学习路径?
今天给大家分享的是一位粉丝的提问,中上211硕对嵌入式AI感兴趣,如何有效规划学习路径? 接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。 同学提问: 中上211,…...
OpenCV中的边缘检测
边缘检测是图像处理和计算机视觉中的关键技术之一,旨在识别图像中像素强度发生显著变化的区域,这些区域通常对应于物体的边界或轮廓。边缘检测在机器视觉中具有重要的需求背景,主要体现在以下几个方面: 图像分割:边缘…...
Python爬虫-猫眼电影的影院数据
前言 本文是该专栏的第46篇,后面会持续分享python爬虫干货知识,记得关注。 本文笔者以猫眼电影为例子,获取猫眼的影院相关数据。 废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) …...
家里WiFi信号穿墙后信号太差怎么处理?
一、首先在调制解调器(俗称:猫)测试网速,网速达不到联系运营商; 二、网线影响不大,5类网线跑500M完全没问题; 三、可以在卧室增加辅助路由器(例如小米AX系列)90~200元区…...
【前端学习笔记】Webpack
1.介绍 Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具,它将 JavaScript、CSS、图片、字体等资源文件打包成一个或多个静态文件,以供浏览器使用。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(depend…...
数据结构(陈越,何钦铭)第三讲 树(上)
3.1 树与数的表示 3.1.1 顺序查找 int SequentialSearch(List Tbl,ElementType K){int i;Tbl->Element[0]K;for(iTbl->Length;Tbl->Element[i]!K;i--);return i; } typedef struct LNode *List; struct LNode{ElementType Element[MAXSIZE];int Length; };3.1.2 二分…...
【深度解析】图解Deepseek-V3模型架构-混合专家模型(MoE)
一、引言 最近非常火爆的DeepSeek-V3模型,是一个包含6710亿总参数的强大混合专家模型(MoE),其中每个token激活370亿参数。该模型在DeepSeek-V2验证有效的核心架构基础上,采用多头潜在注意力(MLA࿰…...
c#判断exe文件是不是7z或者rar的自解压文件
亲测可以实现检测7z的自解压,但是对于rar的自解压格式,最新版不支持,尝试修改回发现几乎检测成了exe文件,这显然是不正确的,其他版本未测试。 如下图所示,可以检测出自解压格式的7z文件,黑色显…...
富士SC2022,C325,C328打印机扫描到网络详细教程
前言: 在开始教程之前,我先声明目前该教程适用于FujiXerox apeos C325Z和FujiXerox DocuCentre SC2022打印机。这次教程以FujiXerox DocuCentre SC2022为例,该打印机IP地址为10.40.11.240。 前提条件 : 1. 安装打印机所需打印机和扫…...
涌现之谜:神经网络中的意识幻象与信息熵变
导言:黑箱中的幽灵剧场 当AlphaGo在棋盘第37手落下超越人类棋谱的"神之一着"时,观者感受到的震颤不亚于目睹意识的曙光。这种认知幻觉暴露了智能研究的基本困境:在权重矩阵的混沌涨落中,究竟诞生的是真正的认知主体&am…...
WEB安全--SQL注入--常见的注入手段
一、联表查询: 1.1原理: 当payload参数被后端查询语句接收到时,其中的非法语句通过union关联显示出其他的数据 1.2示例: #payload: -1 and union select 1,2,database()--#query: $sqlselect * from users where id-1 and union …...
wordpress get_footer();与wp_footer();的区别的关系
在WordPress中,get_footer() 和 wp_footer() 是两个不同的函数,它们在主题开发中扮演着不同的角色,但都与页面的“页脚”部分有关。以下是它们的区别和关系: 1. get_footer() get_footer() 是一个用于加载页脚模板的函数。它的主…...
人工智能3d点云之Pointnet++项目实战源码解读(点云分类与分割)
一.项目文件概述 二.数据读取模块配置 实际代码运行时是先定义与加载好模型,然后再去读取数据进来传入到模型网络中去训练。但现在反过来先读取数据开始。 进入ModelNetDataLoader类的_getitem方法, 做标准化的目的是处理异常大的数值 上面返回的cls是类别,相当于…...
IP 路由基础 | 路由条目生成 / 路由表内信息获取
注:本文为 “IP 路由” 相关文章合辑。 未整理去重。 IP 路由基础 秦同学学学已于 2022-04-09 18:44:20 修改 一. IP 路由产生背景 我们都知道 IP 地址可以标识网络中的一个节点,并且每个 IP 地址都有自己的网段,各个网段并不相同…...
Redis 启用自动内存碎片清理异常
Redis 启用自动内存碎片清理异常 127.0.0.1:6379> config set activedefrag yes (error) DISABLED Active defragmentation cannot be enabled: it requires a Redis server compiled with a modified Jemalloc like the one shipped by default with the Redis source dis…...
java后端开发day16--字符串(二)
(以下内容全部来自上述课程) 1.StringBuilder 因为StringBuilder是Java已经写好的类。 java在底层对他进行了一些特殊处理。 打印对象不是地址值而是属性值。 1.概述 StringBuilder可以看成是一个容器,创建之后里面的内容是可变的。 作用…...
LabVIEW危化品仓库的安全监测系统
本案例展示了基于LabVIEW平台设计的危化品仓库安全监测系统,结合ZigBee无线通信技术、485串口通讯技术和传感器技术,实现了对危化品仓库的实时无线监测。该系统不仅能提高安全性,还能大幅提升工作效率,确保危化品仓库的安全运营。…...
