诊断会话控制服务(DiagnosticSessionControl)的SI是0x10,它是最为基础的一个诊断服务。
本文将从以下几个方面来介绍这个服务:
- 诊断会话的概念和转换规则
- 诊断请求和响应格式(请求格式、肯定响应格式、支持的否定响应码)
- 子功能参数(常用诊断会话间的切换规则)
- 报文实例
1. 诊断会话的概念
1.1 何为诊断会话
诊断会话其实也可以称为诊断模式,ECU在同一时刻必然会处于某一种诊断会话下,且只能处于唯一一种诊断会话下。 它类似于一个基础平台,不同的诊断会话所支持的诊断服务不同,同时也具有不同的诊断定时参数,如诊断响应的最大允许时间等。
诊断会话总体上分为默认会话和非默认会话两种,非默认会话还可以进一步分为多个具体的诊断会话。
1.2 诊断会话间的转换
ECU上电时会处于默认会话下,我们可以通过给ECU发送10服务诊断指令,使ECU切换到非默认会话。如果想要ECU保持在非默认会话,就要持续不断的给ECU发送诊断指令,否则一段时间后ECU会自动跳转回默认会话(标准建议的这个时间