UDS诊断系列介绍01-UDS概述及常用服务

      最后更新:2022-07-30 21:56:25 手机定位技术交流文章

      本文框架

      • 1. 本系列介绍
      • 2.UDS通信
      • 3.介绍UDS服务
        • 3.1服务概览
        • 3.介绍六种共同服务
          • 10 诊断会话控制
          • 27 安全访问
          • 通过DID阅读数据
          • 2E通过DID编写数据
          • 19阅读TC资讯服务
          • 14清晰的DTC诊断信息服务

      1. 本系列介绍

      UDS(Unified Diagnostic Services)协议,即统一的诊断服务,它是整个汽车的所有ECU的诊断通信方法,它是基于ISO14229标准的标准化诊断服务标准,它位于OSI模型的应用程序层中,如下图,UDS可以基于不同的公共汽车实现,如基于CAN总线可再结合ISO1576协议进一步实现传输层。
      在这里插入图片描述
      UDS诊断的本质是一系列服务,它可以根据其不同的功能分为六个主要类别,总共26个,每种服务对应一个SID(Service ID),通过行业标准协议,相关信息可以由主要的机械厂、供应商和4S商店等阅读或写。或执行其他功能,例如刷刷,例如,在生命中,4S店员会通过诊断阅读汽车故障代码,软件版本信息,以及其他辅助的汽车修理。

      本系列首先介绍了UDS的概况,然后介绍了它的网络层实现,最后介绍了Em、Dcm和FiM模块实现的逻辑和代码调用关系。

      2.UDS通信

      UDS在Autosar中的通信链路为:CanDrv<—>CanIf<—>CanTp<—>PduR<—>DCM,在后续系列中会进一步介绍链路之间的调用关系,大家先对此有个大概印象即可。
      在这里插入图片描述

      在使用中,UDS诊断是基于问答形式实现,其中请求端发送诊断请求,ECU端进行响应,如下图,响应类型可进一步区分为肯定响应与否定响应。
      在这里插入图片描述
      不同的服务类型有三个类型的诊断请求格式:
      格式1:[SID] + [Sub-Function]
      格式2:[SID]+[DID]
      格式3:[SID] + [Sub-Function] + [DID]

      相应的正响应类型:
      格式1:[SID + 40] + [Sub-Function]
      格式2:[SID+40]+[DID]
      格式3:[SID + 40] + [Sub-Function] + [DID]

      负响应:[0x7F] + [SID] + [NRC]
      否定响应格式为一种,其中NRC(Negative Response Code)

      3.介绍UDS服务

      3.1服务概览

      在这里插入图片描述

      3.介绍六种共同服务

      使用Web图,人认为总结非常好(如果有违背,请与作者联系删除)总结UDS常用的命令,每个人都可以保存它,所有都可以重复一遍。
      在这里插入图片描述

      10 诊断会话控制

      为谈话服务提供10个服务,可以进行不同的诊断对话,不同的会议有不同的权力,在ECU上电时,进入的是默认会话(Default),默认会话权限最小,业务服务很少;扩展模式通常用于解锁高度限制的诊断服务,例如,写数据/参数,读/写诊断代码;调试模式解锁启动器相关诊断服务,即程序烧录。
      在这里插入图片描述
      标准规定了10的三个子函数,它们是:
      01默认的默认会议,
      02 Programming编程会话,
      03扩大会议,
      此外,整个工厂和供应商可提供自定义的对话范围,例如供应商可以在1060到107E之间开发自己的对话服务。
      在这里插入图片描述
      在10个服务使用中,如果响应是负的,则分析了相应的负 NRC 代码:
      在这里插入图片描述

      27 安全访问

      许多ECU的数据是整个工厂独一无二的,从保密性角度考虑,ECU上电之后是一个锁定的状态(Locked),读一些特殊数据时,首先,需要一个安全的解锁。我们已经交了27美元的服务,加上一个子服务,再加上一个钥匙,这些服务请求可以解锁。

      如下文所示,2n-1是一个次级服务,其安全访问过程如下:

      First Step:Tester端向ECU端发送首轮种子的请求,首轮ECU会返回67+2n-1+AA+BB+CC+DD,其中AA~DD就是种子,Tester端会利用种子进行运算计算得到k1;

      Second Step:Tester端向ECU端发送请求,27+2n+[k1]。ECU同样也会通过种子算出k2。当k1和k2相等时,则解锁(Unlocked),安全访问成功。
      在这里插入图片描述
      下面的表显示在UDS规范中请求种子和发送秘密密钥的相应子服务:
      在这里插入图片描述
      如果答案是负,则对相应的负 NRC 代码进行分析:
      在这里插入图片描述

      通过DID阅读数据

      22 该 服务 以 下列 格式 收到 有关 的 数据 :
      在这里插入图片描述
      如果答案是负,则对相应的负 NRC 代码进行分析:
      在这里插入图片描述

      2E通过DID编写数据

      与读DID相反的一个服务为2E,该服务可以对DID信息进行修改,其数据发送的格式如下图:
      在这里插入图片描述
      如果答案是负,则对相应的负 NRC 代码进行分析:
      在这里插入图片描述

      19阅读TC资讯服务

      DTC(Diagnositc Trouble Code)是UDS诊断的一个重要部分。在ECU操作过程中,如检测故障、检测汽车三功能催化剂老化等,将记录相应的故障代码,不同的故障代码决定引擎故障灯是否需要点在仪表板上,取决于故障的严重程度和损坏程度。在ISO15031中,DTC故障代码格式定义如下:
      在这里插入图片描述
      在P0A9B中,DTC代码对应的状态为02,以分析DTC的八个状态比特分别代表的含义:
      在这里插入图片描述
      在ISO 14229中定义了28个Sub-Function,大家可以参考协议进一步学习,篇幅问题在这就不进一步介绍。
      几个常见的子函数:
      19 02 : 通过编码DTC状态获取DTC状态
      19 0A:所有支持的DTC的状况

      如果答案是负,则对相应的负 NRC 代码进行分析:在这里插入图片描述

      14清晰的DTC诊断信息服务

      与阅读DTC相比,一个服务是清算DTC,14个服务可以改变DTC的状态。在DTC州有八个职位,除4位和6位外,它们将是零。包括当前失败(TestFailed)和历史失败(ConfirmedDTC)。bit4和bit6testNotCompleted的启动都是强制性的。

      如果您发送14 FF FF FF,请清除所有DTC:
      在这里插入图片描述
      它也可以由不同的小组进行,小组的划分在14229中定义:
      在这里插入图片描述
      如果答案是负,则对相应的负 NRC 代码进行分析:在这里插入图片描述
      最后的声明:为了更多视觉表达UDS相关内容,请向Vector借更多的图像,仅作为知识的汇总交换,如果侵犯者可以与作者联系删除。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/30962.html

          热门文章

          文章分类