【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诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

相关推荐
Chef_Chen32 分钟前
从0开始学习计算机视觉--Day07--神经网络
神经网络·学习·计算机视觉
源代码•宸2 小时前
C++高频知识点(二)
开发语言·c++·经验分享
X_StarX2 小时前
【Unity笔记02】订阅事件-自动开门
笔记·学习·unity·游戏引擎·游戏开发·大学生
MingYue_SSS2 小时前
开关电源抄板学习
经验分享·笔记·嵌入式硬件·学习
weixin_437398213 小时前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
慕y2743 小时前
Java学习第十六部分——JUnit框架
java·开发语言·学习
江苏世纪龙科技4 小时前
【世纪龙科技】破局非机电实训困局-汽车信息化综合实训考核平台
汽车
peace..4 小时前
温湿度变送器与电脑进行485通讯连接并显示在触摸屏中(mcgs)
经验分享·学习·其他
软件黑马王子5 小时前
C#系统学习第八章——字符串
开发语言·学习·c#
TeleostNaCl6 小时前
Android 应用开发 | 一种限制拷贝速率解决因 IO 过高导致系统卡顿的方法
android·经验分享