诊断会话控制$10服务

返回UDS系列讲解总目录

1、服务描述

诊断会话控制服务是用于激活控制器中各种不同的会话模式的。诊断会话主要有三个子服务,分为两大类:默认会话和非默认会话。其中非默认会话又包括编程会话和扩展会话。

默认会话:子服务代码是01。顾名思义,就是ECU在刚启动时保持的状态,当ECU复位的时候也是会返回默认会话,不需要超时处理。

编程会话:子服务代码是02。刷写程序时用的,超时或者刷写失败时会跳转回默认会话,即ECU从底层软件跳转到应用软件。

扩展会话:子服务代码是03。通常诊断用的大部分功能以及特殊功能都在这个会话模式下进行。

ECU内部应始终且仅有一个激活的诊断会话。当上电时,ECU应总是首先启动默认会话。如果没有启动其它的诊断会话,那么ECU上电后应一直处于默认会话模式。

每个诊断会话支持的服务集合功能,可以看做是默认会话的超级功能,即默认会话支持的功能在任一非默认会话模式下都是支持的,反过来不一定。

由于不同会话支持的服务集合功能不一样(比如通常默认会话不支持2E写服务),因此会话之间的跳转也是有限制的。如下图所示的是某控制器要求的诊断模式转换关系图。可以看出,编程会话并不能直接跳转到扩展会话。具体的会话跳转关系视项目要求而定。

诊断会话控制$10服务_第1张图片

 

2、服务应用

在请求10诊断会话控制服务时,第一个字节10表示诊断会话服务,第二个字节01/02/03表示对应的子服务。

肯定响应时第一个字节为50,第二个字节对应相应的子服务,3-6字节数据表示的内容可参考UDS中的定时器与时间参数

诊断会话控制$10服务_第2张图片

 

返回UDS系列讲解总目录

你可能感兴趣的:(UDS)