1、作用:用于启用服务器中的不同诊断会话。
2、服务器上电的时应该始终启动默认诊断会话,如果未启动其他诊断会话,则只要服务器上电,就应始终进行默认诊断会话。
3、诊断会话状态图
3、请求消息的格式定义
A_Data byte | Parameter name | Cvt | Hex value | Mnemonic |
#1 | 诊断服务 | M | 10 | DSC |
#2 | 子功能 = [诊断会话类型 ] | M | 00-FF | LEV_ DS_ |
4、子定义的具体说明
Table 26 — Request message sub-function parameter definition
Hex(bit 6-0) | Description | Cvt | Mnemonic |
00 | ISOSAEReserved(保留) | M | ISOSAERESRVD |
01 | 默认会话 此诊断会话是默认诊断会话,没有诊断超时处理 (例如:不需要TesterPresent服务来保持默认会话状态). 已经激活了非默认会话情况下,如果想恢复到默认会话,需要遵循上面的规则。 ⎯ 当已经回复肯定响应之后,服务器应该停止当前会话,开始执行新的诊断会话。 ⎯ 如果服务器已发送诊断会话控制肯定响应,则其应该重新锁定服务(如果在诊断会话期间客户端将其解锁) ⎯ 如果服务器对于指令返回否定响应,那么其继续进行原来的会话。 | M | DS |
02 | 编程会话 -该会话是使ECU进入编程会话状态. -一旦编程会话执行了之后,只有客户端发ECU重置(0x11)、或者恢复默认会话、或者会话超时才会退出编程会话模式。 -如果服务器接收到恢复默认会话、或者会话超时(两种同时存在),服务器应该重启应用。 | U | PRGS |
03 | 扩展诊断会话 该会话还可以支持调整功能相关性不大T的诊断服务h。 | U | EXTDS |
04 | 安全系统诊断会话 该诊断会话可以系统安全相关的诊断服务,例如气囊布置。 | U | SSDS |
05 - 3F | ISOSAE保留 | M | ISOSAERESRVD |
40 - 5F | 主机厂自己定义 | U | VMS |
60 - 7E | 系统供应商规范 | U | SSS |
7F | ISOSAE保留 | M | ISOSAERESRVD |
5、肯定响应的格式定义
A_Data byte | 参数名称 | Cvt | Hex value | Mnemonic |
#1 | 诊断会话控制响应ID | S | 50 | DSCPR |
#2 | 诊断会话类型 | M | 00-7F | DS_ |
#3 : #n | sessionParameterRecord[] #1 = [ data#1 : data#m ] | Ca : C | 00-FF : 00-FF | SPREC_ DATA_1 : DATA_m |
C的结构类型取决于数据链路层的定义 |
6、否定响应代码的定义
Hex | Description | Cvt | Mnemonic |
12 | 不支持此子功能 如果子功能参数不支持则会发送该code | M | SFNS |
13 | 信息长度不读或者格式不对 信息长度不对 | M | IMLOIF |
22 | 环境不对 如果不满足诊断会话的标准则返回该code(例如车辆状态不对) | M | CNC |