目录

一、概述

二、限制与约束

三、功能描述

3.1 网络通信模式请求的转换

3.2 当前网络通信方式的输出

3.3 外围设备的控制

3.3.1 以太网接口控制器

3.4 多网络

3.5 网络模式状态机

3.5.1 初始化

3.5.2 在亚状态ETHSM_STATE_OFFLINE中的行为

3.5.3 子状态ETHSM_STATE_WAIT_TRCVLINK中的行为

3.5.4 在亚状态ETHSM_STATE_WAIT_ONLINE中的行为

3.5.5 在亚状态ETHSM_STATE_ONLINE中的行为

3.5.6 在亚状态ETHSM_STATE_WAIT_OFFLINE中的行为

3.5.7 在亚状态ETHSM_STATE_ONHOLD中的行为

3.5.8 关于状态转换的信息

3.6 错误分类

3.6.1 开发错误

四、API接口

4.1 API定义

4.2 回调接口

4.3 调度接口


一、概述

        规范规定了AUTOSAR 基本软件模块以太网状态管理器的功能、API和配置。在AUTOSAR分层软件体系结构中,以太网状态管理器属于ECU抽象层,或者更准确地说,属于通信硬件抽象层。

以太网状态管理器的主要任务可以总结如下:

  • 以太网状态管理器应向autosar通信管理器提供一个抽象接口,以启动或关闭以太网集群上的通信。
  • 以太网状态管理器不直接访问以太网硬件(以太网通信控制器和以太网收发器),而是通过以太网接口。以太网接口将请求重定向到适当的驱动程序模块。

【AUTOSA】-LMLPHP

二、限制与约束

        EthSM只能用于以太网通信。它的主要目标是与EthIf一起控制一个或多个底层以太网控制器和以太网收发器驱动程序。不支持以太网(即CAN、LIN或LlexRay)以外的其他协议。

三、功能描述

        一个ECU可以有不同的通信网络。每个网络都必须用一个唯一的网络句柄来标识。ComM从网络中请求通信模式。它通过配置知道哪个句柄被分配给什么类型的网络。对于以太网,它使用以太网状态管理器,该管理器负责以太网网络的控制流抽象。

3.1 网络通信模式请求的转换

【规范】EthSM应向ComM提供一个API,ComM可以用来请求以太网网络的通信模式。

【规范】根据此API提交的参数,EthSM应执行相关网络模式状态机的状态转换。

【规范】此转换应将请求转换为相应的API调用,以控制所分配的以太网外围设备。

3.2 当前网络通信方式的输出

网络的当前通信模式可以与请求的模式不同。EthSM必须通过以下两种接口向通信提供当前通信模式的信息:

【规范】EthSM应提供一个API,可由ComM轮询,以获得以太网的当前通信模式。

【规范】EthSM应使用ComM的回调通知来通知ComM通信模式的变化。

3.3 外围设备的控制

3.3.1 以太网接口控制器

一个以太网接口控制器和一个ComM通道属于一个特定的以太网网络(句柄)。

【规范】根据网络模式状态机,EthSM应控制每个以太网网络的以太网接口控制器模式。

【规范】EthSM应使用EthIf的API来控制指定的以太网接口控制器的运行模式。

3.4 多网络

以太网状态管理器应能够处理单独的网络。这涉及单独的物理网络,也涉及同一物理网络上的VLAN。

在这两种情况下,分离都是通过每个物理或虚拟网络的单独句柄来完成的。vlan作为单独的网络出现在更高的层次(ComM)上。E.g.:如果有一个物理以太网接口控制器和分配给它的两个vlan,则存在两个ComM通道。

3.5 网络模式状态机

【规范】EthSM应为每个配置的网络处理器实现一台网络模式状态机(EthSM状态机)。

【规范】EthSM状态机应包括两个主要状态: ETHSM_FULL_COMMUNICATION和ETHSM_NO_COMMUNICATION.

【规范】ETHSM_NO_COMMUNICATION应有3个子状态:ETHSM_STATE_OFFLINE、ETHSM_STATE_WAIT_TRCVLINK和ETHSM_STATE_WAIT_ONLINE。

【规范】ETHSM_FULL_COMMUNICATION应有3个子状态: ETHSM_STATE_ONLINE、ETHSM_STATE_ONHOLD和ETHSM_STATE_WAIT_OFFLINE。

【AUTOSA】-LMLPHP

表1显示了根据ComM请求的通信模式,以太网sm子状态的预期状态、受影响的以太网硬件的状态和IP分配。

【AUTOSA】-LMLPHP

3.5.1 初始化

【规范】在EthSM初始化后,状态机应会过渡到ETHSM_STATE_OFFLINE。

3.5.2 在亚状态ETHSM_STATE_OFFLINE中的行为

(1)从子状态脱机转换到WAIT_TRCVLINK

【规范】在ETHSM_STATE_OFFLINE状态下,如果ComM为相应的网络句柄请求COMM_FULL_COMMUNICATION或COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则状态机将过渡到ETHSM_STATE_WAIT_TRCVLINK。

【规范】从ETHSM_STATE_OFFLINE到ETHSM_STATE_WAIT_TRCVLINK的转换应根据请求的通信模式设置控制器模式:

  • -如果通信请求COMM_FULL_COMMUNICATION,则相应EthIfCtrl的控制器模式为ETH_MODE_ACTIVE
  • -如果通信请求COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则应使用ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST请求相应的EthIfCtrl的控制器模式

3.5.3 子状态ETHSM_STATE_WAIT_TRCVLINK中的行为

【规范】如果EthSMWakeupSleepOnDatalineEnabled设置为TRUE,EthSM状态机处于ETHSM_STATE_WAIT_TRCVLINK状态,ComM请求现在为COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则EthSM应使用ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST请求相应的EthIfCtrl。

(1)从子状态WAIT_TRCVLINK转换到WAIT_OFFLINE

【规范】在状态ETHSM_STATE_WAIT_TRCVLINK下,如果ComM请求COMM_NO_COMMUNICATION获取相应的网络句柄,则状态机将过渡到ETHSM_STATE_OFFLINE。

【规范】从ETHSM_STATE_WAIT_TRCVLINK到ETHSM_STATE_OFFLINE的转换应将控制器模式设置为ETH_MODE_DOWN。

(2)从子状态WAIT_TRCVLINK转换到WAIT_ONLINE

【规范】在状态ETHSM_STATE_WAIT_TRCVLINK下,如果以太网接口报告了相应的网络句柄的ETHTRCV_LINK_STATE_ACTIVE,则状态机应会过渡到ETHSM_STATE_WAIT_ONLINE。

【规范】从ETHSM_STATE_WAIT_TRCVLINK到ETHSM_STATE_WAIT_ONLINE的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_ONLINE。

3.5.4 在亚状态ETHSM_STATE_WAIT_ONLINE中的行为

【规范】如果EthSMWakeupSleepOnDatalineEnabled设置为TRUE,且EthSM处于ETHSM_STATE_WAIT_ONLINE状态,ComM请求现在为COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则EthSM应使用ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST请求相应的EthIfCtrl。

(1)从子状态WAIT_ONLINE转换到WAIT_TRCVLINK

【规范】在状态ETHSM_STATE_WAIT_ONLINE下,如果以太网接口报告了相应的网络句柄的ETHTRCV_LINK_STATE_DOWN,则状态机将会过渡到ETHSM_STATE_WAIT_TRCVLINK。

【规范】从ETHSM_STATE_WAIT_ONLINE到ETHSM_STATE_WAIT_TRCVLINK的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_OFFLINE。

(2)从子状态WAIT_ONLINE转换到OFFONLE

【规范】在状态ETHSM_STATE_WAIT_ONLINE下,如果ComM请求COMM_NO_COMMUNICATION获取对应的网络句柄,则状态机将过渡到ETHSM_STATE_OFFLINE。

【规范】从ETHSM_STATE_WAIT_ONLINE到ETHSM_STATE_OFFLINE的转换会将控制器模式设置为ETH_MODE_DOWN。

【规范】从ETHSM_STATE_WAIT_ONLINE到ETHSM_STATE_OFFLINE的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_OFFLINE。

(3)从子状态WAIT_ONLINE和ONLINE状态的转换

【规范】在ETHSM_STATE_WAIT_ONLINE状态下,如果TcpIp模块报告了对应的网络句柄的TCPIP_STATE_ONLINE,则状态机应会过渡到ETHSM_STATE_ONLINE。

【规范】从ETHSM_STATE_WAIT_ONLINE成功转换到ETHSM_STATE_ONLINE后,以太网状态管理器将主状态设置为ETHSM_FULL_COMMUNICATION,用通信模式COMM_FULL_COMMUNICATION调用ComM的回调函数ComM_BusSM_ModeIndication。

3.5.5 在亚状态ETHSM_STATE_ONLINE中的行为

【规范】如果EthSM状态机处于ETHSM_STATE_ONLINE状态,EthSMWakeupSleepOnDatalineEnabled被设置为TRUE和ComM请求COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则应使用ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST请求相应的EthIfCtrl的控制器模式。

(1)从子状态ONLINE转换到WAIT_ONLINE

【规范】在ETHSM_STATE_ONLINE状态下,如果TcpIp模块报告了对应的网络句柄的TCPIP_STATE_OFFLINE,则状态机应会过渡到ETHSM_STATE_WAIT_ONLINE。

【规范】从ETHSM_STATE_ONLINE成功转换到ETHSM_STATE_WAIT_ONLINE后,以太网状态管理器将主状态设置为ETHSM_NO_COMMUNICATION,用通信模式COMM_NO_COMMUNICATION调用ComM的回调函数ComM_BusSM_ModeIndication。

(2)从子状态在线过渡到WAIT_OFFLINE

【规范】在状态ETHSM_STATE_ONLINE下,如果ComM请求COMM_NO_COMMUNICATION获取相应的网络句柄,则状态机将过渡到ETHSM_STATE_WAIT_OFFLINE。

【规范】进入状态ETHSM_STATE_WAIT_OFFLINE后,应使用TCPIP_STATE_OFFLINE调用API TcpIp_RequestComMode。

(3)从子状态在线过渡到ONHOLD

【规范】在状态ETHSM_STATE_ONLINE下,如果以太网接口报告了相应的网络句柄的ETHTRCV_LINK_STATE_DOWN,则状态机将会过渡到ETHSM_STATE_ONHOLD。

【规范】从ETHSM_STATE_ONLINE到ETHSM_STATE_ONHOLD的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_ONHOLD。

【规范】如果存在可选的配置参数ETHSM_E_LINK_DOWN,则在从ETHSM_STATE_ONLINE切换到ETHSM_STATE_ONHOLD时,应将具有事件状态DEM_EVENT_STATUS_FAILED的ETHSM_E_LINK_DOWN报告给DEM模块

3.5.6 在亚状态ETHSM_STATE_WAIT_OFFLINE中的行为

【规范】在状态ETHSM_STATE_WAIT_OFFLINE下,如果ComM请求COMM_NO_COMMUNICATION获取对应的网络句柄,EthSM应用TCPIP_STATE_OFFLINE调用API TcpIp_RequestComMode。

(1)从子状态WAIT_OFFLINE转换到脱机状态

【规范】在状态ETHSM_STATE_WAIT_OFFLINE下,如果TcpIp modul报告了对应的网络句柄的TCPIP_STATE_OFFLINE,则状态机将会过渡到ETHSM_STATE_OFFLINE。

【规范】从ETHSM_STATE_WAIT_OFFLINE到ETHSM_STATE_OFFLINE的转换应将控制器模式设置为ETH_MODE_DOWN。

【规范】从ETHSM_STATE_WAIT_OFFLINE成功转换到ETHSM_STATE_OFFLINE后,以太网状态管理器将主状态设置为ETHSM_NO_COMMUNICATION,用通信模式COMM_NO_COMMUNICATION调用ComM的回调函数ComM_BusSM_ModeIndication。

(2)从子状态WAIT_OFFLINE到在线的转换

【规范】在ETHSM_STATE_WAIT_OFFLINE状态下,如果ComM为相应的网络句柄请求COMM_FULL_COMMUNICATION或COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则状态机将过渡到ETHSM_STATE_ONLINE。

【规范】如果ComM请求使用COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST的EthSM状态机,则从ETHSM_STATE_WAIT_OFFLINE到ETHSM_STATE_ONLINE的转换应将控制器模式设置为ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST。

【规范】如果ComM请求使用COMM_FULL_COMMUNICATION的EthSM状态机,则从ETHSM_STATE_WAIT_OFFLINE到ETHSM_STATE_ONLINE的转换应将控制器模式设置为ETH_MODE_ACTIVE。

【规范】从ETHSM_STATE_WAIT_OFFLINE到ETHSM_STATE_WAIT_ONLINE的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_ONLINE。

3.5.7 在亚状态ETHSM_STATE_ONHOLD中的行为

【规范】如果EthSM状态机处于ETHSM_STATE_ONHOLD状态,EthSMWakeupSleepOnDatalineEnabled被设置为TRUE和ComM请求COMM_FULL_COMMUNICATION_WITH_WAKEUP_REQUEST,则应使用ETH_MODE_ACTIVE_WITH_WAKEUP_REQUEST请求相应的EthIfCtrl的控制器模式。

(1)从ONHOLD到在线

【规范】在ETHSM_STATE_ONHOLD状态下,如果以太网接口报告了相应的网络句柄的ETHTRCV_LINK_STATE_ACTIVE,则状态机将会过渡到ETHSM_STATE_ONLINE。

【规范】从ETHSM_STATE_ONHOLD到ETHSM_STATE_ONLINE的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_ONLINE。

【规范】如果存在可选的配置参数ETHSM_E_LINK_DOWN,则在从ETHSM_STATE_ONHOLD切换到ETHSM_STATE_ONLINE时,应将具有事件状态DEM_EVENT_STATUS_PASSED的ETHSM_E_LINK_DOWN报告给DEM模块。

(2)从子状态ONHOLD转换到WAIT_TRCVLINK

【规范】在ETHSM_STATE_ONHOLD状态下,如果TcpIp模块报告了对应的网络句柄的TCPIP_STATE_OFFLINE,则状态机应会过渡到ETHSM_STATE_WAIT_TRCVLINK。

【规范】从ETHSM_STATE_ONHOLD成功转换到E ETHSM_STATE_WAIT_TRCVLINK后,以太网状态管理器将主状态设置为ETHSM_NO_COMMUNICATION,用通信模式COMM_NO_COMMUNICATION调用ComM的回调函数ComM_BusSM_ModeIndication。

(3)从子状态ONHOLD转换到脱机状态

【规范】在状态ETHSM_STATE_ONHOLD下,如果ComM请求COMM_NO_COMMUNICATION获取相应的网络句柄,则状态机将过渡到ETHSM_STATE_OFFLINE。

【规范】从ETHSM_STATE_ONHOLD到ETHSM_STATE_OFFLINE的转换应将控制器模式设置为ETH_MODE_DOWN。

【规范】从ETHSM_STATE_ONHOLD到ETHSM_STATE_OFFLINE的转换应从TcpIp模块请求TcpIp状态TCPIP_STATE_OFFLINE。

【规范】从ETHSM_STATE_ONHOLD成功转换到ETHSM_STATE_OFFLINE后,以太网状态管理器将主状态设置为ETHSM_NO_COMMUNICATION,用通信模式COMM_NO_COMMUNICATION调用ComM的回调函数ComM_BusSM_ModeIndication。

3.5.8 关于状态转换的信息

【规范】当EthSM状态机进入子状态时,EthSM应通过调用BswM_EthSM_CurrentState()向BswM报告已进入的子状态(例如,当进入子状态ETHSM_STATE_ONLINE时,EthSM应调用BswM_EthSM_CurrentState(ETHSM_STATE_ONLINE)。初始化后到ETHSM_STATE_OFFLINE的转换(见[SWS_EthSM_00025])不得向BswM报告。

3.6 错误分类

3.6.1 开发错误

【AUTOSA】-LMLPHP

四、API接口

4.1 API定义

  1. EthSM_Init
  2. EthSM_GetVersionInfo
  3. EthSM_RequestComMode
  4. EthSM_GetCurrentComMode

4.2 回调接口

  1. EthSM_CtrlModeIndication
  2. EthSM_TrcvLinkStateChg
  3. EthSM_TcpIpModeIndication
  4. EthSM_SleepIndication

4.3 调度接口

  1. EthSM_MainFunction

 

05-11 12:37