UDS服务基础篇之85

这篇具有很好参考价值的文章主要介绍了UDS服务基础篇之85。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

UDS服务基础篇之85服务

前言

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

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

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

85服务,UDS诊断服务详解,网络,服务器,数据库


正文

功能描述

根据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的情况下,上报的故障事件才能够得到进一步处理;

85服务,UDS诊断服务详解,网络,服务器,数据库

图1 85服务DTC控制原理图
服务请求

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

请求格式

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

85服务,UDS诊断服务详解,网络,服务器,数据库

图2 85诊断服务请求格式

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

下图3中各参数解释如下:
85服务,UDS诊断服务详解,网络,服务器,数据库

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

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

85服务,UDS诊断服务详解,网络,服务器,数据库

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

关闭DTC监控(OFF)

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

85服务,UDS诊断服务详解,网络,服务器,数据库

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

开启DTC监控(ON)

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

85服务,UDS诊断服务详解,网络,服务器,数据库

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

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

正响应格式

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

85服务,UDS诊断服务详解,网络,服务器,数据库

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

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

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

关闭DTC监控(OFF)

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

85服务,UDS诊断服务详解,网络,服务器,数据库

图8 85 02正响应示例

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

开启DTC监控(ON)

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

85服务,UDS诊断服务详解,网络,服务器,数据库

图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如下图:
85服务,UDS诊断服务详解,网络,服务器,数据库

图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之吾见”!
文章来源地址https://www.toymoban.com/news/detail-624509.html

到了这里,关于UDS服务基础篇之85的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • UDS统一诊断服务【三】安全访问0X27服务

    今天分享的是UDS的安全访问服务,希望能对你有所帮助 SecurityAccess 安全访问,27服务,用来保护某些诊断服务的,提供一种保护机制。例如对于重要数据的上传或者下载过程不做任何限制,可能会对整车的安全造成极大的威胁,尤其是针对底盘域的控制器更是要在这方面做好

    2024年02月16日
    浏览(49)
  • UDS诊断系列之七 安全访问(27)服务(番外)附录I

    附录I的主要内容是通过一个状态图来描述ECU在安全访问的各状态之间的切换条件,以及如何进行状态切换即切换过程中都需要执行哪些操作。 下面直接先上图。 图看起来流程很多,但实际上很简单,先说图中的四个状态: A - ECU没有接收过任何安全访问的请求,或者刚刚接

    2024年02月10日
    浏览(49)
  • 【AUTOSAR】UDS协议的代码分析与解读(五)----ECU诊断服务

    8    诊断服务 8.1 总览 此章节定义了本规范中可使用的诊断服务及其执行规则 。 下表列出 了 h 事业部定义的所有 UDS 诊断服务。 ECU 最终实现与下述定义不符之处必须得到 h 事业部   的认可。服务实现内容需在零部件诊 断规范中详细说明。 表   9 诊断服务支持列表 诊 断服

    2024年02月09日
    浏览(54)
  • 【ISO14229_UDS刷写】-3-$36诊断服务TransferData理论部分

    总目录:(单击下方链接皆可跳转至专栏总目录) 《UDS/OBD诊断需求编辑工具》总目录 https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x36 TransferData诊断服务描述 2 0x36服务请求消息 2.1 0x36服务请求消息定义 2.2 0x36服务请求消息子功能参数$ Level(LEV_)定义 2.3 0x36服务请求消息

    2024年02月06日
    浏览(49)
  • 车载诊断协议UDS——诊断刷写(Software Update)

    刷写,顾名思义就是两个动作:刷和写: 刷是擦除ECU芯片内存上原有的数据; 写是重新在ECU芯片内存上写入新的数据(Application or Calibration Data……);         在控制器量产之初,会将valid application data烧录到控制器芯片内存上。但随着时间推移,控制器中运行代码出现

    2024年02月08日
    浏览(58)
  • UDS诊断协议

    UDS 本质上是一系列服务的集合,包含 6 大类,共 26 种。每种服务都有独立的 ID ,即 SID 。 请求 SID(1Byte) + 参数 SID(1Byte) + Sub-function(1Byte) + 参数 SID + DID(2Bytes) 响应 肯定响应 SID+0x40(1Byte) + Sub-function (根据请求是否存在) + 参数 SID+0x40(1Byte) + DID + Data 否定响应 0x7F + SID + NRC(1Byte)

    2024年02月15日
    浏览(49)
  • 使用python执行uds诊断

            主要是通过python-can模块与pcan等支持的硬件通讯,uds协议层使用udsoncan模块和can-isotp模块实现uds诊断。         python-can模块         pip install python-can         相关文档链接:Installation - python-can 4.1.0 documentation                  udsoncan模块         pip ins

    2024年02月09日
    浏览(69)
  • UDS诊断之负响应码

    否定响应码(NRC) 定义(Defination) 0x12 服务器支持诊断请求中的服务标识符(Service ID),但不支持收到的子功能参数时,回复此编码。 0x13 请求服务的诊断报文中的数据长度与定义不一致时,回复此编码。请求服务中参数的格式与定义不一致时也会回复此编码。 0x22 请求的诊断服务的执

    2024年02月11日
    浏览(58)
  • 【车载开发系列】UDS诊断---读取数据($0x22)

    该服务的英文简称为ReadDataByIdentifier 。 根据ISO14119-1标准中所述,诊断服务22主要用于Client向Server(ECU)通过DID的方式读取相关的数据。这些数据可以输入输出的数字信号,模拟信号,内部数据以及其他的系统状态信息。作为诊断服务种的基础服务,可以简单理解为就是一个用于

    2023年04月19日
    浏览(55)
  • 【车载开发系列】UDS诊断---动态定义DID($0x2C)

    动态定义数据标识符 DynamicallyDefineDataIdentifier(2Ch) 此服务允许诊断工具在ECU的内部动态定义一个数据标识符,一个临时的DID,可以通过这个DID读取一段内存的数据,也可以通过改DID一次性读取多个原有DID的数据。 该数据标识符还可以被读取数据服务22h或读取数据(周期标识

    2024年02月02日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包