UDS诊断之10服务

2022-05-25 15:00:08 浏览数 (1)

DiagnosticSessionControl(0x10)——诊断会话控制

这个服务的主要作用就是使能不同的诊断会话,不同的诊断会话包含了不同的诊断服务或者功能,这个服务就实现了不同诊断会话之间的切换。

ECU上电之后会进入默认会话(default),当Client请求一个诊断会话服务,如果这个会话已经运行,则回复肯定响应。

进入其他session,default session的功能仍可用。要想进入一个新的诊断会话,特定的条件需要满足,这些条件由用户定义。

图1 session切换示意

  1. default session:当Server在default session的时候,如果Client又请求了一个default session,Server会完全重新初始化default session时的一些状态;
  2. 如果Client请求让Server从default session切换到其他session,将会停止在default session通过ResponseOnEvent(0x86)服务配置的功能;
  3. 非default session之间的切换将会重新初始化这些session;
  4. 非default session切换至default session,将会使能通过ResponseOnEvent(0x86)服务配置的功能,其他session不能在default session运行的功能也会停止。

下图是不同session所支持的服务一览:

图2 不同session所支持的服务

服务请求报文格式

图3 服务请求报文格式

图4 sub-function描述(1)

图5 sub-function描述(2)

肯定响应报文格式

图6 肯定响应报文格式

数据参数格式定义如下(3~6字节):

图7 数据参数定义

图8 sessionParameterRecord定义

图9 sessionParameterRecord值定义

可支持否定响应NRC

图10 可支持否定响应NRC

示例

发送请求:10 02

肯定响应:50 02 00 32 01 F4

0 人点赞