0x85 ControlDTCSetting

文字说明部分来源:https://blog.csdn.net/qq_40242571/article/details/120362135

ControlDTCSetting就是控制诊断故障码设置服务,简单说客户端可以利用此服务让服务端停止或恢复DTC状态位更新

控制诊断故障码设置服务就是让服务端停止或恢复DTC状态位更新。当我们用读取DTC信息(0x19)服务的特定子功能去读取DTC信息,这时候在该服务的肯定响应在DTC参数状态中会记录所有DTC状态位,我们可以看到这些DTC信息相较于上次读取是被冻结了或还在记录。

该服务可设置支持功能寻址,可控制单个服务端或多个服务端的DTC状态位更新。

该服务是改变ECU功能的服务,要设置在非默认会话模式下执行,当ECU重新回到默认会话模式时,该服务功能就会恢复到默认,即恢复DTC状态位更新。

如果之前已经让服务端停止DTC状态位更新,而且并没有重新恢复更新,此时客户端再去请求停止,服务端仍应发送肯定响应;如果之前已经让服务端恢复DTC状态位更新或者没进行服务请求,此时客户端再去请求开启,服务端仍应发送肯定响应。

如果客户端发送清除诊断信息(0x14)服务,此优先级比停止更新要高,则控制DTC设置不应禁止重置服务端的DTC状态位,所以可以重置DTC状态位。

在停止DTC状态位更新之后,恢复DTC状态位更新的方式有:

1、在非默认会话模式下超时,重新回到默认模式下;

2、ECU复位,如:进行实际复位操作或者请求ECU复位服务;

3、使用控制DTC设置服务重新恢复DTC状态位更新。

服务白话解读:正常情况下,服务端的故障检测功能模块会根据故障检测结果实时更新每个DTC的状态(记录在对应的DTC状态位中) 。而我们此服务就可以用来停止DTC状态位更新,简单来说就是停止故障检测功能,不再继续记录DTC状态,原来记录的DTC状态冻结,保持不变。

控制诊断故障码设置服务主要出现的场合:

当我们临时调整系统某些部件的状态,可能会造成服务端检测异常,导致服务端记录DTC,这时我们可以在调整之前让服务端停止DTC状态位的更新。

当某个ECU更新程序时,此ECU会在一段时间内会停止报文发送(程序被擦除了),等程序更新完成才能继续发送报文,而在停止报文发送这段时间里,与之相关的控制器就会报通信故障,这时我们在更新某个ECU程序之前,事先停止相关控制器DTC状态位的更新。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容