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


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

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


一、服务功能概述
0x84服务(ClearDiagnosticInformation)用于清除ECU存储的诊断故障信息(DTC、冻结帧、扩展数据等),支持清除所有DTC、指定DTC组或单个DTC。根据ISO 14229-1:2023 §7.5.7要求,完整18项测试用例如下:


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

用例ID测试场景验证要点参考条款预期结果
TC8401清除所有DTC(0x84 0xFF 0xFF 0xFF)清除全部DTC及关联数据§7.5.7.2.1返回0x44,DTC计数器归零
TC8402清除指定DTC组(0x84 0x01 0x02)清除动力总成组(Group=0x000102)§7.5.7.2.2返回0x44,组内DTC清除
TC8403清除单个DTC(0x84 0x01 0x23 0x45)清除DTC 0x012345§7.5.7.2.3返回0x44,特定DTC状态复位
TC8404无效DTC组处理指定未定义组(如0x84 0xFE 0xFE)§7.5.7.3.1返回NRC=0x31(请求越界)
TC8405默认会话权限验证在默认会话下执行清除操作§7.5.7.3.2返回NRC=0x7E(服务不支持)
TC8406安全访问未授权操作未解锁安全权限时清除关键DTC§7.5.7.3.3返回NRC=0x33(安全拒绝)
TC8407清除不存在DTC处理清除未存储的DTC(如0x84 0x99 0x99)§7.5.7.3.4返回0x44(无操作执行)
TC8408报文长度错误处理参数长度不足(如0x84 0xFF)§7.5.7.3.5返回NRC=0x13(长度错误)
TC8409跨会话状态维持验证扩展会话清除后切换至编程会话§7.5.7.4.1DTC保持清除状态
TC8410断电恢复验证清除DTC后断电重启§7.5.7.4.2DTC状态不恢复
TC8411功能寻址广播清除通过0x7DF地址清除所有ECU的DTC§7.5.7.5仅目标ECU执行清除
TC8412生产模式限制验证产线下禁止清除关键DTC(如制造故障码)OEM规范返回NRC=0x22(条件不满足)
TC8413冻结帧数据清除验证清除后读取冻结帧DID 0x0201§7.5.7.6返回NRC=0x31(数据无效)
TC8414清除锁定DTC处理尝试清除处于激活状态的DTC§7.5.7.3.6返回0x44,但DTC状态维持
TC8415混合清除模式验证同时清除所有组和单个DTC§7.5.7.7优先执行全清除操作
TC8416大数据块处理验证清除包含扩展数据的DTC(>1KB)§7.5.7.3.7返回0x44,内存释放成功
TC8417并发清除冲突检测多个诊断仪同时发送清除指令§7.5.7.3.8返回NRC=0x22(条件不满足)
TC8418事件触发后清除验证DTC触发后立即执行清除操作Annex G.4.2事件记录完整清除

三、关键测试场景详解

  1. TC8412 生产模式限制验证
  • 测试步骤:
    1. 进入生产模式(默认会话)
    2. 发送0x84 0xFF 0xFF 0xFF
    3. 读取DTC状态(0x19 0x02)
  • 验证要点:
    • 制造相关DTC(如0x0800系列)应保持锁定状态
    • 返回NRC=0x22(条件不满足)
  1. TC8418 事件触发后清除验证
  • 测试流程:
    1. 触发DTC 0x012345(如模拟短路故障)
    2. 立即发送0x84 0x01 0x23 0x45
    3. 通过0x19 0x0A读取扩展数据
  • 校验规则:
    • 冻结帧、环境数据应完全清除
    • 时间戳更新为清除操作时间

四、测试执行建议

  1. 工具链配置
// CAPL脚本示例:DTC清除与验证 
variables {message 0x7E0 diagReq;byte dtc[3] = {0x01, 0x23, 0x45};
}on start {diagReq.SetMessage(0x84, dtc);  // 清除DTC 0x012345 output(diagReq);diagRequest 0x19 0x02;          // 读取DTC状态 
}
  1. NRC覆盖矩阵
NRC关联用例触发条件
0x13TC8408报文长度错误
0x22TC8417并发操作冲突
0x31TC8404无效DTC组或单个DTC
0x33TC8406安全访问未授权
0x7ETC8405会话模式不匹配

五、特殊测试场景

  1. 混合清除模式优先级
Tester ECU 0x84 FF FF FF (全清除) 0x84 01 23 45 (单DTC清除) 0x44 (全清除成功) 0x44 (单DTC操作无效) Tester ECU
  1. 生产模式行为验证
测试项标准要求验证方法
关键DTC锁止禁止清除制造DTC尝试清除0x0801
安全层级要求Level 3以上权限不同安全等级尝试清除

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

系列目标

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

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

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

相关文章

盛铂科技 SMF106 低相位噪声贴片式频率综合器模块

在现代通信和电子设备领域,频率综合器作为关键组件,其性能优劣直接影响系统的整体表现。盛铂科技的 SMF106 低相位噪声贴片式频率综合器,以其卓越的性能和独特设计,成为众多高性能系统的选择。 一、频率覆盖范围广,步进…

Java语言在微服务架构中的应用研究

Java语言在微服务架构中的应用研究 微服务架构是现代软件系统中一种重要的设计模式,它通过将单一的应用程序拆解成多个小型、独立的服务来增强系统的可扩展性、灵活性和可维护性。Java作为一种成熟的编程语言,在微服务架构的实现中发挥了重要作用。本文…

深度解析前端性能优化:策略与实践

在当今数字化时代,前端性能对于用户体验和业务成功至关重要。缓慢加载的页面会导致用户流失,而高效的前端性能则能提升用户满意度、转化率和品牌形象。本文将深入探讨前端性能优化的关键策略与实践,帮助开发者打造快速响应的优质 Web 应用。 一、资源加载优化 1. 压缩与合…

Mybatis-扩展功能

逻辑删除乐观锁 MyBatisPlus从入门到精通-3(含mp代码生成器) Db静态工具类 Spring依赖循环问题 代码生成器 MybatisPlus代码生成器 枚举处理器 我们这里用int来存储状态 需要注解,很不灵活 希望用枚举类来代替这个Integer 这样的话我…

请解释设备像素、CSS 像素、设备独立像素、DPR、PPI 之间的区别?

设备像素(Device Pixels) 定义:设备像素,也称为物理像素,是屏幕上能够显示的最小物理单位。每个设备像素代表屏幕上的一个点,用于显示颜色。 代码示例: console.log(window.screen.width); /…

【golang】channel带缓存和不带缓存的区别,应用场景解读

在Go语言中,channel(通道)分为带缓存的通道(Buffered Channel)和不带缓存的通道(Unbuffered Channel),它们的核心区别在于数据传递的同步机制和性能特性。以下是详细对比&#xff1a…

《Foundation 起步》

《Foundation 起步》 引言 在当今快速发展的科技时代,了解并掌握最新的技术是至关重要的。本文旨在为初学者提供一个全面的《Foundation》起步指南,帮助大家快速入门并掌握这一强大的技术。 一、什么是Foundation? Foundation 是一个流行的前端框架,由 ZURB 公司开发。…

Java Lambda 表达式的实践与思考

一、引言 自Java 8引入Lambda表达式以来,Java语言在函数式编程方面迈出了重要一步。Lambda不仅让代码变得更简洁,还极大地提升了对集合、流操作等场景下的处理能力。作为一名资深Java后端程序员,多年的开发实践让我深刻体会到Lambda在提升代…

记忆力训练day19

万能字母组合编码法 所有的文字和字母的背后都有画面 练的不是记单词,练的是注意力给到单词,出什么画面,然后画面与画面之间进行连接 拆的过程就是找熟词的过程 要关注自己的回忆路径是什么?也就是你是怎么回忆起来的&#xff0c…

【第13章:自监督学习与少样本学习—13.4 自监督学习与少样本学习的未来研究方向与挑战】

凌晨三点的实验室里,博士生小张盯着屏幕上的训练曲线——他设计的跨模态少样本学习模型在医疗影像诊断任务上突然出现了诡异的性能断崖。前一秒还在92%的准确率高位运行,下一秒就暴跌到47%。这个看似灾难性的现象,却意外揭开了自监督学习与少样本学习技术深藏的核心挑战… 一…

unity学习43:子状态机 sub-state machine

目录 1sub-state machine子状态机 1.1 创建 sub-state machine 1.2 sub-state machine 内容 1.3 子状态机的应用 2 子状态机不同于blend tree的嵌套 3 应用例子:若角色拿不同武器的动画设计,可以使用2种方法 3.1 在1个图层layer里,使用…

CANopen协议简介及电机控制

CANopen 是基于CAN总线的一种高层协议,广泛应用于工业自动化、嵌入式系统以及电机控制等领域。它的优点包括高效的数据传输能力、灵活的设备管理和强大的通信功能。 ​ 在控制多个电机并实时获取电机速度时,CANopen通过两种数据传输方式来实现&#xff…

20250213 隨筆 雪花算法

雪花算法(Snowflake Algorithm) 雪花算法(Snowflake) 是 Twitter 在 2010 年開發的一種 分布式唯一 ID 生成算法,它可以在 高併發場景下快速生成全局唯一的 64-bit 長整型 ID,且不依賴資料庫,具…

Golang并发编程最佳实践:协程与通道

Golang并发编程最佳实践:协程与通道 本文旨在介绍Golang并发编程的最佳实践,重点讨论协程和通道的使用方法,以及相关的实际案例和代码示例。 一、Golang并发编程简介 又称Go语言)是一种由Google开发的编程语言,旨在提供…

Python VsCode DeepSeek接入

Python VsCode DeepSeek接入 创建API key 首先进入DeepSeek官网,https://www.deepseek.com/ 点击左侧“API Keys”,创建API key,输出名称为“AI” 点击“创建",将API key保存,复制在其它地方。 在VsCode中下载…

【C++】基础入门(详解)

🌟 Hello,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 目录 输入&输出 缺省参数(默认参数) 函数重载 引用 概念及定义 特性及使用 const引用 与指针的关系 内联inline和nullptr in…

【Elasticsearch】runtime_mappings搜索请求中定义运行时字段

在 Elasticsearch 中,在搜索请求中定义运行时字段(Runtime Fields)是一种强大的功能,允许用户在查询时动态添加和计算字段,而无需预先在索引映射中定义这些字段。这种方式提供了极大的灵活性,尤其是在处理动…

数学建模基础训练-1:概念解析

文章目录 数学建模基础训练-1:概念解析问题一:如何找到“概念”?问题二:如何全面理解概念的基础含义?问题三:如何深刻理解概念并作出创新点发掘?实际举例问题一 :研究并给出寒假开学某大学返校交…

【Linux基础】Linux下常用的系统命令

文章目录 一、前言二、系统监控和进程管理指令2.1 ps命令2.2 top命令2.3 kill命令2.4 shutdown命令 三、文件和目录管理指令3.1 cd命令3.2 ls命令3.3 mkdir命令3.4 cat 命令3.5 cp命令3.6 mv命令3.7 rm命令3.8 chmod命令3.9 ln命令3.10 pwd命令 四、文件查找和文本处理指令4.1 …

mysql读写分离与proxysql的结合

上一篇文章介绍了mysql如何设置成主从复制模式,而主从复制的目的,是为了读写分离。 读写分离,拿spring boot项目来说,可以有2种方式: 1)设置2个数据源,读和写分开使用 2)使用中间件…