UDS 诊断教程 (二)

article/2025/10/30 21:26:15

UDS 定义的诊断服务从逻辑来说分为以下几类:

1. Diagnostic and Communication Management (诊断和通信管理)

2. Data Transmission (数据传输)

3. Stored Data Transmission (存储数据传输,用于操作 DTC)

4. InputOutput Control (IO 控制)

5. Routine Control (不知如何翻译好,作用是调用 ECU 内部的预置函数)

6. Upload Download (上传下载)

UDS 规定使用 1 个 byte 来表示诊断服务,即所谓的 Service ID,简称 SID。本文介绍一下

Diagnostic and Communication Management 这一类诊断服务中的一部分。

DiagnosticSessionControl (0x10) 

DiagnosticSessionControl 这个服务的 SID 是 0x10,request 固定为 2 个 byte,第一个

byte 是 SID,第二个 byte 的低 7bit 是 sub-function,用于指示 ECU 将进入的 session。

UDS 定义的 session 包括:

0x00 ISOSAEReserved(保留)

0x01 defaultSession

0x02 ProgrammingSession

0x03 extendedDiagnosticSession

0x04 safetySystemDiagnosticSession

0x05 – 0x3F ISOSAEReserved(保留)

0x40 – 0x5F vehicleManufacturerSpecific(由整车厂自定义使用)

0x60 – 0x7E systemSupplierSpecific(由 ECU 供应商自定义使用)

0x7F ISOSAEReserved(保留)

DiagnosticSessionControl 用于控制 ECU 在不同的 session 之间进行转换,session 可以

看作是 ECU 所处的一种软件状态,在不同的 session 中诊断服务执行的权限不同。 ECU

上电之后,默认处在 defaultSession 中,在这个 session 中很多诊断服务不可以执行,很

多诊断相关的数据不能读取或写入。一般的诊断仪启动之后,会给 ECU 发送 10 03,即

让 ECU 进入 extendedDiagnosticSession 中,在这个 session 中可执行的诊断服务就很

多了。而如果要让 ECU 保持在 non-defaultSession 中,则需要诊断仪每隔固定的时间发

送 0x3E 服务,ECU 才会知道诊断仪有和自己通信的需求,从而保持在 non-

defaultSession 中。另一个常用的 session 是 ProgrammingSession,在这个 session 中

可以进行软件刷写的一系列诊断服务。0x40 – 0x5F 这个范围中的 session 由整车厂自定

义使用,比如,某些诊断服务或诊断数据的操作需要在生产线上执行,即所谓的 End-Of-

Line,整车厂可以从这个范围中选择一个值来表示 EOL session;又或者在开发阶段需要

某种“超级”session,则也可以从这里选一个值用来使 ECU 进入开发模式的 session。

DiagnosticSessionControl 这个服务非常简单,但是它却是 ECU 和诊断通信的第一条诊断

命令。 

这个诊断服务的 response 分为三部分,第一部分是 0x50,作为 SID 的 echo;第二部分

是进入的 session,作为 sub-function 的 echo;第三部分是 4 个字节,前两个字节代表

P2Server_max,即 ECU 在应用层上对诊断命令的响应时间,后两个字节代表

P2*Server_max

,即 ECU 在暂时无法处理当前诊断命令(具体表现为发送了 NRC 0X78),在应用层上

对诊断命令响应的最长时间。

ECUReset (0x11)

ECUReset 这条指令的用途是通过诊断请求使 ECU 重启。

ECUReset 这个服务的 SID 是 0x11,request 固定为 2 个 byte,第一个 byte 是 SID,第

二个 byte 的低 7bit 是 sub-function,用于指示 ECU 将模拟哪种方式进行重启。

常用的 sub-function 包括(只举 2 个例子,UDS 还定义了很多其他的值)

0x01 hardReset 模拟 KL30 的重启

0x02 keyOffOnReset 模拟 KL15 的重启

当我们通过诊断命令改写了 ECU 的某些数据,或者对 ECU 进行了某些设置,只有将

ECU 重启才能将这些配置生效,所以就有了这个诊断命令。在 ECUReset 执行之后,

ECU 会从 Non-defaultsession 回退到 defaultsession 中。

SecurityAccess (0x27)

厂家可能会为 ECU 定义某些安全级别稍微高一些的诊断服务,在执行此类服务之前,就

需要执行 SecurityAccess 这个诊断命令,进行一个简单的身份验证。

完成 SecurityAccess 有以下步骤:

1. 诊断仪向 ECU 请求“Seed”(通常是一个与时间相关的伪随机数),

2. ECU 向诊断仪发送“Seed”,

3. 诊断仪向 ECU 发送“Key” (根据请求得到的 Seed 和一个本地的密码进行计算得来)

4. ECU 判断诊断仪发来的“Key”是否有效

根据 UDS 的定义,0x03, 0x05, 0x07 – 0x41 这个范围留给用于 requestSeed 的 sub-

function;0x04, 0x06, 0x08 – 0x42 这个范围留给用于 sendKey 的 sub-function。具体选

择哪对值,由整车厂自己定义。整车厂也可以选择多对 sub-function,用于不同等级的安

全访问。

下面我举一个完成 SecurityAccess 的诊断命令的例子,假设 0x05 用于 requestSeed,

0x06 用于 sendKey。

诊断仪发送 27 05

ECU 响应 67 05 01 01 01(seed 是 01 01 01)

诊断仪发送 27 06 02 03 04(key 值是 02 03 04,seed 是 01 01 01,假设本地密码为 01

02 03,而算法就是将密码与 seed 相加)

ECU 验证成功 67 06

此时 ECU 就处于 unlocked 的状态了,那些被保护起来的诊断服务和诊断数据可以被操作

了。通常来说,如果 ECU 重启,或者回到了 default session,unlocked 状态就失效了,

如果要执行相关诊断服务,则需要再次执行上面描述的过程。

时间有限,这篇文章里就介绍这三个诊断服务,即 0x10, 0x11, 0x27 


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

相关文章

UDS诊断服务开发

解封后的环京地区还要办理通行出入证才能自由,据说在中国领土内需要出入证的有:香港、台湾、澳门以及河北三河~ 一、标准文件 ISO 14229 定义的是诊断服务。 ISO 15765 定义的是诊断服务在总线上的传输方式。 ISO 11898 定义的CAN总线在物理层面传输的…

UDS诊断随笔

This essay is just limited to personal learning,don’t judge somebody even you don’t know him/her. We always judge a book by its cover or a person from the outside Absolutely,Just fight all your natural instincts, and you’ll be grea…

UDS诊断测试

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。这种通信协议被用在几乎所有由OEM一级供应商所制造的新ECU上面。这些ECU控制车辆的各种功能,包括电控燃油喷射系统&#xff0…

UDS诊断概述

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Internet 和K-line&…

UDS诊断服务的会话层和寻址方式

文章目录 1 诊断服务的会话层和寻址方式 传送门 >> AutoSAR实战系列300讲「糖果Autosar」总目录 1 诊断服务的会话层和寻址方式 根据14229 uds诊断协议的要求,每个诊断服务只有处在合适的会话层才能起作用,并且不同的诊断服务支持不同的寻址模式…

UDS诊断

本文转载自:知乎用户——心机之花,网址:https://zhuanlan.zhihu.com/p/37310388,收藏转载仅供自己学习,如有侵权,请联系博主删除,谢谢。写在前面:UDS实践性强,逻辑复杂&a…

UDS诊断看这篇就够了,吐血整理

传送门 >> AutoSAR入门和实战系列总目录 1 简介与概述 不同诊断通信协议的开发,调整,实施和维护会给车辆制造商,系统供应商和ECU供应商带来不必要的成本。为了解决此问题,将不同的技术协议和数据通信原理编译为一个国际I…

UDS 诊断 详解

目录 1 UDS诊断的概念 2 Diagnostic request的格式 3 UDS 常用的诊断服务 4 UDS 诊断案例 1 UDS诊断的概念 UDS全称为Unified Diagnostic Services,统一的诊断服务。由ISO-14229系列标准定义。 诊断通信的过程从用户角度来看非常容易理解,诊断仪发送…

计算机网络学习 - UDS协议

文章目录 一、背景二、概述三、诊断原理四、UDS诊断服务五、DTC 一、背景 汽车故障诊断是利用ECU监测控制系统各组成部分的工作情况,发现故障后自动启动故障记录和处理逻辑。汽车故障诊断模块不仅能够存储记忆汽车故障,还能够实时提供汽车各种运行参数。…

UDS诊断详解

目录 一、诊断常见的协议: 二、OEM诊断规范 ISO14229 UDS定义的相关服务: SID的格式 ISO-14229常用服务 10服务(诊断会话的控制) 在UDS当中非常常用的表格: CAN总线示例 Recommended Session(s) for Service…

详解UDS CAN诊断:什么是UDS(ISO 14229)诊断?

目录 1、UDS诊断概念 2、UDS诊断组成部分 3、UDS诊断服务 之前讲解到CAN物理层和数据链路层的相关知识,这些属于ISO 11898-1、ISO 11898-2和ISO 11898-3协议方面的知识,本篇博文开启新篇章,讲解依托于CAN通信的应用层服务:UDS&…

UDS诊断基础知识简介-ISO14229

什么是UDS? UDS全称为Unified Diagnostic Services,统一的诊断服务。由ISO-14229系列标准定义。 诊断通信的过程从用户角度来看非常容易理解,诊断仪发送诊断请求(request),ECU给出诊断响应(response)&…

UDS常用诊断服务介绍

1、UDS诊断简介 UDS英文全称为Unified Diagnostic Services,既通用诊断协议。相对于传统的OBD诊断不仅具有车辆ECU诊断功能,同时兼具数据传输、数据读写、通信控制等功能。也就是说已经不是传统意义上的诊断服务,可以称之为增强型诊断协议。…

UDS诊断协议规范与要求

1.UDS简介 1.1标准介绍 国际标准ISO 14229,基于OSI基本模型实现。如下所示: 应用层(第7层),ISO 14229-1,ISO 14229-3 UDSonCAN,ISO 14229-4 UDSonFR,ISO 14229-5 UDSonIP&#xff…

UDS诊断入门

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是ISO 15765 和ISO 14229 定义的一种汽车通用诊断协议,位于OSI模型中的应用层,它可在不同的汽车总线(例如CAN, LIN, Flexray, Internet 和K-line&…

软件工程 第4版张海藩 pdf_2019年第4期软件工程造价师培训课程圆满结束

2019年2月20至22日,由北京软件造价评估技术创新联盟举办的2019年第4期(总第208期)软件工程造价师培训课程在北京圆满结束。 来自系统工程所、江苏国创新云、东软望海科技等公司的近20名学员参加培训。培训课上,培训老师系统讲解了国家标准和行业标准中规…

软件设计师考试-软件工程

1. 软件开发模型 瀑布模型 瀑布模型把软件开发分为三大阶段:定义阶段、开发阶段、维护阶段。 瀑布模型的最大缺点在于不能灵活应对变化的需求,瀑布模型适用于需求明确的情况。 软件测试完成后的工作产品,例如系统测试数据、系统测试结果、…

软考之软件工程

软件过程 软件成熟度模型(CMM) 软件过程改进的框架:过程改进基础设施、过程改进线路图、软件过程评估方法、软件过程改进计划。 每一次软件改进要精力4个步骤:评估、计划、改进和监控。 能力成熟度模型集成(CMMI&a…

广东二级造价工程师《造价管理》真题解析

2022年广东二级造价工程师考试结束之后,有些网友吐槽:说今年的二造考试出题有点偏,有点难。不过也有网友表示so easy~ 由于二造是机考,当场出分。现在只能期待今年及格线和以往一样。成绩不太理想的考生也不要紧,抓紧看…

软件 工程

目录 第十章、软件工程1、瀑布模型(SDLC)2、快速原型模型3、增量模型4、螺旋模型5、Ⅴ模型6、喷泉模型7、构建组装模型(CBSD)8、统一过程(RUP)9、敏捷开发方法10、信息系统开发方法11、需求开发12、结构化设…