当前位置: 首页 > news >正文

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


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

作者:车端域控测试工程师
更新日期:2025年02月14日
关键词:UDS协议、0x87服务、链路控制、ISO 14229-1:2023、ECU测试


一、服务功能概述
0x87服务(LinkControl)用于管理ECU与其他设备的诊断通信链路,支持建立(0x01)、验证(0x02)、终止(0x03)三种操作模式。根据ISO 14229-1:2023 §7.3.8要求,完整19项测试用例如下:


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

用例ID测试场景验证要点参考条款预期结果
TC8701建立CAN FD链路(0x87 0x01 0x02)在扩展会话下切换至CAN FD协议§7.3.8.2.1返回0xC7,波特率切换至2Mbps
TC8702验证链路状态(0x87 0x02)发送心跳包验证链路活性§7.3.8.2.2返回0xC7 + 当前链路参数
TC8703终止高速链路(0x87 0x03)强制断开当前诊断通道§7.3.8.2.3返回0xC7,恢复默认通信配置
TC8704无效子功能检测发送非法子功能(如0x87 0x00)§7.3.8.3.1返回NRC=0x12(子功能不支持)
TC8705默认会话权限验证在默认会话下建立链路§7.3.8.3.2返回NRC=0x7E(服务不支持)
TC8706安全访问未授权操作未解锁安全权限时修改链路配置§7.3.8.3.3返回NRC=0x33(安全拒绝)
TC8707无效协议类型参数指定非法协议(如0x87 0x01 0xFF)§7.3.8.3.4返回NRC=0x31(请求越界)
TC8708波特率超限处理请求超出硬件支持的波特率(如10Mbps)§7.3.8.3.5返回NRC=0x31(请求越界)
TC8709报文长度错误处理附加多余参数(如0x87 0x01 0x01 0x00)§7.3.8.3.6返回NRC=0x13(长度错误)
TC8710并发链路冲突检测已建立链路时重复发送0x87 0x01§7.3.8.3.7返回NRC=0x22(条件不满足)
TC8711链路超时自动终止建立链路后停止通信超过P2*时间§7.3.8.4.1自动恢复默认链路配置
TC8712功能寻址广播控制通过0x7DF地址发送0x87 0x03§7.3.8.5仅目标ECU断开链路
TC8713跨会话链路维持验证扩展会话建立链路后切换至编程会话§7.3.8.6链路配置维持不变
TC8714物理层错误恢复测试总线短路后重建链路OEM规范链路控制功能正常恢复
TC8715混合协议控制验证建立LIN链路后尝试发送CAN报文§7.3.8.7CAN报文被拒绝,LIN通信正常
TC8716生产模式特殊行为验证产线下禁止修改通信协议OEM规范返回NRC=0x22(条件不满足)
TC8717动态波特率调整验证请求逐步调整波特率(500k→1M→2M)Annex D.4.2每次调整后通信稳定性验证
TC8718大数据块传输验证在高速链路下传输超过8KB数据块§7.3.8.8数据完整性与CRC校验通过
TC8719多通道链路协同控制同时控制CAN和以太网诊断通道§7.3.8.9双通道独立配置生效

三、关键测试场景详解

  1. TC8717 动态波特率调整验证
  • 测试步骤:
    1. 发送0x87 0x01 0x01 0x000F4240(切换至1Mbps)
    2. 验证总线通信稳定性(持续发送0x3E报文)
    3. 再次切换至2Mbps并重复测试
  • 验证要点:
    • 波特率切换误差需小于±1%
    • 通信误码率低于10^-6
  1. TC8715 混合协议控制验证
  • 测试流程:
    1. 建立LIN链路(0x87 0x01 0x03)
    2. 尝试通过CAN发送0x2E服务
    3. 监测总线响应
  • 校验规则:
    • LIN通道响应正常
    • CAN通道返回NRC=0x11(服务不支持)

四、测试执行建议

  1. 工具链配置
// CAPL脚本示例:动态波特率测试 
variables {
  message 0x3E keepAlive;  // 保活报文 
}
 
on diagResponse 0x87 {
  if (this.req.subfunc == 0x01 && this.resp == 0xC7) {
    setBaudrate(this.param);  // 动态设置总线波特率 
    keepAlive.trigger();      // 启动通信稳定性测试 
  }
}
  1. NRC覆盖矩阵
NRC关联用例触发条件
0x12TC8704非法子功能参数
0x13TC8709报文长度错误
0x22TC8716生产模式限制
0x31TC8707/TC8708无效协议/波特率参数
0x33TC8706安全访问未授权
0x7ETC8705会话模式不匹配

五、特殊测试场景

  1. 多通道独立控制
Tester ECU_CAN ECU_ETH 0x87 0x01 0x01 (CAN通道切至1Mbps) 0x87 0x01 0x04 (以太网切至100Mbps) 0xC7 (CAN配置成功) 0xC7 (ETH配置成功) Tester ECU_CAN ECU_ETH
  1. 生产模式限制验证
测试项标准要求验证方法
协议修改锁止仅允许默认协议尝试切换至CAN FD协议
波特率固定500kbps不可变请求调整波特率至1Mbps

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

系列目标

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

相关文章:

  • Seaweedfs(master volume filer) docker run参数帮助文档
  • STM32 外部中断和NVIC嵌套中断向量控制器
  • 内容中台重构企业内容管理流程驱动智能协作升级
  • 【一文读懂】什么是MVVM?
  • 打印问题总结
  • Redis之持久化
  • Vue 实现主题切换(明暗)
  • 解密DNSlog
  • FTP服务
  • 「软件设计模式」单例模式(Singleton)
  • Python的那些事第二十三篇:Express(Node.js)与 Python:一场跨语言的浪漫邂逅
  • MySQL DELETE 语句
  • 数据结构6-二叉树、时间复杂度
  • C# 使用FreeSpire.doc 生成带有页码的目录
  • 力扣 438.找到字符串中所有字母异位词
  • osgearth视点坐标及鼠标交点坐标的信息显示(七)
  • 仿叮咚买菜鸿蒙原生APP
  • rabbitmq五种模式的实现——springboot
  • 线性代数中的正交和标准正交向量
  • 数据结构:顺序表
  • 逛了6个小时的上海车展。有些不太成熟的感受。与你分享。
  • 今年一季度全国城镇新增就业308万人,就业形势保持总体稳定
  • 日趋活跃!2024年我国数据生产总量同比增长25%
  • 金科服务:大股东博裕资本提出无条件强制性现金要约收购,总代价约17.86亿港元
  • 在循环往复的拍摄中,重新发现世界
  • 光明网评论员:手机“二次放号”,需要重新确认“你是你”