• 298查看
  • 0回复

[应用层软件] UDS的那些服务-$10诊断会话

[复制链接]


该用户从未签到

发表于 3-3-2024 09:48:28 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


背景知识链接:

UDS的基本概念-从入门开始

UDS的那些服务—DID、DTC都是怎么来的?

前几天介绍了UDS的基本概念,然后紧接着介绍了UDS的4个超级关键的服务,今天接着介绍一下UDS的其他服务,这些服务可能就是在工作当中经常听到却不明所以的一些专业术语,既然最近在学习这一块,我觉得还是有必要一起学习一下的好。先来学习一下10服务,因为基本上在对ECU进行操作之前都要先发个10服务的请求出去。

10服务
10服务的名称是诊断会话(Diagnostic Session Control),与之前的其他服务一样,10服务也是有子服务的。一共有3个子服务,01 Default默认会话,02 Programming编程会话,03Extended扩展会话,ECU上电时,进入的是默认会话(Default)。
10服务存在的意义,在我刚刚学习这个的时候,我觉得似乎没啥用,但是看到每篇文章似乎都花费了大量的篇幅在介绍这个服务。那10服务存在的意义就是:

通过不同的会话模式,来限制处于特定会话模式时才能支持某些其他服务,相当于将ECU的状态进行变更。默认会话权限最小,可操作的服务少;扩展会话通常用于解锁高权限诊断服务,例如写入数据/参数、读写诊断码;编程会话用于解锁bootloader相关的诊断服务,即程序烧录。

对于其他服务需要在哪种会话模式下才能够支持,下面这个表格很好的说明了这个问题。

UDS的那些服务-诊断会话w2.jpg
如果ECU进入了一个非默认会话的状态,但是对于处于非默认状态的ECU,是存在一定风险的,被篡改内容或者被错误的擦除软件等等,因此当进入非默认会话的时候,有一个定时器会运转,如果一段时间内没有收到请求,那么到时间后,诊断退回到默认会话01(最低权限)。
UDS的那些服务-诊断会话w3.jpg

当然,我们有一个$3E的服务,可以使诊断保持在非默认的状态。上面这个图片就是在不同的会话模式下的一个切换逻辑。

举个例子,下面分别是请求进入01,02,03三种不同状态的请求指令。

UDS的那些服务-诊断会话w4.jpg

通过查看回复的正响应还是负响应,我们知道:进入01会话成功,进入02会话失败,进入03会话成功

其中第三行是请求(Request)进入编程会话:02 10 02 xx xx xx xx xx ; 02是网络层单帧SF,表示应用层包含有2个字节,10是服务ID(SID),02是子功能。但ECU拒绝了Tester的请求。并且NRC是7E,表示拒绝的原因为:在当前会话下Subfunction不支持。(编程会话是不能够由默认会话跳转到编程会话的,只能由扩展会话跳转到编程会话。但ECU处于默认会话的时候,执行了10 02 编程会话的请求,ECU会回复7E NRC的否定响应。)

对于服务都是有负响应的,回复负响应是要告诉tester原因的,而原因就是NRC,上面的例子介绍了NRC是7E的解释。

NRC的种类比较多,但是跟会话服务相关的负响应一共是有三个分别是:31,7E,7F。(负响应的NRC是通用的,不是针对不同的服务有不同的NRC,NRC是唯一的)。

UDS的那些服务-诊断会话w5.jpg

7F:NRC 7F是指在当前会话下服务不支持。28通信控制服务,要求在默认会话下是不支持的,在扩展会话下能支持。而当ECU处于默认会话的时候,我们上位机发送了28这个服务,ECU收到之后,会回复7F NRC的否定响应。

7E:上面有提到,7E的含义是在当前服务下不支持。

31:NRC 31常用的用法是请求超出范围,比如说22服务,发送的DID,是ECU不支持的,比如说发送的请求22 01 01 ,因为ECU不支持01 01这个DID,会发送NRC 31的否定响应,还有一个用法是:22在3个会话(默认,编程,扩展下都是支持的),22后面所跟的DID来读取数据的DID对各个会话等级是有要求的,比如说读取硬件版本号在编程会话模式下是支持的,读取车速在编程会话下是不支持的,当ECU处于编程会话的时候,来通过 C0 01来读取车速,那么ECU会回复NRC 31的否定响应。

总结一下,10服务的请求和响应格式如下:

请求:SID+一个字节的Subfunction(常用的有01默认会话,02编程会话,03扩展会话),

肯定响应:50(就是10+40)+一个字节的Subfunction(就是诊断会话类型)+4个字节的会话参数。

UDS的那些服务-诊断会话w6.jpg

而会话参数的内容也是如上图所定义的,具体的会话参数的含义也可以在ISO14229的标准中去详细了解到,我这里只做一个最最最基础的入门介绍。


快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 1-2-2025 10:59 , Processed in 0.219098 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.