【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第六节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(ReadDataByIdentifier0x22服务)
作者:车端域控测试工程师
发布日期:2025年2月13日
关键词:UDS诊断协议、0x22服务、ReadDataByIdentifier、DID读取、ECU测试
一、服务功能概述
0x22服务(ReadDataByIdentifier)用于通过数据标识符(DID)从ECU读取数据记录值,是UDS诊断协议中最核心的数据获取服务。根据ISO 14229-1:2023标准要求,完整18项测试用例如下:
二、完整测试用例清单(18项)
| 用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
|---|---|---|---|---|
| TC22-001 | 标准DID读取流程 | 请求有效DID(如0xF190读取VIN码) | §7.4.4.2 | 返回0x62+DID+数据记录 |
| TC22-002 | 无效DID检测 | 发送未定义的DID(如0x0000) | §7.4.4.3.1 | 返回NRC=0x31(请求超出范围) |
| TC22-003 | 数据长度不匹配 | DID定义长度与响应数据长度不一致 | §7.4.4.3.2 | 返回NRC=0x13(报文长度错误) |
| TC22-004 | 安全访问未解锁读取 | 尝试读取受保护的DID(如0xF186会话状态) | §7.4.4.3.3 | 返回NRC=0x33(安全访问拒绝) |
| TC22-005 | 多DID批量读取处理 | 单次请求读取多个DID(需协议支持) | §7.4.4.3.4 | 返回NRC=0x12(子功能不支持) |
| TC22-006 | 动态定义DID读取 | 读取通过0x2C动态定义的DID | §7.4.4.3.5 | 返回动态DID的数据记录 |
| TC22-007 | 跨会话模式权限验证 | 在默认会话下读取需扩展会话的DID | §7.4.4.3.6 | 返回NRC=0x7E(服务不支持) |
| TC22-008 | 数据对齐格式验证 | 读取非字节对齐的DID(如位域数据) | Annex B.2.1 | 数据按LSB或MSB格式解析 |
| TC22-009 | 只读DID写入尝试拦截 | 误操作写入DID(如发送0x22 0xF190=新值) | §7.4.4.3.7 | 返回NRC=0x13(报文长度错误) |
| TC22-010 | 响应时间超限检测 | 响应时间超过P2Server_max(50ms) | §8.1.2 | 记录通信超时事件 |
| TC22-011 | DID边界值读取 | 读取最小(0x0000)和最大(0xFFFF)DID | OEM规范 | 根据DID定义返回有效数据或NRC |
| TC22-012 | 多帧传输数据读取 | 数据记录超过单帧容量(如512字节) | §7.4.4.4 | 触发多帧传输并完整接收数据 |
| TC22-013 | 无效子功能参数 | 请求消息包含子功能参数(如0x22 0x01) | §7.4.4.2 | 返回NRC=0x12(子功能不支持) |
| TC22-014 | 数据记录完整性校验 | 读取带CRC校验的DID(如0xF18C序列号) | Annex C.3 | CRC校验值与数据匹配 |
| TC22-015 | 服务并发冲突测试 | 在写入操作(0x2E)期间读取相同DID | §7.4.4.3.8 | 返回NRC=0x22(条件不满足) |
| TC22-016 | 电压异常场景容错 | 模拟ECU供电电压波动时读取数据 | §8.5.3 | 返回NRC=0x72(通用错误) |
| TC22-017 | DID数据更新机制验证 | 读取实时变化数据(如车速传感器) | Annex B.2.2 | 数据值与实际状态同步 |
| TC22-018 | 多ECU广播读取处理 | 通过物理寻址广播读取多个ECU的DID | §7.4.4.3.9 | 各ECU独立返回响应数据 |
三、关键测试场景详解
- TC22-004 安全访问未解锁读取
- 测试步骤:
- 保持ECU处于锁定状态(未执行0x27服务)
- 发送0x22 0xF186(活动会话状态DID)
- 验证要点:
- ECU应拒绝访问受保护DID
- 返回NRC=0x33需包含安全等级标识
- TC22-012 多帧传输数据读取
- 测试流程:
- 发送首帧(0x22 + DID)
- 接收流控帧(BS=10, STmin=20ms)
- 接收连续帧传输完整数据
- 校验规则:
- ISO-TP协议的分帧重组逻辑
- 数据完整性通过CRC-16校验
四、测试执行建议
- 工具链配置:
- 使用CANoe 15.0+版本配置DID数据库
- 集成CAPL脚本自动化校验数据格式
- 测试数据准备:
- 预置DID映射表(示例):
// DID定义示例 #define DID_VIN 0xF190 // 17字节ASCII码 #define DID_SESSION_STATUS 0xF186 // 1字节(0x01-默认会话) #define DID_ECU_SERIAL 0xF18C // 12字节+CRC校验
- 预置DID映射表(示例):
3. 异常场景模拟: - 通过总线干扰器注入错误帧(Error Frame) - 使用ECU模拟器触发电压跌落事件
说明:本测试用例集已在dSPACE SCALEXIO平台完成验证,适用于AUTOSAR CP/AP架构ECU开发。
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉
相关文章:
【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第六节】
ISO 14229-1:2023 UDS诊断服务测试用例全解析(ReadDataByIdentifier0x22服务) 作者:车端域控测试工程师 发布日期:2025年2月13日 关键词:UDS诊断协议、0x22服务、ReadDataByIdentifier、DID读取、ECU测试 一、服务功能…...
dedecms 开放重定向漏洞(附脚本)(CVE-2024-57241)
免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...
AI知识库 - Cherry Studio
1 引言: 最近 DeepSeek 很火啊,想必大家都知道,DeepSeek 这个开源的模型出来后,因其高质量能力和R1 的思维链引发了大家本地部署的热潮。我也不例外,本地部署了一个 14B 的模型,然后把,感觉傻傻…...
20250213 隨筆 雪花算法
雪花算法(Snowflake Algorithm) 雪花算法(Snowflake) 是 Twitter 在 2010 年開發的一種 分布式唯一 ID 生成算法,它可以在 高併發場景下快速生成全局唯一的 64-bit 長整型 ID,且不依賴資料庫,具…...
(前端基础)HTML(一)
前提 W3C:World Wide Web Consortium(万维网联盟) Web技术领域最权威和具有影响力的国际中立性技术标准机构 其中标准包括:机构化标准语言(HTML、XML) 表现标准语言(CSS) 行为标准…...
pdf.js默认显示侧边栏和默认手形工具
文章目录 默认显示侧边栏(切换侧栏)默认手形工具(手型工具) 大部分的都是在viewer.mjs中的const defaultOptions 变量设置默认值,可以使用数字也可以使用他们对应的变量枚举值 默认显示侧边栏(切换侧栏) 在viewer.mjs中找到defaultOptions,大概在732行,或则搜索sidebarViewOn…...
学习总结三十三
括号序列 如果它是一个右括号,考察它与它左侧离它最近的未匹配的的左括号。如果该括号与之对应(即小括号匹配小括号,中括号匹配中括号),则将二者配对。简单理解,找到一个右括号,向左找一个左括号…...
微信小程序 - 组件
组件通信事件 父传子 父组件如果需要向子组件传递指定属性的数据,在 WXML 中需要使用数据绑定的方式 与普通的 WXML 模板类似,使用数据绑定,这样就可以向子组件的属性传递动态数据。 父组件如果需要向子组件传递数据,只需要两…...
如何在Ubuntu中切换多个PHP版本
在Ubuntu环境下实现PHP版本的灵活切换,是众多开发者与系统管理员的重要技能之一。下面,我们将深入探讨如何在Ubuntu系统中安装、配置及管理多个PHP版本,确保您的开发环境随心所欲地适应各类项目需求。 开始前的准备 确保您的Ubuntu系统保持…...
解决DeepSeek服务器繁忙问题
目录 解决DeepSeek服务器繁忙问题 一、用户端即时优化方案 二、高级技术方案 三、替代方案与平替工具(最推荐简单好用) 四、系统层建议与官方动态 用加速器本地部署DeepSeek 使用加速器本地部署DeepSeek的完整指南 一、核心原理与工具选择 二、…...
Huatuo热更新--安装HybridCLR
1.自行安装unity编辑器 支持2019.4.x、2020.3.x、2021.3.x、2022.3.x 中任一版本。推荐安装2019.4.40、2020.3.26、2021.3.x、2022.3.x版本。 根据你打包的目标平台,安装过程中选择必要模块。如果打包Android或iOS,直接选择相应模块即可。如果你想打包…...
flink cdc2.2.1同步postgresql表
目录 简要说明前置条件maven依赖样例代码 简要说明 在flink1.14.4 和 flink cdc2.2.1下,采用flink sql方式,postgresql同步表数据,本文采用的是上传jar包,利用flink REST api的方式进行sql执行。 前置条件 1.开启logical 确保你…...
Golang协程调度模型MPG
深入解析Golang协程调度模型MPG:原理、实践与性能优化 一、为什么需要MPG模型? 在传统操作系统调度中,线程作为CPU调度的基本单位存在两个根本性挑战:1)内核线程上下文切换成本高昂(约1-5μs)…...
纪念日倒数日项目的实现-【纪念时刻-时光集】
纪念日/倒数日项目的实现## 一个练手的小项目,uniappnodemysql七牛云。 在如今快节奏的生活里,大家都忙忙碌碌,那些具有特殊意义的日子一不小心就容易被遗忘。今天,想给各位分享一个“纪念日”项目。 【纪念时刻-时光集】 一…...
WPF的MVVMLight框架
在NuGet中引入该库: MVVMLight框架中的命令模式的使用: <StackPanel><TextBox Text"{Binding Name}"/><TextBox Text"{Binding Title}"/><Button Content"点我" Command"{Binding ShowCommand…...
DeepSeek从入门到精通(清华大学)
DeepSeek是一款融合自然语言处理与深度学习技术的全能型AI助手,具备知识问答、数据分析、编程辅助、创意生成等多项核心能力。作为多模态智能系统,它不仅支持文本交互,还可处理文件、图像、代码等多种格式输入,其知识库更新至2…...
【DeepSeek】DeepSeek R1 本地windows部署(Ollama+Docker+OpenWebUI)
1、背景: 2025年1月,DeepSeek 正式发布 DeepSeek-R1 推理大模型。DeepSeek-R1 因其成本价格低廉,性能卓越,在 AI 行业引起了广泛关注。DeepSeek 提供了多种使用方式,满足不同用户的需求和场景。本地部署在数据安全、性…...
windows平台上 oracle简单操作手册
一 环境描述 Oracle 11g单机环境 二 基本操作 2.1 数据库的启动与停止 启动: C:\Users\Administrator>sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on 星期五 7月 31 12:19:51 2020 Copyright (c) 1982, 2013, Oracle. All rights reserved. 连接到:…...
【弹性计算】弹性计算的技术架构
弹性计算的技术架构 1.工作原理2.总体架构3.控制面4.数据面5.物理设施层 虽然弹性计算的产品种类越来越多,但不同产品的技术架构大同小异。下面以当前最主流的产品形态 —— 云服务器为例,探查其背后的技术秘密。 1.工作原理 云服务器通常以虚拟机的方…...
RAG(检索增强生成)落地:基于阿里云opensearch视线智能问答机器人与企业知识库
文章目录 一、环境准备二、阿里云opensearch准备1、产品文档2、准备我们的数据3、上传文件 三、对接1、对接文本问答 一、环境准备 # 准备python环境 conda create -n opensearch conda activate opensearch# 安装必要的包 pip install alibabacloud_tea_util pip install ali…...
【踩坑】pytorch模型导出部署onnx问题记录
问题1:repeat_interleave 无法转译 具体报错为: TypeError: torch._C.Value object is not iterable (Occurred when translating repeat_interleave).原因是我的模型代码中有: batch_indices torch.repeat_interleave(torch.arange(can…...
利用prompt技术结合大模型对目标B/S架构软件系统进行测试
利用prompt技术结合大模型对目标B/S架构软件系统进行测试,可参考以下步骤和方法: 测试需求理解与prompt设计 明确测试点:梳理B/S架构软件系统的功能需求、非功能需求(如性能、安全性、兼容性等),确定具体的测试点,如用户登录功能、数据查询功能、系统响应时间要求等。设…...
DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?
DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗? 文章目录 DeepSeek vs ChatGPT:AI对决中的赢家是……人类吗?一、引言1. 背景2. 问题 二、DeepSeek vs ChatGPT:谁更胜一筹?2.1 语言生成能力评测对比场景…...
基于ollama搭建本地deepseek大模型服务
基于ollama搭建本地deepseek大模型服务 简介准备工作系统要求ollama的安装ollama 模型ollama 安装流程ollama 如何运行大模型前端部署注意事项简介 本指南旨在帮助初学者在本地环境中设置和运行DeepSeek大模型服务。本文将使用Ollama平台来简化这一过程,确保即使是新手也能顺…...
elementUI rules 判断 el-cascader控件修改值未生效
今天修改一个前端项目,增加一个多选字段,使用的是el-cascader控件,因页面是通过引用子页面组件形式使用,出现一个点选后再勾选原有值,输入框内不展示或取消后的也未正常隐藏,如果勾选的值是全新的则其他已选…...
讯方·智汇云校华为授权培训机构的介绍
官方授权 华为授权培训服务伙伴(Huawei Authorized Learning Partner,简称HALP)是获得华为授权,面向公众(主要为华为企业业务的伙伴/客户)提供与华为产品和技术相关的培训服务,培养华为产业链所…...
力扣-二叉树-257 二叉树的所有路径
思路 除去根节点,每一层添加->val,然后使用前序遍历的顺序 代码 class Solution { public:vector<string> res;void getTreePaths(string s, TreeNode* root){s "->";s to_string(root->val);if(root->left nullptr &…...
DeepSeek4j 已开源,支持思维链,自定义参数,Spring Boot Starter 轻松集成,快速入门!建议收藏
DeepSeek4j Spring Boot Starter 快速入门 简介 DeepSeek4j 是一个专为 Spring Boot 设计的 AI 能力集成启动器,可快速接入 DeepSeek 大模型服务。通过简洁的配置和易用的 API,开发者可轻松实现对话交互功能。 环境要求 JDK 8Spring Boot 2.7Maven/Gr…...
Vue.js 组件开发深入解析:Vue 2 vs Vue 3
Vue.js 是一个渐进式框架,旨在通过声明式渲染和组件化开发来提高开发效率和可维护性。组件是 Vue 应用的基本组成部分,几乎所有的功能都可以通过组件来实现。随着 Vue 3 的发布,Vue.js 引入了许多新的特性,使得组件的开发变得更加…...
MySQL数据库误删恢复_mysql 数据 误删
2、BigLog日志相关 2.1、检查biglog状态是否开启 声明: 当前为mysql版本5.7 当前为mysql版本5.7****当前为mysql版本5.7 2.1.1、Navicat工具执行 SHOW VARIABLES LIKE LOG_BIN%;OFF 是未开启状态,如果不是ON 开启状态需要开启为ON。{默认情况下就是关闭状态} 2.…...
