当前位置: 首页 > news >正文

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


ISO 14229-1:2023 UDS诊断服务测试用例全解析(RoutineControl_0x31服务)

作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS协议、0x31服务、例程控制、ISO 14229-1:2023、ECU测试


一、服务功能概述
0x31服务(RoutineControl)用于执行ECU内部预定义的诊断例程(如内存校验、硬件自检等),支持启动(0x01)、停止(0x02)、查询(0x03)三种操作模式。根据ISO 14229-1:2023 §7.5.8要求,完整18项测试用例如下:


二、完整测试用例清单(18项)

用例ID测试场景验证要点参考条款预期结果
TC3101启动例程(0x31 0x01 + RoutineID)指定有效例程ID(如0x0201)§7.5.8.2.1返回0x71 + 执行结果
TC3102停止运行中的例程(0x31 0x02)在例程执行期间发送停止指令§7.5.8.2.2返回0x71 + 终止状态码
TC3103查询例程状态(0x31 0x03)查询正在执行的例程进度§7.5.8.2.3返回0x71 + 进度百分比
TC3104无效子功能检测发送非法子功能(如0x31 0x00)§7.5.8.3.1返回NRC=0x12(子功能不支持)
TC3105默认会话权限验证在默认会话下启动例程§7.5.8.3.2返回NRC=0x7E(服务不支持)
TC3106安全访问未授权操作未解锁安全权限时执行高权限例程§7.5.8.3.3返回NRC=0x33(安全拒绝)
TC3107无效例程ID处理指定未定义例程ID(如0xFFFF)§7.5.8.3.4返回NRC=0x31(请求越界)
TC3108参数格式错误附加非对齐参数(如0x31 0x01 0x01)§7.5.8.3.5返回NRC=0x24(顺序错误)
TC3109报文长度错误处理参数长度不足(如0x31 0x01)§7.5.8.3.6返回NRC=0x13(长度错误)
TC3110例程执行超时监控监测例程最大执行时间(如3000ms)§7.5.8.4.1超时后返回0x71 + 超时状态码
TC3111并发例程冲突检测同时启动两个互斥例程§7.5.8.3.7返回NRC=0x22(条件不满足)
TC3112断电恢复验证例程执行中强制断电后恢复§7.5.8.4.2例程状态重置,需重新启动
TC3113功能寻址广播控制通过功能寻址(0x7DF)启动例程§7.5.8.5仅目标ECU执行例程
TC3114动态参数验证输入超出范围的参数(如转速值0xFFFF)§7.5.8.3.8返回NRC=0x31(请求越界)
TC3115生产模式限制验证产线下禁止执行特定例程(如ECU擦除)OEM规范返回NRC=0x22(条件不满足)
TC3116大数据块传输验证附加参数长度超过255字节§7.5.8.3.9返回NRC=0x14(报文过长)
TC3117跨会话状态维持验证扩展会话启动例程后切换至编程会话§7.5.8.6例程继续执行不受影响
TC3118停止未运行例程处理对未启动的例程发送停止指令§7.5.8.3.10返回NRC=0x24(顺序错误)

三、关键测试场景详解

  1. TC3110 例程执行超时监控
  • 测试步骤:
    1. 启动设计时长为5秒的例程(如0x0201)
    2. 监测响应时间戳
    3. 超时后发送0x31 0x03查询状态
  • 验证要点:
    • 例程必须在OEM定义的最大时间内完成(误差±10%)
    • 超时状态码应符合ISO 15031-6定义(如0x78)
  1. TC3114 动态参数验证
  • 测试流程:
    1. 发送带非法参数的请求:31 01 0201 01 FF FF(转速超限)
    2. 检查ECU响应
  • 校验规则:
    • ECU应拒绝执行并返回NRC=0x31
    • 错误日志需记录事件码0xA011(参数越界)

四、测试执行建议

  1. 工具链配置
// CAPL脚本示例:启动例程并监控超时 
variables {msTimer tTimeout;word routineID = 0x0201;  // 假设为内存校验例程 
}on diagResponse 0x31 {if (this.req.subfunc == 0x01 && this.resp == 0x71) {setTimer(tTimeout, 3000);  // 设置3秒超时监控 }
}on timer tTimeout {diagRequest 0x31 0x03 routineID;  // 超时后查询状态 
}
  1. NRC覆盖矩阵
NRC关联用例触发条件
0x12TC3104无效子功能参数
0x13TC3109报文长度错误
0x14TC3116大数据块超限
0x22TC3115生产模式限制
0x24TC3108/TC3118参数顺序错误/无效停止请求
0x31TC3107/TC3114无效例程ID/参数越界
0x33TC3106安全访问未授权
0x7ETC3105会话模式不匹配

五、特殊测试场景

  1. 多例程优先级控制
Tester ECU 0x31 0x01 0x0201 (启动高优先级例程) 0x31 0x01 0x0202 (启动低优先级例程) 0x71 0x0201 00 (成功) NRC=0x22 (低优先级被拒绝) Tester ECU
  1. 生产模式行为验证
测试项标准要求验证方法
关键例程白名单仅允许刷写相关例程尝试启动非白名单例程
安全层级要求Level 3以上权限不同安全等级尝试执行

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

系列目标

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

相关文章:

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

ISO 14229-1:2023 UDS诊断服务测试用例全解析(RoutineControl_0x31服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x31服务、例程控制、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x31服…...

【深度强化学习】策略梯度算法:REINFORCE

策略梯度 强化学习算法进阶 Q-learning、DQN 及 DQN 改进算法都是基于价值(value-based)的方法,其中 Q-learning 是处理有限状态的算法,而 DQN 可以用来解决连续状态的问题。在强化学习中,除了基于值函数的方法&#…...

手机用流量怎样设置代理ip?

互联网各领域资料分享专区(不定期更新): Sheet...

CI/CD部署打包方法

项目目前部署方式: 各地区服务器打包同一个runner(需要互相排队,不并发)各地区客户端可以并发打包,同个地区客户端打多个包需要排队 部署方法 下载gitlab-runner: https://docs.gitlab.com/runner/insta…...

LabVIEW 中dde.llbDDE 通信功能

在 LabVIEW 功能体系中,位于 C:\Program Files (x86)\National Instruments\LabVIEW 2019\vi.lib\Platform\dde.llb 的 dde.llb 库占据着重要的地位。作为一个与动态数据交换(DDE)紧密相关的库文件,它为 LabVIEW 用户提供了与其他…...

探索后端开发中的异步API:基于Resilience4j与Reactive Programming的高性能设计

引言 随着微服务架构的普及,后端系统面临的挑战愈发严峻,尤其是在高并发和高可用性方面。传统的同步调用模式虽然简单,但在处理大量并发请求时可能会成为瓶颈。为了应对这一问题,异步编程逐渐成为后端开发的热门话题。 在本文中…...

leetcode 2915. 和为目标值的最长子序列的长度

题目如下 数据范围 本题就是典型的背包问题target就是容量,nums[i]就是第i个物品的重量。其实就是选最多的物品使得背包刚好装满。 令f(i,j)为当考虑到i - 1物品时刚好装到j重量的物品数。 当j > nums[j]时 有f(i,j) max(f(i - 1,j - nums[i - 1]) 1,f(i -…...

【Vue】打包vue3+vite项目发布到github page的完整过程

文章目录 第一步:打包第二步:github仓库设置第三步:安装插件gh-pages第四步:两个配置第五步:上传github其他问题1. 路由2.待补充 参考文章: 环境: vue3vite windows11(使用终端即可&…...

Flutter编译问题记录

问题: 运行出现以下报错 Launching lib/main.dart on macOS in debug mode... Warning: CocoaPods not installed. Skipping pod install. CocoaPods is a package manager for iOS or macOS platform code. Without CocoaPods, plugins will not work on iOS or …...

poetry shell - 作为插件安装和使用

安装插件 安装完 poetry,想进入环境,执行 poetry shell 后会报错,是因为 poetry shell 在后面的版本中,是作为插件,需要额外安装。 poetry self add poetry-plugin-shell关于 poetry-plugin-shell github : https:/…...

UE5中的快捷键汇总

以下是Unreal Engine 5(UE5)中一些常用的快捷键大全,涵盖编辑器操作、视口导航、蓝图编辑等多个方面(会持续补充作为笔记存在): 通用快捷键 快捷键功能Ctrl S保存当前关卡Ctrl Shift S保存所有Ctrl Z撤销Ctrl C复制Ctrl V…...

2月14(信息差)

🌍杭州:全球数贸港核心区建设方案拟出台 争取国家支持杭州在网络游戏管理给予更多权限 🎄Kimi深夜炸场:满血版多模态o1级推理模型!OpenAI外全球首次!Jim Fan:同天两款国产o1绝对不是巧合&#x…...

ElementUI 的组件 Switch(开关)如何让文字显示在按钮上

效果图&#xff1a; 一、引入switch组件 给组件自定义一个类&#xff1a;tableScopeSwitch&#xff0c;设置开关的值和对应展示的文字&#xff08;开为 1&#xff0c;并展示启用&#xff1b;关为 0&#xff0c;并展示禁用&#xff09;。 <div class"tableScopeSwitch…...

Redis常用的五种数据结构详解

一、Redis 数据库介绍 Redis 是一种键值&#xff08;Key-Value&#xff09;数据库。相对于关系型数据库&#xff08;比如 MySQL&#xff09;&#xff0c;Redis 也被叫作非关系型数据库。 像 MySQL 这样的关系型数据库&#xff0c;表的结构比较复杂&#xff0c;会包含很多字段&…...

stm32 CubeMx 实现SD卡/sd nand FATFS读写测试

文章目录 stm32 CubeMx 实现SD卡/SD nand FATFS读写测试 1. 前言 2. 环境介绍 2.1 软硬件说明 2.2 外设原理图 3. 工程搭建 3.1 CubeMx 配置 3.2 SDIO时钟配置说明 3.2 读写测试 3.2.1 添加读写测试代码 3.3 FATFS文件操作 3.3.1 修改读写测试代码 3.4 配置问题记…...

【Unity】 HTFramework框架(六十)Assistant助手(在Unity中接入DeepSeek等AI语言大模型)

更新日期&#xff1a;2025年2月14日。 Github源码&#xff1a;[点我获取源码] Gitee源码&#xff1a;[点我获取源码] 索引 Assistant助手安装Ollama使用Assistant&#xff08;在编辑器中&#xff09;打开Assistant配置Assistant使用Assistant处理Assistant回复的内容使用推理大…...

web自动化笔记(二)

文章目录 一、参数化测试1.pytest命令2.实现参数化测试3.填写地址测试4.生成Allure测试报告5.关键字驱动 二、案例1.实现后台登录1.1登录1.2.处理验证码1.3.封装识别验证码函数 2.通过cookie保持登录2.1给页面添加cookie2.2获取页面的cookie2.3自动化获取cookie 三、excel进行数…...

IIS部署netcore程序后,出现500.30错误解决方案之一

netcore程序部署到IIS后一直出现错误&#xff0c;访问首页后会跳转到登录页地址&#xff0c;然后看到如下错误 HTTP Error 500.30 - ANCM In-Process Start Failure Common solutions to this issue: The application failed to start The application started but then stopp…...

spring 学习(spring-Dl补充(注入不同类型的数据))

前言 在之前的案例&#xff0c;列举的最多的是注入 对象。本篇博客则是补充说我们不仅可以注入对象 还可以注入其他的数据类型包括基本数据类型&#xff0c;引用数据类型。 注入基本数据类型 常见的基本数据类型有&#xff1a;short char int long float double boolean …...

Docker Desktop之Nginx

安装Nginx 把这个复制 到docker 中执行 即可...

生成式AI在医疗领域的伦理挑战与GREAT PLEA治理框架实践

1. 项目概述&#xff1a;当生成式AI走进手术室与战场最近和几位在医疗信息化和国防科技领域的朋友聊天&#xff0c;话题不约而同地聚焦在了同一个“新工具”上&#xff1a;生成式人工智能。一位三甲医院的影像科主任正在为科室是否引入AI辅助报告生成系统而纠结&#xff0c;他既…...

AI代码溯源工具clawd-blame:为AI生成代码建立对话上下文映射

1. 项目概述&#xff1a;一个为AI编程时代量身定制的“代码溯源”工具如果你和我一样&#xff0c;深度依赖 Cursor 这类 AI 驱动的 IDE 进行日常开发&#xff0c;那你一定遇到过这个令人头疼的场景&#xff1a;面对一段由 Claude 生成的、逻辑复杂但注释寥寥的代码&#xff0c;…...

AI for Science中的分布外泛化:从理论到实践的挑战与应对

1. 项目概述&#xff1a;当AI遇见科学&#xff0c;泛化能力成为“卡脖子”难题最近几年&#xff0c;AI for Science&#xff08;科学智能&#xff09;火得一塌糊涂&#xff0c;从预测蛋白质结构的AlphaFold&#xff0c;到加速新材料发现的生成模型&#xff0c;AI正在成为继理论…...

Python字符串搜索替换的语义陷阱与工程决策树

1. 项目概述字符串搜索与替换&#xff0c;是每个写 Python 的人每天都在做的事——从解析日志、清洗用户输入、处理配置文件&#xff0c;到构建模板引擎、实现简单规则引擎&#xff0c;再到做数据预处理&#xff0c;几乎无处不在。但奇怪的是&#xff0c;明明就那么几个方法&am…...

OpenClaw-Lightcone插件:为AI智能体赋予云端计算机操作能力

1. 项目概述&#xff1a;当AI智能体获得“云端之手” 如果你正在探索AI智能体&#xff08;Agent&#xff09;的边界&#xff0c;尤其是如何让它们像真人一样操作电脑、浏览网页、处理数据&#xff0c;那么你很可能已经遇到了一个核心瓶颈&#xff1a; 环境依赖 。传统的浏览…...

为你的OpenClaw智能体工作流配置Taotoken作为模型供应商

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为你的OpenClaw智能体工作流配置Taotoken作为模型供应商 基础教程类&#xff0c;面向使用OpenClaw框架构建AI智能体工作流的开发者…...

CANN π₀.₅模型训练优化说明

π₀.₅ 模型训练昇腾迁移与性能优化说明 【免费下载链接】cann-recipes-embodied-intelligence 本项目针对具身智能业务中的典型模型、加速算法&#xff0c;提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-embodied-intelligence 背景介…...

CANN/tensorflow AOE调优配置

AOE 【免费下载链接】tensorflow Ascend TensorFlow Adapter 项目地址: https://gitcode.com/cann/tensorflow [!NOTE]说明 AOE调优特性仅支持如下产品的训练场景&#xff1a; Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品A…...

CANN学习中心仓技能集合

Skills - CANNBot 技能集合 【免费下载链接】cann-learning-hub CANN 学习中心仓&#xff0c;支持在线互动运行、边学边练&#xff0c;提供教程、示例与优化方案&#xff0c;一站式助力昇腾开发者快速上手。 项目地址: https://gitcode.com/cann/cann-learning-hub 本目…...

证书链技术与ADAC安全调试协议详解

1. 证书链技术原理与信任传递机制1.1 非对称加密基础证书链技术的核心依赖于非对称加密算法体系。典型实现中&#xff0c;ECDSA&#xff08;椭圆曲线数字签名算法&#xff09;和RSA是最常用的两种方案。以ECDSA P-256为例&#xff0c;其采用256位素数域上的椭圆曲线&#xff0c…...