UDS(四)应用层

本文详细介绍了UDS(Unified Diagnostic Services)协议,包括其服务分类、诊断请求与响应格式,以及SID、subfunction和parameter的作用。深入理解了诊断仪与ECU之间的交互过程。后续将逐个解析26种服务的细节。
摘要由CSDN通过智能技术生成

  UDS由ISO-14229系列标准定义,ISO 14229-1 定义了诊断服务,不涉及网络及实现,只有应用层的内容。

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

1. UDS的服务

  UDS是一系列服务的集合,本质上也是一种定向的通信,是一种交互协议。UDS的服务包含6大类,共26种。每种服务都有自己独立的ID,即SID:Service Identifier,诊断服务ID。26中服务做如下图分类。
在这里插入图片描述
在这里插入图片描述

2. UDS服务格式

  • Diagnostic Request格式:

  diagnostic request有两种类型:第一种为 SID + sub function + parameter,第二种为 SID + parameter;注:parameter字节数 >= 0;
  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 response意味着诊断仪发过来的诊断请求被执行了。格式:response SID + sub function + parameter 或 response SID + parameter 。注:parameter字节数 >= 0; response SID 为诊断请求的SID + 0x40;如下如所示:
    在这里插入图片描述

   第二类为negative response则意味着当前ECU因为某种原因无法执行诊断仪发过来的诊断请求,而无法执行的原因则存在于negative response的报文中。格式:negative response SID + request SID + negative response code; negative response 固定3个字节,negative response SID固定为:7F, request SID为诊断请求的SID, negative response code为负响应的原因;negative response code如下图所示:
在这里插入图片描述
   negative response 举例,诊断仪(tester)请求SID 10 ,但是sub function 为 04 超出了 SID 10服务sub function的范围,ECU反馈negative response给 诊断仪(tester),告知 request out of range。如下如所示:
在这里插入图片描述
本章对uds应用层的request 和 response做了简单的概述,后续会对每一个诊断服务做详细的介绍

UDS协议栈系列文章:

UDS(一)入门概述

UDS(二)网络层

UDS(三)网络层时间参数

UDS(四)应用层

UDS(五)应用层10/3E

UDS(六)应用层11/27

UDS(七)应用层28/85

UDS(八)应用层22/2E

UDS(九)应用层14/19

UDS(十)应用层34/36/37

  • 6
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值