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

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服务

  • 15
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
提供的源资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源中配备了详细的注释和文档,帮助用户快速理解代结构和实现逻辑。 适用人群: 这些源资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源资源进行课程实践、课外项目或毕业设计。通过分析和运行源,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源资源的可运行性和易用性,特别注意了以下几点:首先,每份源都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源中的注释和文档都非常完善,方便用户快速上手和理解代;最后,我会定期更新这些源资源,以适应各平台技术的最新发展和市场需求。
UDS27服务是指CSDN平台提供的一项专业服务UDS代表用户数据服务,27是其服务的具体编号。 UDS27服务主要是为了满足用户在CSDN平台上的各种数据需求而开设的。通过这项服务,用户可以方便地获取到所需的数据,帮助他们更好地进行学习、研究和开发工作。 首先,UDS27服务提供了丰富的学术论文和文献资源。用户可以通过该服务检索并下载各种研究领域的学术论文、专业文献和行业报告,从而快速获取最新的科研成果和行业动态。这对于科研人员、学生和开发人员而言十分重要,能够为他们的工作提供高质量的参考和支持。 其次,UDS27服务还包括了一系列的在线教育资源。CSDN平台汇集了众多行业专家和技术大牛,他们在各自的领域内积累了丰富的经验和知识。通过UDS27服务,用户可以参与在线课程、直播讲座和技术沙龙等学习活动,获取高质量的教育资源,提升自己的技术能力。 此外,UDS27服务还提供了数据分析和挖掘的支持。对于研究者和数据科学家来说,数据分析和挖掘是非常重要的工作。CSDN平台通过UDS27服务提供了各种数据分析工具和算法库,帮助用户从庞大的数据中提取有价值的信息和知识。 总之,UDS27服务为用户提供了丰富的学术资源、在线教育和数据分析支持。它不仅方便了用户获取所需的数据,还帮助他们提升技术能力和开展学术研究工作,是CSDN平台重要的一项服务

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心骗小白话

和我一起成长吧

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

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

打赏作者

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

抵扣说明:

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

余额充值