UDS 诊断 详解

目录

1 UDS诊断的概念

2 Diagnostic request的格式

3 UDS 常用的诊断服务

4 UDS 诊断案例


1 UDS诊断的概念

UDS全称为Unified Diagnostic Services,统一的诊断服务。由ISO-14229系列标准定义。

诊断通信的过程从用户角度来看非常容易理解,诊断仪发送诊断请求(request),ECU给出诊断响应(response),而UDS就是为不同的诊断功能请求和响应之间定义了统一的内容和格式。位于OSI模型中的应用层。

作为汽车诊断通信重要构成部分,UDS在诊断中作用主要体现在以下几个方面

  1. 在诊断故障码中运用:     读取当前故障,历史故障,读取故障发生时环境信息,清除故障码
  2. 数据传输 :读取各种参数,下线配置
  3. 控制例程:  下线测试,身份认证,控制器reset等
  4. 上传下载:  刷新常用的诊断服务

2 Diagnostic request的格式:


Diagnostic request的格式可以分为两类:

      一类是拥有sub-function的,

      另一类是没有sub-function的,

Service ID(以下简称SID)的长度固定为1个字节,代表了这条诊断命令执行的什么功能。

sub-function的长度也是1个字节,它通常表示对这个诊断服务的具体操作,比如是启动、停止还是查询这个诊断服务。

而后面的parameter则根据各个诊断服务的不同具有不同的内容,长度和格式并没有统一规格,它用于限定诊断服务执行的条件,比如某个诊断服务执行的时间等。parameter的一个重要应用是作为标识符,标识诊断请求要读出的数据内容。

有一点要补充的是,其实sub-function严格来说是7个bit,而不是1个byte,因为它的最高位bit被用于抑制正响应(suppress positive response,SPR),如果这个bit被置1,则ECU不会给出正响应(positive response); 如果这个bit被置0,则ECU会给出正响应。这样做的目的是可以告诉ECU不要发不必要的response,从而节约通信资源。

Diagnostic response的格式:
Diagnostic response分为positive和negative两类。

positive response意味着诊断仪发过来的诊断请求被执行了,

而negative response则意味着ECU因为某种原因无法执行诊断仪发过来的诊断请求,而无法执行的原因则存在于negative response的报文中。

$10诊断会话 Diagnostic Session Control

$10包含3个子功能,

01 Default默认会话,

02 Programming编程会话

03 Extended扩展会话,

ECU上电时,进入的是默认会话(Default)

例子:以CAN总线网络举例。CAN帧一共8个字节,第一字节被网络层占用。(ISO 15765-2的知识)

进入01会话成功,进入02会话失败,进入03会话成功

3 UDS 常用的诊断服务

10服务(诊断会话控制)、11服务(电控单元复位)、14服务(清除诊断信息)、19服务(读取故障码信息)、22服务(通过ID读数据)、27服务(安全访问)、28服务(通讯控制)、2E服务(通过ID写数据)、31服务(例行程序控制)、85服务(诊断故障码设置控制)等

10服务:诊断会话,10 01默认会话;10 02编程会话;10 03扩展会话;

11服务:该服务请求ECU根据复位的内容有效地执行ECU复位,11 01硬件复位;11 03软件复位

14服务:使用此服务来清楚ECU内存中的故障内存的诊断行行行;常见的请求命令为14FFFFFF

19服务:此服务读取ECU驻留诊断故障代码(DTC)信息的状态;常见用法是19 02 09读取当前和历史故障

22服务:该服务允许通过DID向ECU请求读取数据值;读取功能配置22 F1 01;网络配置22 F1 10等

27服务:该服务在向ECU请求写入数据时需要进行的解锁服务;请求种子2701;发送钥匙2702

28服务:用于“打开/关闭”ECU的某些消息的传输和/或接收,以及消息的通讯类型,常见的有28 01 只收不发

2E服务:该服务 允许通过DID在解锁条件下向ECU请求写入数据值;常见的为写入车辆的网络配2E F1 10 xx

2F服务:使用此服务来替换输入信号、内部ECU功能和\或控制由服务器的数据接口引用的电子系统的输出(执行器)

31服务:客户端使用此服务来启动/停止例程,并在服务器的内存中请求例程结果。通常刷写过程中会用到。

4 UDS 诊断案例:

汽车UDS诊断协议是一种用于汽车电子控制单元(ECU)之间进行通信和诊断的协议。UDS代表“统一诊断服务”,是世界上最常用的汽车诊断协议之一。 UDS诊断协议基于CAN总线通信协议,它定义了在汽车系统中进行诊断和通信的规则和标准。它允许车辆制造商和诊断工具提供商创建统一的诊断服务,以确保不同品牌和型号的汽车都可以使用相同的诊断设备。 UDS诊断协议具有以下特点: 1. 标准化:UDS协议的标准化使得不同厂商的诊断设备和汽车之间可以进行通信和诊断,提高了汽车诊断的效率和准确性。 2. 多功能:UDS协议支持多种功能,包括读取和清除故障码、读取和更新ECU参数、执行特定操作等,使诊断工程师可以对车辆进行全面的诊断和维修。 3. 安全性:UDS协议提供了安全机制,如访问权限控制和数据加密,以保护车辆的安全性和隐私。 4. 高效性:UDS协议优化了数据传输方式,使得诊断过程更加高效快速。 UDS诊断协议主要包含两个重要的通信会话:诊断会话和编程会话。诊断会话用于实时和离线的诊断,可以读取和清除故障码、读取传感器数据等。编程会话用于对车辆的ECU进行参数设置、更新软件等。 总之,汽车UDS诊断协议在现代汽车维修和诊断中起到了关键作用,它通过标准化和多功能的特点,为诊断工程师提供了通用和高效的诊断方式,从而提高了汽车的可靠性和安全性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fish_study_csdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值