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

server/2025/2/19 9:59:13/

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诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉


http://www.ppmy.cn/server/167568.html

相关文章

WebSocket与Socket.io的区别

文章目录 引言一、WebSocket:原生的实时通信协议(一)WebSocket 是什么(二)WebSocket 的工作原理(三)WebSocket 的使用方法(四)WebSocket 的优势(五&#xff0…

32单片机学习记录1之GPIO

32单片机学习记录1之GPIO 前置 GPIO口在单片机中扮演着什么角色? 在单片机中,GPIO口(General Purpose Input/Output) 是一种通用输入/输出接口,扮演着连接单片机与外部设备的桥梁角色。具体来说,它在单片…

DeepSeek 突然来袭,AI 大模型变革的危机与转机藏在哪?

随着人工智能技术的飞速发展,大模型领域不断涌现出具有创新性的成果。DeepSeek 的横空出世,为 AI 大模型领域带来了新的变革浪潮。本文将深入探讨 DeepSeek 出现后 AI 大模型面临的危机与转机。 冲冲冲!!! 目录 一、…

c++ CPU指令集和优化选项

常见 CPU 指令集 x86 / x86_64(Intel & AMD) 指令集说明适用处理器SSE (Streaming SIMD Extensions)128-bit SIMD 处理,包含 SSE/SSE2/SSE3/SSE4.1/SSE4.2Intel Pentium III 及以上AVX (Advanced Vector Extensions)256-bit SIMD 处理&…

Eclipse 插件开发相关概念

整理了Eclipse插件开发的概念,用于熟悉入门 SWT(Standard Widget Toolkit)标准图形工具箱 Java开发的GUI程序技术,由Eclipse开发,相比AWT、Swing更美观;对于目标平台上已经有的控件,SWT会直接使…

机器学习:决策树

1. 初步概念 决策树是一种基于分裂特征的机器学习方法,用于分类和回归任务。它通过将数据按特征值进行分割,最终做出预测。与线性模型不同,决策树能够自动识别重要的特征,并根据数据情况生成复杂的决策规则。 2. 决策树的核心思想 决策树的核心思想在于选择一个特征作为…

HarmonyOS NEXT - picker 选择器( 包含 单列、多列、底部选择器)

demo 地址: https://github.com/iotjin/JhHarmonyDemo 组件对应代码实现地址 代码不定时更新,请前往github查看最新代码 在demo中这些组件和工具类都通过module实现了,具体可以参考HarmonyOS NEXT - 通过 module 模块化引用公共组件和utils HarmonyOS NE…

STM32简介

一、ST主要产品 STM32命名规则