UDS应用层协议解析(史上最全)

article/2025/10/28 13:29:00
  • UDS应用层协议解析
    • UDS应用层协议解读(下)
      • 诊断服务分类
        • 基础服务类
          • 0x10
            • 诊断会话模式
              • 任何会话模式切换至默认会话模式时,非默认会话模式下设置的状态需要reset(28服务、85服务设置的状态需要恢复至默认状态,27服务解锁状态需重新锁定)
              • 任何会话模式之间的迁移(包括扩展模式迁移至扩展模式),27服务解锁状态需重新锁定
            • request消息格式
            • response消息格式
            • 肯定响应码和否定响应码
          • 0x11
            • ECUReset
              • 主要作用是通过外部诊断请求进行ECU复位
              • 复位模式
                • 0x01
                  • 硬件复位
                • 0x02
                  • 按键复位
                • 0x03
                  • 软件复位
                • 0x04
                  • 启用电源关机
                • 0x05
                  • 禁用电源关机
              • 服务实装规则
                • ECU收到诊断仪发送的ECU Reset请求时,先返回肯定响应码,再执行Reset动作
                • ECU执行Reset动作后,会话模式迁移至默认会话模式
                • 28服务、85服务设置的状态需要恢复至默认状态,27服务解锁状态需重新锁定
          • 0x27
            • SecurityAccess
              • 解锁ECU安全等级时的交互流程
              • 安全解锁状态机
              • 安全访问failure counter和delay timer更新策略
                • 如果ECU在关机之前failure counter不等于0,接下来开机的时候将failure counter清零,以此同时,delay timer开始计时,10s内拒绝任何安全解锁请求;如果ECU在关机之前failure counter等于0,接下来开机的时候不进行delay timer计时,ECU可以立即响应新的安全解锁请求;如果ECU已经解锁成功了 返回肯定响应码了,接下来Tester再次向ECU发送相同等级的安全解锁请求,ECU返回固定的seed 00;ECU在已经解锁的情况下收到send key请求,通过返回NRC24告诉对方,自己已经成功解锁过。
              • 应用场景
                • SID Security Check
                  • 服务在执行时需要首先解锁安全等级
                    • 0x2E
                    • 0x34
                    • 0x36
                    • 0x37
                • Sub-function Security Check
                  • 在执行时需要解锁安全等级
                    • 0x10
                • RID Security Check
                  • 在执行时需要解锁安全等级
                    • 0x31
          • 0x3E
            • TesterPresent
              • 主要作用
                • Tester通过该服务使ECU保持在当前会话模式
                • 请求消息特点:通常为功能寻址、周期性请求
                • ECU收到该请求时,Restart S3 sever timer
                • 通常是带肯定响应抑制位的,不需要ECU反馈postive response
        • 数据交互类
          • 0x22
            • ReadDataByIdentifier
          • 0x2E
            • WriteDataByIdentifier
          • DID属性分类
            • ECU基本信息类:软/硬件版本号、序列号、装配日期、零部件号等
            • ECU运行动态信息类:电源电压、电机转速、电机电流、方向盘角度、方向盘扭矩等
            • .ECU配置信息:工作模式(sport/comfort/snow/4WD)、ECU当前机型是否配置等
          • Implement rules
            • 0x22服务Tester可以同时读取多个DID(不同OEM式样定义不一样)
            • 0x2E服务Tester同时只能写一个DID
            • 0x2E服务需要安全等级解锁后才支持
        • 故障交互类
          • 0x14
            • ClearDiagnosticInformation
              • DTC group
                • P类
                • C类
                • B类
                • U类
              • Implement rules
                • ECU 需在发送肯定响应前清除 DTC。如果 ECU 支持存储 DTC 的多个备份(例如:分别存在 RAM和 EEPROM中),其应将所存储的 DTC 信息全部清除
                • 在执行完“清除诊断信息”后,如果接收到读取故障信息的请求, ECU 不允许返回任何 DTC
                • 当接收到此诊断请求后,即使未存储有 DTC, ECU 也需返回肯定响应
                • 此服务不允许依赖于其它的服务,即使故障存储器不可读, ECU 也应该清除故障信息
                • 清除诊断信息的方式:接收到诊断工具发送的清除诊断信息(14h)服务清除或故障满足自动恢复条件
          • 0x19
            • ReadDTCInformation
              • sub-function definition
                • 0x01
                  • ReportNumberOfDTCByStatusMask
                • 0x02
                  • reportDTCByStatusMask
                • 0x04
                  • reportDTCSnapshotRecordByDTCNumber
                • 0x06
                  • reportDTCExtDataRecordByDTCNumber
                • 0x0A
                  • reportSupportedDTC
            • DTC
              • 3字节DTC码
              • DTC状态
                • DTC状态是一个字节数据,一共有8bit,每个bit有特殊的含义,每个bit置0、置1的逻辑也不一样
              • 快照数据
              • 扩展数据
          • 0x85
            • ControlDTCSetting
              • 主要作用
                • 控制DTC的状态更新,保存动作的开启和停止
              • 实装规则
                • 当发生以下情况时,ECU 中故障码的设置功能应重新开启
                  • 接收到控制模式为1(开启)的 ControlDTCSetting 请求报文(禁止肯定响应位有效时)或成功发送了肯定响应(禁止肯定响应位无效时)
                  • ECU 复位
                  • 诊断会话从非默认诊断会话变为默认诊断会话
                • ReadDTCInformation服务和ClearDiagnosticInformation 服务(14h)应不受此服务影响
        • 软件升级类
          • 0x28
            • 软件升级相关的
            • 应用背景
              • ECU软件升级的时候,进行总线负荷的控制,把一些非诊断报文的通信给停止掉,这样一来,总线就能完全的空闲下来,接下来在软件进行升级的时候,总线基本上就可以空闲下来给诊断报文使用,这样升级的时间才可能尽可能短
            • 网络管理
              • 网络管理节点
              • 非网络管理节点
            • 实装规则
              • 以下任一情况发生时, ECU 将返回默认状态(正常发送、接收所有报文)
                • 接收到使能收发的通信控制指令
                • ECU 硬件或者软件复位
                • 由于任何原因, ECU 由非默认会话模式切换到默认会话模式
          • 0x31
            • 例程控制
              • sub-function
                • start
                  • 01
                • stop
                  • 02
                • requestResults
                  • 03
              • routine
                • 0203
                  • 检查进入编程模式前提条件是否满足
                • 0202
                  • 对下载完成数据进行一致性校验(CRC32)
                • FF00
                  • 擦除例程(擦除code flash中升级部分的代码)
                • FF01
                  • 下载完成后软硬件兼容性校验
                • XXXX
                  • 进行方向盘舵角中点标定(4S:四轮定位)
            • 例程是指单独地请求ECU干一件事情,这件事情不是在ECU的正常运行过程中执行的
          • 0x34
            • RoutineControl
          • 0x36
            • TransferData
          • 0x37
            • RequestTransferExit
    • 关于Autosar中DCM(14229UDS)模块
      • UDS统一诊断服务
        • 在线诊断(OBD)
          • 一般用于传统燃油车中与排放相关的诊断
        • 离线诊断
          • 非排放相关的
            • DTC:诊断故障代码,其意思就是通过一个代码 代表一个故障
            • 快照/冻结帧:指发生故障时刻的一些便于排查故障的信息
            • 扩展信息:这个是指除快照之外,与故障相关的一些信息,例如故障的发生次数、老化次数等等
      • IOS14229
        • 10服务
          • 为了管理各个服务
        • 11服务
          • 复位服务,包括了子服务硬件复位 01 子服务KeyOfOn复位02 子服务软件服务03
        • 14服务
          • 清除故障服务,他可清除一个故障信息,也可以清除一组故障信息
        • 19服务
          • 查询故障信息
        • 22服务
          • 通过数据标识符的形式读取数据
        • 2E服务
          • 表示通过数据标识符写入数据
        • 23/3D服务
          • 23是通过地址读数据
          • 3D是通过地址写入数据,一般用的较少
        • 24/2A/2C/86服务
        • 27服务
          • 权限管理0
        • 28服务
          • 通信控制,包括对发送和接收消息的开关控制
        • 31服务
          • 例程控制
        • 2F服务
          • IO控制,主要用于对一些输入输出口的调试控制
        • 34/35/36/37服务
          • 和数据传输有关的服务,包括请求传输、请求下载、数据传输、数据上传、退出传输等,这些服务和BootLoader相关
        • 85服务
          • 用于控制故障的更新,包括开启和关闭故障更新

http://chatgpt.dhexx.cn/article/GCoTrjIB.shtml

相关文章

UDS协议入门之10服务

前言 ISO-14229中按各服务的功能将uds协议划分为六大类: Diagnostic and Communication Management (诊断和通信管理)Data Transmission (数据传输)Stored Data Transmission (存储数据传输,用…

UDS协议发展历史(UDS是什么?)

诊断协议那些事儿 本文为诊断协议那些事儿专栏首篇文章,旨在介绍诊断的起源、发展历史,让读者对诊断有一个基本的认识,明确UDS到底是什么。 关联文章: UDS的应用场景 UDS的OSI模型 UDS服务列表 文章目录 诊断协议那些事儿一、诊…

(转发)详解汽车UDS诊断协议(二)

一.概述 UDS定义的服务从逻辑上分为6类,在上一篇文章中已经对诊断和通信管理类”“数据传输类”“存储数据传输“进行了解读。本文将介绍余下3类UDS服务,即“IO控制服务”“例行程序服务”“上传与下载服务”。 二.诊断服务内容 O控制服务 1. InputO…

(转发)详解汽车UDS诊断协议(一)

一.概述 UDS(UnifiedDiagnostic Services,统一诊断服务,有时也称增强诊断)是ISO-14229定义的基于OSI模型中应用层的协议。其中,ISO 14229-1定义了诊断服务,但不涉及网络层及实现手段,只有应用层的内容&…

UDS协议(史上最全)

UDS协议 UDS应用层协议解读(上) ISO 15765-3主要包含以下内容 应用层时间参数 P2CAN_ClientP2*CAN_ClientP2CAN_ServerP2*CAN_ServerP3CAN_Client_PhysP3CAN_Client_Func会话层时间参数 S3Client 当ECU处于非默认会话模式时,test端会周期性地…

八叉树地图

点云地图不能用于导航,八叉树地图可以用于导航八叉树:从一个节点展开成八个子检点,整个空间从最大空间细分到最小空间的过程 octomap 八叉树建立的地图由很多小方块组成,分辨率较高的时候,方块很小;分辨率…

八叉树(Octree)

转自:http://www.cnblogs.com/21207-iHome/p/7098000.html 八叉树(Octree)是一种用于描述三维空间的树状数据结构。想象一个立方体,我们最少可以切成多少个相同等分的小立方体?答案就是8个。再想象我们有一个房间&…

八叉树及应用

八叉树及应用 八叉树的定义如何搭建一颗八叉树八叉树的作用八叉树的实际应用 上一次介绍了KD树及应用,这次介绍一下八叉树,主要从定义、结构、作用及应用几个方面进行理解。 八叉树的定义 八叉树是在描述三维空间坐标场景中常用的一种数据结构。如下图所…

八叉树场景管理

目录 什么是八叉树(八叉树的数据结构)八叉树的图例八叉树的实现算法八叉树的场景管理器代码实现八叉树的应用场景 1.什么是八叉树——八叉树的数据结构 八叉树是一个树形结构,它的特点就是每个节点正好拥有八个子节点。它的这个结构特点正好能把空间立方体平均分成对…

基于八叉树的空间划分及搜索操作

基于八叉树的空间划分及搜索操作 原理CodeCmakeList.txtCPP体素 近邻 搜索K 近邻 搜索半径内 近邻 搜索 Result 原理 建立空间索引在点云数据处理中有着广泛的应用,常见的空间索引一般 是自顶而下逐级划分空间的各种空间索引结构。 比较有代表性的包括 BSP树KD树K…

基于C++的八叉树颜色删减实验

基于八叉树颜色删减实验 一、实验目的及要求 实现真彩色到256色的颜色转换算法 提供的代码: main.cpp :提供了主控函数main ,八叉树类octTree 和八叉树节点结构octNode 。 代码的编译: 由于需要使用bmp的信息头和文件头结构…

八叉树 java_图像八叉树量化讲解 Java版本

这篇文章主要讲解八叉树算法的原理,并用java进行实现 1.算法原理 八叉树最早是在1988年,由 M. Gervautz 和 W. Purgathofer 提出,该算法的最大优点是效率高,占用内存少。在图像量化中的思路是,图像rgb通道的值均为8比特…

详解八叉树地图

个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-102.html 八叉树地图 八叉树地图(OctoMap)就是一种灵活的、压缩的、又能随时更新的地图。八叉树示意图如下: 一个大立方体不断地均匀分成八块,直…

PCL可视化八叉树格网

1 原理 八叉树其实是一种特殊的由上至下的体素,其构造原理在这里不再进行赘述,详细的构造方式可参考博客:https://blog.csdn.net/qq_32867925/article/details/109094719 有时候为了将点云、构造的层次八叉树需要进行可视化,便于…

松散八叉树

1八叉树简述 1.1定义1.2数据1.3树的建立 1.3.1计算包围体的大小与中心点1.3.2判断物体所属的包围盒2松散八叉树 2.1松散八叉树的建立 八叉树简述 定义 八叉树是一种对三维世界进行场景管理的理想的空间数据结构。八叉树中根节点包含一个立方体包围盒。每个非叶子节点都拥有八…

八叉树学习

八叉树学习 八叉树结构八叉树的存储结构1. 规则八叉树:2.线性八叉树:3.一对八式八叉树 参考网站 八叉树结构 八叉树结构是由 Hunter 博士于1978年首次提出的一种数据模型。八叉树结构通过对三维空间的几何实体进行体元剖分,每个体元具有相同…

PCL中的八叉树

目录 (1)什么是八叉树 (2)PCL中八叉树的体素形成和PCL中基于八叉树的点云压缩 (3)基于八叉树的k邻域搜索、半径搜索和体素近邻搜索 (4)基于八叉树和基于 kd-tree 的k邻域搜索、半…

八叉树 java_java简单实现八叉树图像处理代码示例

一晃工作有段时间了,第一次写博客,有点不知道怎么写,大家将就着看吧,说的有什么不正确的也请大家指正。 最近工作中用到了一个图像压缩的功能。找了一些工具,没有太好的选择。最后选了一个叫jdeli的,奈何效…

八叉树

http://hi.baidu.com/onlywater/blog/item/905c5e162ed18f4021a4e9c1.html 一、八叉树基本原理: 用八叉树来表示三维形体,并研究这种表示下的各种操作以及应用,是进入80年代后开展起来的。这种方法,既可以看成是四叉树方法在三维…

Octree(八叉树)

1. 算法原理 八叉树(Octree)是一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。八叉树是四叉树在三维空间上的扩…