0x10 会话服务
相当是一种分类,通过控制会话模式,使用不同的服务。应始终只有一个诊断会话在服务器中处于活动状态。 服务器应在启动时始终启动默认的诊断会话。 如果没有启动其他诊断会话,则只要服务器通电,默认诊断会话就应该运行。ECU一上电就是默认模式。
以下是不同的会话所支持的服务。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-plQ4Dp8T-1685538967267)
1 默认会话:当服务器在defaultSession中并且客户端请求启动defaultSession时,服务器应该完全重新初始化 defaultSession。 在激活的会话期间,服务器应重置所有激活/启动/更改的设置/控制。 这不包括编入非易失性存储 器的长期变化。
2 其他会话:当服务器从defaultSession转换到非defaultSession之外的任何其他会话时,服务器只应停止在defaultSession期间通过ResponseOnEvent(0x86)服务在服务器中配置的事件(类似于stopResponseOnEvent) 。
3 相同或其他会话:当服务器从非defaultSession以外的任何诊断会话转换到defaultSession以外的其他会话(包括当前活动的诊断会话)时,服务器应(重新)初始化诊断会话,这意味着:
i) 应该停止通过ResponseOnEvent(0x86)服务在服务器中配置的每个事件。
ii) 安全性应重新锁定。 请注意,安全访问的锁定应将任何依赖于安全访问的活动诊断功能重置为未锁定状态(例如, DID的活动inputOutputControl) 。
iii) 应保持新会话中支持并且不依赖安全访问的所有其他活动诊断功能。 例如,任何已配置的周期性调度程序在从一个非 defaultSession转换到另一个或同一个非DefaultSession时应保持活动状态,并且不会影响CommunicationControl和 ControlDTCSetting服务的状态,这意味着正常通信应保持禁用状态在会话切换的时间点禁用。
4 默认会话:当服务器从默认会话以外的任何诊断会话转换到defaultSession时,服务器应通过ResponseOnEvent(0x86) 服务停止服务器中配置的每个事件,并启用安全性。 任何其他在defaultSession中不支持的活动诊断功能都将被终止。 例如,任何已配置的周期性调度程序或输出控制应被禁用,并且CommunicationControl和ControlDTCSetting服务的状态应被重置,这意味着正常通信在会话切换到时被禁用时应重新启用defaultSession。 在激活的会话期间,服务器应重置所有激活/启动/更改的设置/控制。 这不包括编入非易失性存储器的长期变化。
请求消息格式:
SID 服务号 0x10 subfunction 子服务
子服务有:
后面多余的子服务号,主机厂自己定义。
请求回应:
正向回应
第一个字节 固定0x40+0x10服务号 = 0x50 ; 后面跟着子服务号 ; 参数。
参数:
负向回应:
0x7F + 子服务号 + 否定响应码NRC
支持的否定响应码:
例子: