10.3 诊断会话控制(10)服务
来自:ISO 14229-1-2020.pdf
10.2.1 服务说明
DiagnosticsSessionControl服务用于在服务器中启用不同的诊断会话。
诊断会话启用服务器中的一组特定诊断服务和/或功能。该服务提供了服务器可以报告对启用的诊断会话有效的数据链路层特定参数值(例如定时参数值)的能力。本文件的用户应定义每个诊断会话中启用的服务和/或功能的确切集合。
服务器中应始终只有一个激活的诊断会话。服务器应始终在通电时启动默认诊断会话。如果没有启动其他诊断会话,则只要服务器通电,默认诊断会话就会运行。
服务器应能够在正常操作条件下和车辆制造商规定的其他操作条件下(如跛行回家操作条件)提供诊断功能。
如果客户端请求了一个已经在运行的诊断会话,则服务器应发送一条肯定响应消息,并如图7所示,该消息描述了在会话之间转换时服务器的内部行为。
每当客户端请求新的诊断会话时,服务器应在新会话的计时在服务器中激活之前发送 DiagnosticSessionControl 肯定响应消息。某些情况下可能要求在发送肯定响应之前进入新会话,同时保持旧协议的响应计时。如果服务器无法启动请求的新诊断会话,则它应以 DiagnosticSessionControl 否定响应消息进行响应,并且当前会话将继续(有关服务器和客户端应如何表现的更多信息,请参阅诊断会话参数定义)。非默认诊断会话(不包括编程会话)中的诊断服务和诊断功能集是默认会话中提供的功能的超集,这意味着在切换到任何非默认诊断会话时,默认会话的诊断功能也可用。会话可以启用车辆制造商特定的服务和功能,这些服务和功能不属于本文档的一部分。
要启动新的诊断会话,服务器可能会要求满足某些条件。所有这些条件都是用户定义的。这些条件的示例包括:
- 服务器可能只允许具有特定客户端标识符(客户端诊断地址)的客户端启动特定的新诊断会话(例如,服务器可能要求只有具有客户端标识符 F416 的客户端才能启动扩展诊断会话)。
- 可能需要满足某些安全条件(例如,车辆不得移动或发动机不得运转)。例如,转换到编程会话可能会导致正常功能的丧失,因此某些 ECU 可能要求车辆处于安全状态。
在某些系统中,当启动新的诊断会话时,需要更改通信计时参数。诊断会话控制服务实体可以使用适当的服务原语来更改底层指定的计时参数,以更改本地节点中的通信计时,并可能更改客户端想要与之通信的节点中的通信计时。
图 7 概述了诊断会话转换以及服务器在转换到另一个会话时应执行的操作。
图 7 — 服务器诊断会话状态图
关键
- defaultSession:当服务器处于 defaultSession 中并且客户端请求启动 defaultSession 时,服务器应完全重新初始化 defaultSession。服务器应重置激活会话期间所有激活/启动/更改的设置/控件。这不包括编入非易失性存储器的长期更改
- 其他转换到任何默认会话:当服务器从默认会话转换到除默认会话之外的任何其他会话时,服务器应仅暂停在默认会话期间通过 ResponseOnEvent (86) 服务在服务器中配置的事件(类似于非默认会话处于活动状态后的时间段内的 stopResponseOnEvent)。
- 相同或其他会话:当服务器从默认会话以外的任何诊断会话转换到默认会话以外的另一个会话(包括当前活动的诊断会话)时,服务器应(重新)初始化诊断会话,这意味着:
- 通过 ResponseOnEvent (86) 服务在服务器中配置的每个事件都应停止
- 安全访问应重新锁定。安全访问的锁定应重置任何依赖于安全访问的活动诊断功能以将其解锁(例如,DID 的活动输入输出控制)
- 新会话中支持的、不依赖于安全访问的所有其他活动诊断功能均应保留。例如,任何配置的定期调度程序在从一个非默认会话转换到另一个或同一个非默认会话时都应保持活动状态,并且通信控制和控制 DTC 设置服务的状态不应受到影响,这意味着在会话切换时禁用正常通信时,正常通信应保持禁用状态
- 转换到默认会话:当服务器从默认会话以外的任何诊断会话转换到默认会话时,服务器应恢复通过 ResponseOnEvent (86) 服务在服务器中配置的每个事件,并且事件窗口仍然有效。此外,应在服务器中激活锁定的安全级别。应终止默认会话中不支持的任何其他活动诊断功能。例如,应禁用任何配置的定期调度程序或输出控制,并应重置 CommunicationControl 和 ControlDTCSetting 服务的状态,这意味着在会话切换到默认会话时,应重新启用被禁用的正常通信。服务器应重置激活会话期间所有激活/启动/更改的设置/控件。这不包括编入非易失性存储器的长期更改
表 23 指定了默认会话和非默认会话(定时服务)期间允许的服务。任何非默认会话都与诊断会话计时器绑定,该计时器应由客户端保持活动状态。
表 23 — 默认和非默认诊断会话期间允许的服务
服务 | 默认会话 | 非默认会话 |
---|---|---|
DiagnosticSessionControl-0x10 | X | X |
ECUReset-0x11 | X | X |
SecurityAccess-0x27 | 不适用 | X |
CommunicationControl-0x28 | 不适用 | X |
TesterPresent-0x3E | X | X |
Authentication-0x29 | X | X |
SecuredDataTransmission-0x84 | 不适用 | X |
ControlDTCSetting-0x85 | 不适用 | X |
ResponseOnEvent-0x86 | X a X^{a} X |