汽车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 | 子功能 |
DTCSettingType | DTC设置类型 |
DTCSettingControlOptionRecord | DTC设置控制选项记录 |
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状态冻结,保持不变。
控制诊断故障码设置服务主要出现的场合:
- 当我们临时调整系统某些部件的状态,可能会造成服务端检测异常,导致服务端记录DTC,这时我们可以在调整之前让服务端停止DTC状态位的更新。
- 当某个ECU更新程序时,此ECU会在一段时间内会停止报文发送(程序被擦除了),等程序更新完成才能继续发送报文,而在停止报文发送这段时间里,与之相关的控制器就会报通信故障,这时我们在更新某个ECU程序之前,事先停止相关控制器DTC状态位的更新。
4.请求消息定义
请求消息定义 | ||||
A_Data字节 | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | 控制DTC设置请求SID | M | 0x85 | CDTCS |
#2 | 子功能=[DTC设置类型] | M | 0x00-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 该值为本文件为未来定义预留。 |
M | ISOSAERESRVD |
0x01 |
恢复 根据正常的操作条件,服务端应恢复诊断故障码状态位的更新。 |
M | ON |
0x02 |
停止 服务端应停止诊断故障码状态位的更新。 |
M | OFF |
0x03-0x3F |
ISOSAEReserved 此值范围为本文件为未来定义预留。 |
M | ISOSAERESRVD |
0x40-0x5F |
车辆制造商特定 此值范围保留供车辆制造商特定使用。 |
U | VMS |
0x60-0x7E |
系统供应商特定 此值范围保留供系统供应商特定使用。 |
U | SSS |
0x7F |
ISOSAEReserved 该值为本文件为未来定义预留。 |
M | ISOSAERESRVD |
4.2.请求消息数据参数定义
请求消息数据参数定义 |
定义 |
DTC设置控制选项记录 当控制DTC状态位的更新时(目前定义的子功能关于控制DTC状态位的更新有恢复(0x01)和停止(0x02)两个子功能),该参数记录才被选择使用,也可以不使用。 此参数记录通常是不用的。 注:当控制DTC状态位更新时,如果不使用参数记录,那么我们控制的就是所有DTC状态位的更新; 当控制DTC状态位更新时,如果使用参数记录,这个记录我们可以自行定义,只要有道理有实用价值都可以 的,譬如:控制某个DTC状态位的更新、限制更新次数啥的等等。 |
5.肯定响应消息定义
肯定响应消息定义 | ||||
A_Data字节 | 参数名称 | Cvt | 字节值 | 助记符 |
#1 | 控制DTC设置响应SID | M | 0xC5 | CDTCSPR |
#2 | 子功能=[DTC设置类型] | M | 0x00 - 0x7F | DTCSTP |
5.1.肯定响应消息数据参数定义
肯定响应消息数据参数定义 |
定义 |
DTC设置类型 此参数与请求消息的子功能参数的位6~0相同。 |
6.否定响应消息定义
否定响应消息定义 | ||||
A_Data字节 | 参数名称 | 字节值 | Cvt | 助记符 |
#1 | 否定响应SID | 0x7F | M | SIDNR |
#2 | 控制DTC设置请求SID | 0x85 | M | SIDRQ |
#3 | 否定响应码 | 0xXX | M | NRC_ |
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报文 | 实体 | |||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
控制DTC设置请求 | 0x02 | 0x85 | 0x02 | 客户端 | |||||
肯定响应 | 0x02 | 0xC5 | 0x02 | 服务端 |
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报文 | 实体 | |||||||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
控制DTC设置请求 | 0x02 | 0x85 | 0x01 | 客户端 | |||||
肯定响应 | 0x02 | 0xC5 | 0x01 | 服务端 |
到这里我们的0x85服务基本学完了。
以上解释有没有解决大家的疑惑,如果还是觉得有疑惑的地方,欢迎大家踊跃提出,一起分享,共同进步!!!
有CSDN号的也可以帮忙点个关注,我会陆续更新其它UDS服务。
汽车UDS诊断之控制诊断故障码设置服务(0x85)深度剖析相关推荐
- μC/OS-II 源码阅读笔记 —— 内核深度剖析
一个程序猿郁结十年的青苹果 Bush 2014-4-24 前言 此文发表在此,由于正吃菜的我才疏学浅,文中难免有错误的地方,欢迎看官和过客指正批评,痛骂也无妨,我虚心接受所有的鄙视. 目录 概述 缩略 ...
- OBD-II标准故障码定义
一)BOD-II的特点: 1.统一车种诊断座形状为16PIN. 2.上有数值分析资料传输功能(DATA LINK CONNECTOR简称DLC). 3.统一各车种相同故障代码及意义. 4.具有行车记录 ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.3.1 故障码(DTC)格式详解
1. 概述 存储数据传输功能单元其实就是读取故障码信息和清除故障码两个服务.我们本文先来看一下我们一直在说的故障码的格式是怎样的. 我们通常把诊断分成两种,我们之前一直在讲的UDS诊断属于增强型诊断, ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.3.2 故障码状态(statusOfDTC)详解
在ECU中,每个故障码会有一个字节长度的状态字节(statusOfDTC),DTC状态指示了该DTC所对应的故障是否发生.是否被确认等状态.DTC状态每一位的定义如下: 我们结合下面的例子,来看一下这 ...
- 【车载开发系列】UDS诊断---DTC故障码基础回顾
[车载开发系列]UDS诊断-DTC故障码基础回顾 UDS诊断---DTC故障码基础回顾 [车载开发系列]UDS诊断---DTC故障码基础回顾 一.什么是DTC故障码 二.DTC故障码的作用 三.什么是 ...
- UDS诊断故障码及诊断服务介绍(14h, 19h, 85h)
1 诊断故障 人看病就医时,医生通过望闻问切来判定病因.而汽车运行出现故障时,维修人员(或开发人员)通过专业的诊断仪器直接读取当前车辆的故障.原理是车载控制器会时刻监控自身的运行情况,并把发现的故障信 ...
- 车载网络测试 - UDS诊断篇 - 故障码(DTC)
一.故障码存在的意义 我认为故障码存在的意义主要有以下几点: 1.下线检测,对于一辆车的零部件的开发.系统集成.整车组装,其中涉及的流程之长.零件数量之多,可以说是相当的复杂:为了保证最终车辆下线,并 ...
- 【车载开发系列】诊断故障码DTC的格式标识符
[车载开发系列]诊断故障码DTC的格式标识符 诊断故障码DTC的格式标识符 [车载开发系列]诊断故障码DTC的格式标识符 一.DTC格式标识符概念 二.DTC格式标识符的运用 1)DTCByXXXXM ...
- 汽车UDS诊断详解及Vector相关工具链使用说明——2.1.1 诊断和通讯管理功能单元概述
从本章开始,会为大家详细讲解UDS中常用的诊断服务. 标准中把UDS所有诊断服务分为了以下几个部分: 诊断和通信管理功能单元 数据传输功能单元 传输储存的数据功能单元 输入输出控制功能单元 远程激活例 ...
- 【车载开发系列】UDS诊断---输入输出控制($0x2F)
[车载开发系列]UDS诊断-输入输出控制($0x2F) UDS诊断---输入输出控制($0x2F) [车载开发系列]UDS诊断---输入输出控制($0x2F) 一.概念定义 1)与0x31例程控制服务 ...
最新文章
- 2007最优秀的CSS网站设计
- SAP MM UB类型STO不能转供应商寄售库存?
- java axis2 开发webservice_利用Axis2开发WebService(3)—用Java实现调用WebService的客户端程序 | 学步园...
- 【数据结构笔记】归并排序(merge_sort)+ 堆排序 -- python2.7
- bzoj1010: [HNOI2008]玩具装箱toy
- 如何解决微服务架构中的身份验证问题?
- javascript的parseInt函数(转)
- 大学本科 java教材_Java程序设计(21世纪大学本科计算机专业系列教材普通高等
- vos3000v2.1.6.0客户端 vos3000 6.0下载
- C/C++项目源码——数字雨DigitalRain
- Haar特征提取算法的实现
- 计算机专业Java毕业设计(项目+论文+源码)
- java服务器接收coap协议数据_CoAP协议-以Java为例的Californium初步实现
- 介绍几款低代码生成器,神器
- Ubuntu下的LibTorrent库编译
- 基于机器学习的量化投资策略
- 关于C语言的随机函数
- 三个表内连接查询创建视图
- 互联网+是什么意思?
- USACO 2021 December Contest, Bronze
热门文章
- java applet介绍,Java Applet教程介绍
- 测试网站漏洞软件,网站漏洞检测工具
- 【数据挖掘学习笔记】数据挖掘中主要问题有哪些?
- 骁龙888打开“新象限” ,专业相机和游戏机直呼不讲武德
- MathType与Office公式编辑器有什么不同
- Win7系统aero主题灰色不可选怎么办|win7 aero灰色的解决方法
- [5-26]绿色精品软件每天更新[uc23整理]
- 破解版极品飞车12免费下载 - 卧底风云(极道车神)
- 虚幻4——实时渲染学习笔记
- matlab导出高分辨率图片