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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek与医院电子病历的深度融合路径:本地化和上云差异化分析

一、引言 1.1 研究背景与意义 在医疗信息化快速发展的当下,电子病历系统已成为医院信息管理的核心构成。电子病历(EMR)系统,是指医务人员在医疗活动过程中,使用医疗机构信息系统生成的文字、符号、图标、图形、数据、影像等数字化信息,并能实现存储、管理、传输和重现的…

Django中实现简单易用的分页工具

如何在Django中实现简单易用的分页工具?📚 嗨,小伙伴们!今天我们来看看如何在 Django 中实现一个超简单的分页工具。无论你是在处理博客文章、产品列表,还是用户评论,当数据量一大时,分页显得尤…

【kafka系列】生产者

目录 发送流程 1. 流程逻辑分析 阶段一:主线程处理 阶段二:Sender 线程异步发送 核心设计思想 2. 流程 关键点总结 重要参数 一、核心必填参数 二、可靠性相关参数 三、性能优化参数 四、高级配置 五、安全性配置(可选&#xff0…

Docker 入门与实战:从安装到容器管理的完整指南

🚀 Docker 入门与实战:从安装到容器管理的完整指南 🌟 📖 简介 在现代软件开发中,容器化技术已经成为不可或缺的一部分。而 Docker 作为容器化领域的领头羊,以其轻量级、高效和跨平台的特性,深…

MySQL 插入替换语句(replace into statement)

我们日常使用 insert into 语句向表中插入数据时,一定遇到过主键或唯一索引冲突的情况,MySQL的反应是报错并停止执行后续的语句,而replace into语句可以实现强制插入。 文章目录 一、replace into 语句简介1.1 基本用法1.2 使用set语句 二、注…

基于SpringBoot+Vue的智慧校园管理系统设计和实现(源码+文档+部署讲解)

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 .🚀 技术架构技术栈全景 🎯 功能模块功能矩阵表📊 数据库设计核心ER关系图 💻 核心…

【Three.js】JS 3D library(一个月进化史)

#春节过完了,该继续投入学习了~ 作为一个平面开发者,想要增进更多的技能,掌握web3D开发# Day 1 了解熟悉Three.js,着重基础理论 学习资源: 前端可视化从0-1 Day 2 写一个简易demo 搭建环境-->安装包-->创建…

moveable 一个可实现前端海报编辑器的 js 库

目录 缘由-胡扯本文实验环境通用流程1.基础移动1.1 基础代码1.1.1 data-* 解释 1.2 操作元素创建1.3 css 修饰1.4 cdn 引入1.5 js 实现元素可移动1.6 图片拖拽2.缩放3.旋转4.裁剪 懒得改文案了,海报编辑器换方案了,如果后面用别的再更。 缘由-胡扯 导火…

Apollo 9.0 速度动态规划决策算法 – path time heuristic optimizer

文章目录 1. 动态规划2. 采样3. 代价函数3.1 障碍物代价3.2 距离终点代价3.3 速度代价3.4 加速度代价3.5 jerk代价 4. 回溯 这一章将来讲解速度决策算法,也就是SPEED_HEURISTIC_OPTIMIZER task里面的内容。Apollo 9.0使用动态规划算法进行速度决策,从类名…

【Day41 LeetCode】单调栈问题

一、单调栈问题 单调栈问题通常是在一维数组中寻找任一个元素的右边或者左边第一个比自己大或者小的元素的位置。 1、每日温度 739 这题的目的是对于当天,找到未来温度升高的那一天,也就是当前元素的右边第一个比自己大的元素。所以我们需要维护一个单…

Cherno C++ P55 宏

这篇文章我们讲一下C当中的宏。其实接触过大型项目的朋友可能都被诡异的宏折磨过。 宏是在预处理当中,通过文本替换的方式来实现一些操作,这样可以不用反复的输入代码,帮助我们实现自动化。至于预处理的过程,其实就是文本编辑&am…

web第三次作业

弹窗案例 1.首页代码 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>综合案例</title><st…

深入解析LVS命令参数及DR模式下的ARP抑制原理

深入解析LVS命令参数及DR模式下的ARP抑制原理 一、LVS简介 Linux Virtual Server (LVS) 是基于Linux内核的高性能负载均衡解决方案&#xff0c;支持NAT、DR&#xff08;Direct Routing&#xff09;和TUN&#xff08;IP Tunneling&#xff09;三种模式。其中&#xff0c;ipvsad…

阿里云一键部署DeepSeek-V3、DeepSeek-R1模型

目录 支持的模型列表 模型部署 模型调用 WebUI使用 在线调试 API调用 关于成本 FAQ 点击部署后服务长时间等待 服务部署成功后&#xff0c;调用API返回404 请求太长导致EAS网关超时 部署完成后&#xff0c;如何在EAS的在线调试页面调试 模型部署之后没有“联网搜索…

Win10环境借助DockerDesktop部署大数据时序数据库Apache Druid

Win10环境借助DockerDesktop部署最新版大数据时序数据库Apache Druid32.0.0 前言 大数据分析中&#xff0c;有一种常见的场景&#xff0c;那就是时序数据&#xff0c;简言之&#xff0c;数据一旦产生绝对不会修改&#xff0c;随着时间流逝&#xff0c;每个时间点都会有个新的…

【第13章:自监督学习与少样本学习—13.1 自监督学习最新进展与实现方法】

凌晨三点的实验室,博士生小王盯着屏幕里正在"自娱自乐"的神经网络——这个没有吃过一张标注图片的模型,正在通过旋转、拼图、填色等游戏任务,悄悄掌握着理解世界的秘诀。这种魔法般的修炼方式,正是当今AI领域最炙手可热的技术:自监督学习。 一、打破数据枷锁:自…

数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式

MySQL 报错 1045 表示用户root从localhost连接时被拒绝访问&#xff0c;通常是因为密码错误、权限问题或配置问题。以下是解决该问题的常见方法&#xff1a; 方法一&#xff1a;检查用户名和密码 • 确认用户名和密码是否正确&#xff1a; 确保输入的用户名和密码完全正确&am…

八大排序——简单选择排序

目录 1.1基本操作&#xff1a; 1.2动态图&#xff1a; 1.3代码&#xff1a; 代码解释 1. main 方法 2. selectSort 方法 示例运行过程 初始数组 每轮排序后的数组 最终排序结果 代码总结 1.1基本操作&#xff1a; 选择排序&#xff08;select sorting&#xff09;也…

与传统光伏相比 城电科技的光伏太阳花有什么优势?

相比于传统光伏&#xff0c;城电科技的光伏太阳花有以下优势&#xff1a; 一、发电效率方面 智能追踪技术&#xff1a;光伏太阳花通过内置的智能追踪系统&#xff0c;采用全球定位跟踪算法&#xff0c;能够实时调整花瓣&#xff08;即光伏板&#xff09;的角度&#xff0c;确…

FPGA的星辰大海

编者按 时下风头正盛的DeepSeek,正值喜好宏大叙事的米国大统领二次上岗就业,OpenAI、软银、甲骨文等宣布投资高达5000亿美元“星际之门”之际,对比尤为强烈。 某种程度上,,是低成本创新理念的直接落地。 包括来自开源社区的诸多赞誉是,并非体现技术有多“超越”,而是…