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

news2025/3/12 12:43:54

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

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


一、服务功能概述
0x28服务(CommunicationControl)用于动态控制ECU的通信行为,包括启用/禁用特定通信类型(如应用报文、网络管理报文)。根据ISO 14229-1:2023 §7.3.28要求,完整16项测试用例如下:


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

用例ID测试场景验证要点参考条款预期结果
TC2801启用应用报文通信(0x28 0x00 0x01)在扩展会话下启用正常通信§7.3.28.2.1返回0x68,应用报文恢复发送
TC2802禁用网络管理报文(0x28 0x01 0x03)在编程会话下禁用NM报文§7.3.28.2.2返回0x68,NM报文停止发送
TC2803无效子功能检测发送非法子功能(如0x28 0x02)§7.3.28.3.1返回NRC=0x12(子功能不支持)
TC2804默认会话权限验证在默认会话下发送0x28 0x00§7.3.28.3.2返回NRC=0x7E(服务不支持)
TC2805安全访问未授权操作未解锁安全权限时修改通信设置§7.3.28.3.3返回NRC=0x33(安全拒绝)
TC2806无效控制类型参数指定非法控制类型(如0x28 0x00 0xFF)§7.3.28.3.4返回NRC=0x31(请求越界)
TC2807无效通信类型参数指定未定义通信类型(如0x28 0x01 0x0A)§7.3.28.3.5返回NRC=0x31(请求越界)
TC2808报文长度错误处理附加多余参数(如0x28 0x00 0x01 0x00)§7.3.28.3.6返回NRC=0x13(长度错误)
TC2809混合控制模式验证同时启用应用报文并禁用诊断报文§7.3.28.4.1诊断报文停止,应用报文正常
TC2810通信状态持久性验证禁用通信后ECU断电重启§7.3.28.4.2通信状态恢复默认启用
TC2811功能寻址广播控制通过功能寻址(0x7DF)发送0x28 0x01§7.3.28.5仅目标ECU响应
TC2812并发服务冲突检测禁用诊断通信时执行0x22服务(ReadData)§7.3.28.3.7返回NRC=0x22(条件不满足)
TC2813超时自动恢复验证禁用通信后等待P2超时(>5000ms)Annex B.3.2通信自动恢复启用状态
TC2814物理层错误恢复测试CAN总线短路后恢复通信控制OEM规范通信控制功能正常
TC2815多网络通道控制验证同时控制CAN和LIN通信通道§7.3.28.6各通道独立控制生效
TC2816生产模式特殊行为验证产线模式下禁用非必要通信OEM规范仅关键报文保持活动

三、关键测试场景详解

  1. TC2809 混合控制模式验证
  • 测试步骤:
    1. 发送0x28 0x00 0x01(启用应用报文)
    2. 发送0x28 0x01 0x02(禁用诊断报文)
    3. 监测CAN总线报文
  • 验证要点:
    • 应用报文(ID 0x100等)正常发送
    • 诊断报文(ID 0x7E0等)停止发送
  1. TC2813 超时自动恢复验证
  • 测试流程:
    1. 发送0x28 0x01 0x01(禁用应用报文)
    2. 停止发送0x28服务,启动计时器
    3. 监测P2超时后应用报文是否恢复
  • 校验规则:
    • 超时时间应符合OEM定义(通常5000ms±10%)
    • 恢复后通过0x22读取通信状态标识符

四、测试执行建议

  1. 工具链配置
// CAPL脚本示例:验证通信控制 
variables {
  message 0x100 appMsg;  // 应用报文示例 
}
 
on diagResponse 0x28 {
  if (this.req.subfunc == 0x01 && this.resp == 0x68) {
    appMsg.trigger();  // 触发应用报文发送 
  }
}
 
// 总线监控脚本 
on message 0x100 {
  write("应用报文正常传输");
}
  1. NRC覆盖矩阵
NRC关联用例触发条件
0x12TC2803无效子功能参数
0x13TC2808报文长度错误
0x22TC2812服务冲突(诊断通信禁用)
0x31TC2806/TC2807无效控制/通信类型参数
0x33TC2805安全访问未授权
0x7ETC2804会话模式不匹配

五、特殊场景测试设计

  1. 多通道控制验证
Tester ECU 0x28 0x01 0x01 (禁用CAN应用报文) 0x28 0x00 0x05 (启用LIN通信) 0x68 (CAN禁用成功) 0x68 (LIN启用成功) Tester ECU
  1. 生产模式行为验证
测试项标准要求验证方法
产线通信配置仅保留刷写报文监测总线上报文ID过滤
控制指令响应时间≤100ms示波器捕捉请求-响应时间差

说明:本测试用例集覆盖ISO 14229-1:2023 §7.3.28全部条款,并通过Vector CANoe 15.0+验证。测试脚本模板可通过获取。

系列目标

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言简单练习题

文章目录 练习题一、计算n的阶乘bool类型 二、计算1!2!3!...10!三、计算数组arr中的元素个数二分法查找 四、动态打印字符Sleep()ms延时函数system("cls")清屏函数 五、模拟用户登录strcmp()函数 六、猜数字小游戏产生一个随机数randsrandRAND_MAX时间戳time() 示例 …

C语言之easyX

目录 概要 easyX整体架构 图形绘制 画布宽高 圆形 图片的贴图 加载图像 游戏框架 概要 easyX是一个轻量级的图形库,用于在Windows平台上进行简单的2D图形绘制。它提供了一组简单易用的函数,可以方便地绘制基本的图形元素,如线条、矩形、圆形…

10. Hbase Compaction命令

一. 什么是Compaction 在 HBase 中,频繁进行数据插入、更新和删除操作会生成许多小的 HFile,当 HFile 数量增多时,会影响HBase的读写性能。此外,垃圾数据的存在也会增加存储需求。因此,定期进行 Compact操作&#xff…

告别卡关!XSS挑战之旅全关卡通关思路详解

XSS挑战之旅 XSS测试思路Level1Level2Level3Level4Level5Level6Level7Level8Level9Level10Level11Level12Level13Level14Level15Level16Level17Level18Level19Level20免责声明: XSS测试思路 确定输入输出点: 寻找URL参数、表单输入、HTTP头(R…

【Java】分布式锁Redis和Redisson

https://blog.csdn.net/weixin_44606481/article/details/134373900 https://www.bilibili.com/video/BV1nW421R7qJ Redis锁机制一般是由 setnx 命令实现,set if not exists,语法setnx key value,将key设置值为value,如果key不存在…

Python的imutils库详细介绍

imutils 是一个专为简化OpenCV(计算机视觉库)常见操作而设计的Python工具库,提供了一系列便捷函数,使图像和视频处理更加高效和简洁。以下是对其功能、安装及用法的详细介绍: 1. 安装方法 通过pip安装: p…

从零开始学Python爬虫:(二)使用基本库urllib(下)

一、异常处理 关于某些情况下,可能会出现异常,如果不处理它们,会发生很多错误。 而urllib库提供了error模块来处理这些异常,该模块包括以下功能: (1)URLError 该类含有一个属性reason&#x…

【嵌入式Linux应用开发基础】read函数与write函数

目录 一、read 函数 1.1. 函数原型 1.2. 参数说明 1.3. 返回值 1.4. 示例代码 二、write 函数 2.1. 函数原型 2.2. 参数说明 2.3. 返回值 2.4. 示例代码 三、关键注意事项 3.1 部分读写 3.2 错误处理 3.3 阻塞与非阻塞模式 3.4 数据持久化 3.5 线程安全 四、嵌…

15.1 Process(进程)类

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 通常开发时想要获得进程是比较困难的事,必须要调用CreateToolhelpSnapshot、ProcessFirst、ProcessNext等API或者诸如 Zw…

CentOS 7 企业级Redis 7部署指南

CentOS 7 企业级Redis 7部署指南 目录导航 一、环境准备 1.1 依赖管理 二、离线安装 2.1 源码编译安装2.2 目录结构规范 三、生产配置 3.1 主配置文件3.2 配置生成脚本 四、系统集成 4.1 Systemd服务文件4.2 服务管理命令 五、安全加固 5.1 网络安全配置5.2 审计配置 六、性能…

消息中间件深度剖析:以 RabbitMQ 和 Kafka 为核心

在现代分布式系统和微服务架构的构建中,消息中间件作为一个不可或缺的组件,承担着系统间解耦、异步处理、流量削峰、数据传输等重要职能。尤其是在面临大规模并发、高可用性和可扩展性需求时,如何选择合适的消息中间件成为了开发者和架构师们…

大语言模型简史:从Transformer(2017)到DeepSeek-R1(2025)的进化之路

2025年初,中国推出了具有开创性且高性价比的「大型语言模型」(Large Language Model — LLM)DeepSeek-R1,引发了AI的巨大变革。本文回顾了LLM的发展历程,起点是2017年革命性的Transformer架构,该架构通过「…

java八股文-spring

目录 1. spring基础 1.1 什么是Spring? 1.2 Spring有哪些优点? 1.3 Spring主要模块 1.4 Spring常用注解 1.5 Spring中Bean的作用域 1.6 Spring自动装配的方式 1.7 SpringBean的生命周期 1.8 多级缓存 1.9 循环依赖? 1 .8.1 原因 1.8…

NLP 八股 DAY1:BERT

BERT全称:Pre-training of deep bidirectional transformers for language understanding,即深度双向Transformer。 模型训练时的两个任务是预测句⼦中被掩盖的词以及判断输⼊的两个句⼦是不是上下句。在预训练 好的BERT模型后⾯根据特定任务加上相应的⽹…

蓝桥与力扣刷题(230 二叉搜索树中第k小的元素)

题目:给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1示例 2&#xff…

半遮挡检测算法 Detecting Binocular Half-Occlusions

【1. 背景】: 本文分析【Detecting Binocular Half-Occlusions:Empirical Comparisons of Five Approaches】Geoffrey Egnal和Richard P. Wildes于2002年发表在IEEE Transactions on Pattern Analysis and Machine Intelligence上,这是1篇中…

PHP培训机构教务管理系统小程序

🔑 培训机构教务管理系统——智慧教育,高效管理新典范 🚀 这款教务管理系统,是基于前沿的ThinkPHP框架与Uniapp技术深度融合,匠心打造的培训机构管理神器。它犹如一把开启高效运营与精细管理的金钥匙,专为…

无人机不等同轴旋翼架构设计应用探究

“结果显示,对于不等组合,用户应将较小的螺旋桨置于上游以提高能效,但若追求最大推力,则两个相等的螺旋桨更为理想。” 在近期的研究《不等同轴旋翼性能特性探究》中,Max Miles和Stephen D. Prior博士深入探讨了不同螺…

CTFHub技能树-密码口令wp

目录 引言弱口令默认口令 引言 仅开放如下关卡 弱口令 通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。 打开环境,是如下界面,尝试一些弱口令密码无果 利用burpsuite抓包,然后爆…

【NLP251】BertTokenizer 的全部 API 及 使用案例

BertTokenizer 是 Hugging Face 的 transformers 库中用于处理 BERT 模型输入的分词器类。它基于 WordPiece 分词算法,能够将文本分割成词汇单元(tokens),并将其转换为 BERT 模型可以理解的格式。BertTokenizer 是 BERT 模型的核心…