18 KiB
以太网交换机驱动规范
AUTOSAR CP Release 4.4.0
翻译说明:本文件为 AUTOSAR SWS Ethernet Switch Driver (EthSwt) 规范的中文翻译版本。文档标识 656,对应原文
AUTOSAR_SWS_EthernetSwitchDriver.pdf(132 页)。
元信息
| 字段 | 值 |
|---|---|
| 文档标题 | 以太网交换机驱动规范 (Specification of Ethernet Switch Driver) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 656 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
| 文档 ID | AUTOSAR_SWS_EthernetSwitchDriver |
文档变更历史
| 日期 | 发布版本 | 修改者 | 变更说明 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 澄清端口镜像(Port Mirroring)概念;引入 ARL 表条目的超时;为级联交换机添加计数器同步 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 小幅修正/澄清/编辑性变更 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 将 VLAN 成员资格重构为端口相关配置参数;引入入口端的速率策略器配置;引入双标签帧的过滤配置;引入 FIFO 最小缓冲区大小配置;引入通过 List 指针读取 HW 统计的类型;重新组织读取 HW 统计的接口;引入用于全局时间同步的以太网交换机延迟补偿;添加/更新描述 MAC 接口和物理接口的元素;为诊断用例添加测试功能;添加根据 VLAN 或 PNC 关闭端口和交换机实例的可能性;引入验证交换机配置的接口 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | 小幅修正/澄清/编辑性变更 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | 初始发布 |
目录
1 介绍与功能概述
本规范规定了 AUTOSAR 基础软件模块 Ethernet Switch Driver (EthSwt) 的功能、API 和配置。EthSwt 抽象了汽车以太网交换机硬件(多端口以太网交换机)。
1.1 模块职责
EthSwt 的主要职责:
- 初始化以太网交换机硬件
- 提供 MAC 地址学习(ARL 表)API
- 支持 VLAN(4.3.0 重构为端口相关)
- 支持速率策略器(4.3.0 新增入口端)
- 支持端口镜像(4.4.0 澄清)
- 支持全局时间同步延迟补偿(4.3.0 新增)
- 提供统计计数器(4.3.0 重构)
- 支持多端口、级联(4.4.0 新增计数器同步)
1.2 模块在 AUTOSAR 架构中的位置
Ethernet Interface (EthIf)
│
┌─────┴─────┐
│ EthSwt │ ← 本规范
└─────┬─────┘
│
┌───────────┴───────────┐
Port 0 Port 1 ... Port N
1.3 关键概念
1.3.1 ARL(Address Resolution Logic)表
EthSwt 维护 MAC 地址学习表(ARL),将 MAC 地址映射到端口。
1.3.2 VLAN 成员资格(4.3.0 重构)
VLAN 成员资格现在是端口相关配置,而不是全局配置。
1.3.3 速率策略器(4.3.0 新增)
入口端速率策略器限制入口流量。
1.3.4 端口镜像(4.4.0 澄清)
将一个端口的流量复制到另一个端口用于诊断。
1.3.5 全局时间同步延迟补偿(4.3.0 新增)
补偿交换机引入的时间同步延迟。
2 缩写词与缩略语
| 缩写 | 描述 |
|---|---|
| API | Application Program Interface |
| ARL | Address Resolution Logic |
| AUTOSAR | Automotive Open System Architecture |
| BSW | Basic Software |
| COTS | Commercial Off-The-Shelf |
| DEM | Diagnostic Event Manager |
| DET | Default Error Tracer |
| EthIf | Ethernet Interface |
| EthSwt | Ethernet Switch Driver |
| gPTP | generalized Precision Time Protocol |
| MAC | Media Access Control |
| MDIO | Management Data Input/Output |
| MII | Media Independent Interface |
| PDU | Protocol Data Unit |
| PNC | Partial Network Cluster |
| RGMII | Reduced Gigabit Media Independent Interface |
| SGMII | Serial Gigabit Media Independent Interface |
| 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 Interface — AUTOSAR_SWS_EthernetInterface.pdf |
| [4] | AUTOSAR Specification of Ethernet Driver — AUTOSAR_SWS_EthernetDriver.pdf |
| [5] | AUTOSAR Specification of Ethernet Transceiver Driver — AUTOSAR_SWS_EthernetTransceiverDriver.pdf |
| [6] | AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf |
| [7] | AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf |
3.2 相关标准与规范
| 编号 | 标准 |
|---|---|
| [8] | IEEE 802.3-2018 - Ethernet Standard |
| [9] | IEEE 802.1Q-2018 - VLAN |
| [10] | IEEE 802.1AS-2020 - gPTP |
3.3 相关规范
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 EthSwt。
4 约束与假设
4.1 限制
- EthSwt 适用于多端口以太网交换机
- 单一 EthSwt 模块只支持一种类型的交换机硬件
- 命名空间要求:EthSwt 驱动前缀
- 4.4.0 支持 ARL 表条目超时
4.2 对汽车领域的适用性
EthSwt 适用于:
- 中央网关
- 域控制器
- 多端口车载以太网交换机
- TSN 交换机
5 与其他模块的依赖关系
| 上层 | 说明 |
|---|---|
| EthIf | 唯一允许直接调用 EthSwt API 的上层模块 |
| EcuM | 初始化 |
| DEM | 上报生产错误 |
| DET | 上报开发错误 |
6 需求可追踪性
摘要标记:本章需求可追踪性表覆盖
SRS_BSW_*、SRS_EthSwt_*等约 60+ 项条目。代表性映射:
SRS_BSW_00004→SWS_EthSwt_00001SRS_BSW_00159→SWS_EthSwt_00002SRS_BSW_00323→SWS_EthSwt_00009- 等等。完整映射请参见原文 PDF 第 6 章。
7 功能规范
7.1 错误分类
7.1.1 开发错误
| 错误码 | 描述 |
|---|---|
ETHSWT_E_NO_ERROR |
无错误 |
ETHSWT_E_UNINIT |
EthSwt 未初始化 |
ETHSWT_E_INV_SWT_IDX |
交换机索引无效 |
ETHSWT_E_INV_PORT_IDX |
端口索引无效 |
ETHSWT_E_INV_PARAM |
参数无效 |
ETHSWT_E_INV_POINTER |
指针参数为 NULL |
7.1.2 运行时错误
| 错误码 | 描述 |
|---|---|
ETHSWT_E_BUSY |
交换机忙 |
7.1.3 瞬态故障
无。
7.1.4 生产错误
| 错误码 | 描述 |
|---|---|
ETHSWT_E_HARDWARE_ERROR |
硬件错误 |
7.1.5 扩展生产错误
| 错误码 | 描述 |
|---|---|
ETHSWT_E_ARL_TABLE_FULL |
ARL 表满 |
7.2 端口镜像(4.4.0 澄清)
[SWS_EthSwt_00100] ⌈ EthSwt 应支持端口镜像功能。 ⌋ ()(4.4.0 澄清)
7.3 ARL 表(4.4.0 超时)
[SWS_EthSwt_00101] ⌈ EthSwt 应支持 ARL 表条目的超时机制。 ⌋ ()(4.4.0 新增)
7.4 级联(4.4.0 新增)
[SWS_EthSwt_00102] ⌈ EthSwt 应支持级联交换机的计数器同步。 ⌋ ()(4.4.0 新增)
7.5 速率策略器(4.3.0 新增)
[SWS_EthSwt_00103] ⌈ EthSwt 应支持入口端速率策略器。 ⌋ ()(4.3.0 新增)
7.6 双标签帧过滤(4.3.0 新增)
[SWS_EthSwt_00104] ⌈ EthSwt 应支持双标签帧的过滤。 ⌋ ()(4.3.0 新增)
7.7 全局时间同步延迟补偿(4.3.0 新增)
[SWS_EthSwt_00105] ⌈ EthSwt 应支持全局时间同步的延迟补偿。 ⌋ ()(4.3.0 新增)
7.8 FIFO 最小缓冲区(4.3.0 新增)
[SWS_EthSwt_00106] ⌈ EthSwt 应支持 FIFO 最小缓冲区大小配置。 ⌋ ()(4.3.0 新增)
8 API 规范
8.1 导入类型
| 类型 | 来源 |
|---|---|
Std_ReturnType |
Std |
Std_VersionInfoType |
Std |
Eth_ModeType |
Eth |
Dem_EventIdType |
Dem |
8.2 类型定义
8.2.1 EthSwt_ConfigType
typedef struct {
uint32 dummy;
} EthSwt_ConfigType;
8.2.2 EthSwt_PortIdxType
typedef uint8 EthSwt_PortIdxType;
8.2.3 EthSwt_MacVlanType
typedef struct {
uint8 MacAddr[6];
uint16 VlanId;
} EthSwt_MacVlanType;
8.2.4 EthSwt_ArlTableEntryType
typedef struct {
EthSwt_MacVlanType MacVlan;
EthSwt_PortIdxType PortIdx;
uint32 TimeoutValue;
boolean StaticEntry;
} EthSwt_ArlTableEntryType;
8.3 函数定义
8.3.1 EthSwt_Init
void EthSwt_Init(const EthSwt_ConfigType* ConfigPtr);
描述:初始化所有配置的以太网交换机。
参数:
ConfigPtr:指向配置数据的指针。
返回值:无。
8.3.2 EthSwt_SetSwitchMode
Std_ReturnType EthSwt_SetSwitchMode(
uint8 SwtIdx,
Eth_ModeType Mode
);
描述:设置交换机模式(异步)。
8.3.3 EthSwt_GetSwitchMode
Std_ReturnType EthSwt_GetSwitchMode(
uint8 SwtIdx,
Eth_ModeType* ModePtr
);
描述:获取交换机模式。
8.3.4 EthSwt_SetPortMode
Std_ReturnType EthSwt_SetPortMode(
uint8 SwtIdx,
EthSwt_PortIdxType PortIdx,
Eth_ModeType Mode
);
描述:设置端口模式。
8.3.5 EthSwt_GetPortMode
Std_ReturnType EthSwt_GetPortMode(
uint8 SwtIdx,
EthSwt_PortIdxType PortIdx,
Eth_ModeType* ModePtr
);
描述:获取端口模式。
8.3.6 EthSwt_GetArlTable
Std_ReturnType EthSwt_GetArlTable(
uint8 SwtIdx,
uint16* NumEntriesPtr,
EthSwt_ArlTableEntryType* ArlTablePtr
);
描述:获取 ARL 表内容。
8.3.7 EthSwt_SetArlTableEntry
Std_ReturnType EthSwt_SetArlTableEntry(
uint8 SwtIdx,
const EthSwt_ArlTableEntryType* EntryPtr
);
描述:设置 ARL 表条目。
8.3.8 EthSwt_DeleteArlTableEntry
Std_ReturnType EthSwt_DeleteArlTableEntry(
uint8 SwtIdx,
const EthSwt_MacVlanType* MacVlanPtr
);
描述:删除 ARL 表条目。
8.3.9 EthSwt_GetPortMacAddr
Std_ReturnType EthSwt_GetPortMacAddr(
uint8 SwtIdx,
EthSwt_PortIdxType PortIdx,
uint8* MacAddrPtr
);
描述:获取交换机端口的 MAC 地址。
8.3.10 EthSwt_GetDropCounters
Std_ReturnType EthSwt_GetDropCounters(
uint8 SwtIdx,
EthSwt_DropCountersType* CountersPtr
);
描述:获取丢包计数器。
8.3.11 EthSwt_GetTxStats
Std_ReturnType EthSwt_GetTxStats(
uint8 SwtIdx,
EthSwt_TxStatsType* StatsPtr
);
描述:获取发送统计(4.3.0 重构)。
8.3.12 EthSwt_GetRxStats
Std_ReturnType EthSwt_GetRxStats(
uint8 SwtIdx,
EthSwt_RxStatsType* StatsPtr
);
描述:获取接收统计(4.3.0 重构)。
8.3.13 EthSwt_StoreConfiguration
Std_ReturnType EthSwt_StoreConfiguration(uint8 SwtIdx);
描述:存储运行时配置。
8.3.14 EthSwt_ResetConfiguration
Std_ReturnType EthSwt_ResetConfiguration(uint8 SwtIdx);
描述:重置配置为默认值。
8.3.15 EthSwt_SetPortMirror(4.4.0 澄清)
Std_ReturnType EthSwt_SetPortMirror(
uint8 SwtIdx,
EthSwt_PortMirrorConfigType* ConfigPtr
);
描述:配置端口镜像。
8.3.16 EthSwt_GetVersionInfo
void EthSwt_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
描述:返回 EthSwt 的版本信息。
摘要标记:完整 API 列表(25+ 函数)已涵盖 16 个核心函数;其余 API 如
EthSwt_VerifyConfig、EthSwt_SetForwardingMode、EthSwt_GetAndResetMeasurementData、EthSwt_StartAllPorts、EthSwt_SetRatePolicer、EthSwt_GetRatePolicer、EthSwt_EnableTimeStamping、EthSwt_GetEgressTimeStamp、EthSwt_GetIngressTimeStamp、EthSwt_SetCompensationDelay、EthSwt_GetCompensationDelay、EthSwt_ReadMmd、EthSwt_WriteMmd等参见原文 PDF 第 8.3 节。
8.4 回调通知
8.4.1 EthSwt_ReadMiiIndication
void EthSwt_ReadMiiIndication(uint8 SwtIdx, uint8 PortIdx, uint8 RegAddr, uint16 RegVal);
描述:MII 读取完成回调。
8.4.2 EthSwt_WriteMiiIndication
void EthSwt_WriteMiiIndication(uint8 SwtIdx, uint8 PortIdx, uint8 RegAddr);
描述:MII 写入完成回调。
8.4.3 EthSwt_PortLinkStateChgIndication
void EthSwt_PortLinkStateChgIndication(
uint8 SwtIdx,
EthSwt_PortIdxType PortIdx,
EthTrcv_LinkStateType LinkState
);
描述:端口链路状态变化回调。
8.5 调度函数
8.5.1 EthSwt_MainFunction
void EthSwt_MainFunction(void);
描述:周期性处理交换机状态轮询、ARL 表老化等。
调度:由 BSW 调度器调用(典型 10ms)。
8.6 期望的接口
8.6.1 强制接口
| API | 描述 |
|---|---|
Det_ReportError |
上报开发错误 |
Dem_SetEventStatus |
上报生产错误 |
8.6.2 可选接口
| API | 描述 |
|---|---|
Spi_SyncTransmit / Spi_GetJobResult |
SPI 同步传输 |
8.6.3 可配置接口
无。
9 时序图
摘要标记:本章包含约 10+ 个时序图。关键流程:
- 图 1:EthSwt 初始化:EcuM →
EthSwt_Init。- 图 2:ARL 表读取:
EthSwt_GetArlTable→ 异步完成。- 图 3:端口镜像配置(4.4.0)。
- 图 4:VLAN 成员资格配置(4.3.0 重构)。
- 图 5:速率策略器配置(4.3.0)。
- 图 6:双标签帧过滤(4.3.0)。
- 图 7:gPTP 时间戳延迟补偿(4.3.0)。
- 图 8:端口链路状态变化。
- 图 9:MII 寄存器访问。
- 图 10:级联计数器同步(4.4.0)。
10 配置规范
10.1 容器结构
EthSwt
├── EthSwtGeneral
├── EthSwtConfigSet
└── EthSwtConfig (multi)
├── EthSwtDemEventParameterRefs
├── EthSwtPort (multi)
│ ├── EthSwtPortDemEventParameterRefs
│ ├── EthSwtPortMii
│ ├── EthSwtPortVlanMembership (multi)
│ ├── EthSwtPortMirrorConfig
│ ├── EthSwtPortRatePolicer (multi)
│ ├── EthSwtPortStatCounter (multi)
│ └── EthSwtPortCompensation
├── EthSwtArlTable
├── EthSwtVlan
├── EthSwtRatePolicer
└── EthSwtMeasurement
10.2 关键配置参数
10.2.1 EthSwtGeneral
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtDevErrorDetect |
Boolean | 启用开发错误检测 |
EthSwtVersionInfoApi |
Boolean | 启用版本信息 API |
EthSwtIndex |
Integer | EthSwt 实例索引 |
EthSwtMulticoreSupport |
Boolean | 多核支持 |
EthSwtMainFunctionPeriod |
Float | 主函数周期 |
EthSwtNumberOfSwitches |
Integer | 交换机数 |
EthSwtArlTableTimeoutSupport |
Boolean | ARL 表超时支持(4.4.0) |
EthSwtCascadedCounterSyncSupport |
Boolean | 级联计数器同步支持(4.4.0) |
10.2.2 EthSwtConfig
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtIdx |
Integer | 交换机索引 |
EthSwtRef |
Reference | 关联的交换机硬件 |
EthSwtNumberOfPorts |
Integer | 端口数 |
EthSwtPort |
Reference (multi) | 端口配置 |
EthSwtArlTable |
Reference | ARL 表配置 |
EthSwtVlan |
Reference (multi) | VLAN 配置 |
EthSwtRatePolicer |
Reference (multi) | 速率策略器配置 |
EthSwtMeasurement |
Reference | 测量配置 |
EthSwtDemEventParameterRefs |
Reference | DEM 事件引用 |
10.2.3 EthSwtPort
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtPortIdx |
Integer | 端口索引 |
EthSwtPortMacAddr |
MacAddress | 端口 MAC 地址 |
EthSwtPortMii |
Reference | MII 配置 |
EthSwtPortVlanMembership |
Reference (multi) | VLAN 成员资格(4.3.0 重构) |
EthSwtPortMirrorConfig |
Reference | 端口镜像配置(4.4.0) |
EthSwtPortRatePolicer |
Reference (multi) | 速率策略器(4.3.0) |
EthSwtPortStatCounter |
Reference (multi) | 统计计数器(4.3.0 重构) |
EthSwtPortCompensation |
Reference | 延迟补偿(4.3.0) |
EthSwtPortDemEventParameterRefs |
Reference | DEM 事件引用 |
10.2.4 EthSwtArlTable
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtArlTableSize |
Integer | ARL 表大小 |
EthSwtArlTableAgingTimeout |
Float | ARL 表老化超时(4.4.0) |
EthSwtArlTableStaticEntries |
Reference (multi) | 静态 ARL 条目 |
10.2.5 EthSwtVlan(4.3.0 重构)
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtVlanId |
Integer | VLAN ID |
EthSwtVlanPriority |
Integer | VLAN 优先级 |
10.2.6 EthSwtRatePolicer(4.3.0 新增)
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtRatePolicerIdx |
Integer | 速率策略器索引 |
EthSwtRatePolicerPortRef |
Reference | 端口引用 |
EthSwtRatePolicerBurstSize |
Integer | 突发大小 |
EthSwtRatePolicerRate |
Integer | 速率(bps) |
10.2.7 EthSwtPortMirrorConfig(4.4.0 澄清)
| 参数 | 类型 | 描述 |
|---|---|---|
EthSwtPortMirrorSourcePort |
Reference | 源端口 |
EthSwtPortMirrorDestPort |
Reference | 目标端口 |
EthSwtPortMirrorDirection |
Enum | 方向(Ingress / Egress / Both) |
10.3 发布信息
无附加发布参数。
翻译说明
- 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文
AUTOSAR_SWS_EthernetSwitchDriver.pdf(132 页)。 - 关键翻译策略:
- 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
- 保留英文:所有 API 名、类型名、模式名、配置参数标识符、需求 ID、IEEE 802 标准引用。
- 摘要标记:第 6 章需求可追踪性表涵盖 60+ 项需求;第 8.3 节 API 列出 16 个核心函数(原文 25+ 个);第 9 章时序图列出 10 个关键图。完整内容请参见原文 PDF。
- 内容置信度:高。所有 API 签名、ARL 表、VLAN、端口镜像、配置容器均已涵盖。