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

article/2025/10/28 22:53:19

诊断协议那些事儿

本文为诊断协议那些事儿专栏首篇文章,旨在介绍诊断的起源、发展历史,让读者对诊断有一个基本的认识,明确UDS到底是什么。

关联文章:
UDS的应用场景
UDS的OSI模型
UDS服务列表


文章目录

  • 诊断协议那些事儿
  • 一、诊断的起源
  • 二、UDS是什么?
    • 1.诊断D(诊断通信协议)
      • 1.1 为什么汽车需要诊断?
      • 1.2 诊断的基本原理
      • 1.3 诊断的应用领域
      • 1.4 诊断实现模型
    • 2.服务S(诊断服务)
      • 2.1 ISO15031
      • 2.2 ISO14230
      • 2.3 ISO14229
    • 3.统一U(可以基于任意总线)
  • 总结


一、诊断的起源

诊断的概念来源于医学,当我们人出现头晕、发烧、呕吐、骨折等不适症状时,去医院就诊,医生会通过询问(什么时候、吃了什么东西或者闻到什么等)、观察,甚至仪器(CT、血检等)检测,最终对病症做出判断,并给出合理建议的过程。这个过程就是一个医学上的诊断服务过程。

车辆诊断的过程也有类似的地方,“车生病了,车主也需要去给其看病”,外部诊断设备,通过通信媒介(CAN、LIN、以太网等)连接车辆,获取车辆状态信息,为了能够快速准确的判断车辆或者某个控制器的故障以及故障原因,从而在不拆解整车的情况下为维修提供可靠的依据。
1
诊断是确定、检查和分类系统的症状,目的是获得整体情况。

二、UDS是什么?

Unified Diagnostic Services统一 诊断 服务,简称UDS,是在汽车电子环境下的一种诊断通信协议!
形象理解-就是通过一套标准的服务,对当前汽车进行数据操作。
UDS

1.诊断D(诊断通信协议)

1.1 为什么汽车需要诊断?

随着电子技术与汽车技术相结合,电子技术的不断发展,驾驶员对于车辆不再仅仅满足于代步功能的需求,迫切要求提高车辆的动力性、舒适性、经济性和安全性。因此ECU数量不断增加,由最初的几个到现在上百个。数量的不断增加虽满足了驾驶员的新需求,但给车辆售后维修带来了极大的挑战,难以判定故障类型的问题。从20世纪80年代起,美欧等地汽车制造商开始在电喷系统上装备车载自诊断模块(On-Board Diagnostics Module),便于快速界定车身发生故障部位,方便售后维修(现代车载诊断功能不仅仅局限于此)。
vector
①汽车网络复杂性的增加
②汽车ECU的增加
③控制策略复杂性的增加
④诊断策略的增加——电子控制系统的安全容错处理(汽车不能因为ECU自身的突发故障导致汽车失控和不能运行)
⑤法规和标准(如:功能安全ISO26262)
⑥排放标准
⑦质量控制
⑧召回风险管控

1.2 诊断的基本原理

自诊断模块能在汽车运行过程中实时监测电控系统及其电路元件的工作状况,如有异常,根据特定的算法判断出具体的故障,并以诊断故障代码(DTC,Diagnostic Trouble Codes)的形式存储在汽车电脑芯片内。可以为车辆的维修和保养提供帮助,维修人员可以利用汽车原厂专用仪器读取故障码,从而可以对故障进行快速定位,故障排除后,采用专用仪器清除故障码。

OBD的工作原理(参考):汽车在正常运行时,汽车的电子控制系统输入和输出的信号(电压或电流)会在一定的范围内有一定规律地变化;当电子控制系统电路的信号出现异常且超出了正常的变化范围,并且这一异常现象在一定时间(几 个连续行程)内不会消失,ECU 则判断为这一部分出现故障,故障显示灯点亮,同时监测器把这一故障以代码的形式存入存储设备中,被存储的故障代码在检修时可以通过故障显示灯或 OBDⅡ诊断仪来读取。如果故障不再存在,监控器在连续 3 次未接收到相关信号后,将指令故障显示灯熄灭。故障显示灯熄灭后,发动机暖机循环约 40 次,则故障代码会自动从存储器中被清除掉。

1.3 诊断的应用领域

广泛应用于开发、生产、售后等各个领域。
dev
结合ISO14229诊断服务看,车辆诊断的作用涉及故障检测(DTC)、程序升级、EOL下线检测(车型配置、IO控制)、读取软硬件版本号/VIN等。

1.4 诊断实现模型

车辆的诊断需要有Tester端和ECU端,Tester端和ECU端通过一问一答的形式进行通信,因而Tester端和ECU端都需要遵循同样的通信协议。常用的诊断协议有ISO 14230,ISO 15031,ISO 15765,还有我们熟悉的ISO 14229就是UDS协议,在协议里面定义了各个服务的请求、响应的报文格式,以及ECU怎样处理诊断请求报文。
protocol

2.服务S(诊断服务)

诊断通信机制:基于C/S架构的请求/响应机制
Client客户端:诊断请求的提出者——Tester(诊断仪)
Sever服务器:诊断响应的提供者——ECU(电子控制单元)
service
诊断报文:不同于常规的总线周期性应用程序报文或网络管理NM报文,诊断报文是典型的事件触发型报文,有请求时才会响应。

各个协议规定了不同的服务,不同的诊断服务代表着不同的功能,具体如下:

2.1 ISO15031

服务描述
01Request current powertrain diagnostic data 请求当前动力总成诊断数据
02Request current powertrain diagnostic data 请求当前动力总成诊断数据
03Request emission-related diagnostic trouble codes 请求与排放相关的诊断故障代码
04Clear/Reset emission-related diagnostic information 清除/重置排放相关诊断信息
05Request oxygen sensor monitoring test results 请求氧气传感器监测测试结果
06Request on-board monitoring test results for specific monitored systems 请求特定监控系统的车载监控测试结果
07Request emission-related diagnostic trouble codes detected during current or last completed driving cycle 请求在当前或上次完成的驾驶循环中检测到的与排放相关的诊断故障代码
08Request control of on-board system, test, or component 请求控制车载系统、测试或组件
09Request vehicle information 请求车辆信息
0ARequest emission-related diagnostic trouble codes with permanent status 请求具有永久状态的与排放相关的诊断故障代码

2.2 ISO14230

kwp2000

2.3 ISO14229

UDS
详情请查阅:UDS诊断服务列表

3.统一U(可以基于任意总线)

①OBD:On-Board Diagnostics
第一代OBD(OBD-I)
i.加州环保局(CARB)1985年立法,1988年开始实施
ii.要求对硬件失效(包括氧传感器、废气在循环阀、供油系统和发动机系统)实施监控
iii.没有统一的故障码和通讯协议标准

第二代OBD(OBD-II)
建立了标准化故障码通讯协议标准

②ISO 14230:Keyword Protocol 2000(KWP2000)
该协议实现了一套完整的车载诊断服务,并且满足 E-OBD(European On Board Diagnose)标准。最初使用K-Line串行传输,最大通信速率10.4Kbps。由于 K 线物理层和数据链路层在网络管理和通讯速率上的局限性,使得 K 线无法满足日趋复杂的车载诊断网络的需求。而 CAN网络(Controller Area Network)由于其非破坏性的网络仲裁机制、较高的通讯速率(可达 1M bps)和灵活可靠的通讯方式被广泛使用,发展为基于CAN总线的KWP2000(ISO 15765)。

③ISO 15765 Diagnostic On CAN
基于CAN总线传输,最大速率达1Mbps

④ISO 15031 On-Board Diagnostic(OBD)
与排放相关的诊断通信,是由法规要求,具有强制标准需要参照的,最初目的是环保(同时方便售后维修)。

⑤ISO 14229-1:Unified Diagnostic Services
定义了诊断服务,只是一个应用层协议,不涉及网络,可以基于任意总线。
与OBD最大的区别就在Unified(统一)上,它是面向整车所有ECU的,而OBD是面向排放系统ECU的。

因为全球有许多OEM,假如每家OEM都定义自己的诊断通信标准,则会造成社会资源不必要浪费(Supplier要根据不同OEM搭建功能实现平台)。因此定义统一的诊断协议,让大家都遵守,避免浪费社会资源,这也是ISO组织定义车载诊断行业标准的目的(ISO 14229、ISO 15765、ISO 14230、ISO 15031等),实现了模块化诊断,Tester诊断设备只要发送同样的命令就可以得到ECU的数据,而不关心底层的数据链路层和物理层是怎么实现的。在协议中定义诊断通信的准则:诊断请求、诊断响应的规则; 诊断服务类型;ECU处理诊断请求的规则、诊断请求和诊断响应的内容;诊断通信的参数,数据传输的准则等等。


总结

以上就是今天要讲的内容,本文仅仅简单介绍了UDS的起源和发展,还有许多值得去挖掘和研究的内容,后续小编会不断介绍ISO协议,以此来加深对诊断的理解。


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

相关文章

(转发)详解汽车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)是一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。八叉树是四叉树在三维空间上的扩…

【PCL自学:ocTree】八叉树(octree)的原理及应用案例(点云压缩,搜索,空间变化)

PCL中八叉树(octree)的原理及应用案例 一、什么是八叉树ocTree?1.八叉树原理 二、八叉树应用案例1.点云压缩2.用八叉树进行空间划分和搜索操作3.无序点云数据的空间变化检测 一、什么是八叉树ocTree? 1.八叉树原理 上世纪80年代&…

十进制小数化为二进制小数的方法是什么_十进制转成二进制的两种方式

第一种:用2整除的方式。 用2整除十进制整数,得到一个商和余数;再用2去除商,又会得到一个商和余数,如此重复,直到商为小于1时为止,然后把先得到余数作为二进制数的低位有效位,后得到的…