中国建设银行的网站首页/如何注册网站免费注册

中国建设银行的网站首页,如何注册网站免费注册,做中国最专业的健康门户网站,网站服务器空间价格ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase10 作者:车端域控测试工程师 更新日期:2025年02月18日 关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-010测试用例 用例ID测试场景验证要点参考条款预期结果TC…

ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase10

作者:车端域控测试工程师
更新日期:2025年02月18日
关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023

TC11-010测试用例

用例ID测试场景验证要点参考条款预期结果
TC11-010混合复位类型执行在扩展会话中交替请求不同复位类型§8.2.5各复位类型独立生效无冲突

以下是为TC11-010设计的工业级CAPL测试用例,包含多复位类型状态机验证,包含时序控制策略和异常处理机制:

/*----------------------------------------------------------Title:TC11-010 混合复位类型冲突验证 作者:车端域控测试工程师 日期:2025-02-18 
------------------------------------------------------------*/variables {// 通信参数 const long DiagReqID = 0x732;       // 诊断请求标识符 const long DiagResID = 0x733;       // 诊断响应标识符 const byte SessionCtrlSID = 0x10;   // 会话控制服务 const byte ResetSID = 0x11;         // ECU复位服务 // 复位类型配置(基于OEM规范)struct sResetType {byte subFunc;    // 子功能号 char* desc;      // 类型描述 dword delay;     // 预期执行时间 } resetTypes[3] = {{0x01, "硬件复位", 1200},{0x02, "钥匙复位", 800},{0x03, "软件复位", 500}};// 动态控制变量 msTimer sessionTimer;int currentResetIndex = 0;byte responseStatus[3];             // 0-未响应 1-成功 2-失败 
}testcase TC11_010_MixedResetTest() 
{TestModuleTitle("TC11-010 混合复位类型冲突验证");// ███ 阶段1:进入扩展会话 ███ testStep("STEP1 进入扩展诊断会话");message DiagReqID [CAN] {dlc = 2;byte(0) = SessionCtrlSID;byte(1) = 0x03;  // 扩展会话 }output(this);if(TestWaitForMessage(DiagResID, 200) && this.byte(0) == 0x50 && this.byte(1) == 0x03) {testStepPass("成功进入扩展会话");setTimer(sessionTimer, 5000);  // 会话保活计时 } else {testStepFail("会话建立失败");return;}// ███ 阶段2:交替执行复位操作 ███ testStep("STEP2 执行混合复位序列");for(currentResetIndex=0; currentResetIndex<3; currentResetIndex++){// 发送复位请求 message DiagReqID [CAN] {dlc = 2;byte(0) = ResetSID;byte(1) = resetTypes[currentResetIndex].subFunc;}output(this);// 响应处理窗口 if(TestWaitForMessage(DiagResID, 300)) {// 肯定响应验证 if(this.byte(0) == 0x51 && this.byte(1) == resetTypes[currentResetIndex].subFunc) {responseStatus[currentResetIndex] = 1;testAddLog("%s 执行成功", resetTypes[currentResetIndex].desc);// 等待复位完成 testWait(resetTypes[currentResetIndex].delay);// 重新激活会话 message DiagReqID [CAN] {dlc = 2;byte(0) = SessionCtrlSID;byte(1) = 0x03;}output(this);TestWaitForMessage(DiagResID, 200);}// 否定响应处理 else if(this.byte(0) == 0x7F && this.byte(1) == ResetSID) {responseStatus[currentResetIndex] = 2;testAddLog("%s 执行失败(NRC=0x%02X)", resetTypes[currentResetIndex].desc, this.byte(2));}}else {responseStatus[currentResetIndex] = 0;  // 超时 }// 操作间隔 testWait(300);}// ███ 阶段3:综合结果验证 ███ testStep("STEP3 验证独立生效性");int successCount = 0;for(int i=0; i<3; i++) {if(responseStatus[i] == 1) {testStepPass("%s 独立生效", resetTypes[i].desc);successCount++;} else {testStepFail("%s 状态异常(代码:%d)", resetTypes[i].desc, responseStatus[i]);}}if(successCount == 3) {testCasePass("所有复位类型独立生效");} else {testCaseFail("检测到%02d/03次冲突", successCount);}
}/*----------------------------------------------------------会话状态监控模块(关键扩展)
----------------------------------------------------------*/
on timer sessionTimer 
{testAddCondition("会话保活剩余时间:%.1fs", (5000 - getTimer(sessionTimer))/1000.0);// 每4秒发送TesterPresent if(getTimer(sessionTimer) % 4000 == 0) {message DiagReqID [CAN] {byte(0) = 0x3E;  // TesterPresent byte(1) = 0x00;}output(this);}
}

流程图解(执行逻辑可视化)

进入扩展会话
发送0x11 0x01
等待1200ms
发送0x11 0x02
等待800ms
发送0x11 0x03
等待500ms
结果验证

关键参数说明表

参数名称示例值工程校准要点
会话保活周期5000ms需小于ECU会话超时时间
复位执行延迟类型相关根据OEM标定值调整
操作间隔300ms需覆盖总线负载高峰期
TesterPresent周期4000ms维持会话的最小间隔

响应状态矩阵

复位类型预期结果失败模式示例
硬件复位立即执行系统未实际断电
钥匙复位点火周期复位未检测到钥匙信号
软件复位应用层重启部分进程未终止

工业级增强功能

  1. 复位深度检测

    // 通过系统变量验证复位层级 
    on sysvar ECU::ResetLevel {testAddLog("当前复位深度:%d级", @this::ResetLevel);
    }
    
  2. 混合负载测试

    void ExecuteStressTest() {// 可扩展:// 1. 随机顺序执行复位类型 // 2. 叠加总线负载(70%-90%)// 3. 电源波动模拟 
    }
    
  3. 时序校验逻辑

    // 验证响应时序合规性 
    if(getTimer(responseTimer) < 200) {testAddCondition("响应时间:%dms", getTimer(responseTimer));
    }
    

测试执行说明

  1. 环境配置建议

    [Diagnostic]
    P2Server_Timeout = 3000 
    P2Client_Timeout = 5000 
    
  2. 结果判定标准

    检查项合格标准验证方法
    会话保持100%维持扩展会话日志分析
    复位独立性各类型执行成功率100%状态机验证
    时序符合性误差≤±15%示波器测量

专家调试技巧:

  1. Write窗口添加过滤条件:
    id==733h && (byte(0)==51h || byte(0)==7Fh)
    
  2. 使用Graphic窗口监控信号:
    sysvar::ECU::PowerStatus 
    sysvar::Diag::ActiveSession 
    
  3. 添加总线触发条件:
    on message DiagResID {if(this.byte(0) == 0x7F) break;
    }
    

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

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

相关文章

【存储中间件API】MySQL、Redis、MongoDB、ES常见api操作及性能比较

常见中间件api操作及性能比较 ☝️ MySQL crud操作✌️ maven依赖✌️ 配置✌️ 定义实体类✌️ 常用api ☝️ Redis crud操作✌️ maven依赖✌️ 配置✌️ 常用api ☝️ MongoDB crud操作✌️ maven依赖✌️ 配置文件✌️ 定义实体类✌️ MongoDB常用api ☝️ ES crud操作 ⭐️…

51单片机入门_10_数码管动态显示(数字的使用;简单动态显示;指定值的数码管动态显示)

接上篇的数码管静态显示&#xff0c;以下是接上篇介绍到的动态显示的原理。 动态显示的特点是将所有位数码管的段选线并联在一起&#xff0c;由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选&#xff…

win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 win10系统上的虚拟机安装麒麟V10系统提示找不到操作系统&#xff0c;报错&#xff1a;Operating System not found 二、原因分析 国产系统&#xff0c;需要注意的点&#xff1a; 需要看你的系统类…

情书网源码 情书大全帝国cms7.5模板

源码介绍 帝国cms7.5仿《情书网》模板源码&#xff0c;同步生成带手机站带采集。适合改改做文学类的网站。 效果预览 源码获取 情书网源码 情书大全帝国cms7.5模板

STM32 ADC介绍(硬件原理篇)

目录 背景 AD转换器 采样与保持 量化 编码 AD转换器转换原理 DA转换原理 AD转换原理 1.逐次逼近型AD转换器 2.并联比较型AD转换器 编码器 同步D触发器和边沿D触发器 基本RS触发器 同步RS触发器 同步D触发器 边沿型D触发器&#xff08;维持-阻塞D触发器&#xff…

公网远程家里局域网电脑过程详细记录,包含设置路由器。

由于从校内迁居小区,校内需要远程控制访问小区内个人电脑,于是早些时间刚好自己是电信宽带,可以申请公网ipv4不需要花钱,所以就打电话直接申请即可,申请成功后访问光猫设备管理界面192.168.1.1,输入用户名密码登录超管(密码是网上查下就有了)设置了光猫为桥接模式,然后…

【Spring】Spring配置文件

目录 ​什么是配置文件&#xff1f; 配置文件的作用 SpringBoot配置文件 配置文件格式 配置文件的优先级 properties配置文件说明 properties基本语法 读取配置文件 properties缺点 yml配置文件说明 yml基本语法 使用yml连接数据库 yml配置不同数据类型及null 注意…

Visual Studio Code使用ai大模型编成

1、在Visual Studio Code搜索安装roo code 2、去https://openrouter.ai/settings/keys官网申请个免费的配置使用

解锁机器学习核心算法 | 支持向量机:机器学习中的分类利刃

一、引言 在机器学习的庞大算法体系中&#xff0c;有十种算法被广泛认为是最具代表性和实用性的&#xff0c;它们犹如机器学习领域的 “十大神器”&#xff0c;各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森林、K - 近邻算法、K - 平均算法、支持向…

深入解析Qt事件循环

在Qt开发中&#xff0c;QApplication::exec()这行代码是每个开发者都熟悉的“魔法咒语”。为什么GUI程序必须调用它才能响应操作&#xff1f;为何耗时操作会导致界面冻结&#xff1f;本文将以事件循环为核心&#xff0c;揭示Qt高效运转的底层逻辑&#xff0c;探讨其设计哲学与最…

未来游戏:当人工智能重构虚拟世界的底层逻辑

未来游戏&#xff1a;当人工智能重构虚拟世界的底层逻辑 在《赛博朋克2077》夜之城的霓虹灯下&#xff0c;玩家或许已经注意到酒吧里NPC开始出现微表情变化&#xff1b;在《艾尔登法环》的开放世界中&#xff0c;敌人的战术包抄逐渐显露出类人智慧。这些细节预示着游戏产业正站…

deepseek-v3在阿里云和腾讯云的使用中的差异

随着deepseek在各大云商上线&#xff0c;试用了下阿里云和腾讯云的deepseek服务&#xff0c;在回答经典数学问题9.9和9.11谁大时&#xff0c;发现还是有差异的。将相关的问题记录如下。 1、问题表现 笔者使用的openai的官方sdk go-openai。 因本文中测验主要使用阿里云和腾讯…

宝塔面板开始ssl后,使用域名访问不了后台管理

宝塔面板后台开启ssl访问后&#xff0c;用的证书是其他第三方颁发的证书 再使用 域名/xxx 的形式&#xff1a;https://域名:xxx/xxx 访问后台&#xff0c;结果出现如下&#xff0c;不管使用 http 还是 https 的路径访问都进不后台管理 这个时候可以使用 https://ip/xxx 的方式来…

开发板部署|RK3588部署DeepSeek-1.5B

前言 在 RK3588 上部署大模型可以显著提升计算效率、节能、加速推理过程&#xff0c;并实现本地化推理&#xff0c;适合各种边缘计算应用&#xff0c;如智能设备、自动驾驶、工业机器人、健康监测等领域。此外&#xff0c;RK3588 配备了强大的 NPU&#xff08;神经网络处理单元…

UDP与TCP

用UDP一定比用TCP快吗&#xff1f; 假设我们需要在a电脑的进程发一段数据到b电脑的进程我们可以选择使用TCP或UDP协议进行通信。 对于TCP这样的可靠性协议每次消息发出后都能明确知道对方有没有收到&#xff0c;就像打电话一样&#xff0c;只要“喂喂"两下对方就能回你个…

软件测试:定义和实质

软件缺陷的定义&#xff1a; 未实现说明书要求的功能出现了说明书指明不应出现的错误实现了说明书未提到的功能未实现说明书没有明确提出但应该实现的目标软件难以理解&#xff0c;不易使用&#xff0c;运行缓慢 或者从测试员客户会认为不好的。 软件缺陷的原因&#xff1a; …

路由基础 | 路由引入实验 | 不同路由引入方式存在的问题

注&#xff1a;本文为 “路由基础 | 路由表 | 路由引入” 相关文章合辑。 未整理去重。 路由基本概念 1—— 路由表信息、路由进表以及转发流程、最长掩码匹配原则 静下心来敲木鱼已于 2023-11-26 14:06:22 修改 什么是路由 路由就是指导报文转发的路径信息&#xff0c;可以…

更高效实用 vscode 的常用设置

VSCode 可以说是文本编辑神器, 不止程序员使用, 普通人用其作为文本编辑工具, 更是效率翻倍. 这里分享博主对于 VSCode 的好用设置, 让 VSCode 如虎添翼 进入设置 首先进入设置界面, 后续都在这里进行配置修改 具体设置 每项配置通过搜索关键字, 来快速定位配置项 自动保存…

本地部署DeepSeek

1、下载ollama 浏览器输入ollama&#xff0c;打开ollama网站&#xff0c;选择版本下载 可以使用迅雷下载 打开迅雷&#xff0c;复制网址 2、安装ollama ollama下载完成之后&#xff0c;安装 3、查看ollama版本 Win R&#xff0c;cmd ollama -v 查看ollama版本 4、下载De…

Java 大视界 -- 人才需求与培养:Java 大数据领域的职业发展路径(92)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…