UDS诊断系列之十 DTC控制(85)服务

DTC控制服务的主要作用是控制DTC的状态更新。

一、响应规则

DTC=diagnostic trouble code,DTC的状态是故障信息中的一个字节,用来表示故障当前的状态是正在发生还是仅仅发生过等信息,具体含义在后面19服务章节会详细说明。
当服务端(ECU)接收到85服务后,如果控制信息是off,则服务端应该立即停止DTC的状态更新。即从此刻起,DTC的状态信息保持不变,无论是发生了新的故障,还是已有的故障有了新的状态,服务端的DTC数量、状态信息都不会更新。如果控制信息是on,那么如果先前是off,就立即恢复到正常的状态,如果先前是on,保持状态不变。
无论是on还是off,服务端在正确处理请求之后都要给出肯定响应,如果无法正确处理,需要给出否定响应并明确响应失败的NRC。
注意本服务是要求在非默认会话下支持的服务,所以如果是默认会话下是无法执行请求的,只能回复否定响应NRC7F。
本服务控制的DTC状态的更新,并不影响通过ClearDTCInformation(14)服务请求清除故障信息。

二、应用数据格式

1.请求报文

DTC控制服务的请求报文格式非常简单,一般只会用到SID和子功能DTCSettingType两个字节,后面的DTCSettingControlOptionRecord参数并不常用,ISO里列举的例子指出它可以用来表示被禁用的DTC有哪些,具体目前未遇到实际应用。
在这里插入图片描述

2.响应报文

DTC控制服务的响应报文也很简单,仅有两个字节,一个是响应的SID,另一个字节是子功能DTCSettingType,注意这里响应的子功能和请求的是一致的。
在这里插入图片描述

3.子功能

DTC控制服务的子功能叫DTCSettingType,只有两个,其余的都是保留值或可自定义的值,下表列出了常用的两个子功能和描述。

DTCSettingType描述
01on
服务端收到请求后恢复DTC的状态更新
02off
服务端收到请求后停止DTC的状态更新

有关NRC和报文示例比较简单,可直接参照ISO标准。

UDS诊断系列文章

### UDS85服务测试用例示例 对于UDS85(即ISO 14229-1中的Security Access)的服务测试,通常涉及验证ECU的安全访问机制。这类测试旨在确保只有授权实体才能执行敏感操作,比如编程或重置特定参数。 #### 安全访问请求与响应校验 为了实现安全访问,测试用例会模拟发送`Request Security Access (0x27)`命令给目标节点,并期望接收到正确的Seed值作为回应。随后,客户端需计算Challenge并通过再次调用该服务来证明身份合法性[^1]。 ```capl // CAPL代码片段用于发起安全访问请求 on start { // 发送第一个请求获取seed diagSendRequest(0x27, subfunction: 0x01); } message diagResponse resp; if(resp.subFunction == 0x01 && resp.returnCode == 0){ byte seed[] = {resp.dataByte}; // 假设这里有一个函数用来根据种子生成密钥 byte key[] = calculateKeyBasedOnSeed(seed); // 使用得到的key去尝试解锁更高权限级别 diagSendRequest(0x27, subfunction: 0x02, dataBytes:key); } ``` 此过程一般会被封装成独立的测试单元,在每次迭代时都运行一遍以确认安全性逻辑没有被破坏。同时也会有配套的日志记录功能,以便于后续分析失败原因[^3]。 #### 边界条件考量 除了基本的功能性验证外,还应该考虑一些极端场景下的行为: - 当输入非法子函数编号时系统的反应; - 对于重复接收相同Session ID的情况如何处理; - 如果在规定时间内未能提供正确钥匙,则应触发何种保护措施; 这些额外的检查有助于提高整个系统的健壮性和抗攻击能力[^4]。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChenglimK

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值