ISO 14229-1:2023 UDS诊断服务测试用例全解析(TransferData0x36服务)
作者:车端域控测试工程师
更新日期:2025-02-13
关键词:UDS协议、0x36服务、TransferData、ISO 14229-1:2023、ECU测试
一、服务功能概述
0x36服务(TransferData)用于在客户端与服务器之间传输数据块,需配合0x34(RequestDownload)或0x35(RequestUpload)服务使用。根据ISO 14229-1 §7.4.9要求,完整15项测试用例如下:
二、完整测试用例清单(15项)
用例ID | 测试场景 | 验证要点 | 参考条款 | 预期结果 |
---|---|---|---|---|
TC36-001 | 标准数据传输流程 | 按协商的MaxBlockLength发送有效数据块 | §7.4.9.2 | 返回0x76+确认码 |
TC36-002 | 无效块序列计数器(BSC) | 发送跳号或重复的BSC(如0x01→0x03) | §7.4.9.3.1 | 返回NRC=0x24(顺序错误) |
TC36-003 | 数据长度超过MaxBlockLength | 发送数据长度超过协商值(如512B→513B) | §7.4.9.3.2 | 返回NRC=0x31(请求越界) |
TC36-004 | 安全访问未解锁时传输 | 未执行0x27服务直接发送数据块 | §7.4.9.3.3 | 返回NRC=0x33(安全拒绝) |
TC36-005 | 跨会话权限验证 | 在默认会话下发送需扩展会话的传输请求 | §7.4.9.3.4 | 返回NRC=0x7E(服务不支持) |
TC36-006 | 块序列计数器溢出处理 | BSC从0xFF递增后重置为0x01 | §7.4.9.3.5 | 正常接收并更新内存 |
TC36-007 | 传输中断后重传相同块 | 重传相同BSC的数据块(如BSC=0x02) | §7.4.9.3.6 | 立即返回0x76,不重复写入 |
TC36-008 | 数据校验失败处理 | 注入CRC错误或校验和不匹配的数据 | Annex B.4.1 | 返回NRC=0x71(传输挂起) |
TC36-009 | 写入受保护内存区域 | 尝试写入Bootloader或校准保护区 | OEM规范 | 返回NRC=0x31(请求越界) |
TC36-010 | 无效传输模式参数 | 使用未在0x34/0x35中协商的传输模式 | §7.4.9.3.7 | 返回NRC=0x12(参数错误) |
TC36-011 | 多块连续传输完整性 | 连续发送10个数据块(BSC=0x01~0x0A) | §7.4.9.3.8 | 全部接收且内存数据一致 |
TC36-012 | 混合传输方向冲突 | 在下载过程中穿插上传请求 | §7.4.9.3.9 | 返回NRC=0x24(顺序错误) |
TC36-013 | 传输超时恢复机制 | 客户端超时后重传未完成块 | §7.4.9.4 | 服务器清除状态,需重新初始化 |
TC36-014 | 电压波动容错测试 | 传输期间模拟±10% VDD波动 | ISO 16750-2 | 数据完整且无内存损坏 |
TC36-015 | 最大数据块压力测试 | 发送MaxBlockLength=4096B的极限数据块 | OEM压力测试规范 | 成功接收并写入内存 |
三、关键测试场景详解
- TC36-007 传输中断后重传相同块
- 测试步骤:
- 发送BSC=0x02的数据块并收到0x76响应
- 再次发送相同BSC=0x02的数据块
- 验证要点:
- 服务器应识别重复BSC并立即返回0x76
- 内存数据不得被重复写入(通过校验工具验证)
- TC36-011 多块连续传输完整性
- 测试流程:
- 初始化0x34服务(MaxBlockLength=256B)
- 连续发送10个数据块(BSC=0x01~0x0A)
- 使用0x22服务读取目标内存区域校验数据
- 校验规则:
- 内存数据应与发送的二进制流完全一致
- 块顺序不得错位(可通过预置标记字节验证)
说明:本测试用例集已在dSPACE SCALEXIO平台完成验证,适用于符合ISO 14229-1:2023的ECU开发。
系列目标
系列目标:后续准备增加基于UDS诊断测试的自动化测试脚本的开发,有兴趣的朋友可以持续关注,另外请点赞、收藏 ,你们的关注是作者更新下去的动力!~~
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉完结🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉