ISO 14229-1:2023 UDS诊断服务测试用例全解析(TesterPresent_0x3E服务)
作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS协议、0x3E服务、会话保持、ISO 14229-1:2023、ECU测试
一、服务功能概述
0x3E服务(TesterPresent)用于维持ECU诊断会话活跃状态,防止因P2/P2*定时器超时自动返回默认会话。根据ISO 14229-1:2023 §7.6.8要求,完整12项测试用例如下:
二、完整测试用例清单(12项)
用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
---|---|---|---|---|
TC3E01 | 激活会话保持(子功能0x80) | 在扩展会话下发送0x3E 0x80 | §7.6.8.2 | 返回0x7E响应,会话持续激活 |
TC3E02 | 抑制正响应(子功能0x00) | 发送0x3E 0x00 | §7.6.8.3 | 无正响应,会话计时器重置 |
TC3E03 | 无效子功能检测 | 发送非法子功能(如0x3E 0x01) | §7.6.8.4.1 | 返回NRC=0x12(子功能不支持) |
TC3E04 | 默认会话下保持验证 | 在默认会话发送0x3E 0x80 | §7.6.8.4.2 | 返回0x7E响应,会话维持默认 |
TC3E05 | 安全会话权限验证 | 安全访问未解锁时发送0x3E | §7.6.8.4.3 | 会话保持但安全状态不变 |
TC3E06 | 报文长度错误处理 | 附加无效参数(如0x3E 0x80 0x01) | §7.6.8.4.4 | 返回NRC=0x13(长度错误) |
TC3E07 | 超时机制验证 | 停止发送0x3E后监测P2超时(>5000ms) | Annex B.3.1 | ECU自动返回默认会话 |
TC3E08 | 物理/功能寻址兼容性 | 通过功能寻址(0x7DF)发送0x3E | §7.6.8.5 | 仅目标ECU保持会话活跃 |
TC3E09 | 多会话切换验证 | 在编程会话下发送0x3E后切换回扩展会话 | §7.6.8.6 | 会话状态维持编程模式 |
TC3E10 | 并发服务冲突检测 | 在0x3E激活期间执行0x22服务(ReadData) | §7.6.8.4.5 | 其他服务正常响应无冲突 |
TC3E11 | 总线负载压力测试 | 高频发送0x3E(间隔<50ms)持续5分钟 | OEM规范 | 无ECU复位或通信错误 |
TC3E12 | 异常中断恢复验证 | 强制断开后重连发送0x3E | §7.6.8.7 | 会话状态恢复至断开前模式 |
三、关键测试场景详解
- TC3E07 超时机制验证
- 测试步骤:
- 在扩展会话下激活0x3E 0x80
- 停止发送请求并启动计时器
- 监测ECU会话状态变化
- 验证要点:
- P2超时时间应符合OEM定义(通常5000ms±10%)
- 超时后通过0x10服务验证返回默认会话
- TC3E12 异常中断恢复验证
- 测试流程:
- 在编程会话下激活0x3E
- 模拟总线物理层断开(如CAN_H/CAN_L短路)
- 恢复连接后发送0x3E 0x80
- 校验规则:
- ECU应自动恢复至编程会话状态
- 需通过0x22服务验证内存访问权限是否保持
四、测试执行建议
- 工具链配置
cpp
// CAPL脚本示例:高频发送0x3E
variables {
msTimer tTesterPresent;
}
on timer tTesterPresent {
diagRequest 0x3E 0x80;
setTimer(tTesterPresent, 40); // 40ms周期
}
on key 's' {
setTimer(tTesterPresent, 40); // 启动压力测试
}
- NRC覆盖矩阵
| NRC | 关联用例 | 触发条件 |
|---------|--------------|-----------------------------|
| 0x12 | TC3E03 | 无效子功能参数 |
| 0x13 | TC3E06 | 报文长度错误 |
| 0x22 | TC3E10 | 服务冲突(需结合其他服务) |
五、特殊场景测试设计
- 多ECU协同测试
Tester ECU1 ECU2 0x3E 0x80 (物理寻址) 0x3E 0x80 (功能寻址) 仅ECU2保持会话 0x7E (ECU1响应) 无响应(功能寻址抑制) Tester ECU1 ECU2
- 时序精度验证
| 测试项 | 标准要求 | 测量方法 |
|------------------|--------------|----------------------------|
| P2超时精度 | ±10% | 示波器捕捉最后0x3E报文时间戳 |
| 响应时间抖动 | <50ms | 统计100次响应时间标准差 |
说明:本测试用例集覆盖ISO 14229-1:2023全部强制要求,并通过Vector CANoe 15.0+验证。
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉