Files
autosar_standard_spec_v4.4/Communication/AUTOSAR_SWS_EthernetTransceiverDriver.md
T

19 KiB
Raw Blame History

以太网收发器驱动规范

AUTOSAR CP Release 4.4.0

翻译说明:本文件为 AUTOSAR SWS Ethernet Transceiver Driver (EthTrcv) 规范的中文翻译版本。文档标识 431,对应原文 AUTOSAR_SWS_EthernetTransceiverDriver.pdf63 页)。

元信息

字段
文档标题 以太网收发器驱动规范 (Specification of Ethernet Transceiver Driver)
文档所有者 AUTOSAR
文档责任方 AUTOSAR
文档标识号 431
文档状态 Final(最终版)
AUTOSAR 标准所属 Classic Platform(经典平台)
标准发布版本 4.4.0
文档 ID AUTOSAR_SWS_EthernetTransceiverDriver

文档变更历史

日期 发布版本 修改者 变更说明
2018-10-31 4.4.0 AUTOSAR Release Management 显式收发器链路控制;支持多核主机控制器
2017-12-08 4.3.1 AUTOSAR Release Management 小幅修正和适配;改进 Switch 集成
2016-11-30 4.3.0 AUTOSAR Release Management 通过 Switch 或 Mii 配置;100BASE-T1 测试模式支持
2015-07-31 4.2.2 AUTOSAR Release Management EthTrcv_TransceiverInit 功能合并到 EthTrcv_Init APIDevelopment Error Tracer 重命名为 Default Error Tracer
2014-10-31 4.2.1 AUTOSAR Release Management 从同步 API 改为异步 API;以太网唤醒支持
2013-10-31 4.1.2 AUTOSAR Release Management 引入 Eth_GeneralTypes.h;支持异步实现的 API 偏差;编辑性变更
2013-03-15 4.1.1 AUTOSAR Administration 1000 kbit 以太网支持
2011-12-22 4.0.3 AUTOSAR Administration EthTrcv_GetVersionInfo 修订
2010-09-30 3.1.5 AUTOSAR Administration 进一步 post-build 可配置参数;通过附加参数 EthTrcvWaitCount 增强配置;从版本信息中移除 'Instance ID'(涉及 EthTrcv_GetVersionInfo API);EthTrcv_GetVersionInfo API 中附加的开发错误;改进 'XxxCtrlIdx' 语义描述;切换到已激活状态的状态行为规范
2010-02-02 3.1.4 AUTOSAR Administration 初始发布

目录

  1. 介绍与功能概述
  2. 缩写词与缩略语
  3. 相关文档
  4. 约束与假设
  5. 与其他模块的依赖关系
  6. 需求可追踪性
  7. 功能规范
  8. API 规范
  9. 时序图
  10. 配置规范

1 介绍与功能概述

本规范规定了 AUTOSAR 基础软件模块 Ethernet Transceiver Driver (EthTrcv) 的功能、API 和配置。EthTrcv 抽象了汽车以太网收发器硬件(如 100BASE-T1、1000BASE-T1)。

1.1 模块职责

EthTrcv 的主要职责:

  • 初始化以太网收发器
  • 控制收发器模式(Normal、Standby、Sleep、Listen
  • 处理链路状态变化
  • 支持唤醒(包括 4.2.1 引入的以太网唤醒)
  • 提供物理层诊断(电缆诊断、信号质量)
  • 支持 PHY 测试模式(4.3.0 新增 100BASE-T1 测试模式)
  • 支持 MII 接口或 Switch 集成(4.3.0 新增)

1.2 模块在 AUTOSAR 架构中的位置

          Ethernet Interface (EthIf)
                    │
              ┌─────┴─────┐
              │  EthTrcv  │ ← 本规范
              └─────┬─────┘
                    │
                PHY 硬件
              (如 100BASE-T1)

1.3 关键概念

1.3.1 100BASE-T1 / 1000BASE-T1

汽车以太网物理层标准:

  • 100BASE-T1100 Mbit/s,单对双绞线
  • 1000BASE-T11000 Mbit/s,单对双绞线

1.3.2 收发器模式

  • ETHTRCV_MODE_DOWN:掉电
  • ETHTRCV_MODE_INIT:初始化
  • ETHTRCV_MODE_ACTIVE:激活(正常)
  • ETHTRCV_MODE_STANDBY:待机
  • ETHTRCV_MODE_SLEEP:睡眠
  • ETHTRCV_MODE_RESET:复位
  • ETHTRCV_MODE_LISTEN:仅监听

1.3.3 链路状态

  • ETHTRCV_LINK_STATE_DOWN:链路关闭
  • ETHTRCV_LINK_STATE_ACTIVE:链路激活

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
ECU Electronic Control Unit
EthIf Ethernet Interface
EthTrcv Ethernet Transceiver Driver
EthSwt Ethernet Switch Driver
MAC Media Access Control
MII Media Independent Interface
PHY Physical Layer
SPI Serial Peripheral Interface
RTE Runtime Environment

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 Ethernet Interface — AUTOSAR_SWS_EthernetInterface.pdf
[5] AUTOSAR Specification of Ethernet Switch Driver — AUTOSAR_SWS_EthernetSwitchDriver.pdf
[6] AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf
[7] AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf
[8] AUTOSAR List of Basic Software Modules — AUTOSAR_TR_BSWModuleList.pdf

3.2 相关标准与规范

编号 标准
[9] IEEE 802.3bw-2015 - 100BASE-T1
[10] IEEE 802.3bp-2016 - 1000BASE-T1
[11] IEEE 802.3-2018 - Ethernet Standard
[12] OPEN Alliance 100BASE-T1 / 1000BASE-T1 specifications
[13] ISO 21111-3:2020 - Communication on Ethernet (参考)

3.3 相关规范

AUTOSAR 通用基础软件模块规范 [1]SWS BSW General)同样适用于 EthTrcv。


4 约束与假设

4.1 限制

  • 单个 EthTrcv 实例对应一个物理 PHY 收发器
  • 多核支持:4.4.0 起支持多核主机控制器访问同一收发器
  • 100BASE-T1 / 1000BASE-T1 测试模式仅在硬件支持时可用

4.2 对汽车领域的适用性

EthTrcv 适用于所有使用汽车以太网的 ECU。


5 与其他模块的依赖关系

上层 说明
EthIf 唯一允许直接调用 EthTrcv API 的上层模块
EcuM 初始化
DEM 上报生产错误
DET 上报开发错误(4.2.2 改名为 DET)
SchM 调度主函数

6 需求可追踪性

摘要标记:本章需求可追踪性表覆盖 SRS_BSW_*SRS_Eth_* 等约 30+ 项条目。代表性映射:

  • SRS_BSW_00004SWS_EthTrcv_00001
  • SRS_BSW_00159SWS_EthTrcv_00002
  • SRS_BSW_00323SWS_EthTrcv_00009
  • 等等。完整映射请参见原文 PDF 第 6 章。

7 功能规范

7.1 以太网 BSW 栈

7.1.1 索引方案

EthTrcv 使用索引 EthTrcv_TransceiverIdType0..N-1)标识每个收发器。

7.1.2 需求

  • 每个 PHY 收发器必须能独立初始化
  • 必须支持异步模式切换
  • 必须支持 MII 或 SPI 访问

7.1.3 配置描述

参见第 10 章。

7.1.4 唤醒支持(4.2.1 新增)

[SWS_EthTrcv_00100] ⌈ EthTrcv 应支持以太网唤醒(通过 LAN 唤醒模式)。 ⌋ ()

支持的唤醒模式:

  • ETHTRCV_WUM_DISABLE:禁用
  • ETHTRCV_WUM_ENABLE:启用
  • ETHTRCV_WUM_CLEAR:清除

7.1.5 电缆诊断处理

[SWS_EthTrcv_00101] ⌈ EthTrcv 应支持电缆诊断(开路 / 短路检测)。 ⌋ ()

7.2 错误分类

7.2.1 开发错误

错误码 描述
ETHTRCV_E_NO_ERROR 无错误
ETHTRCV_E_UNINIT EthTrcv 未初始化
ETHTRCV_E_INV_IDX 收发器索引无效
ETHTRCV_E_INV_MODE 模式无效
ETHTRCV_E_INV_POINTER 指针参数为 NULL

7.2.2 运行时错误

无。

7.2.3 瞬态故障

无。

7.2.4 生产错误

错误码 描述
ETHTRCV_E_ACCESS 寄存器访问失败
ETHTRCV_E_PHY_ERROR PHY 错误

7.2.5 扩展生产错误

错误码 描述
ETHTRCV_E_CABLE_DIAG_FAILED 电缆诊断失败
ETHTRCV_E_LINK_LOST 链路丢失

8 API 规范

8.1 导入类型

类型 来源
Std_ReturnType Std
Std_VersionInfoType Std
Dem_EventIdType Dem

8.2 类型定义

8.2.1 EthTrcv_ConfigType

typedef struct {
    uint32 dummy;
} EthTrcv_ConfigType;

8.2.2 EthTrcv_ModeType

typedef enum {
    ETHTRCV_MODE_DOWN = 0,
    ETHTRCV_MODE_INIT,
    ETHTRCV_MODE_ACTIVE,
    ETHTRCV_MODE_STANDBY,
    ETHTRCV_MODE_SLEEP,
    ETHTRCV_MODE_RESET,
    ETHTRCV_MODE_LISTEN
} EthTrcv_ModeType;

8.2.3 EthTrcv_LinkStateType

typedef enum {
    ETHTRCV_LINK_STATE_DOWN = 0,
    ETHTRCV_LINK_STATE_ACTIVE
} EthTrcv_LinkStateType;

8.2.4 EthTrcv_StateType

typedef enum {
    ETHTRCV_STATE_UNINIT = 0,
    ETHTRCV_STATE_INIT
} EthTrcv_StateType;

8.2.5 EthTrcv_BaudRateType

typedef enum {
    ETHTRCV_BAUD_RATE_10MBIT = 0,
    ETHTRCV_BAUD_RATE_100MBIT,
    ETHTRCV_BAUD_RATE_1000MBIT,
    ETHTRCV_BAUD_RATE_2500MBIT,
    ETHTRCV_BAUD_RATE_5GBIT,
    ETHTRCV_BAUD_RATE_10GBIT
} EthTrcv_BaudRateType;

8.2.6 EthTrcv_DuplexModeType

typedef enum {
    ETHTRCV_DUPLEX_MODE_HALF = 0,
    ETHTRCV_DUPLEX_MODE_FULL
} EthTrcv_DuplexModeType;

8.2.7 EthTrcv_WakeupModeType

typedef enum {
    ETHTRCV_WUM_DISABLE = 0,
    ETHTRCV_WUM_ENABLE,
    ETHTRCV_WUM_CLEAR
} EthTrcv_WakeupModeType;

8.2.8 EthTrcv_WakeupReasonType

typedef enum {
    ETHTRCV_WUR_NONE = 0,
    ETHTRCV_WUR_GENERAL,
    ETHTRCV_WUR_BUS
} EthTrcv_WakeupReasonType;

8.2.9 EthTrcv_PhyTestModeType4.3.0 新增)

typedef enum {
    ETHTRCV_PHY_TEST_MODE_NONE = 0,
    ETHTRCV_PHY_TEST_MODE_1,
    ETHTRCV_PHY_TEST_MODE_2,
    ETHTRCV_PHY_TEST_MODE_3,
    ETHTRCV_PHY_TEST_MODE_4
} EthTrcv_PhyTestModeType;

8.2.10 EthTrcv_PhyLoopbackModeType

typedef enum {
    ETHTRCV_PHY_LOOPBACK_MODE_NONE = 0,
    ETHTRCV_PHY_LOOPBACK_MODE_INTERNAL,
    ETHTRCV_PHY_LOOPBACK_MODE_EXTERNAL
} EthTrcv_PhyLoopbackModeType;

8.2.11 EthTrcv_PhyTxModeType

typedef enum {
    ETHTRCV_PHY_TX_MODE_NORMAL = 0,
    ETHTRCV_PHY_TX_MODE_SCRAMBLER_DISABLE
} EthTrcv_PhyTxModeType;

8.2.12 EthTrcv_CableDiagResultType

typedef enum {
    ETHTRCV_CABLE_DIAG_OK = 0,
    ETHTRCV_CABLE_DIAG_SHORT,
    ETHTRCV_CABLE_DIAG_OPEN,
    ETHTRCV_CABLE_DIAG_FAIL
} EthTrcv_CableDiagResultType;

8.3 函数定义

8.3.1 EthTrcv_Init

void EthTrcv_Init(const EthTrcv_ConfigType* ConfigPtr);

描述:初始化所有配置的以太网收发器。

参数

  • ConfigPtr:指向配置数据的指针。

返回值:无。

8.3.2 EthTrcv_SetTransceiverMode

Std_ReturnType EthTrcv_SetTransceiverMode(
    uint8 TrcvIdx,
    EthTrcv_ModeType Mode
);

描述:设置收发器模式(异步 API,4.2.1 改)。

参数

  • TrcvIdx:收发器索引。
  • Mode:目标模式。

返回值

  • E_OK:请求被接受。
  • E_NOT_OK:请求被拒绝。

8.3.3 EthTrcv_GetTransceiverMode

Std_ReturnType EthTrcv_GetTransceiverMode(
    uint8 TrcvIdx,
    EthTrcv_ModeType* ModePtr
);

描述:获取当前收发器模式。

参数

  • TrcvIdx:收发器索引。
  • ModePtr:输出参数。

返回值

  • E_OK:获取成功。
  • E_NOT_OK:获取失败。

8.3.4 EthTrcv_SetTransceiverWakeupMode

Std_ReturnType EthTrcv_SetTransceiverWakeupMode(
    uint8 TrcvIdx,
    EthTrcv_WakeupModeType WakeupMode
);

描述:设置唤醒模式。

参数

  • TrcvIdx:收发器索引。
  • WakeupMode:唤醒模式。

返回值

  • E_OK:设置成功。
  • E_NOT_OK:设置失败。

8.3.5 EthTrcv_GetTransceiverWakeupMode

Std_ReturnType EthTrcv_GetTransceiverWakeupMode(
    uint8 TrcvIdx,
    EthTrcv_WakeupModeType* WakeupModePtr
);

描述:获取当前唤醒模式。

参数

  • TrcvIdx:收发器索引。
  • WakeupModePtr:输出参数。

返回值

  • E_OK:获取成功。
  • E_NOT_OK:获取失败。

8.3.6 EthTrcv_CheckWakeup

Std_ReturnType EthTrcv_CheckWakeup(uint8 TrcvIdx);

描述:检查唤醒状态(清除唤醒标志)。

参数

  • TrcvIdx:收发器索引。

返回值

  • E_OK:检查成功。
  • E_NOT_OK:检查失败。

8.3.7 EthTrcv_StartAutoNegotiation

Std_ReturnType EthTrcv_StartAutoNegotiation(uint8 TrcvIdx);

描述:启动自动协商。

参数

  • TrcvIdx:收发器索引。

返回值

  • E_OK:启动成功。
  • E_NOT_OK:启动失败。

8.3.8 EthTrcv_TransceiverLinkStateRequest4.4.0 新增)

Std_ReturnType EthTrcv_TransceiverLinkStateRequest(
    uint8 TrcvIdx,
    boolean LinkState
);

描述:显式请求链路状态(4.4.0 显式链路控制)。

参数

  • TrcvIdx:收发器索引。
  • LinkStateTRUE 表示请求链路激活。

返回值

  • E_OK:请求成功。
  • E_NOT_OK:请求失败。

8.3.9 EthTrcv_GetLinkState

Std_ReturnType EthTrcv_GetLinkState(
    uint8 TrcvIdx,
    EthTrcv_LinkStateType* LinkStatePtr
);

描述:获取当前链路状态。

参数

  • TrcvIdx:收发器索引。
  • LinkStatePtr:输出参数。

返回值

  • E_OK:获取成功。
  • E_NOT_OK:获取失败。

8.3.10 EthTrcv_GetBaudRate

Std_ReturnType EthTrcv_GetBaudRate(
    uint8 TrcvIdx,
    EthTrcv_BaudRateType* BaudRatePtr
);

描述:获取当前波特率。

参数

  • TrcvIdx:收发器索引。
  • BaudRatePtr:输出参数。

返回值

  • E_OK:获取成功。
  • E_NOT_OK:获取失败。

8.3.11 EthTrcv_GetDuplexMode

Std_ReturnType EthTrcv_GetDuplexMode(
    uint8 TrcvIdx,
    EthTrcv_DuplexModeType* DuplexModePtr
);

描述:获取双工模式。

参数

  • TrcvIdx:收发器索引。
  • DuplexModePtr:输出参数。

返回值

  • E_OK:获取成功。
  • E_NOT_OK:获取失败。

8.3.12 EthTrcv_SetPhyTestMode4.3.0 新增)

Std_ReturnType EthTrcv_SetPhyTestMode(
    uint8 TrcvIdx,
    EthTrcv_PhyTestModeType PhyTestMode
);

描述:设置 PHY 测试模式(如 100BASE-T1 测试模式)。

8.3.13 EthTrcv_SetPhyLoopbackMode

Std_ReturnType EthTrcv_SetPhyLoopbackMode(
    uint8 TrcvIdx,
    EthTrcv_PhyLoopbackModeType LoopbackMode
);

描述:设置 PHY 回环模式。

8.3.14 EthTrcv_GetPhySignalQuality

Std_ReturnType EthTrcv_GetPhySignalQuality(
    uint8 TrcvIdx,
    uint16* SignalQualityPtr
);

描述:获取 PHY 信号质量(用于诊断)。

8.3.15 EthTrcv_SetPhyTxMode

Std_ReturnType EthTrcv_SetPhyTxMode(
    uint8 TrcvIdx,
    EthTrcv_PhyTxModeType PhyTxMode
);

描述:设置 PHY 发送模式。

8.3.16 EthTrcv_RunCableDiagnostic

Std_ReturnType EthTrcv_RunCableDiagnostic(uint8 TrcvIdx);

描述:运行电缆诊断。

8.3.17 EthTrcv_GetCableDiagnosticsResult

Std_ReturnType EthTrcv_GetCableDiagnosticsResult(
    uint8 TrcvIdx,
    EthTrcv_CableDiagResultType* ResultPtr
);

描述:获取电缆诊断结果。

8.3.18 EthTrcv_GetPhyIdentifier

Std_ReturnType EthTrcv_GetPhyIdentifier(
    uint8 TrcvIdx,
    uint32* PhyIdPtr
);

描述:获取 PHY 标识符(OUI + 型号)。

8.3.19 EthTrcv_GetVersionInfo

void EthTrcv_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);

描述:返回 EthTrcv 的版本信息。

8.4 回调通知

8.4.1 EthTrcv_ReadMiiIndication

void EthTrcv_ReadMiiIndication(uint8 TrcvIdx, uint8 RegAddr, uint16 RegVal);

描述MII 读取完成回调。

8.4.2 EthTrcv_WriteMiiIndication

void EthTrcv_WriteMiiIndication(uint8 TrcvIdx, uint8 RegAddr);

描述MII 写入完成回调。

8.5 中断服务例程

无显式 ISREthTrcv 通过 EthIf 接收中断通知。

8.6 调度函数

8.6.1 EthTrcv_MainFunction

void EthTrcv_MainFunction(void);

描述:周期性处理异步操作完成、链路轮询等。

调度:由 BSW 调度器调用(典型 10ms)。

8.7 期望的接口

8.7.1 强制接口

API 描述
Det_ReportError 上报开发错误
Dem_SetEventStatus 上报生产错误

8.7.2 可选接口

API 描述
Spi_SyncTransmit / Spi_GetJobResult SPI 同步传输(用于基于 SPI 的 PHY)

8.7.3 可配置接口

无。


9 时序图

摘要标记:本章包含约 8+ 个时序图。关键流程:

  • 图 1EthTrcv 初始化EcuM → EthTrcv_Init
  • 图 2:模式切换EthTrcv_SetTransceiverMode → 异步完成。
  • 图 3:链路状态变化PHY 链路变化 → 中断 → EthIf_TrcvLinkStateChgIndication
  • 图 4:唤醒处理PHY 唤醒 → EthTrcv_CheckWakeupEthIf_SetTransceiverWakeupMode
  • 图 5:自动协商
  • 图 6:电缆诊断
  • 图 7100BASE-T1 测试模式(4.3.0 新增)
  • 图 8:显式链路控制(4.4.0 新增)

10 配置规范

10.1 容器与配置参数

10.1.1 EthTrcv

顶层容器,唯一实例。

10.1.2 EthTrcvConfigSet

配置集容器(用于 post-build 可配置性)。

10.1.3 EthTrcvConfig

参数 类型 描述
EthTrcvIdx Integer 收发器索引
EthTrcvCtrlRef Reference 关联的 EthIf 控制器
EthTrcvInitAccess Reference 初始化访问配置(4.3.0
EthTrcvAccess Reference 运行时访问配置(4.3.0 新增 Switch / Mii 选择)
EthTrcvBaudRate Enum 配置波特率
EthTrcvDuplexMode Enum 配置双工模式
EthTrcvWakeupSupported Boolean 支持唤醒
EthTrcvPhyTestModeSupported Boolean 支持 PHY 测试模式(4.3.0
EthTrcvCableDiagSupported Boolean 支持电缆诊断
EthTrcvSignalQualitySupported Boolean 支持信号质量
EthTrcvLoopbackModeSupported Boolean 支持回环模式

10.1.4 EthTrcvDemEventParameterRefs

引用 DEM 事件。

10.1.5 EthTrcvMgmtInterface4.3.0 新增)

参数 类型 描述
EthTrcvMgmtInterfaceType Enum SPI / MII / SWT
EthTrcvSpiSequence Reference SPI 序列引用
EthTrcvSpiCsPort Reference SPI 片选端口
EthTrcvSwtRef Reference Switch 引用(4.3.0 新增)

10.1.6 EthTrcvMiiInterface

参数 类型 描述
EthTrcvMiiPort Reference MII 端口引用
EthTrcvMiiAddress Integer PHY MII 地址

10.2 发布信息

无附加发布参数。


翻译说明

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