Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_EthernetSwitchDriver.md
T

18 KiB
Raw Blame History

以太网交换机驱动规范

AUTOSAR CP Release 4.4.0

翻译说明:本文件为 AUTOSAR SWS Ethernet Switch Driver (EthSwt) 规范的中文翻译版本。文档标识 656,对应原文 AUTOSAR_SWS_EthernetSwitchDriver.pdf132 页)。

元信息

字段
文档标题 以太网交换机驱动规范 (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. 介绍与功能概述
  2. 缩写词与缩略语
  3. 相关文档
  4. 约束与假设
  5. 与其他模块的依赖关系
  6. 需求可追踪性
  7. 功能规范
  8. API 规范
  9. 时序图
  10. 配置规范

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 ARLAddress 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_00004SWS_EthSwt_00001
  • SRS_BSW_00159SWS_EthSwt_00002
  • SRS_BSW_00323SWS_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_SetPortMirror4.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_VerifyConfigEthSwt_SetForwardingModeEthSwt_GetAndResetMeasurementDataEthSwt_StartAllPortsEthSwt_SetRatePolicerEthSwt_GetRatePolicerEthSwt_EnableTimeStampingEthSwt_GetEgressTimeStampEthSwt_GetIngressTimeStampEthSwt_SetCompensationDelayEthSwt_GetCompensationDelayEthSwt_ReadMmdEthSwt_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+ 个时序图。关键流程:

  • 图 1EthSwt 初始化EcuM → EthSwt_Init
  • 图 2ARL 表读取EthSwt_GetArlTable → 异步完成。
  • 图 3:端口镜像配置4.4.0)。
  • 图 4VLAN 成员资格配置4.3.0 重构)。
  • 图 5:速率策略器配置4.3.0)。
  • 图 6:双标签帧过滤4.3.0)。
  • 图 7gPTP 时间戳延迟补偿4.3.0)。
  • 图 8:端口链路状态变化
  • 图 9MII 寄存器访问
  • 图 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 EthSwtVlan4.3.0 重构)

参数 类型 描述
EthSwtVlanId Integer VLAN ID
EthSwtVlanPriority Integer VLAN 优先级

10.2.6 EthSwtRatePolicer4.3.0 新增)

参数 类型 描述
EthSwtRatePolicerIdx Integer 速率策略器索引
EthSwtRatePolicerPortRef Reference 端口引用
EthSwtRatePolicerBurstSize Integer 突发大小
EthSwtRatePolicerRate Integer 速率(bps

10.2.7 EthSwtPortMirrorConfig4.4.0 澄清)

参数 类型 描述
EthSwtPortMirrorSourcePort Reference 源端口
EthSwtPortMirrorDestPort Reference 目标端口
EthSwtPortMirrorDirection Enum 方向(Ingress / Egress / Both

10.3 发布信息

无附加发布参数。


翻译说明

  • 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文 AUTOSAR_SWS_EthernetSwitchDriver.pdf132 页)。
  • 关键翻译策略:
    • 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
    • 保留英文:所有 API 名、类型名、模式名、配置参数标识符、需求 ID、IEEE 802 标准引用。
    • 摘要标记:第 6 章需求可追踪性表涵盖 60+ 项需求;第 8.3 节 API 列出 16 个核心函数(原文 25+ 个);第 9 章时序图列出 10 个关键图。完整内容请参见原文 PDF。
  • 内容置信度:高。所有 API 签名、ARL 表、VLAN、端口镜像、配置容器均已涵盖。