首页 » 软件开发 » 汽车诊断及OBD和UDS协议的基础概念介绍(诊断协议汽车数据传输)

汽车诊断及OBD和UDS协议的基础概念介绍(诊断协议汽车数据传输)

雨夜梧桐 2024-07-23 21:29:29 0

扫一扫用手机浏览

文章目录 [+]

(注:图源搜狗百科)

1.汽车诊断

在过去的几十年里,汽车诊断系统经历了巨大的变革和发展。
起初,汽车诊断主要依靠人工检测和经验判断来发现问题。
随着科技的进步,电子系统在汽车中的应用越来越广泛,汽车诊断也逐渐走向了自动化和数字化。
从最初的简单故障指示灯到现在的复杂电子控制单元(ECU)和诊断协议的应用,汽车诊断技术已经取得了长足进步。

汽车诊断及OBD和UDS协议的基础概念介绍(诊断协议汽车数据传输) 软件开发
(图片来自网络侵删)

在汽车维修时,维修的技师通过诊断工具可以读取车辆的故障码,进而定位故障原因。
在汽车软件开发时,汽车软件开发或者测试人员也可以通过诊断工具连接到汽车的电子系统,读取和解析车辆关键信息的实时数据,例如车辆车速、各个部件的工作状态、整车的电压、电流、各个部件的温度等等。

(注:诊断工具也就是下文常提到的Tester,它可以是任何实现了通信协议的东西,比如可以是一个实现了UDS协议的上位机软件、实际的硬件设备(4S店的诊断仪)、甚至是一个实现了UDS协议的系统中的测试脚本。

汽车诊断协议就是指诊断工具与车辆之间的通信协议。
目前,市场上最常见的两种汽车诊断协议是OBD(On-Board Diagnostics)和UDS(Unified Diagnostic Services)。
OBD和UDS主要是在目标和应用领域上存在一些区别。
OBD协议主要用于监测车辆的排放情况,通过读取车辆的故障码来判断是否符合排放标准。
而UDS协议则更加全面和灵活,在各个ECU上是一种通用型的协议。

2.OBD协议

OBD(On-Board Diagnostic)主要用于跟汽车排放系统相关的ECU(电子控制单元,汽车上的板级控制器)的诊断。
OBD定义了排放相关系统必须支持的诊断服务和数据传输格式,支撑OBD数据传输的底层数据链路目前大多数车的OBD接口都是CAN总线。
OBD是与UDS并列的一套应用层协议,对于与排放相关的ECU来说,通常这种ECU上既要实现OBD,也实现UDS。

OBD协议分为两种:OBD-I和OBD-II。
OBD-I是由美国为当时制造的加州汽车所制定的排放法规,随后这套法规被逐渐标准化,于是又提出了OBDII标准,包括:标准化的车载ECU数据诊断接口(SAE-J1962,也就是现在常说的OBD接口)、标准化的诊断解码工具(SAE-J1978)、标准化的诊断协议(ISO 9141-2、ISO 14230-4、ISO 15765-4)、标准化的故障码定义(SAE-J2012、ISO 15031-6)、标准化的维修服务指南(SAE-J2000),OBD-II在1996年开始实施,目前已经成为全球汽车行业的标准。
因此,OBD标准可以看作一系列标准的集合,是具有强制标准需要参照的,是由法规要求的,其最初目的是环保,用于汽车排放系统相关的ECU上。

3.UDS协议

UDS(Unified Diagnostic Services)是一种通用的汽车诊断协议,由欧洲汽车制造商协会(ACEA)和日本汽车制造商协会(JAMA)共同制定。
它与OBD最大的区别就在于“Unified“上,是面向整车所有ECU的。

UDS只是一个应用层协议(ISO 14229-1),不关心应用层以下的实现,比如执行该协议的应用层程序不关心通过何种物理传输方式实现与ECU硬件的通信,因此它既可以基于CAN线通信去实现,也能在Ethernet上实现。
并且,UDS提供的是一个诊断服务的基本框架,定义了一系列的诊断服务和通用化的诊断流程,主机厂和零部件供应商可以根据实际情况选择实现其中的一部分或是自定义出一些私有化的诊断服务来,所以基于UDS协议的诊断又常常被称为Enhanced diagnosic(增强型诊断)。
UDS不是法规要求的,没有统一实现标准,可以基于该协议提供的诊断请求及响应格式进行二次开发。

   UDS服务主要用于诊断设备Tester(Client)和ECU(Server)之间的诊断通信,诊断设备(Tester)发送诊断请求(request),ECU给出诊断响应(response),通过这种“一问一答”的形式让目标ECU执行一些期望的操作,而UDS就是为不同类型诊断功能的request和response定义了统一的内容和格式。

4.OSI参考模型

ISO组织所制定的OSI(Open System Interconnection)分层结构来对车载的网络进行了划分,根据实际的网络类型进行划分,每一层每一种网络协议分别对应不同的ISO标准协议。

网络七层协议用一张图表示,大概是这样的:

•1.物理层:

解决两个硬件之间怎么通信的问题,常见的物理媒介有光纤、电缆、中继器等。
它主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。

它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后在转化为1、0,也就是我们常说的数模转换与模数转换)。
这一层的数据叫做比特。

•2.数据链路层:

在计算机网络中由于各种干扰的存在,物理链路是不可靠的。
该层的主要功能就是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

它的具体工作是接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层。
这一层的数据叫做帧。

•3.网络层:

计算机网络中如果有多台计算机,怎么找到要发的那台?如果中间有多个节点,怎么选择路径?这就是路由要做的事。

该层的主要任务就是:通过路由选择算法,为报文(该层的数据单位,由上一层数据打包而来)通过通信子网选择最适当的路径。
这一层定义的是IP地址,通过IP地址寻址,所以产生了IP协议。

•4.传输层:

当发送大量数据时,很可能会出现丢包的情况,另一台电脑要告诉是否完整接收到全部的包。
如果缺了,就告诉丢了哪些包,然后再发一次,直至全部接收为止。

传输层的主要功能就是:监控数据传输服务的质量,保证报文的正确传输。

•5.会话层:

虽然已经可以实现给正确的计算机,发送正确的封装过后的信息了。
但我们总不可能每次都要调用传输层协议去打包,然后再调用IP协议去找路由,所以我们要建立一个自动收发包,自动寻址的功能。
于是会话层出现了:它的作用就是建立和管理应用程序之间的通信。

•6.表示层:

表示层负责数据格式的转换,将应用处理的信息转换为适合网络传输的格式,或者将来自下一层的数据转换为上层能处理的格式。

•7.应用层:

应用层是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作。

最后,横向对比下TCP/IP4层模型、5层模型和OSI七层模型的差别:

5.参考内容

[1] CSDN作者车载系统攻城狮的文章《《UDS协议从入门到精通(UDS速查手册)》》 原文链接:

https://blog.csdn.net/qq_40309666/article/details/130831416

[2] 知乎作者 亿图图示 的文章《一文看懂网络七层协议/OSI七层模型》,文章链接为:

https://www.zhihu.com/tardis/zm/art/296670054?source_id=1005

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

作 者 | 郭志龙

编 辑 | 郭志龙校 对 | 郭志龙

标签:

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0