• 911查看
  • 0回复

[VCU] UDS统一诊断服务【一】诊断会话控制0X10服务

[复制链接]


该用户从未签到

发表于 10-12-2023 08:24:24 | 显示全部楼层 |阅读模式

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


今天分享的内容是UDS诊断会话控制0X10服务介绍,希望能对你有所帮助

前言

最近在做诊断相关的开发工作,将自己接触到的知识点记录下来。前面的文章已经介绍过UDS的一些基础知识,和基本的一些概念,不清楚的可以查看之前的文章:UDS基础知识介绍?
诊断会话控制简介

诊断会话控制服务 DiagnosticSessionControl,SID是0X10,主要功能是控制服务端的会话模式切换。一般默认上电后是在默认会话模式下,当某一个服务端正在运行时,只会出现一个会话模式,不会同时存在两个会话模式。
会话模式

常用的会话模式有如下几种:

默认会话:01 Default Session,支持信息的读取和查询操作,权限最小。

编程会话:02 Programming Session 顾名思义这个是用来烧录程序的

扩展会话:03 Extended Session,主要是用来读写数据,如写入VIN,序列号,读写诊断码等

UDS统一诊断服务【一】诊断会话控制0X10服务w1.jpg




    默认会话:当服务端在默认会话模式下收到默认会话的请求时,服务端应当重新初始化默认会话,即之前被临时激活或者改变的数据都应该恢复到刚上电初始化的状态,写入到非易失存储器(断电数据不会消失的存储器)的数据不会重新初始化。

    其他会话:当服务端在默认会话模式下收到任何非默认会话模式请求,服务端应当切换到被请求的会话模式,并且如果通过0x86服务设置了事件的话,这时候需要暂停。但是目前基本上不会使用0x86服务,所以一般直接切换即可。

    在非默认会话模式下收到非默认会话模式请求:服务端完成会话模式切换的同时需要完成以下操作:


a, 停止通过ResponseOnEvent(0x86)服务设置的事件;

b,重新锁定安全访问状态,并且重置依赖于安全访问的服务;

c,不依赖于安全访问的服务,如果在被请求的会话模式也支持,应当保持当前状态,例如通信控制服务和DTC控制服务。
4. 在非默认会话模式下收到默认会话模式请求:服务端应当恢复之前被暂停的通过0x86服务设置的事件,停止所有默认会话模式不支持的服务,其余需要执行的操作与第一条一样。报文格式

请求报文

上篇文章介绍UDS基础知识的时候,也有介绍过诊断请求的格式,有如下3种:

格式1:[Service Identifier] + [Sub-function]

格式2:[SID] + [Data Identifier]

格式3:[SID] + [Sub-function] + [DID]

UDS统一诊断服务【一】诊断会话控制0X10服务w2.jpg

子功能

诊断会话控制使用子功能参数diagnosticSessionType诊断会话类型,被用于激活电控单元中对应的诊断会话,具体的参数含义如下:

UDS统一诊断服务【一】诊断会话控制0X10服务w3.jpg

更完整的参数含义请参考ISO14229-1,表格很长,此处只截了一部分

UDS统一诊断服务【一】诊断会话控制0X10服务w4.jpg

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

UDS统一诊断服务【一】诊断会话控制0X10服务w5.jpg

响应报文

当服务端收到诊断请求时,如果能执行则回复肯定响应,不能执行则回复否定响应;也有不给出响应的情况,就是抑制正响应(suppress positive response,SPR),如果这个bit被置1,则ECU不会给出正响应(positive response)
肯定响应

肯定响应的格式为:[SID + 0X40] + [Sub-function] + xx xx xx xx xx

当然肯定响应的格式是根据请求报文的格式来的,请求报文是[SID] + [Sub-function],则肯定响应就为[SID + 0X40] + [Sub-function];请求报文是[SID] + [DID],则肯定响应就是[SID + 0X40] + [DID]。其余字节是时间参数,后面举例子说明。

UDS统一诊断服务【一】诊断会话控制0X10服务w6.jpg

否定响应

negative response的格式为3个字节,格式为:[0X7F] + [SID] + [NRC]

UDS统一诊断服务【一】诊断会话控制0X10服务w7.jpg

常用的否定响应码如下:

UDS统一诊断服务【一】诊断会话控制0X10服务w8.jpg

更详细完整的否定应答码请参考ISO14229-1 Table A.1

UDS统一诊断服务【一】诊断会话控制0X10服务w9.jpg

时间参数

时间参数有两个,P2server_max和P2*server_max,每个参数占用两个字节,所以一共占用四个字节。虽然每个参数都是两个字节,但是其单位(精度)是不一样的,P2*参数的单位是10ms,也就是说P2*的结果需要把后面两个字节的数值乘以10才是实际的时间

UDS统一诊断服务【一】诊断会话控制0X10服务w10.jpg

举例说明:

ISO14229的例子:

UDS统一诊断服务【一】诊断会话控制0X10服务w11.jpg

实际的例子:

此处的例子都是针对CAN总线网络为例。在举例之前,先介绍简单介绍一下CAN总线的诊断报文格式,后面文章会单独详细介绍

报文的类型包括了首帧FF,流控帧FC,连续帧CF和单帧SF四种。N_PCL中字节1的4-7位用来区分类型。N_PCLType = 0 单帧N_PCLType = 1 首帧N_PCLType = 2 连续帧N_PCLType = 3 流控帧

UDS统一诊断服务【一】诊断会话控制0X10服务w12.jpg

肯定响应:

TX     02 10 03 00 00 00 00 00         // 02: 0表示单帧,2表示后面的数据有2个字节;10:10服务是诊断会话控制服务;03:表示子功能,扩展诊断会话;后面的0是填充位

RX     06 50 03 00 32 01 F4 AA         // 06:0表示单帧,6表示后面的数据有6个字节;50:肯定响应码,值为服务请求的值加0X40;03表示子功能;00 32表示P2server_max,转换成十进制就是50,那么P2server_max就是50ms

01 F4表示P2*server_max,转换成十进制就是500,再乘以单位10ms,即P2*server_max为5000ms

否定响应:

TX      02 10 02 00 00 00 00 00         // 10:诊断会话控制服务,02:编程会话模式

RX     03 7F 10 78 AA AA AA AA         // 03: 0表示单帧,3表示后面的数据有3个字节;7F为否定响应的SID;10为会话请求;78为否定应答码

最后,如果觉得有帮助,希望你能点个关注,一键三连,感激不尽



该用户从未签到

发表于 17-3-2025 03:07:09 | 显示全部楼层
回复帖子:

关于UDS统一诊断服务中的诊断会话控制0X10服务,这是一个关键的诊断服务,用于控制服务端的会话模式切换。在车辆系统中,诊断会话通常包括默认会话模式和其他特定功能会话模式。该服务的主要功能是根据需求在会话模式间进行切换,确保系统诊断的高效与安全。默认上电后,系统处于默认会话模式,运行中的服务端也只会处于一个会话模式,避免冲突。掌握这一服务的特点和功能,对于进行汽车诊断与开发工作至关重要。如需更深入了解UDS基础知识及其他相关概念,建议查阅前期的分享资料。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 03:07:09 | 显示全部楼层
回复帖子:

关于UDS统一诊断服务中的诊断会话控制0X10服务,这是一个关键的诊断服务,用于控制服务端的会话模式切换。在车辆系统中,诊断会话通常包括默认会话模式和其他特定功能会话模式。默认会话模式在车辆上电后自动进入,执行基本的诊断功能。当需要进行特定的诊断或编程操作时,会切换到其他会话模式。这种切换功能对于保障诊断的效率和准确性至关重要。当进行相关的诊断开发工作时,理解和掌握诊断会话控制服务是十分必要的。如需了解更多关于UDS或诊断会话控制的信息,建议查阅相关文献资料或专业教程。
回复 支持 反对

使用道具 举报



该用户从未签到

发表于 17-3-2025 03:07:10 | 显示全部楼层
针对上述帖子内容,专业汽车工程师回复如下:

UDS统一诊断服务中的诊断会话控制服务(DiagnosticSessionControl)至关重要,其服务识别码(SID)为0X10。此服务主要用于控制服务端的会话模式切换,确保诊断过程的顺利进行。在汽车诊断领域,默认上电后的会话模式通常为默认模式。在特定服务端运行时,只会有一个会话模式激活,以保证系统稳定性和诊断效率。常用的会话模式包括默认会话模式、扩展会话模式等。这些会话模式的应用场景各不相同,但均服务于提升诊断的精确性和效率。感谢分享者的努力,期待后续更多专业内容的分享。

注:详细的功能和应用可能需要依据具体的车辆和系统有所差异。在实际操作中应参照相关的手册和规定。
回复 支持 反对

使用道具 举报

快速发帖

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

本版积分规则

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

GMT+8, 19-8-2025 09:22 , Processed in 0.347040 second(s), 37 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.