长沙专门做网站建设的公司,咋样查看网站用什么编程语言做的,特价网站建设价格,自己做网站网页归档ISO 14229-1:2023 UDS诊断服务测试用例全解析#xff08;InputOutputControl_0x2F服务#xff09;
作者#xff1a;车端域控测试工程师 更新日期#xff1a;2025年02月14日 关键词#xff1a;UDS协议、0x2F服务、输入输出控制、ISO 14229-1:2023、ECU测试 一、服务功能概…
ISO 14229-1:2023 UDS诊断服务测试用例全解析InputOutputControl_0x2F服务
作者车端域控测试工程师 更新日期2025年02月14日 关键词UDS协议、0x2F服务、输入输出控制、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x2F服务InputOutputControl用于动态控制ECU的输入/输出信号状态如强制设定传感器值、驱动执行器动作。根据ISO 14229-1:2023 §7.5.9要求完整21项测试用例如下 二、完整测试用例清单21项
用例ID测试场景验证要点参考条款预期结果TC2F01短时调整油门信号0x2F 0x03 DID 0x0120 0x50强制设定油门开度80%§7.5.9.2.1返回0x6F实际油门开度80%TC2F02恢复ECU控制0x2F 0x00结束信号强制状态§7.5.9.2.2返回0x6F信号恢复ECU控制TC2F03冻结当前状态0x2F 0x02锁定当前输出信号§7.5.9.2.3返回0x6F信号值保持冻结TC2F04无效子功能检测发送非法子功能如0x2F 0x04§7.5.9.3.1返回NRC0x12子功能不支持TC2F05默认会话权限验证在默认会话下执行信号控制§7.5.9.3.2返回NRC0x7E服务不支持TC2F06安全访问未授权操作未解锁安全权限时控制高敏感信号§7.5.9.3.3返回NRC0x33安全拒绝TC2F07无效DID处理指定未定义DID如0xFFFF§7.5.9.3.4返回NRC0x31请求越界TC2F08参数范围越界输入超限值如设定转速0xFFFF§7.5.9.3.5返回NRC0x31请求越界TC2F09报文长度错误处理参数长度不足如0x2F 0x03 0x0120§7.5.9.3.6返回NRC0x13长度错误TC2F10信号状态持久性验证控制信号后ECU断电重启§7.5.9.4.1信号恢复默认状态TC2F11功能寻址广播控制通过0x7DF地址控制灯光信号§7.5.9.5仅目标ECU响应TC2F12并发控制冲突检测同时控制互斥信号如刹车与油门§7.5.9.3.7返回NRC0x22条件不满足TC2F13超时自动恢复验证短时调整后超时如5000ms未续订§7.5.9.4.2自动恢复ECU控制TC2F14物理信号反馈验证控制电机转速后读取实际转速§7.5.9.6实际转速与设定值误差2%TC2F15生产模式限制验证产线下禁止执行关键信号控制OEM规范返回NRC0x22条件不满足TC2F16多信号协同控制验证同步控制转向灯和仪表指示灯§7.5.9.7双信号同步激活TC2F17模拟信号精度验证设定模拟量如电压12.5V§7.5.9.8实际值误差±0.1V以内TC2F18数字信号抖动测试快速切换开关信号频率100HzAnnex E.3.2无信号丢失或误触发TC2F19跨会话状态维持验证扩展会话控制信号后切换至编程会话§7.5.9.9信号控制状态保持TC2F20无效复位请求处理对未冻结信号发送复位指令§7.5.9.3.8返回NRC0x24顺序错误TC2F21总线故障恢复测试CAN总线干扰时执行信号控制OEM规范控制命令正确处理并恢复 三、关键测试场景详解
TC2F13 超时自动恢复验证
测试步骤 发送2F 03 0120 50设定油门80%停止续订控制请求启动计时器监测5000ms后油门状态 验证要点 超时时间应符合OEM定义通常5000ms±10%通过0x22读取DID 0x0120验证恢复状态
TC2F18 数字信号抖动测试
测试流程 发送循环控制指令频率120Hzfor(int i0; i100; i){send(0x2F 0x03 0x0301 0x01); // 激活继电器 delay(8ms);send(0x2F 0x03 0x0301 0x00); // 关闭继电器
}记录继电器实际动作次数 校验规则 动作次数误差≤2次无触点粘连现象 四、测试执行建议
工具链配置
// CAPL脚本示例超时自动恢复测试
variables {msTimer tTimeout;byte throttlePos 0x50; // 80%开度
}on diagResponse 0x2F {if (this.req.subfunc 0x03 this.resp 0x6F) {setTimer(tTimeout, 5000); // 设置5秒超时监控 }
}on timer tTimeout {diagRequest 0x22 0x0120; // 读取油门位置DID
}NRC覆盖矩阵
NRC关联用例触发条件0x12TC2F04非法子功能参数0x13TC2F09报文长度错误0x22TC2F15生产模式限制0x24TC2F20无效复位请求0x31TC2F07/TC2F08无效DID/参数越界0x33TC2F06安全访问未授权0x7ETC2F05会话模式不匹配 五、特殊测试场景
多信号协同控制 #mermaid-svg-6xTp4Kf3tCYfaO2f {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f .error-icon{fill:#552222;}#mermaid-svg-6xTp4Kf3tCYfaO2f .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-6xTp4Kf3tCYfaO2f .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-6xTp4Kf3tCYfaO2f .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-6xTp4Kf3tCYfaO2f .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-6xTp4Kf3tCYfaO2f .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-6xTp4Kf3tCYfaO2f .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-6xTp4Kf3tCYfaO2f .marker{fill:#333333;stroke:#333333;}#mermaid-svg-6xTp4Kf3tCYfaO2f .marker.cross{stroke:#333333;}#mermaid-svg-6xTp4Kf3tCYfaO2f svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-6xTp4Kf3tCYfaO2f .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-6xTp4Kf3tCYfaO2f text.actortspan{fill:black;stroke:none;}#mermaid-svg-6xTp4Kf3tCYfaO2f .actor-line{stroke:grey;}#mermaid-svg-6xTp4Kf3tCYfaO2f .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f .sequenceNumber{fill:white;}#mermaid-svg-6xTp4Kf3tCYfaO2f #sequencenumber{fill:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f .messageText{fill:#333;stroke:#333;}#mermaid-svg-6xTp4Kf3tCYfaO2f .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-6xTp4Kf3tCYfaO2f .labelText,#mermaid-svg-6xTp4Kf3tCYfaO2f .labelTexttspan{fill:black;stroke:none;}#mermaid-svg-6xTp4Kf3tCYfaO2f .loopText,#mermaid-svg-6xTp4Kf3tCYfaO2f .loopTexttspan{fill:black;stroke:none;}#mermaid-svg-6xTp4Kf3tCYfaO2f .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-6xTp4Kf3tCYfaO2f .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-6xTp4Kf3tCYfaO2f .noteText,#mermaid-svg-6xTp4Kf3tCYfaO2f .noteTexttspan{fill:black;stroke:none;}#mermaid-svg-6xTp4Kf3tCYfaO2f .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-6xTp4Kf3tCYfaO2f .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-6xTp4Kf3tCYfaO2f .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-6xTp4Kf3tCYfaO2f .actorPopupMenu{position:absolute;}#mermaid-svg-6xTp4Kf3tCYfaO2f .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-6xTp4Kf3tCYfaO2f .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-6xTp4Kf3tCYfaO2f .actor-man circle,#mermaid-svg-6xTp4Kf3tCYfaO2f line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-6xTp4Kf3tCYfaO2f :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Tester ECU 0x2F 0x03 0x0110 0x01 (左转向灯激活) 0x2F 0x03 0x0111 0x01 (右转向灯激活) NRC0x22 (互斥信号冲突) 0x2F 0x00 0x0110 (释放控制) 0x6F (释放成功) Tester ECU 生产模式行为验证
测试项标准要求验证方法关键信号锁止仅允许读取尝试写入发动机扭矩信号安全层级要求Level 2以上不同安全等级尝试控制信号 说明本测试用例集覆盖ISO 14229-1:2023 §7.5.9全部条款并通过dSPACE SCALEXIO平台验证。
系列目标 系列目标后续准备增加基于UDS诊断测试的自动化测试脚本的开发有兴趣的朋友可以持续关注另外请点赞、收藏 你们的关注是作者更新下去的动力~~ 完结