主页 > 其他  > 

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

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

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,波特率切换至2MbpsTC8702验证链路状态(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双通道独立配置生效

三、关键测试场景详解

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

四、测试执行建议

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

五、特殊测试场景

多通道独立控制 #mermaid-svg-UYAGwbORvClaHPJQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UYAGwbORvClaHPJQ .error-icon{fill:#552222;}#mermaid-svg-UYAGwbORvClaHPJQ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UYAGwbORvClaHPJQ .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-UYAGwbORvClaHPJQ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UYAGwbORvClaHPJQ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UYAGwbORvClaHPJQ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UYAGwbORvClaHPJQ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UYAGwbORvClaHPJQ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UYAGwbORvClaHPJQ .marker.cross{stroke:#333333;}#mermaid-svg-UYAGwbORvClaHPJQ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UYAGwbORvClaHPJQ .actor{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-UYAGwbORvClaHPJQ text.actor>tspan{fill:black;stroke:none;}#mermaid-svg-UYAGwbORvClaHPJQ .actor-line{stroke:grey;}#mermaid-svg-UYAGwbORvClaHPJQ .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#mermaid-svg-UYAGwbORvClaHPJQ .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#mermaid-svg-UYAGwbORvClaHPJQ #arrowhead path{fill:#333;stroke:#333;}#mermaid-svg-UYAGwbORvClaHPJQ .sequenceNumber{fill:white;}#mermaid-svg-UYAGwbORvClaHPJQ #sequencenumber{fill:#333;}#mermaid-svg-UYAGwbORvClaHPJQ #crosshead path{fill:#333;stroke:#333;}#mermaid-svg-UYAGwbORvClaHPJQ .messageText{fill:#333;stroke:#333;}#mermaid-svg-UYAGwbORvClaHPJQ .labelBox{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-UYAGwbORvClaHPJQ .labelText,#mermaid-svg-UYAGwbORvClaHPJQ .labelText>tspan{fill:black;stroke:none;}#mermaid-svg-UYAGwbORvClaHPJQ .loopText,#mermaid-svg-UYAGwbORvClaHPJQ .loopText>tspan{fill:black;stroke:none;}#mermaid-svg-UYAGwbORvClaHPJQ .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);}#mermaid-svg-UYAGwbORvClaHPJQ .note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-UYAGwbORvClaHPJQ .noteText,#mermaid-svg-UYAGwbORvClaHPJQ .noteText>tspan{fill:black;stroke:none;}#mermaid-svg-UYAGwbORvClaHPJQ .activation0{fill:#f4f4f4;stroke:#666;}#mermaid-svg-UYAGwbORvClaHPJQ .activation1{fill:#f4f4f4;stroke:#666;}#mermaid-svg-UYAGwbORvClaHPJQ .activation2{fill:#f4f4f4;stroke:#666;}#mermaid-svg-UYAGwbORvClaHPJQ .actorPopupMenu{position:absolute;}#mermaid-svg-UYAGwbORvClaHPJQ .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#mermaid-svg-UYAGwbORvClaHPJQ .actor-man line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;}#mermaid-svg-UYAGwbORvClaHPJQ .actor-man circle,#mermaid-svg-UYAGwbORvClaHPJQ line{stroke:hsl(259.6261682243, 59.7765363128%, 87.9019607843%);fill:#ECECFF;stroke-width:2px;}#mermaid-svg-UYAGwbORvClaHPJQ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Tester ECU_CAN ECU_ETH 0x87 0x01 0x01 (CAN通道切至1Mbps) 0x87 0x01 0x04 (以太网切至100Mbps) 0xC7 (CAN配置成功) 0xC7 (ETH配置成功) Tester ECU_CAN ECU_ETH 生产模式限制验证 测试项标准要求验证方法协议修改锁止仅允许默认协议尝试切换至CAN FD协议波特率固定500kbps不可变请求调整波特率至1Mbps

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

系列目标

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

标签:

【ISO14229-1:2023UDS诊断全量测试用例清单系列:第十六节】由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【ISO14229-1:2023UDS诊断全量测试用例清单系列:第十六节】