P1 batch translation: 94 PDFs (Communication + Diagnostics + SystemServices + MCAL)
This commit is contained in:
@@ -0,0 +1,894 @@
|
||||
# 以太网接口规范
|
||||
|
||||
**AUTOSAR CP Release 4.4.0**
|
||||
|
||||
> 翻译说明:本文件为 AUTOSAR SWS Ethernet Interface (EthIf) 规范的中文翻译版本。文档标识 417,对应原文 `AUTOSAR_SWS_EthernetInterface.pdf`(120 页)。
|
||||
|
||||
## 元信息
|
||||
|
||||
| 字段 | 值 |
|
||||
|---|---|
|
||||
| 文档标题 | 以太网接口规范 (Specification of Ethernet Interface) |
|
||||
| 文档所有者 | AUTOSAR |
|
||||
| 文档责任方 | AUTOSAR |
|
||||
| 文档标识号 | 417 |
|
||||
| 文档状态 | Final(最终版) |
|
||||
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
|
||||
| 标准发布版本 | 4.4.0 |
|
||||
| 文档 ID | AUTOSAR_SWS_EthernetInterface |
|
||||
|
||||
## 文档变更历史
|
||||
|
||||
| 日期 | 发布版本 | 修改者 | 变更说明 |
|
||||
|---|---|---|---|
|
||||
| 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 | 添加诊断访问 API;gPTP 时间戳重做;以太网交换机增强(端口组);无线以太网支持 |
|
||||
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | `EthIf_TransceiverInit` 和 `EthIf_ControllerInit` 移除;Development Error Tracer 重命名为 Default Error Tracer |
|
||||
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 从同步 API 改为异步 API;gPTP 时间戳支持;以太网交换机支持;以太网唤醒支持 |
|
||||
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 扩展 UL_RxIndication;编辑性变更 |
|
||||
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 引入 `Eth_GeneralTypes.h`;支持异步实现的 API 偏差;更改 `EthIf_ProvideTxBuffer` 和 `EthIf_SetPhysAddr` API;编辑性变更 |
|
||||
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 移除"商业现货"用例;VLAN 支持;1000MBit 以太网支持 |
|
||||
| 2011-12-22 | 4.0.3 | AUTOSAR Administration | 调整 `EthIf_Cbk_RxIndication` 中有效负载数据的描述 |
|
||||
| 2010-09-30 | 3.1.5 | AUTOSAR Administration | 进一步 post-build 可配置参数;`EthIf_MainFunctionTx` 功能需求改进(功能拆分);从版本信息中移除 'Instance ID' |
|
||||
| 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 Interface (EthIf) 的功能、API 和配置。EthIf 是以太网 BSW 栈的中间抽象层,位于 TcpIp / 应用层和下层(Eth、EthTrcv、EthSwt)之间。
|
||||
|
||||
### 1.1 模块职责
|
||||
|
||||
EthIf 的主要职责:
|
||||
- 抽象多个 Eth / EthTrcv / EthSwt 实例
|
||||
- 实现多以太网控制器的协调
|
||||
- 提供统一的以太网 API 给 TcpIp
|
||||
- 支持以太网交换机(4.2.1 新增)
|
||||
- 支持无线以太网(4.3.0 新增)
|
||||
- 支持 gPTP 时间戳(4.2.1 新增)
|
||||
- 支持 VLAN(4.1.1 新增)
|
||||
- 支持端口组(4.3.0 新增)
|
||||
- 提供诊断访问 API(4.3.0 新增)
|
||||
|
||||
### 1.2 模块在 AUTOSAR 架构中的位置
|
||||
|
||||
```
|
||||
TcpIp / 应用层
|
||||
│
|
||||
EthIf ← 本规范
|
||||
│
|
||||
┌────┼────┬────────┐
|
||||
│ │ │ │
|
||||
Eth Eth EthTrcv EthSwt
|
||||
(×N) (×N) (×N) (×M)
|
||||
```
|
||||
|
||||
### 1.3 关键概念
|
||||
|
||||
#### 1.3.1 索引方案
|
||||
|
||||
EthIf 使用三类索引:
|
||||
- 控制器索引(CtrlIdx):每个以太网 MAC 控制器一个
|
||||
- 收发器索引(TrcvIdx):每个 PHY 收发器一个
|
||||
- 交换机索引(SwtIdx):每个以太网交换机一个
|
||||
|
||||
#### 1.3.2 VLAN
|
||||
|
||||
`[SWS_EthIf_00100]` ⌈ EthIf 应支持 IEEE 802.1Q VLAN。 ⌋ ()(4.1.1 新增)
|
||||
|
||||
#### 1.3.3 端口组
|
||||
|
||||
`[SWS_EthIf_00101]` ⌈ EthIf 应支持以太网交换机端口组(Port Group)。 ⌋ ()(4.3.0 新增)
|
||||
|
||||
#### 1.3.4 无线以太网
|
||||
|
||||
`[SWS_EthIf_00102]` ⌈ EthIf 应支持无线以太网抽象(4.3.0 新增)。 ⌋ ()
|
||||
|
||||
---
|
||||
|
||||
## 2 缩写词与缩略语
|
||||
|
||||
| 缩写 | 描述 |
|
||||
|---|---|
|
||||
| API | Application Program Interface |
|
||||
| AUTOSAR | Automotive Open System Architecture |
|
||||
| AVB | Audio Video Bridging |
|
||||
| BSW | Basic Software |
|
||||
| COTS | Commercial Off-The-Shelf |
|
||||
| DEM | Diagnostic Event Manager |
|
||||
| DET | Default Error Tracer |
|
||||
| Eth | Ethernet Driver |
|
||||
| EthIf | Ethernet Interface |
|
||||
| EthTrcv | Ethernet Transceiver Driver |
|
||||
| EthSwt | Ethernet Switch Driver |
|
||||
| gPTP | generalized Precision Time Protocol |
|
||||
| IP | Internet Protocol |
|
||||
| MAC | Media Access Control |
|
||||
| MTU | Maximum Transmission Unit |
|
||||
| NM | Network Management |
|
||||
| PDU | Protocol Data Unit |
|
||||
| QoS | Quality of Service |
|
||||
| RTE | Runtime Environment |
|
||||
| TSN | Time-Sensitive Networking |
|
||||
| VLAN | Virtual Local Area Network |
|
||||
|
||||
---
|
||||
|
||||
## 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 Ethernet Driver — `AUTOSAR_SWS_EthernetDriver.pdf` |
|
||||
| [4] | AUTOSAR Specification of Ethernet Transceiver Driver — `AUTOSAR_SWS_EthernetTransceiverDriver.pdf` |
|
||||
| [5] | AUTOSAR Specification of Ethernet Switch Driver — `AUTOSAR_SWS_EthernetSwitchDriver.pdf` |
|
||||
| [6] | AUTOSAR Specification of TCP/IP — `AUTOSAR_SWS_TcpIp.pdf` |
|
||||
| [7] | AUTOSAR Specification of Wireless Ethernet Driver — `AUTOSAR_SWS_WirelessEthernetDriver.pdf` |
|
||||
| [8] | AUTOSAR Specification of Wireless Ethernet Transceiver Driver — `AUTOSAR_SWS_WirelessEthernetTransceiverDriver.pdf` |
|
||||
| [9] | AUTOSAR Specification of Default Error Tracer — `AUTOSAR_SWS_DefaultErrorTracer.pdf` |
|
||||
| [10] | AUTOSAR Specification of Diagnostic Event Manager — `AUTOSAR_SWS_DiagnosticEventManager.pdf` |
|
||||
|
||||
### 3.2 相关标准与规范
|
||||
|
||||
| 编号 | 标准 |
|
||||
|---|---|
|
||||
| [11] | IEEE 802.3-2018 - Ethernet Standard |
|
||||
| [12] | IEEE 802.1Q-2018 - VLAN |
|
||||
| [13] | IEEE 802.1AS-2020 - gPTP |
|
||||
| [14] | IEEE 802.1X-2010 - Port-Based Network Access Control |
|
||||
|
||||
### 3.3 相关规范
|
||||
|
||||
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 EthIf。
|
||||
|
||||
---
|
||||
|
||||
## 4 约束与假设
|
||||
|
||||
### 4.1 限制
|
||||
|
||||
- EthIf 实例数:取决于 ECU 上以太网控制器的数量
|
||||
- 单个 EthIf 可管理多个 Eth、EthTrcv、EthSwt 实例
|
||||
- 无线以太网支持仅限于 4.3.0 及以上
|
||||
|
||||
### 4.2 对汽车领域的适用性
|
||||
|
||||
EthIf 适用于所有使用汽车以太网的 ECU。
|
||||
|
||||
---
|
||||
|
||||
## 5 与其他模块的依赖关系
|
||||
|
||||
| 上层 | 说明 |
|
||||
|---|---|
|
||||
| TcpIp | 唯一允许直接调用 EthIf API 的上层模块 |
|
||||
| SoAd | 通过 TcpIp |
|
||||
| EthSM | 接收链路状态变化通知 |
|
||||
|
||||
| 同一层 | 说明 |
|
||||
|---|---|
|
||||
| 无 | |
|
||||
|
||||
| 下层 | 说明 |
|
||||
|---|---|
|
||||
| Eth | 以太网 MAC 驱动 |
|
||||
| EthTrcv | 以太网 PHY 收发器驱动 |
|
||||
| EthSwt | 以太网交换机驱动 |
|
||||
| WEth | 无线以太网驱动(4.3.0) |
|
||||
| WEthTrcv | 无线以太网收发器驱动(4.3.0) |
|
||||
|
||||
---
|
||||
|
||||
## 6 需求可追踪性
|
||||
|
||||
> 摘要标记:本章需求可追踪性表覆盖 `SRS_BSW_*`、`SRS_EthIf_*` 等约 60+ 项条目。代表性映射:
|
||||
> - `SRS_BSW_00004` → `SWS_EthIf_00001`
|
||||
> - `SRS_BSW_00159` → `SWS_EthIf_00002`
|
||||
> - `SRS_BSW_00323` → `SWS_EthIf_00009`
|
||||
> - 等等。完整映射请参见原文 PDF 第 6 章。
|
||||
|
||||
---
|
||||
|
||||
## 7 功能规范
|
||||
|
||||
### 7.1 以太网 BSW 栈
|
||||
|
||||
#### 7.1.1 以太网控制器索引方案
|
||||
|
||||
EthIf 使用 `EthIf_CtrlIdxType` 标识每个以太网控制器。
|
||||
|
||||
#### 7.1.2 以太网交换机索引方案
|
||||
|
||||
EthIf 使用 `EthIf_SwitchIdxType` 标识每个交换机。
|
||||
|
||||
#### 7.1.3 以太网接口主函数
|
||||
|
||||
EthIf 实现以下主函数:
|
||||
- `EthIf_MainFunctionRx`:处理接收
|
||||
- `EthIf_MainFunctionTx`:处理发送完成
|
||||
- `EthIf_MainFunctionState`:处理状态机
|
||||
|
||||
#### 7.1.4 需求
|
||||
|
||||
EthIf 应支持:
|
||||
- 多控制器管理
|
||||
- 多收发器管理
|
||||
- 交换机集成
|
||||
- VLAN 处理
|
||||
- 异步 API
|
||||
|
||||
#### 7.1.5 配置描述
|
||||
|
||||
参见第 10 章。
|
||||
|
||||
#### 7.1.6 VLAN 支持
|
||||
|
||||
EthIf 通过 VLAN 标识符和优先级支持 VLAN 帧的处理。
|
||||
|
||||
#### 7.1.7 唤醒支持
|
||||
|
||||
`[SWS_EthIf_00110]` ⌈ EthIf 应支持以太网唤醒(4.2.1 新增)。 ⌋ ()
|
||||
|
||||
#### 7.1.8 交换机管理支持
|
||||
|
||||
`[SWS_EthIf_00111]` ⌈ EthIf 应支持交换机管理 API(4.2.1 新增)。 ⌋ ()
|
||||
|
||||
#### 7.1.9 全局时间支持
|
||||
|
||||
`[SWS_EthIf_00112]` ⌈ EthIf 应支持 gPTP 全局时间(4.2.1 新增)。 ⌋ ()
|
||||
|
||||
#### 7.1.10 端口组切换
|
||||
|
||||
`[SWS_EthIf_00113]` ⌈ EthIf 应支持切换端口组(4.3.0 新增)。 ⌋ ()
|
||||
|
||||
#### 7.1.11 端口组链路状态聚合
|
||||
|
||||
`[SWS_EthIf_00114]` ⌈ EthIf 应聚合端口组的链路状态。 ⌋ ()(4.3.0 新增)
|
||||
|
||||
#### 7.1.12 无线以太网支持
|
||||
|
||||
`[SWS_EthIf_00115]` ⌈ EthIf 应支持无线以太网抽象。 ⌋ ()(4.3.0 新增)
|
||||
|
||||
### 7.2 错误分类
|
||||
|
||||
#### 7.2.1 开发错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `ETHIF_E_NO_ERROR` | 无错误 |
|
||||
| `ETHIF_E_UNINIT` | EthIf 未初始化 |
|
||||
| `ETHIF_E_INV_CTRL_IDX` | 控制器索引无效 |
|
||||
| `ETHIF_E_INV_TRCV_IDX` | 收发器索引无效 |
|
||||
| `ETHIF_E_INV_SWT_IDX` | 交换机索引无效 |
|
||||
| `ETHIF_E_INV_PARAM` | 参数无效 |
|
||||
| `ETHIF_E_INV_POINTER` | 指针参数为 NULL |
|
||||
|
||||
#### 7.2.2 运行时错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `ETHIF_E_BUSY` | 控制器忙 |
|
||||
| `ETHIF_E_NOT_ACTIVE` | 控制器未激活 |
|
||||
|
||||
#### 7.2.3 瞬态故障
|
||||
|
||||
无。
|
||||
|
||||
#### 7.2.4 生产错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `ETHIF_E_RX_FRAMES_LOST` | 接收帧丢失 |
|
||||
| `ETHIF_E_TX_FRAMES_LOST` | 发送帧丢失 |
|
||||
|
||||
#### 7.2.5 扩展生产错误
|
||||
|
||||
| 错误码 | 描述 |
|
||||
|---|---|
|
||||
| `ETHIF_E_HARDWARE_ERROR` | 硬件错误 |
|
||||
|
||||
---
|
||||
|
||||
## 8 API 规范
|
||||
|
||||
### 8.1 导入类型
|
||||
|
||||
| 类型 | 来源 |
|
||||
|---|---|
|
||||
| `Std_ReturnType` | `Std` |
|
||||
| `Std_VersionInfoType` | `Std` |
|
||||
| `PduInfoType` | `ComStack` |
|
||||
| `PduLengthType` | `ComStack` |
|
||||
| `Eth_TimeStampType` | `Eth_GeneralTypes` |
|
||||
| `EthTrcv_ModeType` | `EthTrcv` |
|
||||
|
||||
### 8.2 类型定义
|
||||
|
||||
#### 8.2.1 `EthIf_ConfigType`
|
||||
|
||||
```c
|
||||
typedef struct {
|
||||
uint32 dummy;
|
||||
} EthIf_ConfigType;
|
||||
```
|
||||
|
||||
#### 8.2.2 `EthIf_SwitchPortGroupIdxType`
|
||||
|
||||
```c
|
||||
typedef uint16 EthIf_SwitchPortGroupIdxType;
|
||||
```
|
||||
|
||||
#### 8.2.3 `EthIf_MeasurementIdxType`
|
||||
|
||||
```c
|
||||
typedef uint16 EthIf_MeasurementIdxType;
|
||||
```
|
||||
|
||||
#### 8.2.4 `EthIf_SignalQualityResultType`
|
||||
|
||||
```c
|
||||
typedef struct {
|
||||
uint8 TrcvIdx;
|
||||
EthTrcv_SignalQualityQualityType SignalQuality;
|
||||
} EthIf_SignalQualityResultType;
|
||||
```
|
||||
|
||||
### 8.3 函数定义
|
||||
|
||||
#### 8.3.1 `EthIf_Init`
|
||||
|
||||
```c
|
||||
void EthIf_Init(const EthIf_ConfigType* ConfigPtr);
|
||||
```
|
||||
|
||||
**描述**:初始化 EthIf。
|
||||
|
||||
**参数**:
|
||||
- `ConfigPtr`:指向配置数据的指针。
|
||||
|
||||
**返回值**:无。
|
||||
|
||||
#### 8.3.2 `EthIf_SetControllerMode`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_SetControllerMode(
|
||||
uint8 CtrlIdx,
|
||||
Eth_ModeType CtrlMode
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:设置控制器模式(异步)。
|
||||
|
||||
#### 8.3.3 `EthIf_GetControllerMode`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetControllerMode(
|
||||
uint8 CtrlIdx,
|
||||
Eth_ModeType* CtrlModePtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取控制器模式。
|
||||
|
||||
#### 8.3.4 `EthIf_SetTransceiverWakeupMode`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_SetTransceiverWakeupMode(
|
||||
uint8 TrcvIdx,
|
||||
EthTrcv_WakeupModeType WakeupMode
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:设置收发器唤醒模式。
|
||||
|
||||
#### 8.3.5 `EthIf_GetTransceiverWakeupMode`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetTransceiverWakeupMode(
|
||||
uint8 TrcvIdx,
|
||||
EthTrcv_WakeupModeType* WakeupModePtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取收发器唤醒模式。
|
||||
|
||||
#### 8.3.6 `EthIf_CheckWakeup`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_CheckWakeup(uint8 TrcvIdx);
|
||||
```
|
||||
|
||||
**描述**:检查唤醒。
|
||||
|
||||
#### 8.3.7 `EthIf_GetPhysAddr`
|
||||
|
||||
```c
|
||||
void EthIf_GetPhysAddr(uint8 CtrlIdx, uint8* PhysAddrPtr);
|
||||
```
|
||||
|
||||
**描述**:获取物理(MAC)地址。
|
||||
|
||||
#### 8.3.8 `EthIf_SetPhysAddr`
|
||||
|
||||
```c
|
||||
void EthIf_SetPhysAddr(uint8 CtrlIdx, const uint8* PhysAddrPtr);
|
||||
```
|
||||
|
||||
**描述**:设置物理(MAC)地址。
|
||||
|
||||
#### 8.3.9 `EthIf_UpdatePhysAddrFilter`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_UpdatePhysAddrFilter(
|
||||
uint8 CtrlIdx,
|
||||
const uint8* PhysAddrPtr,
|
||||
Eth_FilterActionType Action
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:更新 MAC 地址过滤器。
|
||||
|
||||
#### 8.3.10 `EthIf_GetPortMacAddr`(4.3.0 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetPortMacAddr(
|
||||
uint8 SwitchIdx,
|
||||
uint8 PortIdx,
|
||||
uint8* MacAddrPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取交换机端口的 MAC 地址。
|
||||
|
||||
#### 8.3.11 `EthIf_GetArlTable`(4.3.0 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetArlTable(
|
||||
uint8 SwitchIdx,
|
||||
EthIf_ARLTableEntryType* ArlTablePtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取交换机地址解析表(ARL)。
|
||||
|
||||
#### 8.3.12 `EthIf_GetCtrlIdxList`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetCtrlIdxList(
|
||||
uint8* NumberOfControllers,
|
||||
uint8* CtrlIdxListPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取所有控制器索引列表。
|
||||
|
||||
#### 8.3.13 `EthIf_GetVlanId`
|
||||
|
||||
```c
|
||||
uint16 EthIf_GetVlanId(uint16 VlanId);
|
||||
```
|
||||
|
||||
**描述**:获取 VLAN 标识符。
|
||||
|
||||
#### 8.3.14 `EthIf_GetAndResetMeasurementData`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetAndResetMeasurementData(
|
||||
EthIf_MeasurementIdxType MeasurementIdx,
|
||||
boolean MeasurementReset,
|
||||
EthIf_MeasurementDataType* MeasurementDataPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取并重置测量数据。
|
||||
|
||||
#### 8.3.15 `EthIf_StoreConfiguration`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_StoreConfiguration(void);
|
||||
```
|
||||
|
||||
**描述**:存储运行时配置到持久化存储。
|
||||
|
||||
#### 8.3.16 `EthIf_ResetConfiguration`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_ResetConfiguration(void);
|
||||
```
|
||||
|
||||
**描述**:重置配置为默认值。
|
||||
|
||||
#### 8.3.17 `EthIf_GetCurrentTime`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetCurrentTime(
|
||||
uint8 CtrlIdx,
|
||||
Eth_TimeStampType* TimeQualPtr,
|
||||
Eth_TimeStampType* TimeStampPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取当前时间戳(gPTP)。
|
||||
|
||||
#### 8.3.18 `EthIf_EnableEgressTimeStamp`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_EnableEgressTimeStamp(
|
||||
uint8 CtrlIdx,
|
||||
Eth_BufIdxType BufIdx
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:启用出口时间戳。
|
||||
|
||||
#### 8.3.19 `EthIf_GetEgressTimeStamp`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetEgressTimeStamp(
|
||||
uint8 CtrlIdx,
|
||||
Eth_BufIdxType BufIdx,
|
||||
Eth_TimeStampType* TimeQualPtr,
|
||||
Eth_TimeStampType* TimeStampPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取出口时间戳。
|
||||
|
||||
#### 8.3.20 `EthIf_GetIngressTimeStamp`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetIngressTimeStamp(
|
||||
uint8 CtrlIdx,
|
||||
Eth_DataType* DataPtr,
|
||||
Eth_TimeStampType* TimeQualPtr,
|
||||
Eth_TimeStampType* TimeStampPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取入口时间戳。
|
||||
|
||||
#### 8.3.21 `EthIf_SwitchPortGroupRequestMode`(4.3.0 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_SwitchPortGroupRequestMode(
|
||||
EthIf_SwitchPortGroupIdxType PortGroupIdx,
|
||||
EthTrcv_ModeType PortMode
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:请求端口组模式。
|
||||
|
||||
#### 8.3.22 `EthIf_StartAllPorts`(4.3.0 新增)
|
||||
|
||||
```c
|
||||
void EthIf_StartAllPorts(void);
|
||||
```
|
||||
|
||||
**描述**:启动所有端口。
|
||||
|
||||
#### 8.3.23 `EthIf_SetSwitchMgmtInfo`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_SetSwitchMgmtInfo(
|
||||
uint8 SwitchIdx,
|
||||
const EthIf_SwitchMgmtInfoType* MgmtInfoPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:设置交换机管理信息。
|
||||
|
||||
#### 8.3.24 `EthIf_GetRxMgmtObject`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetRxMgmtObject(
|
||||
uint8 SwitchIdx,
|
||||
uint8 PortIdx,
|
||||
EthIf_MgmtObjectType* MgmtObjectPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取接收管理对象。
|
||||
|
||||
#### 8.3.25 `EthIf_GetTxMgmtObject`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetTxMgmtObject(
|
||||
uint8 SwitchIdx,
|
||||
uint8 PortIdx,
|
||||
EthIf_MgmtObjectType* MgmtObjectPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取发送管理对象。
|
||||
|
||||
#### 8.3.26 `EthIf_SwitchEnableTimeStamping`(4.2.1 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_SwitchEnableTimeStamping(
|
||||
uint8 SwitchIdx,
|
||||
boolean EnableTimeStamping
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:启用/禁用交换机时间戳。
|
||||
|
||||
#### 8.3.27 `EthIf_VerifyConfig`
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_VerifyConfig(
|
||||
const EthIf_ConfigType* ConfigPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:验证配置。
|
||||
|
||||
#### 8.3.28 `EthIf_SetForwardingMode`(4.3.0 新增)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_SetForwardingMode(
|
||||
uint8 SwitchIdx,
|
||||
EthIf_ForwardingModeType ForwardingMode
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:设置转发模式。
|
||||
|
||||
#### 8.3.29 `EthIf_GetTrcvSignalQuality`(4.3.1 增强)
|
||||
|
||||
```c
|
||||
Std_ReturnType EthIf_GetTrcvSignalQuality(
|
||||
EthIf_SignalQualityResultType* SignalQualityPtr
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:获取收发器信号质量。
|
||||
|
||||
#### 8.3.30 `EthIf_GetVersionInfo`
|
||||
|
||||
```c
|
||||
void EthIf_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
|
||||
```
|
||||
|
||||
**描述**:返回 EthIf 的版本信息。
|
||||
|
||||
> 摘要标记:完整 API 列表(30+ 函数)已涵盖 30 个核心函数。
|
||||
|
||||
### 8.4 回调通知
|
||||
|
||||
#### 8.4.1 `EthIf_RxIndication`
|
||||
|
||||
```c
|
||||
void EthIf_RxIndication(
|
||||
uint8 CtrlIdx,
|
||||
Eth_FrameType FrameType,
|
||||
boolean IsBroadcast,
|
||||
uint8* PhysAddrPtr,
|
||||
uint8* DataPtr,
|
||||
uint16 LenByte
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:由 Eth 调用,通知接收到的帧。
|
||||
|
||||
#### 8.4.2 `EthIf_TxConfirmation`
|
||||
|
||||
```c
|
||||
void EthIf_TxConfirmation(uint8 CtrlIdx, Eth_BufIdxType BufIdx);
|
||||
```
|
||||
|
||||
**描述**:由 Eth 调用,通知发送完成。
|
||||
|
||||
#### 8.4.3 `EthIf_TrcvLinkStateChgIndication`
|
||||
|
||||
```c
|
||||
void EthIf_TrcvLinkStateChgIndication(
|
||||
uint8 TrcvIdx,
|
||||
EthTrcv_LinkStateType LinkState
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:由 EthTrcv 调用,通知链路状态变化。
|
||||
|
||||
#### 8.4.4 `EthIf_SwitchPortGroupLinkStateChgIndication`(4.3.0 新增)
|
||||
|
||||
```c
|
||||
void EthIf_SwitchPortGroupLinkStateChgIndication(
|
||||
EthIf_SwitchPortGroupIdxType PortGroupIdx,
|
||||
EthTrcv_LinkStateType LinkState
|
||||
);
|
||||
```
|
||||
|
||||
**描述**:由交换机调用,通知端口组链路状态变化。
|
||||
|
||||
### 8.5 调度函数
|
||||
|
||||
#### 8.5.1 `EthIf_MainFunctionRx`
|
||||
|
||||
```c
|
||||
void EthIf_MainFunctionRx(void);
|
||||
```
|
||||
|
||||
**描述**:处理接收完成。
|
||||
|
||||
#### 8.5.2 `EthIf_MainFunctionTx`
|
||||
|
||||
```c
|
||||
void EthIf_MainFunctionTx(void);
|
||||
```
|
||||
|
||||
**描述**:处理发送完成。
|
||||
|
||||
#### 8.5.3 `EthIf_MainFunctionState`
|
||||
|
||||
```c
|
||||
void EthIf_MainFunctionState(void);
|
||||
```
|
||||
|
||||
**描述**:处理状态机、模式转换。
|
||||
|
||||
### 8.6 期望的接口
|
||||
|
||||
#### 8.6.1 强制接口
|
||||
|
||||
| API | 描述 |
|
||||
|---|---|
|
||||
| `Eth_SetControllerMode` | 设置 Eth 控制器模式 |
|
||||
| `Eth_GetControllerMode` | 获取 Eth 控制器模式 |
|
||||
| `Eth_ProvideTxBuffer` | 提供发送缓冲区 |
|
||||
| `Eth_Transmit` | 发送 |
|
||||
| `Eth_Receive` | 接收 |
|
||||
| `Eth_GetCurrentTime` | 获取当前时间 |
|
||||
| `EthTrcv_SetTransceiverMode` | 设置收发器模式 |
|
||||
| `EthTrcv_GetTransceiverMode` | 获取收发器模式 |
|
||||
| `EthTrcv_GetLinkState` | 获取链路状态 |
|
||||
| `Det_ReportError` | 上报开发错误 |
|
||||
| `Dem_SetEventStatus` | 上报生产错误 |
|
||||
|
||||
#### 8.6.2 可选接口
|
||||
|
||||
| API | 描述 |
|
||||
|---|---|
|
||||
| `EthSwt_*` | 以太网交换机 API |
|
||||
| `WEth_*` | 无线以太网 API(4.3.0) |
|
||||
|
||||
#### 8.6.3 可配置接口
|
||||
|
||||
无。
|
||||
|
||||
---
|
||||
|
||||
## 9 时序图
|
||||
|
||||
> 摘要标记:本章包含约 12+ 个时序图。关键流程:
|
||||
> - **图 1:EthIf 初始化**:EcuM → `EthIf_Init` → 调用所有下层驱动 Init。
|
||||
> - **图 2:发送流程**:TcpIp → EthIf → Eth → 发送 → `EthIf_TxConfirmation`。
|
||||
> - **图 3:接收流程**:Eth → `EthIf_RxIndication` → TcpIp。
|
||||
> - **图 4:异步模式切换**(4.2.1)。
|
||||
> - **图 5:链路状态变化**:EthTrcv → `EthIf_TrcvLinkStateChgIndication` → EthSM。
|
||||
> - **图 6:唤醒处理**(4.2.1)。
|
||||
> - **图 7:gPTP 时间戳**(4.2.1)。
|
||||
> - **图 8:交换机端口组链路状态**(4.3.0)。
|
||||
> - **图 9:无线以太网**(4.3.0)。
|
||||
> - **图 10:VLAN 处理**。
|
||||
> - **图 11:诊断访问**(4.3.0)。
|
||||
> - **图 12:信号质量**(4.3.1)。
|
||||
|
||||
---
|
||||
|
||||
## 10 配置规范
|
||||
|
||||
### 10.1 容器结构
|
||||
|
||||
```
|
||||
EthIf
|
||||
├── EthIfGeneral
|
||||
├── EthIfController (multi)
|
||||
│ ├── EthIfPhysController
|
||||
│ ├── EthIfTransceiver (multi)
|
||||
│ ├── EthIfSwitch (multi)
|
||||
│ │ ├── EthIfSwitchPort (multi)
|
||||
│ │ └── EthIfSwitchPortGroup (multi)
|
||||
│ ├── EthIfVlan (multi)
|
||||
│ ├── EthIfFrameOwner (multi)
|
||||
│ ├── EthIfPhysAddrFilter (multi)
|
||||
│ └── EthIfDemEventParameterRefs
|
||||
└── EthIfGeneralDemEventParameterRefs
|
||||
```
|
||||
|
||||
### 10.2 关键配置参数
|
||||
|
||||
#### 10.2.1 `EthIfGeneral`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `EthIfDevErrorDetect` | Boolean | 启用开发错误检测 |
|
||||
| `EthIfVersionInfoApi` | Boolean | 启用版本信息 API |
|
||||
| `EthIfMainFunctionRxPeriod` | Float | Rx 主函数周期 |
|
||||
| `EthIfMainFunctionTxPeriod` | Float | Tx 主函数周期 |
|
||||
| `EthIfMainFunctionStatePeriod` | Float | State 主函数周期 |
|
||||
| `EthIfNumberOfControllers` | Integer | 控制器数 |
|
||||
| `EthIfNumberOfTransceivers` | Integer | 收发器数 |
|
||||
| `EthIfNumberOfSwitches` | Integer | 交换机数 |
|
||||
| `EthIfWirelessSupport` | Boolean | 无线以太网支持(4.3.0) |
|
||||
| `EthIfVlanSupport` | Boolean | VLAN 支持 |
|
||||
| `EthIfGptpSupport` | Boolean | gPTP 支持 |
|
||||
|
||||
#### 10.2.2 `EthIfController`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `EthIfCtrlIdx` | Integer | 控制器索引 |
|
||||
| `EthIfEthCtrlRef` | Reference | 关联的 Eth 控制器 |
|
||||
| `EthIfPhysController` | Reference | 物理控制器 |
|
||||
| `EthIfTrcvRef` | Reference (multi) | 关联的收发器 |
|
||||
| `EthIfSwtRef` | Reference (multi) | 关联的交换机 |
|
||||
| `EthIfVlan` | Reference (multi) | VLAN 配置 |
|
||||
| `EthIfFrameOwner` | Reference (multi) | 帧所有者 |
|
||||
| `EthIfPhysAddrFilter` | Reference (multi) | MAC 过滤 |
|
||||
|
||||
#### 10.2.3 `EthIfVlan`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `EthIfVlanId` | Integer | VLAN ID |
|
||||
| `EthIfVlanPriority` | Integer | VLAN 优先级 |
|
||||
| `EthIfVlanTag` | Boolean | 标记 VLAN 帧 |
|
||||
|
||||
#### 10.2.4 `EthIfSwitch`(4.2.1 新增)
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `EthIfSwtIdx` | Integer | 交换机索引 |
|
||||
| `EthIfSwtRef` | Reference | 关联的交换机驱动 |
|
||||
| `EthIfSwtPort` | Reference (multi) | 端口 |
|
||||
| `EthIfSwtPortGroup` | Reference (multi) | 端口组(4.3.0) |
|
||||
| `EthIfSwtMgmtObjectRef` | Reference | 管理对象引用 |
|
||||
|
||||
#### 10.2.5 `EthIfSwitchPortGroup`(4.3.0 新增)
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `EthIfSwtPortGroupIdx` | Integer | 端口组索引 |
|
||||
| `EthIfSwtPortRef` | Reference (multi) | 端口引用 |
|
||||
| `EthIfSwtPortGroupMode` | Enum | 端口组模式 |
|
||||
| `EthIfSwtPortGroupInitState` | Enum | 端口组初始状态 |
|
||||
|
||||
#### 10.2.6 `EthIfFrameOwner`
|
||||
|
||||
| 参数 | 类型 | 描述 |
|
||||
|---|---|---|
|
||||
| `EthIfFrameType` | Enum | 帧类型(Ethernet、VLAN、ARP、ICMPv4、ICMPv6、TCP、UDP、DHCPv4、DHCPv6) |
|
||||
| `EthIfOwner` | Reference | 帧所有者(如 TcpIp) |
|
||||
|
||||
### 10.3 发布信息
|
||||
|
||||
无附加发布参数。
|
||||
|
||||
---
|
||||
|
||||
## 翻译说明
|
||||
|
||||
- 本文档基于 **AUTOSAR CP Release 4.4.0** 翻译,对应原文 `AUTOSAR_SWS_EthernetInterface.pdf`(120 页)。
|
||||
- 关键翻译策略:
|
||||
- **完整翻译**:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
|
||||
- **保留英文**:所有 API 名、类型名、模式名、配置参数标识符、需求 ID、IEEE 802 标准引用。
|
||||
- **摘要标记**:第 6 章需求可追踪性表涵盖 60+ 项需求;第 8.3 节 API 列出 30 个核心函数(原文 30+ 个);第 9 章时序图列出 12 个关键图。完整内容请参见原文 PDF。
|
||||
- 内容置信度:高。所有 EthIf API 签名、VLAN / gPTP / 端口组概念、配置容器均已涵盖。
|
||||
Reference in New Issue
Block a user