UDS诊断学习笔记

定义介绍:

UDS(Unified Diagnostic Service)诊断的诊断服务。诊断协议是面向整车所有ECU(电控单元)的一种诊断通信协议,是诊断服务的规范化标准。

UDS本质上是一系列服务的集合,UDS的服务包含了6大类,共26种,每种服务都有自己独立的ID,即SID(Service Identifier)

通信模式:

实际上是与ECU交互的过程,即诊断仪请求(Request)ECU,ECU给出对应响应(Response)。

UDS寻址模式:

1.物理寻址,点对点,一对一,可根据物理地址的不同进行访问,但只能访问单个节点。

2.功能寻址,广播模式,一对多,根据功能的不同进行访问,它可以访问多个ECU节点,其SID对于标准帧来说,通常是7DF。

UDS的服务:

罗列出常用的15种服务,支持子功能的有10、11、27、28、3E、85、19、31,子功能通常是这些服务具有某些已经定义好的功能。

1.$10

10服务是Diagnostic Session Control诊断会话控制,子功能有01、02、03三种,这三种代表10服务可以进入的3种不同的会话模式。

01 Default默认会话,02 Programming编程会话(用于解锁bootloader相关的诊断服务,即程序烧录。),03 Extended扩展会话,ECU上电时,进入的是默认会话(Default)。

指令格式:

请求:10 SF

          SF:子功能,比如01、02、03,编程会话只能通过先进扩展会话之后再进编程会话,当前为编程会话,不能直接发10 03跳转到扩展会话。

 

肯定相应:50 SF  sessionParameterRecord[](4byte)

                 0x40+SID=0x50

                 SF是对应请求的子功能,请求是什么子功能,他便显示什么子功能。

                  会话参数记录有P2Server_max(2byte)和P2*Server_max(2byte),高位在前的表示方式。

                  P2Server_max:指的是ECU在收到请求和给出响应之间的这个时间间隔,他描述了ECU的反应速度。

                   P2*Server_max:在ECU给出NRC 78(等待)之后生效,所以会需要更长的反应时间。

否定相应:7F SID NRC(否定相应码)

                 否定相应格式一定,SID对应请求的SID,NRC为Negative Response Code,即会有一些类似于一个指令格式或数据是否正确的判断,在发送不是一个正常指令时,ECU就会给你这个NRC,相当于一个提示,可以通过不同的NRC判断指令的错误原因。比如常见的7E表示SF在此会话不支持(在编程会话发10 03即会出现)、12表示SF不支持(发10 FF这种不支持的SF)、13表示发出的此SID格式长度不符合标准定义的SID的格式(10服务定义的两个byte,发10 01 01,即会得到此NRC)。

以下服务,下期再解析。

2.$11

11服务是ECU Reset复位

3.$27

27服务是Security Access安全访问

4.$28

28服务是Communication Control通讯控制

5.$85

85服务是Control DTC Setting控制DTC设置

6.$22

22服务是Read Data By Identifier读DID

7.$2E

2E服务与22服务相对,是Write Data By  Identifier写DID

8.$14

14服务是Clear Diagnostic Information清诊断信息

9.$19

19服务是Read DTC Information 读取故障码信息

10.$2F

2F服务是Input Output Control By Identifier通过ID控制输入输出

11.$31

31服务是Routine Control例程控制

12.$34

34服务是Request Download请求下载

13.$36

36服务是Transfer Data数据传输

14.$37

37服务是Request Transer Exit请求推出传输

15.$3E

3E服务是Tester Present待机握手

 

posted @ 2019-12-22 20:28  想当海贼王的akm  阅读(8774)  评论(0编辑  收藏  举报