【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规范控制命令正确处理并恢复

三、关键测试场景详解

  1. TC2F13 超时自动恢复验证
  • 测试步骤:
    1. 发送2F 03 0120 50(设定油门80%)
    2. 停止续订控制请求,启动计时器
    3. 监测5000ms后油门状态
  • 验证要点:
    • 超时时间应符合OEM定义(通常5000ms±10%)
    • 通过0x22读取DID 0x0120验证恢复状态
  1. TC2F18 数字信号抖动测试
  • 测试流程:
    1. 发送循环控制指令(频率120Hz):
      for(int i=0; i<100; i++){send(0x2F 0x03 0x0301 0x01);  // 激活继电器 delay(8ms);send(0x2F 0x03 0x0301 0x00);  // 关闭继电器 
      }
      
    2. 记录继电器实际动作次数
  • 校验规则:
    • 动作次数误差≤2次
    • 无触点粘连现象

四、测试执行建议

  1. 工具链配置
// 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 
}
  1. NRC覆盖矩阵
NRC关联用例触发条件
0x12TC2F04非法子功能参数
0x13TC2F09报文长度错误
0x22TC2F15生产模式限制
0x24TC2F20无效复位请求
0x31TC2F07/TC2F08无效DID/参数越界
0x33TC2F06安全访问未授权
0x7ETC2F05会话模式不匹配

五、特殊测试场景

  1. 多信号协同控制
Tester ECU 0x2F 0x03 0x0110 0x01 (左转向灯激活) 0x2F 0x03 0x0111 0x01 (右转向灯激活) NRC=0x22 (互斥信号冲突) 0x2F 0x00 0x0110 (释放控制) 0x6F (释放成功) Tester ECU
  1. 生产模式行为验证
测试项标准要求验证方法
关键信号锁止仅允许读取尝试写入发动机扭矩信号
安全层级要求Level 2以上不同安全等级尝试控制信号

说明:本测试用例集覆盖ISO 14229-1:2023 §7.5.9全部条款,并通过dSPACE SCALEXIO平台验证。

系列目标

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/19878.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线考试系统(代码+数据库+LW)

摘 要 使用旧方法对在线考试系统的信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在在线考试系统的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。这次开发的在线考试…

2025百度快排技术分析:模拟点击与发包算法的背后原理

一晃做SEO已经15年了&#xff0c;2025年还有人问我如何做百度快速排名&#xff0c;我能给出的答案就是&#xff1a;做好内容的前提下&#xff0c;多刷刷吧&#xff01;百度的SEO排名算法一直是众多SEO从业者研究的重点&#xff0c;模拟算法、点击算法和发包算法是百度快速排名的…

【Spring+MyBatis】留言墙的实现

目录 1. 添加依赖 2. 配置数据库 2.1 创建数据库与数据表 2.2 创建与数据库对应的实体类 3. 后端代码 3.1 目录结构 3.2 MessageController类 3.3 MessageService类 3.4 MessageMapper接口 4. 前端代码 5. 单元测试 5.1 后端接口测试 5.2 使用前端页面测试 在Spri…

EtherNet/IP转Modbus TCP:新能源风电监控与分析实用案例

EtherNet/IP转Modbus TCP&#xff1a;新能源风电监控与分析实用案例 一、案例背景 在某新能源汽车电池生产线上&#xff0c;需要将采用EtherNet/IP协议的电池检测设备与采用ProfiNet协议的生产线控制系统进行集成&#xff0c;以实现对电池生产过程的全面监控和数据采集。 二、…

管理WSL实例 以及安装 Ubuntu 作为 WSL 子系统 流程

安装ubuntu wsl --install -d Ubuntu分类命令说明安装相关wsl --install在 Windows 10/11 上以管理员身份在 PowerShell 中运行此命令&#xff0c;可安装 WSLwsl --install -d <distribution name>在 PowerShell 中使用此命令安装特定版本的 Linux 发行版&#xff0c;如…

Spring框架中都用到了哪些设计模式?

大家好&#xff0c;我是锋哥。今天分享关于【Spring框架中都用到了哪些设计模式&#xff1f;】面试题。希望对大家有帮助&#xff1b; Spring框架中都用到了哪些设计模式&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring框架中使用了大量的设计模…

最新VS code配置C/C++环境(tasks.json, launch.json,c_cpp_properties.json)及运行多个文件、配置Cmake

目录 一、VScode配置C/C环境&#xff0c;需设置tasks.json, launch.json文件 二、安装C/C扩展&#xff0c;配置tasks.json、launch.json、c_cpp_properties.json文件 (1)安装c/c扩展 (2)配置tasks.json文件 (3)配置launch.json文件 (4)配置中的参数(属性)说明 (5)运行程序(运行…

Java零基础入门笔记:(3)程序控制

前言 本笔记是学习狂神的java教程&#xff0c;建议配合视频&#xff0c;学习体验更佳。 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili Scanner对象 之前我们学的基本语法中我们并没有实现程序和人的交互&#xff0c;但是Java给我们提供了这样一个工具类&…

Spring Boot 原理分析

spring-boot.version&#xff1a;2.4.3.RELEASE Spring Boot 依赖管理 spring-boot-starter-parent 配置文件管理 <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true&l…

Word中接入大模型教程

前言 为什么要在word中接入大模型呢&#xff1f; 个人觉得最大的意义就是不用来回切换与复制粘贴了吧。 今天分享一下昨天实践的在word中接入大模型的教程。 在word中接入大模型最简单的方式就是使用vba。 vba代码要做的事&#xff0c;拆分一下就是&#xff1a; 获取用户…

【原创】vue-element-admin-plus完成编辑页面中嵌套列表功能

前言 vue-element-admin-plus对于复杂业务的支持程度确实不怎么样&#xff0c;我这里就遇到了编辑页面中还要嵌套列表的真实案例&#xff0c;比如字典&#xff0c;主字典嵌套子信息&#xff0c;类似于一个树状结构。目前vue-element-admin-plus给出的例子是无法满足这个需求的…

OpenCV中的边缘检测

边缘检测是图像处理和计算机视觉中的关键技术之一&#xff0c;旨在识别图像中像素强度发生显著变化的区域&#xff0c;这些区域通常对应于物体的边界或轮廓。边缘检测在机器视觉中具有重要的需求背景&#xff0c;主要体现在以下几个方面&#xff1a; 图像分割&#xff1a;边缘…

vscode的一些实用操作

1. 焦点切换(比如主要用到使用快捷键在编辑区和终端区进行切换操作) 2. 跳转行号 使用ctrl g,然后输入指定的文件内容&#xff0c;即可跳转到相应位置。 使用ctrl p,然后输入指定的行号&#xff0c;回车即可跳转到相应行号位置。

Redis(高阶篇)02章——BigKey

一、面试题 阿里广告平台&#xff0c;海量数据里查询某一个固定前缀的key小红书&#xff0c;你如何生产上限制 keys* /flushdb/flushall等危险命令以防止阻塞或误删数据&#xff1f;美团&#xff0c;memory usage命令你用过吗&#xff1f;BigKey问题&#xff0c;多大算big&…

《Zookeeper 分布式过程协同技术详解》读书笔记-2

目录 zk的一些内部原理和应用请求&#xff0c;事务和标识读写操作事务标识&#xff08;zxid&#xff09; 群首选举Zab协议&#xff08;ZooKeeper Atomic Broadcast protocol&#xff09;文件系统和监听通知机制分布式配置中心, 简单Demojava code 集群管理code 分布式锁 zk的一…

53倍性能提升!TiDB 全局索引如何优化分区表查询?

作者&#xff1a; Defined2014 原文来源&#xff1a; https://tidb.net/blog/7077577f 什么是 TiDB 全局索引 在 TiDB 中&#xff0c;全局索引是一种定义在分区表上的索引类型&#xff0c;它允许索引分区与表分区之间建立一对多的映射关系&#xff0c;即一个索引分区可以对…

unity学习39:连续动作之间的切换,用按键控制角色的移动

目录 1 不同状态之间的切换模式 1.1 在1个连续状态和一个连续状态之间的transition&#xff0c;使用trigger 1.2 在2个连续状态之间的转换&#xff0c;使用bool值切换转换 2 至少现在有2种角色的移动控制方式 2.1 用CharacterController 控制角色的移动 2.2 用animator…

【Python 打造高效文件分类工具】

【Python】 打造高效文件分类工具 一、代码整体结构二、关键代码解析&#xff08;一&#xff09;初始化部分&#xff08;二&#xff09;界面创建部分&#xff08;三&#xff09;核心功能部分&#xff08;四&#xff09;其他辅助功能部分 三、运行与使用四、示图五、作者有话说 …

网络工程师 (43)IP数据报

前言 IP数据报是互联网传输控制协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;的数据报格式&#xff0c;由首部和数据两部分组成。 一、首部 IP数据报的首部是控制部分&#xff0c;包含了数据报传输和处理所需的各种信息。首部可以分为固定部分和可变部分。 固定…

Leetcode 424-替换后的最长重复字符

给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符&#xff0c;并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。 在执行上述操作后&#xff0c;返回 包含相同字母的最长子字符串的长度。 题解 可以先做LCR 167/Leetcode 03再做本题 滑动窗口&…