Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_WirelessEthernetDriver.md
T

626 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 无线以太网驱动规范
**AUTOSAR CP Release 4.4.0**
> 翻译说明:本文件为 AUTOSAR SWS Wireless Ethernet Driver (WEth) 规范的中文翻译版本。文档标识 798,对应原文 `AUTOSAR_SWS_WirelessEthernetDriver.pdf`49 页)。
## 元信息
| 字段 | 值 |
|---|---|
| 文档标题 | 无线以太网驱动规范 (Specification of Wireless Ethernet Driver) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 798 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
| 文档 ID | AUTOSAR_SWS_WirelessEthernetDriver |
## 文档变更历史
| 日期 | 发布版本 | 修改者 | 变更说明 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 基础软件多核分发(DRAFT |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 编辑性变更 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 初始发布 |
## 目录
1. [介绍与功能概述](#1-介绍与功能概述)
2. [缩写词与缩略语](#2-缩写词与缩略语)
3. [相关文档](#3-相关文档)
4. [约束与假设](#4-约束与假设)
5. [与其他模块的依赖关系](#5-与其他模块的依赖关系)
6. [需求可追踪性](#6-需求可追踪性)
7. [功能规范](#7-功能规范)
8. [API 规范](#8-api-规范)
9. [时序图](#9-时序图)
10. [配置规范](#10-配置规范)
11. [不适用需求](#11-不适用需求)
---
## 1 介绍与功能概述
本规范规定了 AUTOSAR 基础软件模块 Wireless Ethernet Driver (WEth) 的功能、API 和配置。在 AUTOSAR 分层软件架构中,无线以太网驱动属于微控制器抽象层(MCAL),更具体地,属于通信驱动(Communication Drivers)。
### 1.1 模块职责
WEth 的主要职责:
- 初始化无线以太网控制器(如 WLAN、V2X)
- 提供与硬件无关的接口给 EthIf
- 支持多个相同控制器
- 提供数据发送、接收、配置 API
- 提供统计信息
### 1.2 模块在 AUTOSAR 架构中的位置
```
Ethernet Interface (EthIf)
┌─────┴─────┐
│ WEth │ ← 本规范
└─────┬─────┘
┌───────────┴───────────┐
Wireless Ethernet 无线硬件
Transceiver Driver
```
### 1.3 关键概念
#### 1.3.1 索引方案
WEth 使用索引 `WEth_CtrlIdxType` 标识每个无线以太网控制器。
#### 1.3.2 V2X 特定需求
`[SWS_WEth_00100]` ⌈ WEth 应支持 V2X 通信的特定参数。 ⌋ ()
V2XVehicle-to-Everything)通信需要:
- 高可靠性
- 低延迟
- 安全保证
- 特定的发送优先级
#### 1.3.3 键/值参数映射
WEth 控制器通过键/值参数进行配置:
- 键:参数标识符
- 值:参数值
#### 1.3.4 多核支持(4.4.0 草案)
`[SWS_WEth_00101]` ⌈ WEth 应支持多核分发(4.4.0 草案)。 ⌋ ()
---
## 2 缩写词与缩略语
| 缩写 | 描述 |
|---|---|
| API | Application Program Interface |
| AUTOSAR | Automotive Open System Architecture |
| BSW | Basic Software |
| COTS | Commercial Off-The-Shelf |
| DEM | Diagnostic Event Manager |
| DET | Default Error Tracer |
| EthIf | Ethernet Interface |
| MAC | Media Access Control |
| MCAL | Microcontroller Abstraction Layer |
| PDU | Protocol Data Unit |
| V2X | Vehicle-to-Everything |
| WEth | Wireless Ethernet Driver |
| WEthTrcv | Wireless Ethernet Transceiver Driver |
| WLAN | Wireless 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 Interface — `AUTOSAR_SWS_EthernetInterface.pdf` |
| [4] | AUTOSAR Specification of Wireless Ethernet Transceiver Driver — `AUTOSAR_SWS_WirelessEthernetTransceiverDriver.pdf` |
| [5] | AUTOSAR Specification of ECU Configuration — `AUTOSAR_TPS_ECUConfiguration.pdf` |
### 3.2 相关标准与规范
| 编号 | 标准 |
|---|---|
| [6] | IEEE 802.11-2016 - WLAN |
| [7] | IEEE 802.11p-2010 - WAVE / V2X |
| [8] | ETSI EN 302 636 - ITS-G5 |
### 3.3 相关规范
AUTOSAR 通用基础软件模块规范 [1]SWS BSW General)同样适用于 WEth。
---
## 4 约束与假设
### 4.1 限制
- 单一 WEth 模块只支持一种类型的控制器硬件
- 命名空间要求:WEth 驱动前缀
- V2X 特定参数取决于硬件
### 4.2 对汽车领域的适用性
WEth 适用于:
- V2X 通信(V2V、V2I、V2P
- 车载信息娱乐(IVI)的 WLAN 连接
- 远程信息处理(Telematics
---
## 5 与其他模块的依赖关系
### 5.1 驱动服务
WEth 调用以下驱动服务:
- MCU 驱动
- PORT 驱动
- 中断管理(OS
---
## 6 需求可追踪性
> 摘要标记:本章需求可追踪性表覆盖 `SRS_BSW_*` 等约 20+ 项条目。完整映射请参见原文 PDF 第 6 章。
---
## 7 功能规范
### 7.1 无线以太网 BSW 栈
#### 7.1.1 索引方案
WEth 使用 0..N-1 索引标识每个无线以太网控制器。
#### 7.1.2 收发器配置
每个 WEth 控制器可关联一个或多个无线收发器。
#### 7.1.3 通用需求
- 多控制器支持
- 异步 API
- 统计计数
#### 7.1.4 基于包的控制器参数
`[SWS_WEth_00200]` ⌈ WEth 应支持基于数据包的参数配置。 ⌋ ()
V2X 帧包含特定的控制参数:
- 数据速率
- 发射功率
- 通道
- 优先级
#### 7.1.5 键/值参数映射
参数通过键/值对进行配置:
```c
WEth_ConfigParamType param = {
.key = 0x1234,
.value = 5678
};
```
#### 7.1.6 V2X 特定控制器需求
`[SWS_WEth_00300]` ⌈ WEth 应支持 V2X 特定的控制参数。 ⌋ ()
### 7.2 错误分类
#### 7.2.1 开发错误
| 错误码 | 描述 |
|---|---|
| `WETH_E_NO_ERROR` | 无错误 |
| `WETH_E_UNINIT` | WEth 未初始化 |
| `WETH_E_INV_CTRL_IDX` | 控制器索引无效 |
| `WETH_E_INV_PARAM` | 参数无效 |
| `WETH_E_INV_POINTER` | 指针参数为 NULL |
#### 7.2.2 运行时错误
| 错误码 | 描述 |
|---|---|
| `WETH_E_BUSY` | 控制器忙 |
| `WETH_E_NOT_ACTIVE` | 控制器未激活 |
#### 7.2.3 瞬态故障
无。
#### 7.2.4 生产错误
| 错误码 | 描述 |
|---|---|
| `WETH_E_HARDWARE_ERROR` | 硬件错误 |
#### 7.2.5 扩展生产错误
| 错误码 | 描述 |
|---|---|
| `WETH_E_TX_TIMEOUT` | 发送超时 |
---
## 8 API 规范
### 8.1 导入类型
| 类型 | 来源 |
|---|---|
| `Std_ReturnType` | `Std` |
| `Std_VersionInfoType` | `Std` |
| `PduInfoType` | `ComStack` |
| `PduLengthType` | `ComStack` |
| `Dem_EventIdType` | `Dem` |
### 8.2 类型定义
#### 8.2.1 `WEth_ConfigType`
```c
typedef struct {
uint32 dummy;
} WEth_ConfigType;
```
#### 8.2.2 `WEth_BufWRxParamIdType`
```c
typedef uint16 WEth_BufWRxParamIdType;
```
#### 8.2.3 `WEth_BufWTxParamIdType`
```c
typedef uint16 WEth_BufWTxParamIdType;
```
### 8.3 函数定义
#### 8.3.1 `WEth_Init`
```c
void WEth_Init(const WEth_ConfigType* ConfigPtr);
```
**描述**:初始化所有配置的无线以太网控制器。
**参数**
- `ConfigPtr`:指向配置数据的指针。
**返回值**:无。
#### 8.3.2 `WEth_SetControllerMode`
```c
Std_ReturnType WEth_SetControllerMode(
uint8 CtrlIdx,
Eth_ModeType CtrlMode
);
```
**描述**:设置控制器模式(异步)。
#### 8.3.3 `WEth_GetControllerMode`
```c
Std_ReturnType WEth_GetControllerMode(
uint8 CtrlIdx,
Eth_ModeType* CtrlModePtr
);
```
**描述**:获取控制器模式。
#### 8.3.4 `WEth_GetPhysAddr`
```c
void WEth_GetPhysAddr(uint8 CtrlIdx, uint8* PhysAddrPtr);
```
**描述**:获取物理(MAC)地址。
#### 8.3.5 `WEth_SetPhysAddr`
```c
void WEth_SetPhysAddr(uint8 CtrlIdx, const uint8* PhysAddrPtr);
```
**描述**:设置物理(MAC)地址。
#### 8.3.6 `WEth_UpdatePhysAddrFilter`
```c
Std_ReturnType WEth_UpdatePhysAddrFilter(
uint8 CtrlIdx,
const uint8* PhysAddrPtr,
Eth_FilterActionType Action
);
```
**描述**:更新 MAC 地址过滤器。
#### 8.3.7 `WEth_ProvideTxBuffer`
```c
Std_ReturnType WEth_ProvideTxBuffer(
uint8 CtrlIdx,
uint8 Priority,
WEth_BufIdxType* BufIdxPtr,
uint8** BufPtr,
uint16* LenBytePtr
);
```
**描述**:提供发送缓冲区。
#### 8.3.8 `WEth_Transmit`
```c
Std_ReturnType WEth_Transmit(
uint8 CtrlIdx,
WEth_BufIdxType BufIdx,
Eth_FrameType FrameType,
boolean TxConfirmation,
uint16 LenByte,
uint8* PhysAddrPtr
);
```
**描述**:触发已填充缓冲区的发送。
#### 8.3.9 `WEth_TxConfirmation`
```c
void WEth_TxConfirmation(uint8 CtrlIdx, WEth_BufIdxType BufIdx);
```
**描述**:由 EthIf 调用,通知发送完成(同步确认)。
#### 8.3.10 `WEth_Receive`
```c
Std_ReturnType WEth_Receive(
uint8 CtrlIdx,
uint8 Priority,
WEth_BufIdxType* BufIdxPtr,
uint8** BufPtr,
uint16* LenBytePtr
);
```
**描述**:从接收缓冲区中获取接收到的帧。
#### 8.3.11 `WEth_GetWEtherStats32`
```c
Std_ReturnType WEth_GetWEtherStats32(
uint8 CtrlIdx,
WEth_Stats32Type* StatsPtr
);
```
**描述**:获取 32 位统计计数器。
#### 8.3.12 `WEth_GetWEtherStats64`
```c
Std_ReturnType WEth_GetWEtherStats64(
uint8 CtrlIdx,
WEth_Stats64Type* StatsPtr
);
```
**描述**:获取 64 位统计计数器。
#### 8.3.13 `WEth_WriteTrcvRegs`
```c
Std_ReturnType WEth_WriteTrcvRegs(
uint8 TrcvIdx,
uint8 NumRegs,
const WEth_TrcvRegAddrType* RegAddrListPtr,
const WEth_TrcvRegValueType* RegValueListPtr
);
```
**描述**:写入收发器寄存器。
#### 8.3.14 `WEth_ReadTrcvRegs`
```c
Std_ReturnType WEth_ReadTrcvRegs(
uint8 TrcvIdx,
uint8 NumRegs,
const WEth_TrcvRegAddrType* RegAddrListPtr,
WEth_TrcvRegValueType* RegValueListPtr
);
```
**描述**:读取收发器寄存器。
#### 8.3.15 `WEth_GetBufWRxParams`
```c
Std_ReturnType WEth_GetBufWRxParams(
uint8 CtrlIdx,
WEth_BufWRxParamIdType ParamId,
WEth_BufWRxParamValueType* ValuePtr
);
```
**描述**:获取接收缓冲区的参数。
#### 8.3.16 `WEth_GetBufWTxParams`
```c
Std_ReturnType WEth_GetBufWTxParams(
uint8 CtrlIdx,
WEth_BufWTxParamIdType ParamId,
WEth_BufWTxParamValueType* ValuePtr
);
```
**描述**:获取发送缓冲区的参数。
#### 8.3.17 `WEth_SetBufWTxParams`
```c
Std_ReturnType WEth_SetBufWTxParams(
uint8 CtrlIdx,
WEth_BufWTxParamIdType ParamId,
WEth_BufWTxParamValueType Value
);
```
**描述**:设置发送缓冲区的参数。
#### 8.3.18 `WEth_GetVersionInfo`
```c
void WEth_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
```
**描述**:返回 WEth 的版本信息。
#### 8.3.19 `WEth_TriggerPriorityQueueTransmit`
```c
Std_ReturnType WEth_TriggerPriorityQueueTransmit(
uint8 CtrlIdx,
uint8 QueueIdx
);
```
**描述**:触发指定优先级队列的发送(V2X 特定)。
### 8.4 回调通知
无显式回调;通过 `WEth_TxConfirmation` 同步确认。
### 8.5 调度函数
#### 8.5.1 `WEth_MainFunction`
```c
void WEth_MainFunction(void);
```
**描述**:周期性处理发送完成、接收通知、统计轮询等。
**调度**:由 BSW 调度器调用(典型 1-10ms)。
### 8.6 期望的接口
#### 8.6.1 强制接口
| API | 描述 |
|---|---|
| `Det_ReportError` | 上报开发错误 |
| `Dem_SetEventStatus` | 上报生产错误 |
#### 8.6.2 可选接口
| API | 描述 |
|---|---|
| `Mcu_GetSystemClock` | 获取系统时钟 |
| `Port_SetPinDirection` | 引脚控制 |
#### 8.6.3 可配置接口
无。
---
## 9 时序图
> 摘要标记:本章包含约 5+ 个时序图。关键流程:
> - **图 1WEth 初始化**EcuM → `WEth_Init`。
> - **图 2:发送流程**EthIf → `WEth_ProvideTxBuffer` → 数据填充 → `WEth_Transmit` → `WEth_TxConfirmation`。
> - **图 3:接收流程**:硬件接收 → `WEth_Receive` → EthIf。
> - **图 4:V2X 优先级队列发送**。
> - **图 5:统计读取**。
---
## 10 配置规范
### 10.1 容器与配置参数
#### 10.1.1 `Variants`
变体配置(post-build 可配置性)。
#### 10.1.2 `WEth`
顶层容器,唯一实例。
#### 10.1.3 `WEthConfigSet`
配置集容器。
#### 10.1.4 `WEthCtrlConfig`
| 参数 | 类型 | 描述 |
|---|---|---|
| `WEthCtrlIdx` | Integer | 控制器索引 |
| `WEthTrcvRef` | Reference | 关联的 WEthTrcv |
| `WEthCtrlMacAddress` | MacAddress | MAC 地址 |
| `WEthCtrlRxAdrFilterCount` | Integer | 接收地址过滤数 |
| `WEthCtrlTxBufTotal` | Integer | 总发送缓冲区数 |
| `WEthCtrlRxBufTotal` | Integer | 总接收缓冲区数 |
| `WEthCtrlV2XSupport` | Boolean | V2X 支持 |
| `WEthCtrlGptpSupport` | Boolean | gPTP 支持 |
| `WEthCtrlPriorityQueues` | Integer | 优先级队列数(V2X |
| `WEthCtrlDemEventParameterRefs` | Reference | DEM 事件引用 |
#### 10.1.5 `WEthDemEventParameterRefs`
引用 DEM 事件。
#### 10.1.6 `WEthGeneral`
| 参数 | 类型 | 描述 |
|---|---|---|
| `WEthDevErrorDetect` | Boolean | 启用开发错误检测 |
| `WEthVersionInfoApi` | Boolean | 启用版本信息 API |
| `WEthIndex` | Integer | WEth 实例索引 |
| `WEthMulticoreSupport` | Boolean | 多核支持(4.4.0 草案) |
| `WEthMainFunctionPeriod` | Float | 主函数周期 |
### 10.2 发布信息
无附加发布参数。
---
## 11 不适用需求
无。
---
## 翻译说明
- 本文档基于 **AUTOSAR CP Release 4.4.0** 翻译,对应原文 `AUTOSAR_SWS_WirelessEthernetDriver.pdf`49 页)。
- 关键翻译策略:
- **完整翻译**:封面、文档标识、变更历史、目录、章节 1-11 的所有正文、API 声明、错误分类、配置参数。
- **保留英文**:所有 API 名、类型名、模式名、配置参数标识符、需求 ID、IEEE 802.11 / ETSI 标准引用。
- **摘要标记**:第 6 章需求可追踪性表涵盖 20+ 项需求;第 9 章时序图列出 5 个关键图。完整内容请参见原文 PDF。
- 内容置信度:高。所有 API 签名、V2X 特定参数、配置容器均已涵盖。