汽车UDS诊断之控制诊断故障码设置服务(0x85)深度剖析

本文详细介绍了UDS诊断服务中的0x85控制DTC设置服务,包括服务描述、请求和响应消息定义,以及停止和恢复DTC状态位更新的示例。该服务允许客户端暂停或恢复ECU的DTC状态更新,常用于系统调整或ECU程序更新前防止错误记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

控制诊断故障码设置
服务描述
ControlDTCSetting客户端请求服务端停止恢复DTC状态位的更新

目录

1.英文术语

2.缩写表

3.服务描述

4.请求消息定义

4.1.请求消息子功能定义

4.2.请求消息数据参数定义

5.肯定响应消息定义

5.1.肯定响应消息数据参数定义

6.否定响应消息定义

6.1.否定响应码

7.服务使用示例

7.1.示例#1-控制DTC设置(DTC设置类型=停止)

7.1.1.步骤1:控制DTC设置请求

7.1.2.操作汇总

7.2.示例#2-控制DTC设置(DTC设置类型=恢复)

7.2.1.步骤1:控制DTC设置请求

7.2.2.操作汇总


1.英文术语

英文术语翻译
ControlDTCSetting控制DTC设置
ControlDTCSetting Request SID控制DTC设置请求SID
sub-function子功能
DTCSettingTypeDTC设置类型
DTCSettingControlOptionRecordDTC设置控制选项记录
ControlDTCSetting Response SID控制DTC设置响应SID

2.缩写表

缩写翻译
DTC诊断故障码
SID服务标识符
Cvt

约定值

M 强制的

C 有条件的

U 用户选项

NRC否定响应码

3.服务描述

控制诊断故障码设置服务就是让服务端停止恢复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状态冻结,保持不变。

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

  1. 当我们临时调整系统某些部件的状态,可能会造成服务端检测异常,导致服务端记录DTC,这时我们可以在调整之前让服务端停止DTC状态位的更新。
  2. 当某个ECU更新程序时,此ECU会在一段时间内会停止报文发送(程序被擦除了),等程序更新完成才能继续发送报文,而在停止报文发送这段时间里,与之相关的控制器就会报通信故障,这时我们在更新某个ECU程序之前,事先停止相关控制器DTC状态位的更新。

4.请求消息定义

请求消息定义
A_Data字节参数名称Cvt字节值助记符
#1控制DTC设置请求SIDM0x85CDTCS
#2子功能=[DTC设置类型]M0x00-0xFF

LEV_DTCSTP_

#3

#3+(m-1)

DTC设置控制选项记录[] = [

                                            参数#1

                                                 :

                                            参数#m]

U

  :

U

0x00-0xFF

      :

0x00-0xFF

DTCSCOR_

PARA1

     :

PARAm

4.1.请求消息子功能定义

该服务使用子功能参数选择,也就是DTC设置类型此字节的bit7表示抑制肯定响应位,下表并没有介绍此位)。

请求消息子功能定义
位6-0描述Cvt助记符
0x00

ISOSAEReserved

该值为本文件为未来定义预留。

MISOSAERESRVD
0x01

恢复

根据正常的操作条件,服务端应恢复诊断故障码状态位的更新。

MON
0x02

停止

服务端应停止诊断故障码状态位的更新。

MOFF
0x03-0x3F

ISOSAEReserved

此值范围为本文件为未来定义预留。

MISOSAERESRVD
0x40-0x5F

车辆制造商特定

此值范围保留供车辆制造商特定使用。

UVMS
0x60-0x7E

系统供应商特定

此值范围保留供系统供应商特定使用。

USSS
0x7F

ISOSAEReserved

该值为本文件为未来定义预留。

MISOSAERESRVD

4.2.请求消息数据参数定义

请求消息数据参数定义
定义

DTC设置控制选项记录

控制DTC状态位的更新时(目前定义的子功能关于控制DTC状态位的更新恢复(0x01)停止(0x02)两个子功能),该参数记录才被选择使用,也可以不使用。

此参数记录通常是不用的。

注:当控制DTC状态位更新时,如果不使用参数记录,那么我们控制的就是所有DTC状态位的更新;

       当控制DTC状态位更新时,如果使用参数记录,这个记录我们可以自行定义,只要有道理有实用价值都可以         的,譬如:控制某个DTC状态位的更新、限制更新次数啥的等等

5.肯定响应消息定义

肯定响应消息定义
A_Data字节参数名称Cvt字节值助记符
#1控制DTC设置响应SIDM0xC5CDTCSPR
#2子功能=[DTC设置类型]M0x00 - 0x7FDTCSTP

5.1.肯定响应消息数据参数定义

肯定响应消息数据参数定义
定义

DTC设置类型

此参数与请求消息的子功能参数的位6~0相同。

6.否定响应消息定义

否定响应消息定义
A_Data字节参数名称字节值Cvt助记符
#1否定响应SID0x7FMSIDNR
#2控制DTC设置请求SID0x85MSIDRQ
#3否定响应码0xXXMNRC_

6.1.否定响应码

此服务支持的否定响应码
否定响应码描述助记符
0x12

子功能不支持

如果不支持子功能参数,则应发送此否定响应码。

SFNS
0x13

消息长度错误或格式无效

如果消息的长度错误,则应发送此否定响应码。

IMLOIF
0x22

条件错误

如果未满足控制DTC设置请求的条件,因此无法执行DTC设置,则应发送此否定响应码。

CNC
0x31

请求超出范围

如果服务端检测到DTC设置控制选项记录(自己定义的格式)中有错误,则应使用此响应码。

ROOR

7.服务使用示例

7.1.示例#1-控制DTC设置(DTC设置类型=停止)

7.1.1.步骤1:控制DTC设置请求

该示例不使用DTC设置控制选项记录参数,客户端通过将抑制肯定响应位设置为假(即“0”),以请求有机会得到肯定响应消息。

控制DTC设置请求消息

消息方向

客户端→服务端

消息类型

请求

A_Data字节

描述(所以值为16进制)

字节值

助记符

#1

控制DTC设置请求SID

0x85

RDTCS

#2

子功能 = 停止

               抑制肯定响应位 = 假

0x02

DTCSTP_OFF

控制DTC设置响应消息

消息方向

服务端→客户端

消息类型

响应

A_Data字节

描述(所以值为16进制)

字节值

助记符

#1

控制DTC设置响应SID

0xC5

RDTCSPR

#2

子功能 = 停止

0x02

DTCSTP_OFF

7.1.2.操作汇总

步骤1:控制DTC设置请求-停止

图解:

操作CAN报文实体
01234567
控制DTC设置请求0x020x850x02     客户端
肯定响应0x020xC50x02     服务端

7.2.示例#2-控制DTC设置(DTC设置类型=恢复)

7.2.1.步骤1:控制DTC设置请求

该示例不使用DTC设置控制选项记录参数,客户端通过将抑制肯定响应位设置为假(即“0”),以请求有机会得到肯定响应消息。

控制DTC设置请求消息

消息方向

客户端→服务端

消息类型

请求

A_Data字节

描述(所以值为16进制)

字节值

助记符

#1

控制DTC设置请求SID

0x85

RDTCS

#2

子功能 = 恢复

               抑制肯定响应位 = 假

0x01

DTCSTP_ON

控制DTC设置响应消息

消息方向

服务端→客户端

消息类型

响应

A_Data字节

描述(所以值为16进制)

字节值

助记符

#1

控制DTC设置响应SID

0xC5

RDTCSPR

#2

子功能 = 恢复

0x01

DTCSTP_ON

7.2.2.操作汇总

步骤1:控制DTC设置请求-恢复

图解:

操作CAN报文实体
01234567
控制DTC设置请求0x020x850x01     客户端
肯定响应0x020xC50x01     服务端

到这里我们的0x85服务基本学完了。

以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!!

有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心骗小白话

和我一起成长吧

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

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

打赏作者

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

抵扣说明:

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

余额充值