2. 以太网基础

以太网从诞生至今已走过半个世纪,但其核心架构依然建立在OSI参考模型的分层思想上。对于硬件工程师而言,理解MAC(媒体访问控制层)与PHY(物理层)的边界划分,是进行芯片选型、电路设计、信号完整性和调试排障的基石。很多初学者容易将“网卡芯片”视为一个整体,但在实际工程中,MAC和PHY往往由不同厂商、不同封装甚至不同板级拓扑实现,二者之间的接口(如MII、RGMII、SGMII)设计直接决定了系统的稳定性和吞吐量。本章将从分层模型出发,深入剖析MAC与PHY的职责边界、以太网帧的字节级结构,以及双工模式与速率协商的硬件实现机制,帮助读者建立从协议栈到PCB焊盘的完整映射。

以太网分层架构与PHY/MAC分工 OSI 7层模型 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 LLC + MAC 1 物理层 PMD + PMA + PCS 传输介质:双绞线/光纤 连接器:RJ45/SFP 电平:MLT-3/PAM4 编码:4B/5B, 8B/10B MAC 层(数据链路层子层) • 帧封装/解封装(添加前导码、FCS) • 介质访问控制(CSMA/CD) • 流量控制(PAUSE帧) • 地址过滤(MAC地址表) • 与上层CPU/交换引擎接口 • 统计:CRC错误、冲突计数 PHY 层(物理层) • 编码/解码(4B/5B, 8B/10B, 64B/66B) • 并串转换(SerDes) • 信号调制(MLT-3, PAM4) • 时钟恢复(CDR) • 自动协商(Auto-Negotiation) • 线路驱动/接收、阻抗匹配 • 链路状态监测(Link Status) MAC-PHY接口 MII (100Mb/s) RMII (100Mb/s) GMII (1000Mb/s) RGMII (1000Mb/s) SGMII (1000Mb/s) XGMII (10Gb/s) XFI/SFI (10Gb/s) 管理接口:MDIO/MDC 控制信号:TX_EN, TX_ER, RX_DV, RX_ER 物理介质 RJ45 + 变压器 SFP/SFP+ 光模块 差分对走线 100Ω/1000Ω 图:以太网分层架构与MAC/PHY分工及接口关系

上图展示了OSI模型与以太网硬件实现的对应关系。在实际芯片中,MAC层通常集成在主控SoC或交换芯片内部,而PHY则作为独立芯片或模组存在。两者之间的接口信号线数量、时序要求、电平标准各不相同,这直接影响了PCB布局布线的复杂度。例如,RGMII接口采用DDR(双沿)采样,在千兆速率下时钟频率为125MHz,数据线仅需4根(TXD[3:0]和RXD[3:0]),但时序裕量较小,对PCB走线等长要求严格;而SGMII采用串行差分对,仅需一对发送和一对接收,但需要额外的时钟恢复电路。理解这些接口特性,是进行原理图设计和PCB Layout的前提。

2.1 核心原理:OSI模型与以太网分层映射

OSI参考模型将网络通信划分为七个层次,每一层只与相邻层通信,通过标准接口提供服务。以太网协议栈实际主要涉及物理层(第1层)和数据链路层(第2层),更高层(网络层、传输层等)由操作系统协议栈处理。在硬件设计中,我们最关心的是物理层和数据链路层的边界——即PHY芯片和MAC控制器之间的分工。

物理层进一步细分为三个子层:PCS(物理编码子层)负责数据编码(如100Base-TX的4B/5B编码、1000Base-T的8B/1B编码)、PMA(物理介质附加子层)负责并串转换和时钟恢复、PMD(物理介质相关子层)负责与具体传输介质的接口(如双绞线驱动、光纤收发)。这三个子层全部集成在PHY芯片内部。而MAC层则负责帧的组装与解析、错误检测(CRC)、介质访问控制(CSMA/CD或全双工流控)等。

工程要点:在硬件方案选型时,需要明确MAC是否已集成在SoC中。例如,NXP i.MX8系列、TI AM335x等应用处理器内部已集成千兆MAC,只需外接PHY芯片(如RTL8211F、AR8035等)。而某些FPGA方案则需要通过IP核实现MAC功能,再外接PHY。若MAC和PHY来自不同厂商,必须仔细核对接口标准(如RGMII v2.0时序规范)和电平标准(如2.5V/3.3V HSTL或LVCMOS)。

2.2 判断方法:MAC与PHY的职责边界与接口选型

在电路设计中,判断MAC与PHY的职责边界,可以从以下几个维度进行:

  • 数据封装层级:MAC处理的是完整以太网帧(从目的MAC地址到FCS字段),而PHY处理的是编码后的比特流。如果示波器测量MAC侧接口,看到的是并行数据(如RGMII的4位数据线)和时钟;测量PHY侧线路,看到的是串行差分信号(如MDI的差分对)。
  • 时钟域:MAC接口时钟由PHY提供(如RGMII的RX_CLK由PHY恢复并输出),而PHY的线路时钟由本地晶振或参考时钟决定。若PHY未检测到有效参考时钟,则无法建立链路。
  • 管理通道:MDIO/MDC管理接口用于配置PHY寄存器(如速率、双工模式、LED配置、环回测试等)。MAC通过MDIO读写PHY寄存器,实现链路协商和状态监控。

接口选型时,需综合考虑速率、引脚数、PCB复杂度、功耗和成本。下表列出了常见MAC-PHY接口的对比:

接口类型数据宽度时钟频率最大速率引脚数(数据)典型应用
MII4位25MHz100Mb/s16低端MCU、工业控制
RMII2位50MHz100Mb/s7引脚受限的嵌入式系统
GMII8位125MHz1000Mb/s24早期千兆设计
RGMII4位(DDR)125MHz1000Mb/s12主流千兆SoC接口
SGMII1位串行625MHz(DDR)1000Mb/s2对差分高速背板、交换芯片
XGMII32位156.25MHz10Gb/s74数据中心、高端交换

选择接口时,除了速率匹配,还需关注MAC侧是否支持该接口的电压域。例如,RGMII通常支持2.5V或3.3V,而SGMII为CML电平(1.2V),需要AC耦合电容。若SoC的MAC接口电压与PHY不匹配,需要增加电平转换电路或选择兼容的PHY。

2.3 案例拆解:RGMII接口时序调试与PHY寄存器配置

某工业网关项目采用NXP LS1028A处理器(内置两个千兆MAC)搭配Marvell 88E1512 PHY芯片,通过RGMII接口连接。在实验室调试时,发现链路能协商到1000Mbps,但ping包丢包率高达30%,且吞吐量仅为200Mbps左右。

初步排查:使用示波器测量RGMII的TX_CLK和TXD[3:0]信号,发现数据线与时钟边沿的建立/保持时间不足。RGMII规范要求数据在时钟上升沿和下降沿均有效,且建立时间≥1ns,保持时间≥1ns。实测建立时间仅约0.5ns,保持时间约0.8ns,明显不满足时序要求。

分析判断:RGMII接口的PCB走线长度不匹配是主要原因。TX_CLK走线长度约1200mil,而TXD[3:0]走线长度约800~900mil,导致时钟比数据早到达约0.3ns。此外,PHY的RX_CLK延迟配置(RGMII TX delay)未正确设置。

操作步骤:

  1. 通过MDIO总线读取PHY寄存器0x0004(LED/时钟控制寄存器),将bit 7(RGMII TX clock delay)设置为1,使PHY在TX_CLK路径上增加约2ns延迟。
  2. 调整PCB走线,将TXD[3:0]走线长度增加至与TX_CLK一致(误差±50mil内)。
  3. 在SoC侧配置RGMII RX clock delay(通过设备树或寄存器),补偿数据采样点。

结果对比:调整后,建立时间提升至1.8ns,保持时间提升至1.5ns,ping丢包率降为0%,吞吐量恢复至940Mbps(线速的94%)。

复盘经验:RGMII接口的时序裕量较小,PCB Layout时必须严格等长,且优先使用PHY内部的时钟延迟功能,而非依赖PCB走线绕长。在原理图设计阶段,应预留MDIO上拉电阻和调试接口,方便软件配置PHY寄存器。

2.4 常见误区与总结复盘

在以太网硬件设计中,以下误区值得特别注意:

  • 误区一:认为MAC和PHY必须同一厂商。实际上,只要符合标准接口(如RGMII、SGMII),不同厂商的MAC和PHY可以互联。但需注意PHY的默认寄存器配置可能与MAC的期望不一致,需通过MDIO初始化。
  • 误区二:忽略PHY的时钟源要求。PHY需要25MHz(千兆)或50MHz(百兆)的参考时钟,该时钟的精度和抖动直接影响链路稳定性。若使用晶振,需选择±50ppm以内的产品;若使用SoC时钟输出,需确认驱动能力和信号完整性。
  • 误区三:双工模式不匹配。当一端设置为全双工,另一端为半双工(或自动协商失败)时,会导致大量冲突和CRC错误。建议强制两端均开启自动协商,或手动设置为相同的双工模式。
  • 误区四:忽视PHY的环回测试功能。PHY芯片通常支持近端环回(Digital Loopback)和远端环回(Analog Loopback),可用于定位故障在MAC侧还是PHY侧。调试时应充分利用这些功能。
风险提示:在高速以太网(≥1Gbps)设计中,PCB走线的阻抗控制(100Ω±10%差分阻抗)、过孔数量、连接器选型都会影响信号质量。建议在原型阶段使用网络分析仪测量回波损耗和插入损耗,确保满足IEEE 802.3规范。此外,PHY芯片的散热设计也不可忽视,尤其是多端口交换芯片,需评估热阻和散热方案。