2017自己做网站的趋势/优化二十条

2017自己做网站的趋势,优化二十条,创立一个品牌要多少钱,学工网站建设ISO 14229-1:2023 UDS诊断【ECU复位0x11服务】_TestCase04 作者:车端域控测试工程师 更新日期:2025年02月17日 关键词:UDS诊断协议、ECU复位服务、0x11服务、ISO 14229-1:2023 TC11-004测试用例 用例ID测试场景验证要点参考条款预期结果TC…

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

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

TC11-004测试用例

用例ID测试场景验证要点参考条款预期结果
TC11-004无效子功能码检测发送0x11 0xFF(保留值)§7.1.2返回NRC=0x12(子功能不支持)
/*----------------------------------------------------------------*/
/* 测试用例ID      : TC11-004                                     */
/* 测试项名称      : 无效子功能码检测                             */
/* 测试依据        : §7.1.2                                       */
/* 验证目标        : 返回NRC=0x12(子功能不支持)                 */
/* 作者            : 车端域控测试工程师                           */
/* 创建日期        : 2025-02-17                                   */
/* 版本历史        : V1.0 - 初始版本                              */
/*----------------------------------------------------------------*/variables 
{// 诊断协议参数 const long DiagReqID = 0x732;    // 诊断请求ID const long DiagResID = 0x733;    // 诊断响应ID const byte InvalidSubFuncReq[2] = {0x11, 0xFF};  // 无效子功能请求 const byte ExpectedNRC = 0x12;   // 预期否定响应码 // 状态监控 msTimer responseTimer;int serviceValidationPassed = 0;
}testcase TC11_004_InvalidSubfunctionCheck()
{TestModuleTitle("TC11-004 无效子功能码检测");// 阶段1:发送无效子功能请求 testStep("发送0x11服务+0xFF子功能");message DiagReqID [CAN] {dlc = 2;byte(0) = InvalidSubFuncReq[0];  // 服务ID byte(1) = InvalidSubFuncReq[1];  // 子功能码 }output(this);// 阶段2:响应验证 testWaitForTimeout(500);  // 总测试窗口500ms setTimer(responseTimer, 200);  // 设置响应超时 while(1) {if(TestWaitForMessage(DiagResID, 50)) {// 否定响应基础验证 if(this.byte(0) == 0x7F && this.byte(1) == InvalidSubFuncReq[0]) {// NRC专项验证 if(this.byte(2) == ExpectedNRC) {testStepPass("收到预期NRC=0x%02X", ExpectedNRC);serviceValidationPassed = 1;break;}else {testStepFail("收到错误NRC=0x%02X", this.byte(2));}}// 意外肯定响应处理 else if(this.byte(0) == 0x51) {testStepFail("检测到非法服务支持");}}// 超时处理 if(getTimer(responseTimer) >= 200) {testStepFail("响应超时未收到");break;}}// 最终判定 if(serviceValidationPassed) {testCasePass("无效子功能码验证成功");}
}/*--------------------------------------------------------------增强型响应跟踪模块 
--------------------------------------------------------------*/
on message DiagResID 
{// 实时记录所有诊断响应 if(this.byte(0) == 0x7F) {testAddLog("收到否定响应 - SID:0x%02X NRC:0x%02X", this.byte(1), this.byte(2));}
}on timer responseTimer 
{testAddCondition("响应等待时间:%dms", getTimer(responseTimer));
}

测试架构深度解析

  1. 三阶段验证流程
否定响应
肯定响应
匹配
不匹配
异常请求触发
响应类型判断
NRC码验证
异常标记
测试通过
失败分析
超时监控
终止流程
  1. 关键技术实现

  2. 精准服务识别:

    if(this.byte(0) == 0x7F && this.byte(1) == InvalidSubFuncReq[0])
    
  3. 动态超时控制:

    setTimer(responseTimer, 200);  // 200ms严格响应窗口 
    while(getTimer(responseTimer) < 200) { ... }
    
  4. 多重防护机制:

    // 同时检测:
    // 1. 响应报文结构 
    // 2. 服务ID匹配 
    // 3. 特定NRC码 
    
  5. 异常处理矩阵
    | 异常类型 | 检测方式 | 处理措施 |
    |----------------|---------------------------|----------------------------|
    | 无效NRC码 | 字节偏移量验证 | 记录具体错误码 |
    | 非法服务支持 | 0x51肯定响应检测 | 标记协议违规 |
    | 总线静默 | 200ms超时机制 | 终止测试流程 |
    | 数据长度异常 | DLC值校验 | 触发格式错误警报 |

  6. 扩展验证建议

  7. 参数化测试扩展:

    struct SubfunctionTestSet {byte serviceID = 0x11;byte invalidSubfunc = 0xFF;byte expectedNRC = 0x12;dword timeout = 200;
    };
    
  8. 边界值测试扩展:

    void ExecuteBoundaryTests() {// 可测试:// 0x00 - 保留值边界 // 0x7F - 最大标准值 // 0x80 - 扩展子功能边界 
    }
    
  9. 服务矩阵验证:

    void CheckServiceMatrix(byte serviceID) {// 验证服务支持矩阵的完整性 
    }
    

工程实践指南

  1. 环境配置要求
    | 配置项 | 规格要求 |
    |----------------|-------------------------------|
    | 测试工具 | CANoe 15.0+(带Diagnostics) |
    | 硬件接口 | VN1630/VN8970 |
    | ECU供电 | 可编程电源(9-16V) |
    | 协议版本 | UDS 1.4.0 |

  2. 关键指标分析
    | 验证维度 | 合格标准 | 测量方法 |
    |----------------|---------------------------|------------------------|
    | 响应时间 | ≤150ms | 示波器触发测量 |
    | NRC一致性 | 100%返回0x12 | 自动化脚本验证 |
    | 错误检测率 | 非法请求拒绝率100% | 压力测试统计 |
    | 协议合规性 | 符合ISO14229-1要求 | 协议分析仪检测 |

  3. 执行注意事项

  • 测试前确保ECU处于默认会话模式
  • 禁用其他可能修改诊断状态的测试用例
  • 建议在ECU冷启动后立即执行
  • 避免与刷写操作测试并行执行
  1. 关联测试建议
  • 配合TC07-015(有效子功能边界值测试)
  • 结合TC09-018(非法服务ID检测)
  • 关联TC12-007(诊断服务支持矩阵验证)

调试技巧:

  1. Write Window设置过滤器:id==733h && byte(0)==7Fh
  2. 使用Graphics窗口绘制NRC分布图
  3. 启用Diagnostic Event Viewer跟踪服务交互
  4. 添加Test Coverage监控点:
    testAddCoverage("SVC-0x11", "Subfunction validation");
    testAddCoverage("NRC-0x12", "Subfunction not supported");
    

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

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

相关文章

MybaitsPlus学习笔记(二)基本CURD

目录 一、BaseMapper 二、常用实例 1、插入 2、删除 3、修改 4、查询 三、IService 四、 IService中的一些方法测试 一、BaseMapper MyBatis-Plus中的基本CRUD在内置的BaseMapper中都已得到了实现&#xff0c;我们可以直接使用&#xff0c;接口如 下&#xff1a; publ…

【C++】36.C++IO流

文章目录 1. C语言的输入与输出2. 流是什么3. CIO流3.1 C标准IO流3.2 C文件IO流 4. stringstream的简单介绍 1. C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输入设备(键盘)读取数据&#xff0c;并将值存放在变量中。pri…

JavaScript表单介绍

一、表单的基本概念 在网页开发里&#xff0c;表单是实现用户与网页交互的关键组件&#xff0c;用于收集用户输入的数据&#xff0c;JavaScript 则能为表单增添强大的交互性和功能性。表单在 HTML 里通过 <form> 标签创建&#xff0c;包含多种表单元素&#xff0c;如文本…

哈希表(C语言版)

文章目录 哈希表原理实现(无自动扩容功能)代码运行结果 分析应用 哈希表 如何统计一段文本中&#xff0c;小写字母出现的次数? 显然&#xff0c;我们可以用数组 int table[26] 来存储每个小写字母出现的次数&#xff0c;而且这样处理&#xff0c;效率奇高。假如我们想知道字…

昆虫-目标检测数据集(包括VOC格式、YOLO格式)

昆虫-目标检测数据集&#xff08;包括VOC格式、YOLO格式&#xff09; 数据集&#xff1a; 链接: https://pan.baidu.com/s/1tYb8s-AVJgSp7SGvqdWF9A?pwdt76a 提取码: t76a 数据集信息介绍&#xff1a; 共有 6009 张图像和一一对应的标注文件 标注文件格式提供了两种&#x…

python学opencv|读取图像(七十五)人脸识别:Fisherfaces算法和LBPH算法

【1】引言 前序学习进程中&#xff0c;已经掌握了使用Eigenfaces算法进行的人脸识别。相关文章链接为&#xff1a; python学opencv|读取图像&#xff08;七十四&#xff09;人脸识别&#xff1a;EigenFaces算法-CSDN博客 在此基础上&#xff0c;学习剩余两种人脸识别算法&am…

【MySQL】 基本查询(下)

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;【MySQL】 基本查询(下) 发布时间&#xff1a;2025.2.18 隶属专栏&#xff1a;MySQL 目录 Update语法案例 Delete删除数据语法案例 截断表语法案例 插入查询结果语法案例 聚合函数函数介绍案例 group by子句的使用语…

基于Flask的广西高校舆情分析系统的设计与实现

【Flask】基于Flask的广西高校舆情分析系统的设计与实现&#xff08;完整系统源码开发笔记详细部署教程&#xff09;✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统综合运用Python、Flask框架及多种数据处理与可视化工具开发&#xff0c;结合Boot…

NAT(网络地址转换)技术详解:网络安全渗透测试中的关键应用与防御策略

目录 NAT的作用 NAT类型 NAT工作流程示例 NAT 转换技术的原理 源地址转换&#xff08;SNAT&#xff0c;Source NAT&#xff09;&#xff1a; 目标地址转换&#xff08;DNAT&#xff0c;Destination NAT&#xff09;&#xff1a; 端口地址转换&#xff08;PAT&#xff0c…

【怎么使用Redis实现一个延时队列?】

怎么使用Redis实现一个延时队列? 详细说明Java代码示例解释注意事项使用Redis实现延时队列通常通过有序集合(Sorted Set)来实现,利用Redis的ZSET类型及其相关命令可以很方便地实现这一功能。 有序集合中的每个元素都有一个分数(score),我们可以利用这个分数来存储消息需…

STM32 I2C通信协议说明

目录 背景 I2C协议 数据的有效性 I2C通信开始和停止条件 I2C数据传输 发送 响应 正常情况&#xff1a; 异常情况&#xff1a; 主机结束接收 写寄存器的标准流程 读寄存器的标准流程 仲裁机制 时钟同步 SDA线的仲裁 程序 背景 对单片机的三大通信中的I2C通信进…

服务器中部署大模型DeepSeek-R1 | 本地部署DeepSeek-R1大模型 | deepseek-r1部署详细教程

0. 部署前的准备 首先我们需要足够算力的机器&#xff0c;这里我在vultr中租了有一张A16显卡一共16GB显存的服务器作为演示。部署的模型参数为14b的。如果需要部署满血版本671b的&#xff0c;需要更大的算力支持&#xff0c;这里由于是个人资金有限&#xff0c;就演示14b的部署…

毕业设计—基于Spring Boot的社区居民健康管理平台的设计与实现

&#x1f393; 毕业设计大揭秘&#xff01;想要源码和文章&#xff1f;快来私信我吧&#xff01; Hey小伙伴们~ &#x1f44b; 毕业季又来啦&#xff01;是不是都在为毕业设计忙得团团转呢&#xff1f;&#x1f914; 别担心&#xff0c;我这里有个小小的福利要分享给你们哦&…

基于Go语言 XTA AI聊天界面实现

项目开源地址: XTA-AI-SDK 人工智能技术的迅速发展&#xff0c;AI聊天应用变得越来越流行。本文将介绍如何使用Go语言和LCL库&#xff08; Lazarus Component Library&#xff09;创建一个功能丰富的AI聊天界面。项目主要包含以下模块&#xff1a; 项目背景 本项目旨在为开发…

MongoDB 7 分片副本集升级方案详解(下)

#作者&#xff1a;任少近 文章目录 1.4 分片升级1.5 升级shard11.6 升级shard2,shard31.7 升级mongos1.8重新启用负载均衡器1.9 推荐MongoDB Compass来验证数据 2 注意事项&#xff1a; 1.4 分片升级 使用“滚动”升级从 MongoDB 7.0 升级到 8.0&#xff0c;即在其他成员可用…

Leetcode 424-替换后的最长重复字符

给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符&#xff0c;并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。 在执行上述操作后&#xff0c;返回 包含相同字母的最长子字符串的长度。 题解 可以先做LCR 167/Leetcode 03再做本题 滑动窗口&…

【实战项目】BP神经网络识别人脸朝向----MATLAB实现

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言&#xff0c;数据结构&#xff0c;Linux基础&#xff0c;ARM开发板&#xff0c;网络编程等领域UP&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff0…

STM32 HAL库USART串口中断编程:演示数据丢失

目录 一、开发环境 二、配置STM32CubeMX 三、代码实现与部署 四、运行结果&#xff1a; ​五、注意事项 上面讨论过,HAL_UART_Receive最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,本文介绍STM32F103 HAL库函数…

Javascript网页设计案例:通过PDF.js实现一款PDF阅读器,包括预览、页面旋转、页面切换、放大缩小、黑夜模式等功能

前言 目前功能包括&#xff1a; 切换到首页。切换到尾页。上一页。下一页。添加标签。标签管理页面旋转页面随意拖动双击后还原位置 其实按照自己的预期来说&#xff0c;有很多功能还没有开发完&#xff0c;配色也没有全都搞完&#xff0c;先发出来吧&#xff0c;后期有需要…

缺陷检测之图片标注工具--labme

一、labelme简介 Labelme是开源的图像标注工具&#xff0c;常用做检测&#xff0c;分割和分类任务的图像标注。 它的功能很多&#xff0c;包括&#xff1a; 对图像进行多边形&#xff0c;矩形&#xff0c;圆形&#xff0c;多段线&#xff0c;线段&#xff0c;点形式的标注&a…