DiagnosticSessionControl(0x10服务) 用于将ECU切换到不同诊断会话状态。我们可以通过0x10服务将ECU划分为默认诊断会话、编程诊断会话、扩展诊断会话;并针对其他服务在这三种会话状态下的访问权限进行了划分,这样便于管理各个服务之间的权限问题。
在一个Server中,应始终只有一个诊断会话处于活动状态。ECU上电之后进入默认诊断会话(Default diagnostic session)状态,当Client请求一个诊断会话服务,如果这个会话已经运行,则回复肯定响应。
服务请求报文格式
关于sub-funtion常用的会话类型如下:
00:请求进入默认会话(DefaultSession);
01: 请求进入编程会话(ProgrammingSession);
02:请求进入扩展会话(ExtendedDiagnosticSession);
ECU在收到对应的会话请求后,返回的肯定响应格式如下:
ECU在收到对应的会话请求后,返回的否定响应格式如下:
示例
发送请求:10 02
肯定响应:50 02 00 32 01 F4
P2Server_max等于50 ms(0x32ms),P2*Server_max等于5000ms(0x01F4 * 10ms)。