1 术语解释
1.1 缩略语
缩写 | 描述 | 解释 |
---|---|---|
DTC | Diagnostic Trouble Code | 诊断故障码 |
Dcm | Diagnostic Communication Manager | 诊断通信管理 |
Dem | Diagnostic Event Manager | 诊断事件管理 |
SID | Service identify | 服务标识符 |
NRC | Negetive reponse code | 否定响应码 |
SF | Sub-Function | 子服务 |
2 功能简介
2.1 功能概述
UDS服务0x85 - ControlDTCSetting,允许Tester能够使能、失能内部DTC状态位更新。接下来我们从以下的问题来认识0x85服务。
0x85服务中Dcm使用什么接口完成对DTC的控制呢?
一般地,0x85服务会有两个常用的SF,即0x1(On)和0x2(Off);即在请求SF为0x1(On)时,Dcm会使用Dem_EnableDTCSetting来使能DTC状态更新。相反的,在请求SF为0x2(Off)时,Dcm会使用Dem_DisableDTCSetting来禁用DTC状态更新。此时,DTC的状态位处于Freeze或Reset状态,这由Dem的配置决定。详细请参考【AutoSar_诊断协议栈】Dem模块详解(1)_Event和Component详解
0x85服务在切换会话时,还会保持之前的DTC设置吗?
0x85服务可以配置支持多个会话,那么当前会话在0x85服务支持的会话中切换时,并不会改变之前的DTC控制,但是当会话切换到0x85服务不支持的会话时,那么Dcm就会将DTC控制设置切换到默认地状态–Dcm会使用Dem_EnableDTCSetting来使能DTC状态更新。
0x85服务除了能够控制所有DTC,也能够设置单独的DTC或DTC组吗?
其实是可以的,但是在默认地情况下只能控制所有DTC设置,只有把DcmSuppor tDTCSettingControlOptionRecord配置为TRUE才能在诊断请求中SF后加入三个字节的DTC或DTC组。
0x85服务和0x14服务是否存在冲突?
不存在冲突,0x14是用于清除DTC状态和DTC相关捕获的数据,而0x85只会使能、失能内部DTC状态位更新,二者并不矛盾。
3 请求响应定义
3.1 请求格式
0x85服务的SF如下表所示,常用SF为0x1(On)和0x2(Off)。
一般的诊断请求格式为: 85 + SF + DTC(默认无)。
3.2 肯定响应格式
3.3 否定响应格式
否定响应使用通过的格式: 7F + SID + NRC, 0x85服务主要支持一下NRC码:
4 请求响应实例
5 参考资料
- ISO 14229-1:2013(E)
- Specification of Diagnostic Communication Manager AUTOSAR CP R20-11