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


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 返回NRC=0x12(子功能不支持)
TC2F05 默认会话权限验证 在默认会话下执行信号控制 §7.5.9.3.2 返回NRC=0x7E(服务不支持)
TC2F06 安全访问未授权操作 未解锁安全权限时控制高敏感信号 §7.5.9.3.3 返回NRC=0x33(安全拒绝)
TC2F07 无效DID处理 指定未定义DID(如0xFFFF) §7.5.9.3.4 返回NRC=0x31(请求越界)
TC2F08 参数范围越界 输入超限值(如设定转速0xFFFF) §7.5.9.3.5 返回NRC=0x31(请求越界)
TC2F09 报文长度错误处理 参数长度不足(如0x2F 0x03 0x0120) §7.5.9.3.6 返回NRC=0x13(长度错误)
TC2F10 信号状态持久性验证 控制信号后ECU断电重启 §7.5.9.4.1 信号恢复默认状态
TC2F11 功能寻址广播控制 通过0x7DF地址控制灯光信号 §7.5.9.5 仅目标ECU响应
TC2F12 并发控制冲突检测 同时控制互斥信号(如刹车与油门) §7.5.9.3.7 返回NRC=0x22(条件不满足)
TC2F13 超时自动恢复验证 短时调整后超时(如5000ms)未续订 §7.5.9.4.2 自动恢复ECU控制
TC2F14 物理信号反馈验证 控制电机转速后读取实际转速 §7.5.9.6 实际转速与设定值误差<2%
TC2F15 生产模式限制验证 产线下禁止执行关键信号控制 OEM规范 返回NRC=0x22(条件不满足)
TC2F16 多信号协同控制验证 同步控制转向灯和仪表指示灯 §7.5.9.7 双信号同步激活
TC2F17 模拟信号精度验证 设定模拟量(如电压12.5V) §7.5.9.8 实际值误差±0.1V以内
TC2F18 数字信号抖动测试 快速切换开关信号(频率>100Hz) Annex E.3.2 无信号丢失或误触发
TC2F19 跨会话状态维持验证 扩展会话控制信号后切换至编程会话 §7.5.9.9 信号控制状态保持
TC2F20 无效复位请求处理 对未冻结信号发送复位指令 §7.5.9.3.8 返回NRC=0x24(顺序错误)
TC2F21 总线故障恢复测试 CAN总线干扰时执行信号控制 OEM规范 控制命令正确处理并恢复

三、关键测试场景详解

  1. TC2F13 超时自动恢复验证
  • 测试步骤:
    1. 发送2F 03 0120 50(设定油门80%)
    2. 停止续订控制请求,启动计时器
    3. 监测5000ms后油门状态
  • 验证要点:
    • 超时时间应符合OEM定义(通常5000ms±10%)
    • 通过0x22读取DID 0x0120验证恢复状态
  1. TC2F18 数字信号抖动测试
  • 测试流程:
    1. 发送循环控制指令(频率120Hz):

      cpp 复制代码
      for(int i=0; i<100; i++){
        send(0x2F 0x03 0x0301 0x01);  // 激活继电器 
        delay(8ms);
        send(0x2F 0x03 0x0301 0x00);  // 关闭继电器 
      }
    2. 记录继电器实际动作次数

  • 校验规则:
    • 动作次数误差≤2次
    • 无触点粘连现象

四、测试执行建议

  1. 工具链配置
cpp 复制代码
// 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 
}
  1. NRC覆盖矩阵
NRC 关联用例 触发条件
0x12 TC2F04 非法子功能参数
0x13 TC2F09 报文长度错误
0x22 TC2F15 生产模式限制
0x24 TC2F20 无效复位请求
0x31 TC2F07/TC2F08 无效DID/参数越界
0x33 TC2F06 安全访问未授权
0x7E TC2F05 会话模式不匹配

五、特殊测试场景

  1. 多信号协同控制

Tester ECU 0x2F 0x03 0x0110 0x01 (左转向灯激活) 0x2F 0x03 0x0111 0x01 (右转向灯激活) NRC=0x22 (互斥信号冲突) 0x2F 0x00 0x0110 (释放控制) 0x6F (释放成功) Tester ECU

  1. 生产模式行为验证
测试项 标准要求 验证方法
关键信号锁止 仅允许读取 尝试写入发动机扭矩信号
安全层级要求 Level 2以上 不同安全等级尝试控制信号

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

系列目标

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

相关推荐
汇能感知19 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
茯苓gao19 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾19 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT20 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa20 小时前
HTML和CSS学习
前端·css·学习·html
测试老哥20 小时前
6个步骤实现Postman接口压力测试
自动化测试·软件测试·测试工具·测试用例·接口测试·压力测试·postman
看海天一色听风起雨落21 小时前
Python学习之装饰器
开发语言·python·学习
小小菜鸡ing1 天前
pymysql
java·服务器·数据库
speop1 天前
llm的一点学习笔记
笔记·学习
运维小雅1 天前
哪些因素会直观地影响到产品销量?
经验分享·笔记·媒体