代码编织梦想

UDS服务基础篇之85服务

前言

正如前文《UDS基础之28服务》所说的28服务与85服务往往是搭配使用,因此讲完28服务之后,本文将对85服务做一个专题介绍。那么针对85服务,小T咨询下大家如下几个问题?

  • 你知道85服务是干什么的吗?
  • 85服务是怎样的请求与诊断格式?
  • 85服务在使用的过程中需要注意哪些问题?

这篇,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:

在这里插入图片描述


正文

功能描述

根据ISO14119-1标准中所述,诊断服务85服务主要用于开启或者停止DTC状态位的更新功能,这个功能在主机厂规定的诊断服务规范当中都会有实际的功能及作用。

下列文中使用到的Client可直接理解为上位机Tester,Server可直接理解为接受Tester诊断请求的ECU。

应用场景

一般而言,对于85诊断服务,主要应用场景为以下场合:

  • 用于在诊断刷写的过程中关闭DTC记录,因为在刷写的过程中往往是针对某个ECU节点单独进行刷写,其他的对手件ECU节点始终处于正常工作状态,那么此时应当发送功能寻址给到各ECU节点使得其停止记录DTC,刷写完成之后在重新开启对手件DTC记录功能即可。
  • 用于某些特殊不需要记录DTC的场景;

上述这些应用场景较为常见,这里就不一一列举。

除了在哪些应用场景下使用,在此还需要针对85服务提出如下几点注意事项:

  • 当通过85服务控制DTC不报出时,也就意味着当前DTC的状态将不会更新,DTC状态将保持现状;
  • 一旦85服务控制DTC报出或者session超时回到默认会话或者软件复位等操作时,那么此时DTC状态将会继续保持更新;
  • 当85服务控制DTC不报出时,此时执行14清除DTC服务时,DTC的状态将会正常被14服务处理,不会收到85服务的影响;
  • 如果某event并没有Mapping DTC,那么85服务将不会对这个event做任何处理,因为85服务处理的基本对象是DTC;
  • 如果某故障event发生会触发安全行为,此时如果执行85服务抑制DTC,同时触发14服务那么DTC状态将会被清除,相应的安全行为可能失效,因为对于安全关键系统,一般建议出现这种情况时,已触发的安全行为不应该被同步抑制;

DTC控制基本原理:

如下图1所示,针对85服务的通信控制过程会经过如下几个AUTOSAR BSW模块进行处理,然后完成最终的通信控制,具体步骤如下:

  • Client 发送诊断指令给到Server,Server接收到指令后内部会置位某全局变量;

  • 软件内部故障触发时,会首先检查如下两个条件是否满足才会进行event的处理;

    • enable condition是否满足;
    • DTC控制有无关闭(85服务);

    只有当enable condition满足并且抑制DTC上报的开关为FALSE的情况下,上报的故障事件才能够得到进一步处理;

在这里插入图片描述

图1 85服务DTC控制原理图

服务请求

服务请求是Client发送给到Server的诊断服务指令

请求格式

按照ISO14229-1标准所述,如下图2所示为85服务诊断请求格式,即上述DTC控制原理中诊断服务请求格式:

在这里插入图片描述

图2 85诊断服务请求格式

一般来说参数DTCSettingControlOptionRecord几乎不使用,仅用到前面两个参数,一个是SID,另外一个是DTCSettingType。

下图3中各参数解释如下:
在这里插入图片描述

图3 85诊断服务请求格式说明

如下图4所示,为上述subfunction(DTCSettingType)中的各项取值的具体含义:

在这里插入图片描述

图4 85诊断服务subfunction取值说明
请求实例

关闭DTC监控(OFF)

抑制DTC上报为例,85服务诊断请求实例如下图5所示:

在这里插入图片描述

图5 85服务抑制DTC上报请求实例

开启DTC监控(ON)

开启DTC上报为例,85服务诊断请求实例如下图6所示:

在这里插入图片描述

图6 85服务使能DTC上报请求实例

服务响应

服务响应是针对Client对Server诊断请求的响应。

正响应格式

如下图7所示,为85诊断服务的正响应格式:

在这里插入图片描述

图7 85诊断服务正响应格式

从上图中可以看出,85诊断服务的正响应由以下二个部分组成:

  • Response ID:该参数固定为SID+0x40 = 0xC5;
  • SubFunction:该参数为上述诊断请求格式中DTCSettingType;
正响应实例

关闭DTC监控(OFF)

如下图8所示,为上述85 02请求示例所对应的正响应:

在这里插入图片描述

图8 85 02正响应示例

其中,0x02就是跟诊断请求中的DTCSettingType保持一致即可。

开启DTC监控(ON)

如下图9所示,为上述85 01请求示例所对应的正响应:

在这里插入图片描述

图9 85 01正响应示例
负响应NRC支持

绝大多数情况下,Server针对Client的请求都会给到正响应,比如发生重启前需确保整车处于安全状态,如引擎熄火,车速不能超过3km/h等,或者为了防止不按照诊断请求格式进行请求,那么Server需要通过某种方式来告诉Client执行不成功的原因在哪里以便于调查问题直至得到正响应。

因此ISO14229-1针对所有的诊断服务提供了一种统一的诊断负响应的诊断格式:7F +SID + NRC

其中NRC全称为Negetive Responce Code,每个NRC具有唯一的含义来代表当前诊断请求错误的原因所在。当然每个诊断服务支持的NRC不尽相同,具体支持的NRC需要参考ISO14229-1标准文档,对于85服务而言支持的NRC如下图:
在这里插入图片描述

图10 85服务NRC支持
  • 当诊断请求的subfuntion不在Server支持的范围内时,则Server会回复”7F 85 12“;
  • 当发送报文长度或者格式不对时,则Server会回复"7F 85 13";
  • 例如当尝试请求复位时且当前车速条件不满足,此时Client发送诊断指请求时,Server将会回复“7F 85 22”来告诉请求者当前进入编程会话的条件不满足,请再次检查进入编程会话的条件。
  • 当communicationType与nodeIdentificationNumber均超出规定的范围时,则Server会回复 “7F 85 31”

复位时且当前车速条件不满足,此时Client发送诊断指请求时,Server将会回复“7F 85 22”来告诉请求者当前进入编程会话的条件不满足,请再次检查进入编程会话的条件。

  • 当communicationType与nodeIdentificationNumber均超出规定的范围时,则Server会回复 “7F 85 31

更多精彩内容,敬请关注公众号“ADAS与ECU之吾见”!
在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wto9109/article/details/127002286

uds诊断入门_liqian999的博客-爱代码爱编程_uds诊断

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Internet 和K-line)上实现。UDS协议的应用层定义是ISO 14229-1,目前大部分汽车厂商

can 总线 uds-爱代码爱编程

UDS诊断入门 心机之花 兼听则明,谨言慎行。崇尚科学,实事求是。 275 人赞同了该文章 写在前面:UDS实践性强,逻辑复杂,很多服务非要体验过一次才能理解,导致包括我在内的初学者感觉晦涩难懂,不明觉厉,因此将自己的理解写下来、整理下来,与君共勉。 零、UDS诊断命令备忘录 一、简介 UDS(Unified Diagnostic

UDS服务基础篇之2F-爱代码爱编程

前言 在汽车ECU诊断服务开发的过程中,有很多常见的诊断服务,比如10, 11, 22, 2E等,但是对于2F服务则会显得有些陌生,因为这类诊断服务主要在车身域比较常见,比如车窗控制,传感器开关、执行器控制等。除此以外,在其他车身域也有不同程度的使用,只不过相对较少。 接下来,让我们带着下列思考一起来了解一下这个较为神秘的2F服务吧! 2F服务是做

UDS服务基础篇之10-爱代码爱编程

前言 在使用汽车UDS诊断服务的过程中,我们会用到一个十分常见的诊断服务$10服务。该服务基本上时执行其他特别任务的前置服务,所以有必要跟大家一起介绍该服务的基本特点,首先,请问大家几个基础问题? 10服务是做什么的呢?10服务有哪些子服务呢?10服务的请求格式及响应格式又是如何定义的呢?执行10服务自身有无前置条件呢?本文我们来一起探索并回答这些问题

UDS服务基础篇之11-爱代码爱编程

前言 首次,请教大家关于诊断服务11的几个问题: 11服务有何作用,为什么要有11服务呢?11服务在使用过程中有哪些注意事项呢?11服务诊断请求与诊断响应如何交互?这篇,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲: 正文 服务功能 功能描述 根据ISO14119-1标准中所述,诊断服务11主要用于Client向Se

UDS诊断服务基础篇之27-爱代码爱编程

前言 首次,请教大家关于诊断服务11的几个问题: 27服务有何作用,为什么要有27服务呢?27服务在使用过程中有哪些注意事项呢?27服务诊断请求与诊断响应如何交互?这篇,我们来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲: 正文 服务功能 功能描述 根据ISO14119-1标准中所述,诊断服务27应用场合主要是用于Serv

uds系列之一 汽车诊断简介_chenglimk的博客-爱代码爱编程

前言:从小到大,一直都没有写笔记的习惯,一直信奉某个东西只要能做出来第一次,就能做出来第二次。但是,岁月不饶人,年轻时候觉得很简单的东西,现在都要反复确认,所以就想着把自己做过的学过的东西记录下来,尤其是一些经验都记下来,方便以后查阅。本来想用笔记类的程序存下来,甚至自己买了nas将内容部署在自己的平台上,比较放心一些,后来一想,既然要写,闭门造车容易出问

uds服务基础篇之2e_汽车小t的博客-爱代码爱编程

UDS诊断服务基础篇之2E 前言 2E服务作为诊断服务中的基础服务,可以简单理解为就是一个用于写入ECU数据的外部接口,可实时获取软件内部的相关的状态信息。 鉴于本文是基础入门介绍,小T还是会问下大家有关2E诊断服务的相关问题? 2E服务的实际用途是什么?2E服务的应用场景有哪些呢?2E服务的诊断服务格式如何?这篇,我们来一起探索并回

uds基础_emmayetta的博客-爱代码爱编程

白话学习又一篇。感谢Vector 官方自制 UDS Protocol. 【官方自制】UDS Protocol_哔哩哔哩_bilibili 1. 什么是UDS UDS是unified diagnostic service的缩写。 标准是ISO 14229 Road vehicles-Unified diagnostic Services (UDS),定

uds服务基础篇之28_uds28服务-爱代码爱编程

前言 首次,请教大家关于诊断服务28的几个问题: 28服务有何作用,为什么要有28服务呢?28服务在使用过程中有哪些注意事项呢?28服务诊断请求与诊断响应如何交互? 这篇,我们来一起探索并回答这些问题。为了便于大家理解

uds服务基础篇之22_uds22服务-爱代码爱编程

UDS诊断服务基础篇之22 前言 22服务作为诊断服务种的基础服务,可以简单理解为就是一个用于读取ECU数据的外部接口,可实时获取软件内部的相关的状态信息。 鉴于本文是基础入门介绍,小T还是会问下大

java互联网实时聊天系统(附源码)_java实现实时聊天-爱代码爱编程

0. 前言 决定以Netty为核心,以WebSocket为应用层通信协议做一个互联网聊天系统,整体而言就像微信网页版一样,但考虑到这个聊天系统的功能非常多,因此只打算实现核心的聊天功能,包括单发、群发、文件发送,然后把项目与Spring整合做成开源、可拓展的方式,给大家参考、讨论、使用,欢迎大家的指点。 关于Netty Netty 是一个利用

基于nginx开发下的openresty开发指南构建百万级别并发的web应用_openresty 多种协议-爱代码爱编程

OpenResty是一个基于Nginx的高性能Web平台,能够方便地搭建处理超高并发的动态Web应用、Web服务和动态网关。与现有的其他开发语言/环境相比,OpenResty 有着高性能、高灵活性、易于学习和扩展等许多优点,近年来得到了越来越多开发者的关注,也有了很多成功的应用范例,如Adobe、Dropbox、 GitHub 等知名公司都基于OpenRe

信创势不可挡,数据传输软件怎样国产化替代?_国产化替代方案步骤-爱代码爱编程

2018年,受华为、中兴等企业被美国技术制裁的影响,技术创新的重要性被再次强调,2019年,信创,即信息技术创新成为新的风口。2020年是信创产业“元年”,“2+8”体系中全面升级自主创新信息产品,信创行业开始全面爆发和整体布局,金融、电信、电力、交通等重要行业逐步开始信创产品和项目的应用落地。市场活跃、业绩增长、标杆项目频出。经过信创元年的集中爆发,20

linux 中的 20 大网络监控工具_linux 网络监控-爱代码爱编程

在本教程中,让我们讨论可用于 linux 系统的最佳网络监控工具。有很多可用的工具,如 nethogs、ntopng、nload、iftop、iptraf、bmon、slurm、tcptrack、cbm、netwatch、collectl、trafshow、cacti、etherape、ipband、jnettop、netspeed 和 speedomet

uds诊断系列之二 iso14229协议介绍(上)-爱代码爱编程

ISO14229系列,涵盖了UDS的服务定义以及在各车载总线上的一些特殊应用指导,以及各总线类型所对应的下层协议要求,下面就是该系列中各协议所对应的内容清单。 协议编号协议名称协议内容14229-1Application layerUDS的使用规则,服务,以及相关的服务原语(接口定义)14229-2Session layer services会话层的使用