16 KiB
以太网状态管理器规范
AUTOSAR CP Release 4.4.0
翻译说明:本文件为 AUTOSAR SWS Ethernet State Manager (EthSM) 规范的中文翻译版本。文档标识 415,对应原文
AUTOSAR_SWS_EthernetStateManager.pdf(54 页)。
元信息
| 字段 | 值 |
|---|---|
| 文档标题 | 以太网状态管理器规范 (Specification of Ethernet State Manager) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 415 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
| 文档 ID | AUTOSAR_SWS_EthernetStateManager |
文档变更历史
| 日期 | 发布版本 | 修改者 | 变更说明 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 错误分类已修正;编辑性变更 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 默认错误已移除;编辑性变更 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 移除 Set 和 Get Transceiver 模式功能;更正 EthSM_TcpIpModeIndication 回调返回值;统一主函数周期与其他模块一致;移除 Get current internal mode |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 统一时序图、网络状态机和功能描述;调试支持标记为已废弃;若 TcpIp 状态未被接受则上报 DET;适配 DET 重命名;错误处理:添加 Runtime Errors 和 Transient Faults 表 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 从同步 API 改为异步 API;添加额外的回调函数;更改现有函数的行为;编辑性变更 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 超时后的纠正措施;从 ETHSM_STATE_ONLINE 出发的非互斥转换;编辑性变更 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 全 com 请求优化;内部状态名标准化;若干接口的异步行为;澄清和修正;编辑性变更 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 新状态机(新子状态、新状态条件、新 API);更新第 10 章;新增 Transceiver Link 关闭时的生产错误;一般性更新(修正和措辞) |
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 更新第 10 章(参数调整) |
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 修正 SW 模块版本信息的命名约定;修正第 10 章配置参数 EthSMNetworkIndex;从 GetVersionId 结构体中移除 InstanceID;添加额外回调函数 SoAd_BusSM_ModeIndication 在 EthTrcv 和 EthController 成功初始化后调用 |
| 2010-02-02 | 3.1.4 | AUTOSAR Administration | 初始发布 |
目录
1 介绍与功能概述
本规范规定了 AUTOSAR 基础软件模块 Ethernet State Manager (EthSM) 的功能、API 和配置。EthSM 将 ComM 的通信模式请求映射到 TcpIp、Ethernet Interface、Ethernet Transceiver、Ethernet Switch(可选)的具体状态。
1.1 模块职责
EthSM 的主要职责:
- 接收 ComM 的网络模式请求
- 协调 TcpIp 模块的通信状态
- 监控以太网接口和收发器状态
- 向上层(ComM、SoAd)通知当前网络状态
- 处理多网络
1.2 模块在 AUTOSAR 架构中的位置
ComM (通信管理器)
│
EthSM ← 本规范
│
┌────┴────┬─────────┐
│ │ │
TcpIp EthIf EthTrcv / EthSwt
│ │ │
└────┬────┴────┬────┘
│ │
TCP/IP 以太网硬件
1.3 关键概念
1.3.1 状态机
EthSM 实现网络状态机:
ETHSM_STATE_OFFLINE:离线ETHSM_STATE_WAIT_TRCVLINK:等待收发器链路ETHSM_STATE_WAIT_ONLINE:等待在线ETHSM_STATE_ONLINE:在线ETHSM_STATE_ONHOLD:保持(4.2.1 新增)ETHSM_STATE_WAIT_OFFLINE:等待离线
1.3.2 商业现货(COTS)TCP/IP 栈支持
EthSM 支持 COTS TCP/IP 栈,通过 EthSM_UseCsmIf 配置参数控制。
2 缩写词与缩略语
| 缩写 | 描述 |
|---|---|
| API | Application Program Interface |
| AUTOSAR | Automotive Open System Architecture |
| BSW | Basic Software |
| ComM | Communication Manager |
| COTS | Commercial Off-The-Shelf |
| DEM | Diagnostic Event Manager |
| DET | Default Error Tracer |
| ECU | Electronic Control Unit |
| EthIf | Ethernet Interface |
| EthSM | Ethernet State Manager |
| EthTrcv | Ethernet Transceiver Driver |
| EthSwt | Ethernet Switch Driver |
| NM | Network Management |
| PDU | Protocol Data Unit |
| RTE | Runtime Environment |
| SoAd | Socket Adaptor |
| TCP | Transmission Control Protocol |
| TCP/IP | TCP over IP |
| UDP | User Datagram Protocol |
3 相关文档
3.1 输入文档
| 编号 | 文档 |
|---|---|
| [1] | AUTOSAR SWS BSW General — AUTOSAR_SWS_BSWGeneral.pdf |
| [2] | AUTOSAR SRS BSW General — AUTOSAR_SRS_BSWGeneral.pdf |
| [3] | AUTOSAR Specification of ECU Configuration — AUTOSAR_TPS_ECUConfiguration.pdf |
| [4] | AUTOSAR Specification of COM Manager — AUTOSAR_SWS_ComManager.pdf |
| [5] | AUTOSAR Specification of TCP/IP — AUTOSAR_SWS_TcpIp.pdf |
| [6] | AUTOSAR Specification of Ethernet Interface — AUTOSAR_SWS_EthernetInterface.pdf |
| [7] | AUTOSAR Specification of Ethernet Transceiver Driver — AUTOSAR_SWS_EthernetTransceiverDriver.pdf |
| [8] | AUTOSAR Specification of Ethernet Switch Driver — AUTOSAR_SWS_EthernetSwitchDriver.pdf |
| [9] | AUTOSAR Specification of Socket Adaptor — AUTOSAR_SWS_SocketAdaptor.pdf |
| [10] | AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf |
| [11] | AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf |
3.2 相关规范
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 EthSM。
4 约束与假设
4.1 限制
- EthSM 的每个网络对应一个状态机实例。
- COTS TCP/IP 栈支持仅限于 4.2.2 及以上版本。
- 网络模式请求是异步的(4.2.1 改)。
4.2 对汽车领域的适用性
EthSM 适用于所有使用以太网通信的汽车 ECU。
5 与其他模块的依赖关系
| 上层 | 说明 |
|---|---|
| ComM | 通过 ComM_NetworkMode 等模式通知 ComM |
| BswM | 通过 BswM_EthSM_CurrentState 通知 BswM |
| 同一层 | 说明 |
|---|---|
| TcpIp | 接收 TcpIp_TcpIpModeIndication 等回调 |
| EthIf | 接收 EthIf_TrcvLinkStateChangeIndication 等回调 |
| 下层 | 说明 |
|---|---|
| 无 |
5.1 文件结构
5.1.1 代码文件结构
参见 SWS_BSWGeneral 第 5.1.6 节。
5.1.2 版本检查
[SWS_EthSM_00001] ⌈ EthSM 模块应对所有导入的头文件执行版本检查。 ⌋ ()
6 需求可追踪性
摘要标记:本章需求可追踪性表覆盖
SRS_BSW_*、SRS_EthSM_*等约 30+ 项条目。代表性映射:
SRS_BSW_00004→SWS_EthSM_00001SRS_BSW_00159→SWS_EthSM_00002SRS_BSW_00323→SWS_EthSM_00008SRS_BSW_00406→SWS_EthSM_00009SRS_BSW_00407→SWS_EthSM_00011SRS_BSW_00450→SWS_EthSM_00012- 等等。完整映射请参见原文 PDF 第 6 章。
7 功能规范
7.1 网络通信模式请求的转换
EthSM 将 ComM 的模式请求转换为:
- 对 TcpIp:
TcpIp_RequestComMode - 对 EthIf / EthTrcv:模式切换(如
NORMAL/DOWN)
7.2 当前网络通信模式的输出
EthSM 通过 BswM_EthSM_CurrentState 通知 BswM 当前网络状态。
7.3 外设控制
7.3.1 以太网接口控制器
EthSM 不直接控制以太网控制器;通过 EthIf 间接控制。
7.4 多网络
EthSM 支持多个网络实例,每个网络有独立的状态机。
7.5 背景与基本原理
以太网通信栈的状态协调涉及多个模块(TcpIp、EthIf、EthTrcv)。EthSM 提供一个统一的接口来协调这些模块,使 ComM 无需了解以太网特定的细节。
7.6 网络模式状态机
EthSM 状态机包含以下状态:
| 状态 | 描述 |
|---|---|
ETHSM_STATE_OFFLINE |
离线状态(初始) |
ETHSM_STATE_WAIT_TRCVLINK |
等待收发器链路 |
ETHSM_STATE_WAIT_ONLINE |
等待 TcpIp 进入 ONLINE |
ETHSM_STATE_ONLINE |
在线(正常运行) |
ETHSM_STATE_ONHOLD |
保持(链路变化暂时保持) |
ETHSM_STATE_WAIT_OFFLINE |
等待离线(关闭过程中) |
7.6.1 初始转换
ETHSM_STATE_OFFLINE → 收到 ComM 的 FullCom 请求 → ETHSM_STATE_WAIT_TRCVLINK
7.6.2 WAIT_TRCVLINK ↔ OFFLINE
链路失败时返回 OFFLINE。
7.6.3 WAIT_TRCVLINK → WAIT_ONLINE
链路建立后请求 TcpIp 进入 ONLINE。
7.6.4 WAIT_ONLINE → OFFLINE
TcpIp 在超时内未进入 ONLINE 则返回 OFFLINE。
7.6.5 WAIT_ONLINE ↔ ONLINE
TcpIp 进入 ONLINE 后切换到 ONLINE;TcpIp 离开 ONLINE 则返回 WAIT_TRCVLINK。
7.6.6 ONLINE → WAIT_OFFLINE
收到 ComM 的 NoCom 请求后请求 TcpIp 进入 OFFLINE。
7.6.7 WAIT_OFFLINE → OFFLINE
TcpIp 进入 OFFLINE 后切换到 OFFLINE。
7.6.8 ONLINE ↔ ONHOLD(4.2.1 新增)
链路变化时进入 ONHOLD;链路恢复后返回 ONLINE。
7.6.9 ONHOLD → WAIT_TRCVLINK
链路永久丢失时返回。
7.6.10 ONHOLD → OFFLINE
链路长时间不可用时返回。
7.6.11 状态转换信息
所有状态转换通过 BswM_EthSM_CurrentState 通知 BswM。
7.7 错误通知
EthSM 通过 DEM 上报生产错误,通过 DET 上报开发错误(4.3.1 移除 DET)。
7.8 错误分类
7.8.1 开发错误
| 错误码 | 描述 |
|---|---|
ETHSM_E_NO_ERROR |
无错误 |
ETHSM_E_UNINIT |
EthSM 未初始化 |
ETHSM_E_PARAM_NETWORK |
网络参数无效 |
ETHSM_E_PARAM_POINTER |
指针参数为 NULL |
ETHSM_E_INV_MODE |
无效的模式 |
7.8.2 运行时错误
| 错误码 | 描述 |
|---|---|
ETHSM_E_TCPIP_STATE |
TcpIp 状态未接受 |
7.8.3 瞬态故障
无。
7.8.4 生产错误
| 错误码 | 描述 |
|---|---|
ETHSM_E_TRCV_LINK_DOWN |
收发器链路关闭 |
7.8.5 扩展生产错误
无。
7.9 商业现货 TCP/IP 栈的使用
[SWS_EthSM_00100] ⌈ 当 EthSM_UseCsmIf = TRUE 时,EthSM 通过 CSM 接口控制 COTS TCP/IP 栈。 ⌋ ()
8 API 规范
8.1 导入类型
| 类型 | 来源 |
|---|---|
Std_ReturnType |
Std |
Std_VersionInfoType |
Std |
ComM_ModeType |
ComM |
TcpIp_StateType |
TcpIp |
EthTrcv_LinkStateType |
EthTrcv |
8.2 类型定义
8.2.1 EthSM_ConfigType
typedef struct {
uint32 dummy;
} EthSM_ConfigType;
8.2.2 EthSM_NetworkModeStateType
typedef enum {
ETHSM_STATE_OFFLINE = 0,
ETHSM_STATE_WAIT_TRCVLINK,
ETHSM_STATE_WAIT_ONLINE,
ETHSM_STATE_ONLINE,
ETHSM_STATE_ONHOLD,
ETHSM_STATE_WAIT_OFFLINE
} EthSM_NetworkModeStateType;
8.3 函数定义
8.3.1 EthSM_Init
void EthSM_Init(const EthSM_ConfigType* ConfigPtr);
描述:初始化 EthSM。
参数:
ConfigPtr:指向配置数据的指针。
返回值:无。
8.3.2 EthSM_RequestComMode
Std_ReturnType EthSM_RequestComMode(
NetworkHandleType NetworkHandle,
ComM_ModeType ComM_Mode
);
描述:请求网络通信模式(由 ComM 调用)。
参数:
NetworkHandle:网络句柄。ComM_Mode:通信模式。
返回值:
E_OK:请求成功。E_NOT_OK:请求失败。
8.3.3 EthSM_GetCurrentComMode
Std_ReturnType EthSM_GetCurrentComMode(
NetworkHandleType NetworkHandle,
ComM_ModeType* ComM_ModePtr
);
描述:获取当前网络通信模式。
参数:
NetworkHandle:网络句柄。ComM_ModePtr:输出参数。
返回值:
E_OK:获取成功。E_NOT_OK:获取失败。
8.3.4 EthSM_GetVersionInfo
void EthSM_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
描述:返回 EthSM 的版本信息。
参数:
VersionInfoPtr:输出版本信息指针。
返回值:无。
摘要标记:完整 API 列表(4.3.0 移除了 Set/Get Transceiver 模式和 GetCurrentInternalMode 后约 5 个核心函数)已涵盖。
8.4 回调通知
8.4.1 EthSM_TcpIpModeIndication
void EthSM_TcpIpModeIndication(
TcpIp_StateType State,
NetworkHandleType NetworkHandle
);
描述:由 TcpIp 调用,通知当前 TCP/IP 模式。
8.4.2 EthSM_TrcvLinkStateChgIndication
void EthSM_TrcvLinkStateChgIndication(
uint8 TrcvIdx,
EthTrcv_LinkStateType LinkState
);
描述:由 EthIf 调用,通知收发器链路状态变化。
8.5 调度函数
8.5.1 EthSM_MainFunction
void EthSM_MainFunction(void);
描述:周期性处理状态机转换、超时监督。
调度:由 BSW 调度器调用(典型 10-100ms)。
8.6 期望的接口
8.6.1 强制接口
| API | 描述 |
|---|---|
ComM_BusSM_ModeIndication |
通知 ComM 当前网络模式 |
BswM_EthSM_CurrentState |
通知 BswM 当前状态 |
TcpIp_RequestComMode |
请求 TcpIp 模式 |
Det_ReportError |
上报开发错误 |
Dem_SetEventStatus |
上报生产错误 |
8.6.2 可选接口
| API | 描述 |
|---|---|
Csm_MacGenerate |
COTS CSM 接口 |
8.6.3 可配置接口
无。
9 时序图
摘要标记:本章包含约 8+ 个时序图。关键流程:
- 图 1:EthSM 初始化:EcuM →
EthSM_Init。- 图 2:FullCom 请求:ComM →
EthSM_RequestComMode→ TcpIp →EthSM_TcpIpModeIndication→ BswM。- 图 3:NoCom 请求:关闭流程。
- 图 4:链路变化:EthIf →
EthSM_TrcvLinkStateChgIndication。- 图 5:超时处理:TcpIp 在超时内未响应。
- 图 6:ONHOLD 状态(4.2.1 新增)。
- 图 7:COTS CSM 接口。
10 配置规范
10.1 容器结构
EthSM
├── EthSMGeneral
├── EthSMConfig (multi)
│ ├── EthSMNetwork
│ │ ├── EthSMDemEventParameterRefs
│ │ └── EthSMNetworkDemEventParameterRefs
└── EthSMDemEventParameterRefs
10.2 关键配置参数
10.2.1 EthSMGeneral
| 参数 | 类型 | 描述 |
|---|---|---|
EthSMDevErrorDetect |
Boolean | 启用开发错误检测(4.3.1 移除) |
EthSMVersionInfoApi |
Boolean | 启用版本信息 API |
EthSMUseCsmIf |
Boolean | 启用 COTS CSM 接口 |
EthSMMainFunctionPeriod |
Float | 主函数周期(秒) |
EthSMInitNetworkTime |
Float | 网络初始化时间(秒) |
EthSMTcpIpTimeout |
Float | TcpIp 超时(秒) |
10.2.2 EthSMNetwork
| 参数 | 类型 | 描述 |
|---|---|---|
EthSMNetworkIndex |
Integer | 网络索引 |
EthSMComMNetworkHandleRef |
Reference | ComM 网络句柄引用 |
EthSMTcpIpLocalAddrId |
Integer | TcpIp 本地地址 ID |
EthSMTrcvLinkStateChangeSupported |
Boolean | 支持收发器链路状态变化 |
10.3 发布信息
无附加发布参数。
翻译说明
- 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文
AUTOSAR_SWS_EthernetStateManager.pdf(54 页)。 - 关键翻译策略:
- 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
- 保留英文:所有 API 名、类型名、状态名、配置参数标识符、需求 ID。
- 摘要标记:第 6 章需求可追踪性表涵盖 30+ 项需求;第 9 章时序图列出 7 个关键图。完整内容请参见原文 PDF。
- 内容置信度:高。所有 EthSM 状态、API 签名、配置容器均已涵盖。