• 267查看
  • 0回复

[系统功能] 什么是 UDS?为什么要用?帧格式?

[复制链接]


该用户从未签到

发表于 11-5-2024 20:36:00 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


本文是 UDS 协议系列的第一部分,对统一诊断服务协议进行了讨论。本系列的目的是提供任何人都可以理解的简单实用示例。这是 UDS 协议简介 (统一诊断服务) – UDS 协议教程第 1 部分。

什么是 UDS 协议

纵观汽车嵌入式系统的世界,可以看到奥迪、捷豹、宝马、奔驰等各种汽车制造商的繁华景象,每家制造商都采用独特的架构和软件来实现他们的ECU。单一汽车品牌应该完全与自己的ECU保持一致的日子已经一去不复返了。
如今,合作扩展到从各种制造商采购ECU。这种动态的相互作用需要一种灵活的测试人员沟通方法,因为统一的语言无法满足每个汽车品牌独特的沟通需求。
输入解决方案:标准化协议。这种诊断通信协议被称为统一诊断服务 (UDS) ,可协调全球汽车电子领域的ECU诊断。
体验 UDS 的无缝衔接,因为它弥合了制造商之间的差距,并开创了汽车诊断的新时代。
“统一”一词意味着它是一个通用标准,而不是特定的公司标准,因此所有ECU制造商 (OEM) 的服务和功能都是相同的。“诊断”一词意味着它是一种识别车辆任何类型疾病 (故障) 的技术。它还允许我们重新编程和校准传感器。

什么是 UDS?为什么要用?帧格式?w1.jpg

‍‍测试仪与ECU通信,每辆车都有OBD (车载诊断) 接口端口。借助OBD接口电缆,我们可以与汽车连接,并且可以读取故障代码或重新编程或校准传感器。

为什么要对车辆进行诊断

在当今的现代车辆中,有 100 多个微型控制单元可以处理不同的任务,例如管理电池、控制变速箱、处理制动,甚至照顾娱乐系统。但是当出现问题时,就像一个人生病一样。

就像一个人去看医生找出问题并找到解决方案一样,车辆也需要弄清楚它的问题。它通过使用称为“故障代码”或“诊断故障代码  (DTC) ”的东西来实现此目的。此代码告诉我们车辆出了什么问题。
为了帮助解决这个问题,有一种特殊的与控制单元通信的方式,称为统一诊断服务 (UDS) 协议。这就像车辆问控制单元,“嘿,发生了什么事?控制单元会给出一个答案,帮助我们理解问题。
我们使用一种特殊的工具与控制单元进行通信。此工具连接到控制单元并获取故障代码。这有点像我们和车辆之间的翻译。这种通信可以使用不同的方式进行,例如通过 CAN、LIN 或 K 线方法。
因此,就像人们需要与医生交谈以找出问题所在一样,车辆使用UDS协议和工具与他们的控制单元交谈,并在出现问题时找出发生了什么。
通信协议指的是它用于在两个微控制器之间进行通信,或在控制器和计算机之间进行通信以传输数据。在汽车电子领域,我们有 ECU (电子控制单元) 。这些诊断协议用于识别ECU中的故障。

诊断方案标准的演变

在引入 UDS 之前,有许多诊断协议,例如 KWP2000、K-Line 诊断和 ISO-15765。汽车原始设备制造商和供应商已同意将统一诊断服务 (UDS) 作为标准协议,以确保国际兼容性。
此诊断协议在 ISO-14229标准中定义,该协议基于开放系统互连  (OSI)  模型,它使用 OSI 模型的第五级 (会话层) 和第七层 (应用层) 。

可用的 ISO-14229 标准

通用 UDS 协议在 ISO-14229 的某些子标准中定义。此外,标准 ISO-14229 由以下部分组成,1. ISO 14229-1:UDS协议的规范和要求2. ISO 14229-2:UDS 协议的会话层服务3. ISO 14229-3:CAN实施上的统一诊断服务 (UDSonCAN) 4. ISO 14229-4:FlexRay实施 (UDSonFR) 上的统一诊断服务5. ISO 14229-5:互联网协议实施  (UDSonIP)  上的统一诊断服务6. ISO 14229-6:K-Line 实施  (UDSonK-Line)  上的统一诊断服务7. ISO 14229-7:本地互连网络实施  (UDSonLIN)  上的统一诊断服务8. ISO 14229-8:UDSon上的统一诊断服务

什么是 UDS?为什么要用?帧格式?w2.jpg

协议 ISO-14229标准 1

UDS 协议帧格式

UDS是一种基于客户端-服务端架构的基于请求和响应的协议,具有唯一的服务ID (SID) 。SID 是一个字节的大小,范围从 0x00 到 0x3E。基本上有 4 种类型的帧格式,1. 具有子功能 ID 的请求帧2. 没有子功能 ID 的请求帧3. 肯定响应帧4. 否定响应帧
在详细了解帧格式之前,最好先了解什么是服务 ID 和子功能。

服务 ID

它是一个 1 字节的标识符,它表示 ISO-14229 中定义的服务。服务端  (ECU)  看到此标识符,并根据此标识符执行操作。例如,服务 ID:0x11-这是 ECU 重置。

子功能

它是服务 ID 的一部分,并且是可选字段。在 ECU 复位服务 ID  (0x11)  下,有 3 个子功能 ID。
1. 硬复位 (0x01) 2. 复位时键控 (0x02) 3. 软复位 (0x03)

请求帧格式

使用子功能 ID 的请求请求帧用于将请求从客户端 (测试器工具) 发送到服务端 (ECU) 。
服务 ID  (SID)子功能 ID数据参数

没有子功能 ID 的请求
服务 ID  (SID) 数据参数


响应帧格式

肯定响应帧
在UDS诊断中,测试仪充当客户端,ECU充当服务端。当服务端 (ECU) 收到来自测试仪的服务请求时,服务端会检查该消息。如果一切正常,则执行请求的服务并以肯定的响应响应客户端。如果响应为正,则 SID 的第 6 位应为 1。
例如:服务 ID – 0x31 => 0 0 1 1 0 0 0 1对于正响应,0 1 1 1 0 0 0 1 等于 0x71  (0x31 + 0x40) 。换句话说,我们可以说肯定响应意味着 SID+ 0x40,这没有逻辑上的原因。简单地说,它是在国际标准IS0-14229-1中定义的。
服务 ID  (SID)  +            0x40   子功能 ID 数据响应代码

具有子功能 ID 的肯定响应
服务 ID  (SID)  + 0x40  数据响应代码

否定响应帧
在UDS诊断中,测试仪充当客户端,ECU充当服务端。当服务端 (ECU) 收到来自测试仪的服务请求时,ECU会检查该消息。如果服务端发现错误,则执行否定响应并发送否定响应代码 (NRC) 。下面给出了一些否定响应代码。
1. 一般拒绝 – 0x102. 不支持子功能 – 0x123. 不正确的消息长度  (IML) – 0x134. 繁忙的重复请求 – 0x215. 条件不正确 – 0x226. 请求序列错误 – 0x247. 请求超出范围  (ROOR) – 0x318. 安全访问被拒绝 – 0x339. 无效的密钥 – 0x35
           0x7F   服务 ID 否定响应代码


UDS协议寻址方法

要修复、读取、写入或刷新新软件,测试人员需要将测试工具连接到ECU。如果我们想将ECU连接到系统,我们需要分配地址。有 2 种类型的寻址方法。1. 物理寻址2. 函数寻址

物理寻址

在物理寻址模式下,如果测试人员知道是哪个ECU导致了问题,则测试人员可以将测试工具直接连接到该特定ECU并获取故障代码 (DTC) 。为此,每个ECU都应该有自己的ECU标识号。因此,测试仪与ECU连接并发送请求并从ECU获得响应。此方法称为物理寻址方法。

函数寻址

在现代汽车中,许多ECU都基于不同的OEM可用。假设测试人员知道网络 (总线) 存在故障,但他无法找到导致网络中ECU的确切故障。现在,测试仪需要获取网络中所有ECU的故障代码 (DTC) 。
在车辆中,将有一个全局ECU标识符,该标识符将在所有CAN接收器中实现。因此,ECU可以接收请求并向测试人员做出响应。此方法称为函数寻址方法。在下一个教程中,我们将讨论功能组诊断和通信管理。

未完待续。。。

UDS 基础知识完整系列,可在 "搞一下汽车电子平台" 观看限时免费~

完整目录

1. UDS 协议简介 (统一诊断服务)     1.1. 什么是UDS协议?     1.2. 为什么我们需要对车辆进行诊断?     1.3. 通信协议和诊断协议之间的区别     1.4. 诊断方案标准的演变     1.5. 可用的 ISO-14229 标准     1.6. UDS 协议帧格式          1.6.1. 服务 ID          1.6.2. 子功能          1.6.3. 请求帧格式          1.6.4. 响应帧格式     1.7. UDS协议寻址方法          1.7.1. 物理寻址          1.7.2. 函数寻址2. 诊断和通信管理功能组     2.1. UDS功能单元     2.2. 诊断和通信管理          2.2.1. 诊断会话控制          2.2.2. ECU复位          2.2.3. 安全 Security 访问          2.2.4. 通信控制          2.2.5. 认证          2.2.6. 测试设备在线          2.2.7. 访问时序参数          2.2.8. 控制 DTC 设置          2.2.9. 事件响应          2.2.10. 链路控制3. UDS协议中的数据传输     3.1. 先决条件     3.2. UDS协议中的数据传输     3.3. 按标识符  (DID)  划分的数据     3.4. 按标识符读取数据  (RDBI)          3.4.1. 帧格式          3.4.2. 示例 – 单个 DID          3.4.3. 示例 – 多个 DID     3.5. 按地址读取内存          3.5.1. 帧格式          3.5.2. 例     3.6. 按标识符读取缩放数据          3.6.1. 什么是扩展数据?          3.6.2. 例     3.7. 按定期标识符读取数据     3.8. 动态定义数据标识符          3.8.1. 请求帧格式          3.8.2. 肯定响应帧格式     3.9. 按标识符写入数据  (WDBI)          3.9.1. 请求帧格式          3.9.2. 肯定响应帧格式          3.9.3. 例     3.10. 按地址写入内存4. 输入输出在 UDS 协议中放置控制     4.1. UDS协议中的输入输出控制     4.2. 帧格式     4.3. 例     4.4. 支持的否定响应5. 远程激活 UDS 协议中的常规控制     5.1. 远程激活常规控制     5.2. 日常控制服务     5.3. 例行功能单元 – 帧格式     5.4. 远程激活常规控制 – 示例     5.5. 支持的否定响应代码6. UDS协议中的上传下载功能单元     6.1. 上传 下载 UDS 协议中的功能单元          6.1.1. 在UDS协议中请求下载服务          6.1.2. 在UDS协议中请求上传          6.1.3. 传输数据服务          6.1.4. 请求转机退出服务          6.1.5. 请求文件传输服务


快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 11:15 , Processed in 0.199491 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.