嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > UDS统一诊断服务【七】DTC控制0X85服务

UDS统一诊断服务【七】DTC控制0X85服务

大家好,我是嵌入式老林,从事嵌入式软件开发多年,今天分享的内容是UDS诊断故障码控制0X85服务介绍,希望能对你有所帮助

DTC控制服务介绍

DTC全称:Diagnostic Trouble Code 诊断故障码,DTC控制服务,主要是客户端用来停止或恢复服务端中DTC状态的更新

当服务端收到85服务后:

如果控制信息是on,那么如果先前是off,就立复到正常的状态,如果先前是on,保持状态不变。

果控制是off,服务端应该立即停止DTC的状态更新。即从此刻起,DTC的状态信息保持不变。无论是发生了新的故障,还是当前的故障有了新的状态,服务端的DTC数量、状态信息都不会更新。

无论是on还是off,服务端在正确处理请求之后都要给出肯定响应,如果无法正确处理,需要给出否定响应,并回复失败的NRC。

注意DTC控制服务是要求在非默认会话下支持的服务,如果是默认会话下此服务无法执行请求的,回复否定应答,当前会话不支持。

注意:本服务控制的DTC状态的更新,并不影响通过ClearDTCInformation(14)服务请求清除故障信息。

数据格式

请求报文

DTC控制服务的请求报文的数据格式也很简单,[SID] + [sub-function]

一般只用到SID和子功能DTCSettingType两个字节,后面的DTCSettingControlOptionRecord 参数不怎么用,目前没用到,暂不介绍

子功能

子功能为DTCSettingType,常用的就两个,0X01和0X02,其它的要不是保留,要不是汽车制造商或供应商自定义的。

0X01:表示DTC设置类型为on,服务端收到请求后恢复DTC状态的更新

0X02:表示DTC设置类型为off,服务端收到请求后停止DTC状态的更新

响应格式

响应格式也简单,[SID + 0X40] + [sub-function],子功能和请求时保持一样

否定响应格式相信看了前面的介绍都很熟了吧,此处不再啰嗦

这里列一下支持的NRC:

举例

DTC设置类型为off,一般发起DTC控制服务请求,用的是功能寻址,让所有ECU都响应请求

DTC设置类型为on

最后,如果觉得有帮助,希望你能点个关注,一键三连,感激不尽