EthSM产品参考手册
缩写词注解
缩写词 |
英文全称 |
中文解释 |
EthSM |
Ethernet State Manager |
以太网状态管理 |
EthIf |
Ethernet Interface |
以太网接口模块 |
SoAd |
Socket Adapter |
Socket适配层 |
简介
EthSM模块提供一套抽象的接口给ComM用于打开和关闭以太网通信。
图1-1 EthSM模块层次图
参考资料
[1] AUTOSAR_SWS_EthernetStateManager.pdf,R19-11
[2] AUTOSAR_SWS_EthernetInterface.pdf,R19-11
[3] AUTOSAR_SWS_ComManager.pdf,R19-11
功能描述
以太网通信状态管理功能
以太网通信状态管理功能介绍
EthSM提供接口给ComM,用于接受来自ComM的通信模式请求。EthSM根据ComM提供的参数,处理内部的网络模式状态机。根据状态机的迁移条件,调用EthIf和TcpIp的接口控制以太网控制器,收发器以及TcpIp协议栈来控制以太网通信的状态。并将当前的通信模式通过ComM和BswM的接口通知给ComM和BswM。
以太网通信状态管理功能功能实现
EthSM根据以下状态机管理以太网通信状态:
图2-1 EthSM网络状态转换状态机
状态机包括以下几个状态:
ETHSM_STATE_OFFLINE
ETHSM_STATE_WAIT_TRCVLINK
ETHSM_STATE_WAIT_ONLINE
ETHSM_STATE_ONLINE
ETHSM_STATE_ONHOLD
ETHSM_STATE_WAIT_OFFLINE
状态迁移过程
初始化后EthSM处于ETHSM_STATE_OFFLINE状态。
当EthSM_RequestComMode(COMM_FULL_COMMUNICATION)被调用,EthSM调用EthIf_SetControllerMode(ETH_MODE_ACTIVE)请求EthIf将以太网控制器设置为ACTIVE模式,并调用BswM_EthSM_CurrentState(ETHSM_STATE_WAIT_TRCVLINK)通知BswM模块。之后EthSM从ETHSM_STATE_OFFLINE迁移到ETHSM_STATE_WAIT_TRCVLINK状态。
当EthSM_TrcvLinkStateChg(ETHTRCV_LINK_STATE_ACTIVE)被调用,EthSM从ETHSM_STATE_WAIT_TRCVLINK迁移到ETHSM_STATE_WAIT_ONLINE状态。同时调用TcpIp_RequestComMode(TCPIP_STATE_ONLINE)请求将TCPIP模块将TCPIP协议栈设置到ONLINE模式,并调用BswM_EthSM_CurrentState(ETHSM_STATE_WAIT_ONLINE)接口通知BswM模块。
当EthSM_TcpIpModeIndication(TCPIP_STATE_ONLINE)被调用,EthSM从ETHSM_STATE_WAIT_ONLINE迁移到ETHSM_STATE_ONLINE模式,并调用BswM_EthSM_CurrentState(ETHSM_STATE_ONLINE)通知BswM模块,调用ComM_BusSM_ModeIndication(COMM_FULL_COMMUNICATION)通知ComM模块。
当EthSM_RequestComMode(COMM_NO_COMMUNICATION)被调用,EthSM调用TcpIp_RequestComMode(TCPIP_STATE_OFFLINE)请求TcpIp模块将TCPIP协议栈设置为OFFLINE模式,并调用BswM_EthSM_CurrentState(ETHSM_STATE_WAIT_OFFLINE)通知BswM模块。之后EthSM从ETHSM_STATE_ONLINE迁移到ETHSM_STATE_WAIT_OFFLINE状态。
当EthSM_TcpIpModeIndication(TCPIP_STATE_OFFLINE)被调用,EthSM从ETHSM_STATE_WAIT_OFFLINE迁移到ETHSM_STATE_OFFLINE状态。并调用EthIf_SetControllerMode(ETH_MODE_DOWN)请求EthIf将以太网控制器设置为DOWN模式,并调用BswM_EthSM_CurrentState(ETHSM_STATE_OFFLINE)通知BswM模块,调用ComM_BusSM_ModeIndication(COMM_NO_COMMUNICATION)通知ComM模块。
状态对照表
EthSM各状态下以太网控制器,收发器,TCPIP与ComM状态对照表:
图2-2 EthSM状态对照表
源文件描述
表3-1 EthSM组件文件描述
文件 |
说明 |
EthSM_Cfg.h |
用于定义EthSM模块预编译时用到的宏。 |
EthSM_Cfg.c |
配置参数源文件,包含各个配置项的定义。 |
EthSM_Types.h |
EthSM模块类型定义头文件。 |
EthSM_SchM.h |
提供给SchM的 头文件,用于公开周期调度函数:EthSM_MainFunction() |
EthSM_TcpIp.h |
提供给TcpIp的 头文件,用于公开回调函数:EthSM_TcpIpModeIndication () |
EthSM_MemMap.h |
EthSM模块函数和变量存储位置定义文件。 |
EthSM.h |
EthSM模块头 文件,通过加载该头文件访问EthSM公开的函数和数据类型 |
EthSM.c |
EthSM模块实现源文件,各API实现在该文件中 |
图3-1 EthSM组件文件交互关系图
API接口
类型定义
EthSM_NetworkModeStateType类型定义
名称 |
EthSM_NetworkModeStateType |
类型 |
枚举 |
范围 |
ETHSM_STATE_OFFLINE ETHSM_STATE_WAIT_TRCVLINK ETHSM_STATE_WAIT_ONLINE ETHSM_STATE_ONLINE ETHSM_STATE_ONHOLD ETHSM_STATE_WAIT_OFFLINE |
描述 |
表示EthSM状态机中的网络模式 |
输入函数描述
输入模块 |
API |
BswM |
BswM_EthSM_CurrentState |
ComM |
ComM_BusSM_ModeIndication |
Dem |
Dem_SetEventStatus |
EthIf |
EthIf_SetControllerMode |
EthIf_GetControllerMode |
|
TcpIp |
TcpIp_RequestComMode |
Det |
Det_ReportError |
静态接口函数定义
EthSM_Init函数定义
函数名称: |
EthSM_Init |
函数原型: |
void EthSM_Init (void) |
服务编号: |
0x07 |
同步/异步: |
同步 |
是 否可重入: |
不可重入 |
输入参数: |
无 |
输 入输出参数: |
无 |
输出参数: |
无 |
返回值: |
无 |
功能概述: |
EthSM模块初始化 |
EthSM_GetVersionInfo函数定义
函数名称: |
Eth SM_GetVersionInfo |
||
函数原型: |
void Eth SM_GetVersionInfo ( Std_ VersionInfoType* versioninfo ) |
||
服务编号: |
0x02 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重入 |
||
输入参数: |
无 |
||
输 入输出参数: |
无 |
||
输出参数: |
versioninfo |
值域: |
版本信息存储变量指针 |
返回值: |
无 |
||
功能概述: |
获取 EthSM模块版本信息 |
EthSM_RequestComMode函数定义
函数名称: |
EthS M_RequestComMode |
||
函数原型: |
Std_ReturnType EthS M_RequestComMode ( N etworkHandleType NetworkHandle, ComM_ModeType ComM_Mode ) |
||
服务编号: |
0x05 |
||
同步/异步: |
非同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
NetworkHandle |
值域: |
请求的通信通道(ComM 通道号) |
ComM_Mode |
值域: |
请求的通信模式 |
|
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
E_OK: 请求被接受 E_NOT_OK: 请求被拒绝 |
||
功能概述: |
模式切换请求处理 |
EthSM_GetCurrentComMode函数定义
函数名称: |
EthSM_ GetCurrentComMode |
||
函数原型: |
Std_ReturnType EthSM_ GetCurrentComMode ( NetworkHandleType NetworkHandle, ComM_ModeType* ComM_ModePtr ) |
||
服务编号: |
0x04 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
NetworkHandle |
值域: |
请求的通信通道(ComM 通道号) |
输 入输出参数: |
无 |
||
输出参数: |
ComM_ModePtr |
值域: |
指向 存储ComM_Mode变量的指针 |
返回值: |
E_OK: 请求被接受 E_NOT_OK: 请求被拒绝 |
||
功能概述: |
获 取当前的通信模式 |
EthSM_CtrlModeIndication函数定义
函数名称: |
EthSM_C trlModeIndication |
||
函数原型: |
void EthSM_C trlModeIndication ( uint8 CtrlIdx, Eth_ModeType CtrlMode ) |
||
服务编号: |
0x09 |
||
同步/异步: |
同步 |
||
是 否可重入: |
可重 入(仅限不同通道) |
||
输入参数: |
CtrlIdx |
值域: |
模式 发生变化的EthIf控制器Id |
CtrlMode |
值域: |
EthIf控制器模式 |
|
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
当以太网控制器 的模式发生改变时 ,EthIf会调用该函 数将控制器最新的 状态通知给EthSM。 |
EthSM_TrcvLinkStateChg函数定义
函数名称: |
EthS M_TrcvLinkStateChg |
||
函数原型: |
void EthS M_TrcvLinkStateChg ( uint8 CtrlIdx, Eth Trcv_LinkStateType Tr ansceiverLinkState ) |
||
服务编号: |
0x06 |
||
同 步/异步: |
同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
CtrlIdx |
值域: |
收发器连接状态 发生变化的EthIf控制器Id |
Tr ansceiverLinkState |
值域: |
收发器连接状态 |
|
输入 输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
当收 发器连接状态发生改 变时,EthIf会调用 当前接口通知EthSM |
EthSM_TcpIpModeIndication函数定义
函数名称: |
EthSM_Tc pIpModeIndication |
||
函数原型: |
void EthSM_Tc pIpModeIndication ( uint8 CtrlIdx, TcpIp_StateType TcpIpState ) |
||
服务编号: |
0x08 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
CtrlIdx |
值域: |
TcpIp模式 发生变化的EthIf控制器Id |
TcpIpState |
值域: |
变化后的TcpIp状态 |
|
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
TcpIp通过该 接口报告TcpIp状态 |
EthSM_MainFunction函数定义
函数名称: |
E thSM_MainFunction |
||
函数原型: |
void Et hSM_MainFunction( void ) |
||
服务编号: |
0x01 |
||
同步/异步: |
同步 |
||
是 否可重入: |
不可重入 |
||
输入参数: |
无 |
值域: |
无 |
输 入输出参数: |
无 |
||
输出参数: |
无 |
||
返回值: |
无 |
||
功能概述: |
EthS M模块周期调度函数 |
可配置函数定义
无。
配置
EthSMGeneral
图5-1 EthSMGeneral容器配置图
表5‑1 EthSMGeneral属性描述
UI 名称 |
描述 |
|||
E thSMDe vError Detect |
取值范围 |
STD_ON / STD_OFF |
默认取值 |
STD_OFF |
参数描述 |
EthSM是 否支持DET检测功能开关 |
|||
依赖关系 |
无 |
|||
Et hSMDum myMode |
取值范围 |
STD_ON / STD_OFF |
默认取值 |
STD_OFF |
参数描述 |
DUMMY模式是否开启开关 |
|||
依赖关系 |
无 |
|||
EthSM MainFu nction Period |
取值范围 |
0 .. INF |
默认取值 |
无 |
参数描述 |
EthS M周期处理函数调用周期 |
|||
依赖关系 |
无 |
|||
E thSMVe rsionI nfoApi |
取值范围 |
STD_ON / STD_OFF |
默认取值 |
STD_OFF |
参数描述 |
EthSM是否支 持获取版本信息API开关 |
|||
依赖关系 |
无 |
EthSMNetwork
图5-2 EthSMNetwork容器配置图
表5‑2 EthSMNetwork属性描述
UI名称* |
** 描述** |
|||
EthSM ChannelId |
取 值范围 |
STD_ON / STD_OFF |
默认取值 |
无 |
参 数描述 |
EthSM分配的通道ID |
|||
依 赖关系 |
无 |
|||
EthSMCo mMNetwork HandleRef |
取 值范围 |
无 |
默认取值 |
无 |
参 数描述 |
引用到一个C omM中定义的通道,用于 识别一个特定的网络。 |
|||
依 赖关系 |
无 |
|||
EthSM EthIfCont rollerRef |
取 值范围 |
无 |
默认取值 |
无 |
参 数描述 |
引用到Et hIf中定义的一个通道。 |
|||
依 赖关系 |
无 |
|||
EthSMDem EventPara meterRefs |
取 值范围 |
无 |
默认取值 |
无 |
参 数描述 |
引用到DEM E vent,用于向Dem报告ET HSM_E_LINK_DOWN错误。 |
|||
依 赖关系 |
无 |