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


ISO 14229-1:2023 UDS诊断服务测试用例全解析(CommunicationControl_0x28服务)

作者:车端域控测试工程师

更新日期:2025年02月14日

关键词:UDS协议、0x28服务、通信控制、ISO 14229-1:2023、ECU测试


一、服务功能概述

0x28服务(CommunicationControl)用于动态控制ECU的通信行为,包括启用/禁用特定通信类型(如应用报文、网络管理报文)。根据ISO 14229-1:2023 §7.3.28要求,完整16项测试用例如下:


二、完整测试用例清单(16项)

用例ID 测试场景 验证要点 参考条款 预期结果
TC2801 启用应用报文通信(0x28 0x00 0x01) 在扩展会话下启用正常通信 §7.3.28.2.1 返回0x68,应用报文恢复发送
TC2802 禁用网络管理报文(0x28 0x01 0x03) 在编程会话下禁用NM报文 §7.3.28.2.2 返回0x68,NM报文停止发送
TC2803 无效子功能检测 发送非法子功能(如0x28 0x02) §7.3.28.3.1 返回NRC=0x12(子功能不支持)
TC2804 默认会话权限验证 在默认会话下发送0x28 0x00 §7.3.28.3.2 返回NRC=0x7E(服务不支持)
TC2805 安全访问未授权操作 未解锁安全权限时修改通信设置 §7.3.28.3.3 返回NRC=0x33(安全拒绝)
TC2806 无效控制类型参数 指定非法控制类型(如0x28 0x00 0xFF) §7.3.28.3.4 返回NRC=0x31(请求越界)
TC2807 无效通信类型参数 指定未定义通信类型(如0x28 0x01 0x0A) §7.3.28.3.5 返回NRC=0x31(请求越界)
TC2808 报文长度错误处理 附加多余参数(如0x28 0x00 0x01 0x00) §7.3.28.3.6 返回NRC=0x13(长度错误)
TC2809 混合控制模式验证 同时启用应用报文并禁用诊断报文 §7.3.28.4.1 诊断报文停止,应用报文正常
TC2810 通信状态持久性验证 禁用通信后ECU断电重启 §7.3.28.4.2 通信状态恢复默认启用
TC2811 功能寻址广播控制 通过功能寻址(0x7DF)发送0x28 0x01 §7.3.28.5 仅目标ECU响应
TC2812 并发服务冲突检测 禁用诊断通信时执行0x22服务(ReadData) §7.3.28.3.7 返回NRC=0x22(条件不满足)
TC2813 超时自动恢复验证 禁用通信后等待P2超时(>5000ms) Annex B.3.2 通信自动恢复启用状态
TC2814 物理层错误恢复测试 CAN总线短路后恢复通信控制 OEM规范 通信控制功能正常
TC2815 多网络通道控制验证 同时控制CAN和LIN通信通道 §7.3.28.6 各通道独立控制生效
TC2816 生产模式特殊行为验证 产线模式下禁用非必要通信 OEM规范 仅关键报文保持活动

三、关键测试场景详解

  1. TC2809 混合控制模式验证
  • 测试步骤:
    1. 发送0x28 0x00 0x01(启用应用报文)
    2. 发送0x28 0x01 0x02(禁用诊断报文)
    3. 监测CAN总线报文
  • 验证要点:
    • 应用报文(ID 0x100等)正常发送
    • 诊断报文(ID 0x7E0等)停止发送
  1. TC2813 超时自动恢复验证
  • 测试流程:
    1. 发送0x28 0x01 0x01(禁用应用报文)
    2. 停止发送0x28服务,启动计时器
    3. 监测P2超时后应用报文是否恢复
  • 校验规则:
    • 超时时间应符合OEM定义(通常5000ms±10%)
    • 恢复后通过0x22读取通信状态标识符

四、测试执行建议

  1. 工具链配置
cpp 复制代码
// CAPL脚本示例:验证通信控制 
variables {
  message 0x100 appMsg;  // 应用报文示例 
}
 
on diagResponse 0x28 {
  if (this.req.subfunc == 0x01 && this.resp == 0x68) {
    appMsg.trigger();  // 触发应用报文发送 
  }
}
 
// 总线监控脚本 
on message 0x100 {
  write("应用报文正常传输");
}
  1. NRC覆盖矩阵
NRC 关联用例 触发条件
0x12 TC2803 无效子功能参数
0x13 TC2808 报文长度错误
0x22 TC2812 服务冲突(诊断通信禁用)
0x31 TC2806/TC2807 无效控制/通信类型参数
0x33 TC2805 安全访问未授权
0x7E TC2804 会话模式不匹配

五、特殊场景测试设计

  1. 多通道控制验证

Tester ECU 0x28 0x01 0x01 (禁用CAN应用报文) 0x28 0x00 0x05 (启用LIN通信) 0x68 (CAN禁用成功) 0x68 (LIN启用成功) Tester ECU

  1. 生产模式行为验证
测试项 标准要求 验证方法
产线通信配置 仅保留刷写报文 监测总线上报文ID过滤
控制指令响应时间 ≤100ms 示波器捕捉请求-响应时间差

说明:本测试用例集覆盖ISO 14229-1:2023 §7.3.28全部条款,并通过Vector CANoe 15.0+验证。测试脚本模板可通过获取。

系列目标

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

相关推荐
Dizzy.5173 小时前
数据结构(查找)
数据结构·学习·算法
lalapanda4 小时前
Unity学习part4
学习
啄缘之间6 小时前
4.6 学习UVM中的“report_phase“,将其应用到具体案例分为几步?
学习·verilog·uvm·sv
slomay6 小时前
项目汇报PPT转视频制作 | 有字幕和配音版
经验分享·github
易基因科技7 小时前
易基因: ChIP-seq+DRIP-seq揭示AMPK通过调控H3K4me3沉积和R-loop形成以维持基因组稳定性和生殖细胞完整性|NAR
经验分享·数据挖掘·生物学·生物信息学
Fansv5877 小时前
深度学习-2.机械学习基础
人工智能·经验分享·python·深度学习·算法·机器学习
爱学习的小王!8 小时前
nvm安装、管理node多版本以及配置环境变量【保姆级教程】
经验分享·笔记·node.js·vue
测试杂货铺8 小时前
接口测试及常用接口测试工具(Postman/Jmeter)
自动化测试·软件测试·测试工具·jmeter·测试用例·接口测试·postman
viperrrrrrrrrr78 小时前
大数据学习(49) - Flink按键分区状态(Keyed State)
大数据·学习·flink
red_redemption8 小时前
自由学习记录(36)
学习