ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-09-20 22:31:08  阅读:1432  来源: 互联网

标签:0x85 UDS 请求 响应 DTC 控制 诊断 设置 服务端


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状态冻结,保持不变。

 

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

标签:0x85,UDS,请求,响应,DTC,控制,诊断,设置,服务端
来源: https://blog.csdn.net/qq_40242571/article/details/120362135

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有