Ethernet Driver(Eth)位于 MCAL 层,初始化并控制 Ethernet MAC 控制器。支持 100BASE-T1 / 1000BASE-T1 等车载 Ethernet PHY。提供帧收发、PHY 配置、时间戳(IEEE 1588 / 802.1AS)等服务。
Eth / MAC / PHY / MII / GMII / RGMII / SGMII / TimeStamp / 1588 / 802.1AS / IRQ / DMA
[1] AUTOSAR Layered Software Architecture
[2] AUTOSAR SWS BSW General
[3] AUTOSAR SWS Ethernet Interface
[4] AUTOSAR SRS Ethernet
[5] IEEE 802.1AS / IEEE 802.3 / IEEE 1588
Eth Driver 应:
Eth Driver 依赖:Dem(错误上报)/ MCU(时钟配置)/ Port(引脚复用)/ StbM(时间戳)。
Eth Driver 位于 MCAL 层,对下访问 MAC/PHY 寄存器,对上为 EthIf 提供 Eth_ControllerType、Eth_FrameType 等抽象。
Eth_Init 配置 MAC 控制器、PHY、中断、DMA;Eth_SetControllerMode 控制控制器状态(DOWN / ACTIVE / INIT / STANDBY / SLEEP)。
void Eth_Init(const Eth_ConfigType* CfgPtr):初始化 Eth 驱动。
void Eth_DeInit(void):去初始化。
Std_ReturnType Eth_SetControllerMode(uint8 CtrlIdx, Eth_ModeType CtrlMode):设置控制器模式。
Std_ReturnType Eth_GetControllerMode(uint8 CtrlIdx, Eth_ModeType* CtrlModePtr):获取控制器模式。
Std_ReturnType Eth_SetPhysAddr(uint8 CtrlIdx, const uint8* PhysAddrPtr):设置 MAC 地址。
void Eth_GetPhysAddr(uint8 CtrlIdx, uint8* PhysAddrPtr):获取 MAC 地址。
Std_ReturnType Eth_UpdatePhysAddrFilter(uint8 CtrlIdx, const uint8* PhysAddrPtr, Eth_FilterActionType Action):更新 MAC 过滤表。
Std_ReturnType Eth_Transmit(uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_FrameType FrameType, uint16 Length, const uint8* DataPtr):发送帧。
void Eth_Receive(uint8 CtrlIdx, Eth_RxStatusType* RxStatusPtr):接收帧查询。
Std_ReturnType Eth_TxConfirmation(uint8 CtrlIdx):发送确认。
void Eth_GetCurrentTime(uint8 CtrlIdx, Eth_TimeStampType* TimeStampPtr):获取当前硬件时间。
void Eth_EnableEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx):使能出口时间戳。
void Eth_GetEgressTimeStamp(uint8 CtrlIdx, Eth_BufIdxType BufIdx, Eth_TimeStampType* TimeStampPtr):获取出口时间戳。
void Eth_GetIngressTimeStamp(uint8 CtrlIdx, Eth_DataType* DataPtr, Eth_TimeStampType* TimeStampPtr):获取入口时间戳。
Std_ReturnType Eth_GetCounterValues(uint8 CtrlIdx, Eth_CounterType* CounterPtr):获取统计计数器。
Std_ReturnType Eth_GetRxStats(uint8 CtrlIdx, Eth_RxStatsType* RxStatsPtr):获取接收统计。
Std_ReturnType Eth_GetTxStats(uint8 CtrlIdx, Eth_TxStatsType* TxStatsPtr):获取发送统计。
Std_ReturnType Eth_GetTxErrorCounterValues(uint8 CtrlIdx, Eth_TxErrorCounterValuesType* TxErrorCounterValuesPtr):获取发送错误计数。
Eth 配置类:
ETH_E_UNINIT:模块未初始化。
ETH_E_PARAM_POINTER:参数指针为空。
ETH_E_PARAM:参数无效。
ETH_E_INV_CTRL_IDX:控制器索引无效。
ETH_E_INV_PARAM:参数组合无效。
ETH_E_BUSY:模块忙。
ETH_E_NO_BUFFER:无可用缓冲区。
ETH_E_ACCESS:硬件访问失败。
ETH_E_RX_FIFO_OVERFLOW:RX FIFO 溢出。
ETH_E_TX_FIFO_UNDERFLOW:TX FIFO 下溢。
校对轮次:L1 自动校对(2026-06-13)