UDS诊断服务响应规则介绍

描述

来源:电控知识搬运工

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

UDS是Unified Diagnostic Services的缩写,在国际标准ISO 14229-1中定义,UDS标准中除了定义服务的用法,以及服务的格式以外,还定义了一些标准化的数据,而到OEM要使用UDS协议时,除了要使用标准定义的服务以及标准数据以外,还要依据自身的情况,定义属于OEM的特定数据,比如说,定义所要遵循的服务,需要支持的DID,需要支持的DTC等这些内容,这样形成的符合某OEM的诊断规范才能用于ECU诊断功能的开发以及验证。

随着车辆ECU的增多,车辆网络拓扑结构也越来越负责,比如说一辆车需要有多种总线(CAN总线,LIN,以太网,FlexRay),所以在2013年释放的UDS协议中,除了对通用诊断服务的定义以外,还增加了关于UDS在各个总线中应用的定义。

如果我们说UDS诊断服务是实现人或设备与ECU控制器交流的一种语言,那么诊断服务的响应规则就如同是语法,而SID(Service ID)定义就如同词汇。因此了解响应规则和SID的意义就基本能了解与ECU沟通的方法和含义。本文先来介绍一下响应规则。

1.寻址方式

在总线上往往有着众多ECU设备,作为诊断设备既可以与所有的ECU一起沟通,也可以指定某一个ECU单独沟通。所以寻址方式就有功能寻址(Functionally Addressed)和物理寻址(Physically Addressed)两种。

功能寻址

功能寻址可以广播诊断请求Request,同时等待总线上的ECU给与响应。

ecu

物理寻址

物理寻址指定发送特定诊断请求Request,等待指定ECU给与响应。

ecu

因此我们的诊断报文一般会有三个CAN ID,其中DiagRequest(诊断物理请求报文)和DiagState(诊断功能请求报文)是ECU接收来自Client的报文,而DiagRespone(诊断响应报文)是ECU反馈的报文。

例如下图的0x7FF和0x731分别是功能请求报文和物理请求报文,而0x7B1则是诊断响应报文。

ecu

2.请求和响应格式

诊断请求Request

UDS服务中共定义了26个服务请求SID(Service ID),每个SID代表了一类指令。由于有些服务请求还需要表达具体的功能类型,比如是开启还是关闭,是读取还是修改等,因此UDS中还定义了Sub-function来补充SID的意图。另外服务请求有时候还需要告知ECU具体的参数信息Parameter,例如计数信息。因此诊断请求的格式基本上是SID + Sub-function + Parameter三部分组成的,其中SID一个byte,Sub-function一个byte(其中最高位是禁止肯定响应指示位,0则表示需要肯定响应,1则表示禁止肯定响应),Parameter根据具体情况定义。

ecu

肯定响应Postive Response

收到Client的诊断请求后,ECU可能反馈肯定响应或者否定响应。肯定响应在诊断请求的SID上+0x40表示确认。例如诊断请求SID为0x10,则肯定响应反馈0x50。

ecu

否定响应Negative Response

USD诊断服务的否定响应中包含有导致否定响应原因的编码,称为否定响应码(NRC, Negative Response Code)。否定响应码的取值范围为0x00 - 0xFF,被分为三组:

0x00:服务器内部实现否定响应码判断逻辑时使用,表示要给出肯定响应。

0x01 – 0x7F:诊断通信相关的否定响应码。

0x80 – 0xFF:服务器收到诊断服务请求时,由于某些条件不满足要求而给出的否定响应码。给出这些否定响应码而不是给出0x22的目的是为了提供请求的服务不能被执行的更详细的原因。

当ECU反馈为否应响应时格式为,NR_SI(否定响应服务码0x7F) + SID(否定的请求服务SID)+ NRC(否定响应码,表示否定的理由)。

ecu

这里列举了常用的诊断服务所支持的否定响应码。如下表:

ecu

否定响应码定义及其取值

下表中列出了ISO14229-1:2013(E)中定义的否定响应码及其使用条件。

ecu

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分