UDS - 10.2 DiagnosticSessionControl (10) service

10.3 诊断会话控制(10)服务

来自:ISO 14229-1-2020.pdf

10.2.1 服务说明

DiagnosticsSessionControl服务用于在服务器中启用不同的诊断会话。

诊断会话启用服务器中的一组特定诊断服务和/或功能。该服务提供了服务器可以报告对启用的诊断会话有效的数据链路层特定参数值(例如定时参数值)的能力。本文件的用户应定义每个诊断会话中启用的服务和/或功能的确切集合。

服务器中应始终只有一个激活的诊断会话。服务器应始终在通电时启动默认诊断会话。如果没有启动其他诊断会话,则只要服务器通电,默认诊断会话就会运行。

服务器应能够在正常操作条件下和车辆制造商规定的其他操作条件下(如跛行回家操作条件)提供诊断功能。

如果客户端请求了一个已经在运行的诊断会话,则服务器应发送一条肯定响应消息,并如图7所示,该消息描述了在会话之间转换时服务器的内部行为。

每当客户端请求新的诊断会话时,服务器应在新会话的计时在服务器中激活之前发送 DiagnosticSessionControl 肯定响应消息。某些情况下可能要求在发送肯定响应之前进入新会话,同时保持旧协议的响应计时。如果服务器无法启动请求的新诊断会话,则它应以 DiagnosticSessionControl 否定响应消息进行响应,并且当前会话将继续(有关服务器和客户端应如何表现的更多信息,请参阅诊断会话参数定义)。非默认诊断会话(不包括编程会话)中的诊断服务和诊断功能集是默认会话中提供的功能的超集,这意味着在切换到任何非默认诊断会话时,默认会话的诊断功能也可用。会话可以启用车辆制造商特定的服务和功能,这些服务和功能不属于本文档的一部分。

要启动新的诊断会话,服务器可能会要求满足某些条件。所有这些条件都是用户定义的。这些条件的示例包括:

  • 服务器可能只允许具有特定客户端标识符(客户端诊断地址)的客户端启动特定的新诊断会话(例如,服务器可能要求只有具有客户端标识符 0xF4 的客户端才能启动扩展诊断会话)。
  • 可能需要满足某些安全条件(例如,车辆不得移动或发动机不得运转)。例如,转换到编程会话可能会导致正常功能的丧失,因此某些 ECU 可能要求车辆处于安全状态。

在某些系统中,当启动新的诊断会话时,需要更改通信计时参数。诊断会话控制服务实体可以使用适当的服务原语来更改底层指定的计时参数,以更改本地节点中的通信计时,并可能更改客户端想要与之通信的节点中的通信计时。

图 7 概述了诊断会话转换以及服务器在转换到另一个会话时应执行的操作。

在这里插入图片描述
图 7 — 服务器诊断会话状态图

关键

  1. defaultSession:当服务器处于 defaultSession 中并且客户端请求启动 defaultSession 时,服务器应完全重新初始化 defaultSession。服务器应重置激活会话期间所有激活/启动/更改的设置/控件。这不包括编入非易失性存储器的长期更改
  2. 其他转换到任何默认会话:当服务器从默认会话转换到除默认会话之外的任何其他会话时,服务器应仅暂停在默认会话期间通过 ResponseOnEvent (86) 服务在服务器中配置的事件(类似于非默认会话处于活动状态后的时间段内的 stopResponseOnEvent)。
  3. 相同或其他会话:当服务器从默认会话以外的任何诊断会话转换到默认会话以外的另一个会话(包括当前活动的诊断会话)时,服务器应(重新)初始化诊断会话,这意味着:
    1. 通过 ResponseOnEvent (86) 服务在服务器中配置的每个事件都应停止
    2. 安全访问应重新锁定。安全访问的锁定应重置任何依赖于安全访问的活动诊断功能以将其解锁(例如,DID 的活动输入输出控制)
    3. 新会话中支持的、不依赖于安全访问的所有其他活动诊断功能均应保留。例如,任何配置的定期调度程序在从一个非默认会话转换到另一个或同一个非默认会话时都应保持活动状态,并且通信控制和控制 DTC 设置服务的状态不应受到影响,这意味着在会话切换时禁用正常通信时,正常通信应保持禁用状态
  4. 转换到默认会话:当服务器从默认会话以外的任何诊断会话转换到默认会话时,服务器应恢复通过 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
  • 27
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uds-server是一种基于Unix域套接字的服务器,用于实现进程间通信。Unix域套接字是一种在同一台主机上的进程间进行通信的机制,相比于网络套接字具有更高的效率和安全性。 uds-server可以充当服务器角色,接收客户端的连接请求,并处理客户端发来的数据。它可以用于实现各种不同的功能,例如文件传输、共享内存、管道等。通过uds-server,不同的进程可以在同一台机器上进行有效的数据交换,提高了程序的灵活性和性能。 uds-server的工作方式包括以下几个步骤。首先,uds-server需要创建一个Unix域套接字,以便客户端可以通过该套接字与之建立连接。然后,uds-server会监听该套接字,等待客户端的连接请求。一旦有客户端请求连接,uds-server就会接受该连接,并创建一个新的套接字,用于与该客户端进行通信。 接下来,uds-server可以根据具体的需求,对客户端发送过来的数据进行处理。例如,可以将客户端发送的数据写入文件,或者进行一些计算操作。在完成后,uds-server可以将处理结果发送给客户端。 uds-server的优点在于它能够在同一台主机上进行进程间通信,不需要经过网络传输,因此速度更快、效率更高。另外,由于使用Unix域套接字进行通信,所以通信过程更加安全可靠。 总而言之,uds-server是一种基于Unix域套接字的服务器,可以在同一台主机上实现进程间的高效通信。它的应用范围广泛,可以满足不同的需求,并提供更快速和安全的数据交换解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值