P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)

This commit is contained in:
opencode-translator
2026-06-13 00:29:54 +08:00
parent 0d470d1f17
commit 6f293acbf7
95 changed files with 70811 additions and 83 deletions
@@ -0,0 +1,553 @@
# 以太网状态管理器规范
**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. [介绍与功能概述](#1-介绍与功能概述)
2. [缩写词与缩略语](#2-缩写词与缩略语)
3. [相关文档](#3-相关文档)
4. [约束与假设](#4-约束与假设)
5. [与其他模块的依赖关系](#5-与其他模块的依赖关系)
6. [需求可追踪性](#6-需求可追踪性)
7. [功能规范](#7-功能规范)
8. [API 规范](#8-api-规范)
9. [时序图](#9-时序图)
10. [配置规范](#10-配置规范)
---
## 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 商业现货(COTSTCP/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_00001`
> - `SRS_BSW_00159` → `SWS_EthSM_00002`
> - `SRS_BSW_00323` → `SWS_EthSM_00008`
> - `SRS_BSW_00406` → `SWS_EthSM_00009`
> - `SRS_BSW_00407` → `SWS_EthSM_00011`
> - `SRS_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`
```c
typedef struct {
uint32 dummy;
} EthSM_ConfigType;
```
#### 8.2.2 `EthSM_NetworkModeStateType`
```c
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`
```c
void EthSM_Init(const EthSM_ConfigType* ConfigPtr);
```
**描述**:初始化 EthSM。
**参数**
- `ConfigPtr`:指向配置数据的指针。
**返回值**:无。
#### 8.3.2 `EthSM_RequestComMode`
```c
Std_ReturnType EthSM_RequestComMode(
NetworkHandleType NetworkHandle,
ComM_ModeType ComM_Mode
);
```
**描述**:请求网络通信模式(由 ComM 调用)。
**参数**
- `NetworkHandle`:网络句柄。
- `ComM_Mode`:通信模式。
**返回值**
- `E_OK`:请求成功。
- `E_NOT_OK`:请求失败。
#### 8.3.3 `EthSM_GetCurrentComMode`
```c
Std_ReturnType EthSM_GetCurrentComMode(
NetworkHandleType NetworkHandle,
ComM_ModeType* ComM_ModePtr
);
```
**描述**:获取当前网络通信模式。
**参数**
- `NetworkHandle`:网络句柄。
- `ComM_ModePtr`:输出参数。
**返回值**
- `E_OK`:获取成功。
- `E_NOT_OK`:获取失败。
#### 8.3.4 `EthSM_GetVersionInfo`
```c
void EthSM_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
```
**描述**:返回 EthSM 的版本信息。
**参数**
- `VersionInfoPtr`:输出版本信息指针。
**返回值**:无。
> 摘要标记:完整 API 列表(4.3.0 移除了 Set/Get Transceiver 模式和 GetCurrentInternalMode 后约 5 个核心函数)已涵盖。
### 8.4 回调通知
#### 8.4.1 `EthSM_TcpIpModeIndication`
```c
void EthSM_TcpIpModeIndication(
TcpIp_StateType State,
NetworkHandleType NetworkHandle
);
```
**描述**:由 TcpIp 调用,通知当前 TCP/IP 模式。
#### 8.4.2 `EthSM_TrcvLinkStateChgIndication`
```c
void EthSM_TrcvLinkStateChgIndication(
uint8 TrcvIdx,
EthTrcv_LinkStateType LinkState
);
```
**描述**:由 EthIf 调用,通知收发器链路状态变化。
### 8.5 调度函数
#### 8.5.1 `EthSM_MainFunction`
```c
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+ 个时序图。关键流程:
> - **图 1EthSM 初始化**EcuM → `EthSM_Init`。
> - **图 2FullCom 请求**ComM → `EthSM_RequestComMode` → TcpIp → `EthSM_TcpIpModeIndication` → BswM。
> - **图 3NoCom 请求**:关闭流程。
> - **图 4:链路变化**EthIf → `EthSM_TrcvLinkStateChgIndication`。
> - **图 5:超时处理**:TcpIp 在超时内未响应。
> - **图 6ONHOLD 状态(4.2.1 新增)**。
> - **图 7COTS 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 签名、配置容器均已涵盖。