【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-011DID边界值读取读取最小(0x0000)和最大(0xFFFF)DIDOEM规范根据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.3CRC校验值与数据匹配
TC22-015服务并发冲突测试在写入操作(0x2E)期间读取相同DID§7.4.4.3.8返回NRC=0x22(条件不满足)
TC22-016电压异常场景容错模拟ECU供电电压波动时读取数据§8.5.3返回NRC=0x72(通用错误)
TC22-017DID数据更新机制验证读取实时变化数据(如车速传感器)Annex B.2.2数据值与实际状态同步
TC22-018多ECU广播读取处理通过物理寻址广播读取多个ECU的DID§7.4.4.3.9各ECU独立返回响应数据

三、关键测试场景详解

  1. TC22-004 安全访问未解锁读取
  • 测试步骤:
    1. 保持ECU处于锁定状态(未执行0x27服务)
    2. 发送0x22 0xF186(活动会话状态DID)
  • 验证要点:
    • ECU应拒绝访问受保护DID
    • 返回NRC=0x33需包含安全等级标识
  1. TC22-012 多帧传输数据读取
  • 测试流程:
    1. 发送首帧(0x22 + DID)
    2. 接收流控帧(BS=10, STmin=20ms)
    3. 接收连续帧传输完整数据
  • 校验规则:
    • ISO-TP协议的分帧重组逻辑
    • 数据完整性通过CRC-16校验

四、测试执行建议

  1. 工具链配置:
    • 使用CANoe 15.0+版本配置DID数据库
    • 集成CAPL脚本自动化校验数据格式
  2. 测试数据准备:
    • 预置DID映射表(示例):
      // DID定义示例 
      #define DID_VIN                0xF190  // 17字节ASCII码 
      #define DID_SESSION_STATUS    0xF186  // 1字节(0x01-默认会话)
      #define DID_ECU_SERIAL        0xF18C  // 12字节+CRC校验 
      
      
3. 异常场景模拟:  
  - 通过总线干扰器注入错误帧(Error Frame)  
  - 使用ECU模拟器触发电压跌落事件  

说明:本测试用例集已在dSPACE SCALEXIO平台完成验证,适用于AUTOSAR CP/AP架构ECU开发。

系列目标

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【VB语言】EXCEL中VB宏的应用

【VB语言】EXCEL中VB宏的应用 文章目录 [TOC](文章目录) 前言一、EXCEL-VB1.实验过程2.代码 二、EXCEL-VB 生成.c.h文件1.实验过程2.代码 四、参考资料总结 前言 1.WPS-VB扩展包 提示:以下是本篇文章正文内容,下面案例可供参考 一、EXCEL-VB 1.实验过…

Redis7.0八种数据结构底层原理

导读 本文介绍redis应用数据结构与物理存储结构,共八种应用数据结构和 一. 内部数据结构 1. sds sds是redis自己设计的字符串结构有以下特点: jemalloc内存管理预分配冗余空间二进制安全(c原生使用\0作为结尾标识,所以无法直接存储\0)动态计数类型(根据字符串长度动态选择…

NixHomepage - 简单的个人网站

💻 NixHomepage - 简单的个人网站 推荐下个人的开源项目,演示网站,项目链接 https://github.com/nixgnauhcuy/NixHomepage,喜欢的话可以为我的项目点个 Star~ 📷 预览 ⚙️ 功能特性 多平台适配 明亮/暗黑模式切换 W…

给压缩文件加密码的5种方法(win/mac/手机/网页端)

把文件加密压缩,一方面能有效保护个人隐私与敏感信息,防止数据在传输或存储过程中被窃取、篡改。另一方面,压缩文件可减少存储空间占用,提升传输速度,方便数据的存储与分享。以下为你介绍5种常见的加密压缩方法。 一、…

如何通过AI轻松制作PPT?让PPT一键生成变得简单又高效

如何通过AI轻松制作PPT?让PPT一键生成变得简单又高效!在这个信息化飞速发展的时代,PPT已经成为我们日常工作、学习和生活中不可或缺的一部分。无论是公司会议、学术报告,还是个人展示,PPT的作用都不容忽视。很多人对于…

Linux之【网络I/O】前世今生(二)

前文回顾 通过学习 Linux之【网络I/O】前世今生(一),我们知道了I/O 请求可以分为两个阶段,分别为 I/O 调用和 I/O 执行: I/O 调用 即用户进程向内核发起系统调用(通过 0x80 中断)。 I/O 执行 内核等待 I/O 请求处理完…

Redis未授权访问漏洞导致getshell

一、漏洞信息 redis默认情况下会绑定在本地6379端口,如果没有进行采用相关的策略,就会将redis服务暴露到公网上,如果再没有设置密码认证(一般为空)的情况下,会导致任意用户可以访问到目标服务器的情况下未授权访问redis以及读取r…

伯克利 CS61A 课堂笔记 08 —— Strings and Dictionaries

本系列为加州伯克利大学著名 Python 基础课程 CS61A 的课堂笔记整理,全英文内容,文末附词汇解释。 目录 01 Strings 字符串 Ⅰ Strings are An Abstraction. Ⅱ Strings Literals have Three Forms Ⅲ String are Sequences 02 Dictionaries 字典 …

【Stable Diffusion模型测试】测试ControlNet,没有线稿图?

相信很多小伙伴跟我一样,在测试Stable Diffusion的Lora模型时,ControlNet没有可输入的线稿图,大家的第一反应就是百度搜,但是能从互联网上搜到的高质量线稿图,要么收费,要么质量很差。 现在都什么年代了&a…

智能手表表带圆孔同心度检测

在智能手表的制造工艺中,表带圆孔同心度检测是确保产品品质的关键环节。精准的同心度不仅关乎表带与表体的完美适配,更直接影响用户的佩戴舒适度和产品的整体美观度。稍有偏差,就可能导致表带安装困难、佩戴时出现晃动,甚至影响智…

基于SSM+uniapp的数学辅导小程序+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:用户管理、学习中心、知识分类管理、学习周报管理、口算练习管理、试题管理、考试管理、错题本等技术选型:SSM,Vue(后端管理web),uniapp等测试环…

基于 openEuler 构建 LVS-DR 群集

一、 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。 二、 基于 openEuler 构建 LVS-DR 群集。 一 NAT 模式 部署简单:NAT 模式下,所有的服务器节点只需要连接到同一个局域网内,通过负载均衡器进行网络地址转…

JS设计模式之单例原型

那么单例模式都有哪些应用场景呢?如何通过构造函数创建单例如何使用模块化的方式创建总结 各位老铁们,今天我们介绍一下JS中单例设计模式,它的特点是确保一个类只有一个实例,并提供一个全局访问点来获取该实例(无论被创…

vue+springboot+webtrc+websocket实现双人音视频通话会议

前言 最近一些时间我有研究,如何实现一个视频会议功能,但是找了好多资料都不太理想,最终参考了一个文章 WebRTC实现双端音视频聊天(Vue3 SpringBoot) 只不过,它的实现效果里面只会播放本地的mp4视频文件&…

Linux 基础IO——重定向和缓冲区

目录 一、重定向 1、重定向的本质 2、使用 dup2 系统调用 (1)输出重定向 (2)追加重定向 (3) 输入重定向 ​ 二、缓冲区 1.理解缓冲区 2.缓冲区刷新问题 3.为什么要有缓冲区? 4.这个缓冲区在哪里&#xff…

14、deepseek视觉大模型Janus Pro本地部署及实战

1、简介 2025.01.27: Janus-Pro发布,Janus的高级版本,显著提高了多模态理解和视觉生成。 Janus-Pro 是 Janus 的高级版本。具体来说, Janus-Pro 包括以下改进:优化的训练策略、 扩展的训练数据以及更大规模的模型。通…

【第3章:卷积神经网络(CNN)——3.1 CNN的基本结构与工作原理】

嘿,小伙伴们,今天咱们来聊聊深度学习里的一大明星——卷积神经网络(CNN)。这东西在图像识别、视频处理等领域简直不要太火,甚至人脸识别、物体检测这些高大上的应用,都离不开它的身影。废话不多说,咱们这就开聊! 一、CNN是什么东东? 在人工智能领域,卷积神经网络(…

VMware Workstate 的 Ubuntu18 安装 vmware tools(不安装没法共享)

在共享主机路径后,可以在: /mnt/hgfs/下方找到共享的文件。但没有安装vmware tool时是没法共享的。 如何安装vmware tool,网上版本很多。这里记录一下: VMware Workstation 17 Pro,版本:17.6.0 虚拟机系统…

高效开发!使用Chrome对MoonBit生成的Wasm进行性能分析!

在 [我们前一篇博客][call-wasm-from-js] 中,我们介绍了如何在前端 JavaScript 中使用 MoonBit 驱动的 Wasm 库 [Cmark]。在本文中,我们将探索如何直接从 Chrome 浏览器中对该库进行性能分析。希望这篇教程能对你在使用 MoonBit 在类似的场景中进行开发时…

《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器

周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1YPKEeyEeM/ 《安富莱嵌入式周报》第350期:Google开…