【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析⑪】

devtools/2025/2/21 9:14:03/

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

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

TC11-011测试用例

用例ID测试场景验证要点参考条款预期结果
TC11-011复位服务参数越界检测发送0x11 0x01 0xAA(非法参数)§7.1.3返回NRC=0x31(参数越界)

CAPL_10">以下是为TC11-011设计的增强型CAPL测试用例,包含参数边界检测与异常处理机制,包含执行流程图和工业级验证策略:

/*----------------------------------------------------------Title:TC11-011 复位服务参数越界验证 作者:车端域控测试工程师 日期:2025-02-18 
------------------------------------------------------------*/variables {// 诊断通信参数 const long DiagReqID = 0x732;       // 诊断请求标识符 const long DiagResID = 0x733;       // 诊断响应标识符 const byte ResetSID = 0x11;         // ECU复位服务 const byte ResetSubFunc = 0x01;     // 硬件复位子功能 const byte InvalidParam = 0xAA;     // 非法参数值 const byte ExpectedNRC = 0x31;      // 预期否定响应码 // 测试控制参数 msTimer responseTimer;byte actualNRC = 0x00;
}testcase TC11_011_ParameterBoundaryTest() 
{TestModuleTitle("TC11-011 复位服务参数越界验证");// ███ 阶段1:构造非法请求 ███ testStep("STEP1 发送含非法参数的复位请求");message DiagReqID [CAN] {dlc = 3;byte(0) = ResetSID;          // 复位服务ID byte(1) = ResetSubFunc;      // 子功能号 byte(2) = InvalidParam;      // 非法参数 }output(this);// ███ 阶段2:响应捕获与分析 ███ testStep("STEP2 验证否定响应");setTimer(responseTimer, 500);  // 设置500ms响应窗口 while(getTimer(responseTimer) < 500) {if(TestWaitForMessage(DiagResID, 100)) {// 否定响应格式验证 if(this.byte(0) == 0x7F &&        // 否定响应标识 this.byte(1) == ResetSID &&    // 服务ID回显 this.byte(2) == ExpectedNRC) {actualNRC = this.byte(2);testStepPass("收到预期NRC=0x%02X", ExpectedNRC);break;}// 异常响应处理 else if(this.byte(0) == 0x7F) {actualNRC = this.byte(2);testStepFail("收到错误NRC=0x%02X", actualNRC);break;}}}// ███ 阶段3:综合结果判定 ███ testStep("STEP3 最终结果确认");if(actualNRC == ExpectedNRC) {testCasePass("参数越界检测机制正常");} else if(actualNRC == 0x00) {testCaseFail("ECU无响应");} else {testCaseFail("NRC异常(实际:0x%02X)", actualNRC);}
}/*----------------------------------------------------------总线监控扩展模块(调试辅助)
----------------------------------------------------------*/
on message DiagResID 
{// 实时显示诊断响应 if(this.byte(0) == 0x7F) {testAddLog("收到NRC=0x%02X @%dms", this.byte(2), timeNow() - testGetStartTime());}
}

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

Tester ECU 复位请求(0x11 0x01 0xAA) 参数有效性校验 NRC=0x31 验证响应码正确性 Tester ECU

关键参数说明表

参数名称示例值工程校准要点
非法参数值0xAA需覆盖OEM定义的参数范围
响应超时窗口500ms需大于ECU最大处理时间2倍
否定响应格式7F 11 31ISO 14229标准响应结构
参数校验机制范围检查需验证ECU参数表完整性

工业级增强功能

  1. 参数遍历测试

    void ExecuteParamRangeTest() {// 扩展测试:// 1. 遍历所有非法参数值(0x00-0xFF)// 2. 边界值测试(0x00,0x01,0xFE,0xFF)// 3. 随机参数注入 
    }
    
  2. ECU状态监控

    on sysvar ECU::ParameterCheck {testAddLog("参数校验状态码:0x%02X", @this::ParameterCheck);
    }
    
  3. 压力测试扩展

    void ExecuteStressTest() {// 可扩展:// 1. 连续发送100次非法请求 // 2. 混合合法/非法请求 // 3. 总线负载90%场景测试 
    }
    

测试执行说明

  1. 环境配置建议

    [Diagnostic]
    P2Server_Max = 3000 
    P3Server_Timeout = 10000 
    
  2. 结果判定矩阵

    检查项通过标准验证方法
    响应格式7F 11 31三字节结构报文解析
    响应时间≤250ms时间戳比对
    ECU行为未触发任何复位操作电源监控
    日志记录记录非法参数访问事件安全日志分析

调试技巧:

  1. Write窗口添加过滤条件快速定位关键报文:
    id == 733h && (byte(0) == 7Fh || byte(0) == 51h)
    
  2. 使用Graphic窗口监控关键信号:
    sysvar::ECU::ResetAttempts 
    sysvar::Diag::InvalidParamCount 
    
  3. 添加总线触发条件捕获异常:
    on message DiagResID {if(this.byte(0) == 0x7F && this.byte(2) != 0x31) {write("发现异常NRC: 0x%02X", this.byte(2));break;}
    }
    

http://www.ppmy.cn/devtools/160193.html

相关文章

Python 自然语言处理(NLP)和文本挖掘的常规操作过程

Python 自然语言处理&#xff08;NLP&#xff09;和文本挖掘 自然语言处理&#xff08;NLP&#xff09;和文本挖掘是数据科学中的重要领域&#xff0c;涉及对文本数据的分析和处理。Python 提供了丰富的库和工具&#xff0c;用于执行各种 NLP 和文本挖掘任务。以下是一些常见的…

重装CentOS YUM

1. 检查是否已安装 YUM 运行以下命令检查 YUM 是否已安装&#xff1a; yum list installed | grep yum 如果输出中包含 yum&#xff0c;则说明 YUM 已安装。 2. 卸载旧版本的 YUM&#xff08;如有必要&#xff09; 如果需要重新安装 YUM&#xff0c;可以先卸载旧版本&…

Docker 镜像加速器配置指南

Docker 镜像加速器配置指南 2025-02-17 23:00 Linux : Aliyun ECS 服务器 背景问题 在国内&#xff0c;由于网络环境的不稳定&#xff0c;直接从 Docker Hub 拉取镜像的速度可能会很慢&#xff0c;有时甚至会失败。即使配置了官方的阿里云镜像加速器&#xff0c;也可能因为…

自动化办公更简单了!新版python-office,有哪些更新?

1、适配了Mac和Linux的下载 以前python- office是不支持Mac和Linux系统下载的&#xff0c;现在支持下载了。 但是请注意&#xff0c;也仅仅是支持下载&#xff1a;在Mac和Linux系统上&#xff0c;运行pip install python- office的时候不会报错了&#xff0c;但是涉及到具体功…

SpringBoot+微信小程序+数据可视化的宠物到家喂宠服务(程序+论文+讲解+安装+调试+售后等)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统介绍 在经济高速发展、物质生活极大丰富的当下&#xff0c;人们的精神需求愈发凸显&#xff0…

C++ 设计模式-组合模式

组合模式&#xff08;Composite Pattern&#xff09;允许将对象组合成树形结构&#xff0c;使得客户端以统一的方式处理单个对象和组合对象。以下是一个经典的 C 实现示例&#xff0c;包含透明式设计&#xff08;基类定义统一接口&#xff09;和内存管理&#xff1a; #include…

oppo,康冠科技25届春招内推

oppo&#xff0c;康冠科技25届春招内推 ①康冠科技25届春招 【职位】算法、软件、硬件、技术&#xff0c;结构设计&#xff0c;供应链&#xff0c;产品&#xff0c;职能&#xff0c;商务 【一键内推】https://sourl.cn/2Mm9Lk 【内推码】EVBM88 ②OPPO 2025届春招内推 招聘岗位…

遵循规则:利用大语言模型进行视频异常检测的推理

文章目录 速览摘要01 引言02 相关工作视频异常检测大语言模型 03 归纳3.1 视觉感知3.2 规则生成Normal and Anomaly &#xff08;正常与异常&#xff09;Abstract and Concrete &#xff08;抽象与具体&#xff09;Human and Environment &#xff08;人类与环境&#xff09; 3…