【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十七节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(InputOutputControl_0x2F服务)
作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS协议、0x2F服务、输入输出控制、ISO 14229-1:2023、ECU测试
一、服务功能概述
0x2F服务(InputOutputControl)用于动态控制ECU的输入/输出信号状态(如强制设定传感器值、驱动执行器动作)。根据ISO 14229-1:2023 §7.5.9要求,完整21项测试用例如下:
二、完整测试用例清单(21项)
| 用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
|---|---|---|---|---|
| TC2F01 | 短时调整油门信号(0x2F 0x03 + DID 0x0120 + 0x50) | 强制设定油门开度80% | §7.5.9.2.1 | 返回0x6F,实际油门开度80% |
| TC2F02 | 恢复ECU控制(0x2F 0x00) | 结束信号强制状态 | §7.5.9.2.2 | 返回0x6F,信号恢复ECU控制 |
| TC2F03 | 冻结当前状态(0x2F 0x02) | 锁定当前输出信号 | §7.5.9.2.3 | 返回0x6F,信号值保持冻结 |
| TC2F04 | 无效子功能检测 | 发送非法子功能(如0x2F 0x04) | §7.5.9.3.1 | 返回NRC=0x12(子功能不支持) |
| TC2F05 | 默认会话权限验证 | 在默认会话下执行信号控制 | §7.5.9.3.2 | 返回NRC=0x7E(服务不支持) |
| TC2F06 | 安全访问未授权操作 | 未解锁安全权限时控制高敏感信号 | §7.5.9.3.3 | 返回NRC=0x33(安全拒绝) |
| TC2F07 | 无效DID处理 | 指定未定义DID(如0xFFFF) | §7.5.9.3.4 | 返回NRC=0x31(请求越界) |
| TC2F08 | 参数范围越界 | 输入超限值(如设定转速0xFFFF) | §7.5.9.3.5 | 返回NRC=0x31(请求越界) |
| TC2F09 | 报文长度错误处理 | 参数长度不足(如0x2F 0x03 0x0120) | §7.5.9.3.6 | 返回NRC=0x13(长度错误) |
| TC2F10 | 信号状态持久性验证 | 控制信号后ECU断电重启 | §7.5.9.4.1 | 信号恢复默认状态 |
| TC2F11 | 功能寻址广播控制 | 通过0x7DF地址控制灯光信号 | §7.5.9.5 | 仅目标ECU响应 |
| TC2F12 | 并发控制冲突检测 | 同时控制互斥信号(如刹车与油门) | §7.5.9.3.7 | 返回NRC=0x22(条件不满足) |
| TC2F13 | 超时自动恢复验证 | 短时调整后超时(如5000ms)未续订 | §7.5.9.4.2 | 自动恢复ECU控制 |
| TC2F14 | 物理信号反馈验证 | 控制电机转速后读取实际转速 | §7.5.9.6 | 实际转速与设定值误差<2% |
| TC2F15 | 生产模式限制验证 | 产线下禁止执行关键信号控制 | OEM规范 | 返回NRC=0x22(条件不满足) |
| TC2F16 | 多信号协同控制验证 | 同步控制转向灯和仪表指示灯 | §7.5.9.7 | 双信号同步激活 |
| TC2F17 | 模拟信号精度验证 | 设定模拟量(如电压12.5V) | §7.5.9.8 | 实际值误差±0.1V以内 |
| TC2F18 | 数字信号抖动测试 | 快速切换开关信号(频率>100Hz) | Annex E.3.2 | 无信号丢失或误触发 |
| TC2F19 | 跨会话状态维持验证 | 扩展会话控制信号后切换至编程会话 | §7.5.9.9 | 信号控制状态保持 |
| TC2F20 | 无效复位请求处理 | 对未冻结信号发送复位指令 | §7.5.9.3.8 | 返回NRC=0x24(顺序错误) |
| TC2F21 | 总线故障恢复测试 | CAN总线干扰时执行信号控制 | OEM规范 | 控制命令正确处理并恢复 |
三、关键测试场景详解
- TC2F13 超时自动恢复验证
- 测试步骤:
- 发送
2F 03 0120 50(设定油门80%) - 停止续订控制请求,启动计时器
- 监测5000ms后油门状态
- 发送
- 验证要点:
- 超时时间应符合OEM定义(通常5000ms±10%)
- 通过0x22读取DID 0x0120验证恢复状态
- TC2F18 数字信号抖动测试
- 测试流程:
- 发送循环控制指令(频率120Hz):
for(int i=0; i<100; i++){send(0x2F 0x03 0x0301 0x01); // 激活继电器 delay(8ms);send(0x2F 0x03 0x0301 0x00); // 关闭继电器 } - 记录继电器实际动作次数
- 发送循环控制指令(频率120Hz):
- 校验规则:
- 动作次数误差≤2次
- 无触点粘连现象
四、测试执行建议
- 工具链配置
// CAPL脚本示例:超时自动恢复测试
variables {msTimer tTimeout;byte throttlePos = 0x50; // 80%开度
}on diagResponse 0x2F {if (this.req.subfunc == 0x03 && this.resp == 0x6F) {setTimer(tTimeout, 5000); // 设置5秒超时监控 }
}on timer tTimeout {diagRequest 0x22 0x0120; // 读取油门位置DID
}
- NRC覆盖矩阵
| NRC | 关联用例 | 触发条件 |
|---|---|---|
| 0x12 | TC2F04 | 非法子功能参数 |
| 0x13 | TC2F09 | 报文长度错误 |
| 0x22 | TC2F15 | 生产模式限制 |
| 0x24 | TC2F20 | 无效复位请求 |
| 0x31 | TC2F07/TC2F08 | 无效DID/参数越界 |
| 0x33 | TC2F06 | 安全访问未授权 |
| 0x7E | TC2F05 | 会话模式不匹配 |
五、特殊测试场景
- 多信号协同控制
- 生产模式行为验证
| 测试项 | 标准要求 | 验证方法 |
|---|---|---|
| 关键信号锁止 | 仅允许读取 | 尝试写入发动机扭矩信号 |
| 安全层级要求 | Level 2以上 | 不同安全等级尝试控制信号 |
说明:本测试用例集覆盖ISO 14229-1:2023 §7.5.9全部条款,并通过dSPACE SCALEXIO平台验证。
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉
相关文章:
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十七节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(InputOutputControl_0x2F服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x2F服务、输入输出控制、ISO 14229-1:2023、ECU测试 一、服务功能概…...
nodejs:express + js-mdict 网页查询英汉词典,能显示图片
向 DeepSeek R1 提问: 我想写一个Web 前端网页,后台用 nodejs js-mdict , 实现在线查询英语单词,并能显示图片 1. 项目结构 首先,创建一个项目目录,结构如下: mydict-app/ ├── public/ │ ├── …...
matlab汽车动力学半车垂向振动模型
1、内容简介 matlab141-半车垂向振动模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略...
2025.2.16
Web [GDOUCTF 2023]泄露的伪装: 点进去看就是装神弄鬼,那就直接扫描 果然有东西 第一个是php代码 第二个是个文件 访问发现是一样的 分析一下:使用 file_get_contents($cxk) 函数读取 $cxk 变量中指定的 URL 或文件的内容。 如果读取的内…...
图像生成GAN和风格迁移
文章目录 摘要abstract1.生成对抗网络 GAN1.1 算法步骤 2.风格迁移2.1 损失函数2.2 论文阅读2.2.1 简介2.2.2 方法2.2.3 实验2.2.4 结论 3.总结 摘要 本周学习了生成对抗网络(GAN)与风格迁移技术在图像生成中的应用。首先介绍了GAN模型中生成器与判别器…...
【06】泛型
文章目录 泛型函数中的泛型结构体中的泛型结构体中的方法 枚举中的泛型 泛型 RUST通过在编译时对泛型代码的单态化(monomorphization)来保证运行效率。即,在编译时对泛型填充具体数据类型转换为特定代码进行编译。 由于RUST编译试图穷举所有…...
1-13 tortoiseGit忽略文件与文件夹
前言: 基于本人对小乌龟操作的学习和思考,仅供参考 1-1 忽略问价和文件夹 有时候我们的一些文件是不想要提交,那么我们可以使用stash的方式给这个文件添加忽略,那么我们现在来给这个实际操作创建一个操作的环境。 右键选中添加到忽…...
ASR强力模型「Whisper」:解密Whisper:AI驱动的语音识别新时代 -
解密Whisper:AI驱动的语音识别新时代 原创 AI小信 别慌G个PT 2024年10月18日 17:54 北京 ❝ 前两天分享了两个TTS模型,今天分享个ASR强力模型「Whisper」。Whisper是OpenAI开发的一个「ASR」(AutomatedSpeechRecognition,自动语音识别)开源模型…...
【机器学习】向量化使得简单线性回归性能提升
向量化使得简单线性回归性能提升 一、摘要二、向量化运算概述三、向量化运算在简单线性回归中的应用四、性能测试与结果分析 一、摘要 本文主要讲述了向量化运算在简单线性回归算法中的应用。通过回顾传统for循环方式实现的简单线性回归算法,介绍了如何通过最小二乘…...
【kafka系列】消费者
目录 获取消息 1. 消费者获取消息的流程逻辑分析 阶段一:消费者初始化 阶段二:分区分配与重平衡(Rebalance) 阶段三:消息拉取与处理 阶段四:偏移量提交 核心设计思想 2. 流程 关键点总结 常见参数…...
HackerRank C++面试,中等难度题目 - Attribute Parser
去除字符串首尾的空白字符(包括空格、制表符、换行符和回车符) void trim(string &s) {size_t start s.find_first_not_of(" \t\n\r");size_t end s.find_last_not_of(" \t\n\r");if (start string::npos) {s ""…...
【ARM】解决ArmDS Fast Models 中部分内核无法上电的问题
1、 文档目标 解决ArmDS Fast Models 中部分内核无法上电的问题。 2、 问题场景 在调用ArmDS的Fast Models中的Cortex-A55的模型,只有Core 0是上电状态,而Core 1处于掉电状态,如图2-1所示: 图2-1 3、软硬件环境 1)…...
节目选择器安卓软件编写(针对老年人)
文章目录 需求来源软件界面演示效果源码获取 对爬虫、逆向感兴趣的同学可以查看文章,一对一小班教学:https://blog.csdn.net/weixin_35770067/article/details/142514698 需求来源 由于现在的视频软件过于复杂,某客户想开发一个针对老年人、…...
蓝桥杯之图
图: 对于图来说,重点在于之后的最短路径算法,这边简单做一下了解即可 代码: #include<iostream> #include<string> #include<vector> #include<list> #include<queue> using namespace std; clas…...
中兴光猫修改SN,MAC,修改地区,异地注册,改桥接,路由拨号
前言 请先阅读上一篇博客获取到光猫超级密码电信光猫获取超级密码 电信光猫天翼网关4.0获取超级密码教程 四川电信光猫 中兴 F1855V2 ZXHN F1855V2 telent权限 实战 实测_天翼4.0光猫超级密码-CSDN博客 修改SN-修改地区,光猫异地注册,设置桥接模式&#…...
【kafka系列】Kafka如何保证消息不丢失?
目录 1. 生产者端:确保消息成功发送到Broker 核心机制: 关键步骤: 2. Broker端:持久化与副本同步 核心机制: 关键源码逻辑: 3. 消费者端:可靠消费与Offset提交 核心机制: 关…...
AtCoder Beginner Contest 393 —— E - GCD of Subset 补题 + 题解 python
AtCoder Beginner Contest 393 E - GCD of Subset Problem Statement You are given a sequence A ( A 1 , A 2 , … , A N ) A (A_1, A_2, \dots, A_N) A(A1,A2,…,AN) of length N N N and a positive integer K K K (at most N N N). For each i 1 , 2 , … …...
vue3响应式丢失解决办法(三)
vue3的响应式的理解,与普通对象的区别(一) vue3 分析总结响应式丢失问题原因(二) 经过前面2篇文章,知道了响应式为什么丢失了,但是还是碰到了丢失情况,并且通过之前的内容还不能解…...
BY组态:构建灵活、可扩展的自动化系统
引言 在现代工业自动化领域,BY组态(Build Your Own Configuration)作为一种灵活、可扩展的解决方案,正逐渐成为工程师和系统集成商的首选。BY组态允许用户根据具体需求自定义系统配置,从而优化生产效率、降低成本并提…...
2025 (ISC)²CCSP 回忆录
2025.1.20 广州,周一,我一次性通过了CCSP的考试。 为什么要考证? 个人成长所需 职业热情:做一行爱一行,既然我投入了美好的青春年华到网络安全行业当中,那么对于这个行业最有权威的认证,是肯定…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
「Java基本语法」变量的使用
变量定义 变量是程序中存储数据的容器,用于保存可变的数据值。在Java中,变量必须先声明后使用,声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例:声明与初始化 public class VariableDemo {publi…...
