第2章:物理层芯片基础:PHY芯片的作用与位置,OSI模型中的物理层,MII/RMII/RGMII/SGMII接口详解

各位同学,咱们今天聊聊PHY芯片。说实话,很多刚入行的工程师觉得PHY就是个“黑盒子”,接上去能通就行。但我在项目里吃过不少PHY的亏,所以这一章咱们把它掰开揉碎了讲清楚。

2.1 PHY芯片到底在干什么?

PHY,全称是Physical Layer,物理层收发器。它的任务说白了就两件事:发送时把数字信号变成模拟信号扔到线上去,接收时把线缆上的模拟信号还原成数字信号

你想想看,咱们主控芯片(比如MCU、FPGA、SoC)里跑的MAC(媒体访问控制器)出来的是干净的数字信号——0和1。但网线里传的是差分模拟信号,有电压、有电流、还有各种噪声。谁来做这个转换?就是PHY。

核心定位:PHY是MAC与物理介质(双绞线、光纤)之间的桥梁。没有它,你的以太网就是空中楼阁。

我记得有一次调试一块板子,网口死活link不上。查了半天,MAC配置没问题,变压器也没焊反,最后发现是PHY的复位时序没满足。嗯,这种坑踩过一次就记住了。

2.2 OSI模型中的物理层——别小看最底层

OSI七层模型,大家上学都背过。物理层是第1层,也是最容易被忽视的一层。很多人觉得“物理层不就是个接口嘛”,其实不然。

物理层负责的是:

  • 信号的编码与解码(比如4B/5B、8B/10B编码)
  • 信号的调制与解调(比如PAM3、PAM5)
  • 时钟的恢复与同步
  • 线路的电气特性(电压摆幅、上升时间、抖动)

说白了,物理层决定了你的数据能不能“活着”到达对端。我在一个车载项目中遇到过,因为PCB走线阻抗不匹配,导致PHY芯片在高温下频繁丢包。查到最后,就是物理层的信号完整性问题。

个人经验:做车载以太网,物理层的余量一定要留够。车规级温度范围-40℃到125℃,PCB板材的介电常数会随温度变化,走线阻抗也会漂。我建议至少留20%的余量。

2.3 MII接口——最经典的MAC-PHY连接方式

MII(Media Independent Interface),媒体独立接口。为什么叫“独立”?因为不管底层是双绞线还是光纤,MII接口的协议是一样的。这样MAC设计就不用关心物理介质了。

MII接口的信号线包括:

  • TXD[3:0]:4位发送数据线
  • RXD[3:0]:4位接收数据线
  • TX_CLK:发送时钟(25MHz for 100Mbps,2.5MHz for 10Mbps)
  • RX_CLK:接收时钟(由PHY提供)
  • TX_EN:发送使能
  • RX_DV:接收数据有效
  • CRS:载波检测
  • COL:冲突检测(半双工用)

MII总共需要16根信号线。你想想看,在寸土寸金的PCB上,16根线占多少面积?所以后来才有了各种简化版本。

注意:MII接口的时钟是MAC和PHY之间同步的关键。我曾经遇到过TX_CLK和RX_CLK的相位关系没处理好,导致数据采样出错。建议在PCB布局时,时钟线尽量短,且远离其他高速信号。

2.4 RMII接口——省线才是硬道理

RMII(Reduced MII),简化版MII。它把数据线从4位砍成了2位,时钟也统一成一个参考时钟(50MHz)。总共只需要9根信号线。

RMII的关键特点:

  • 数据线:TXD[1:0]和RXD[1:0],各2位
  • 时钟:REF_CLK,50MHz,由MAC或外部晶振提供
  • 控制线:TX_EN、RX_DV、CRS_DV(合并了CRS和RX_DV)

RMII在100Mbps以太网中非常流行。我做过一个项目,主控芯片的引脚不够用,果断选了RMII接口的PHY,省了7根线,板子也小了一圈。

但要注意,RMII对时钟的精度要求更高。50MHz的时钟抖动不能太大,否则PHY会工作不稳定。我建议用有源晶振,别省那几毛钱。

2.5 RGMII接口——千兆以太网的主流选择

RGMII(Reduced Gigabit MII),千兆简化接口。它用DDR(双沿采样)技术,在时钟的上升沿和下降沿各采一次数据,这样用4位数据线就能实现千兆速率。

RGMII的信号线:

  • TXD[3:0]:4位发送数据(上升沿发低4位,下降沿发高4位)
  • RXD[3:0]:4位接收数据(同理)
  • TX_CLK:125MHz发送时钟
  • RX_CLK:125MHz接收时钟
  • TX_CTL:发送控制(上升沿TX_EN,下降沿TX_ER)
  • RX_CTL:接收控制(同理)

RGMII的难点在于时序。125MHz的DDR信号,数据窗口只有4ns左右。PCB走线稍微长一点,或者阻抗不连续,就会导致建立/保持时间违例。

避坑指南:我曾经在一个项目中,RGMII接口的TX_CLK和TXD之间的skew没控制好,导致千兆模式下丢包率高达5%。后来在PHY内部加了delay chain才解决。所以,RGMII的PCB走线一定要做等长,误差控制在±50mil以内。

2.6 SGMII接口——串行化的优雅方案

SGMII(Serial Gigabit MII),串行千兆接口。它把并行数据串行化,只用一对差分线(TX_P/N和RX_P/N)就能实现千兆通信。时钟也嵌入在数据流中,不需要单独的时钟线。

SGMII的特点:

  • 信号线:只有2对差分线(发送和接收)
  • 速率:1.25Gbps(包含8B/10B编码开销)
  • 编码:8B/10B编码,保证DC平衡和时钟恢复
  • 距离:PCB走线可达几十厘米,甚至通过连接器到背板

SGMII在车载以太网中越来越常见。因为车载环境对EMI(电磁干扰)要求很高,SGMII的差分信号天然抗干扰能力强。而且线少,布线也简单。

但SGMII也有坑。它的AC耦合电容(通常0.1μF)必须放在发送端附近。我见过有人把电容放反了位置,结果信号质量一塌糊涂。

2.7 四种接口的对比与选型建议

接口类型 数据线宽度 时钟频率 最大速率 信号线数量 适用场景
MII 4位 25MHz 100Mbps 16 传统设计,引脚充足
RMII 2位 50MHz 100Mbps 9 引脚受限,100M场景
RGMII 4位(DDR) 125MHz 1000Mbps 12 千兆以太网主流
SGMII 串行 1.25Gbps 1000Mbps 4(2对差分) 车载、背板、高速设计

选型时我的个人习惯是:

  • 如果主控引脚够用,且速率要求不高(100M),RMII性价比最高
  • 千兆场景,RGMII是主流,但PCB设计要下功夫
  • 车载项目,我强烈推荐SGMII。抗干扰、省空间、好布线

一个小技巧:很多PHY芯片支持多种接口模式,通过strap pin(上拉/下拉电阻)配置。我建议在原理图阶段就把所有模式的可选电阻都预留上,调试时切换起来方便。别问我怎么知道的——有一次我焊了三次板子才改对配置。

2.8 总结与实战建议

这一章咱们把PHY芯片的基础讲透了。从OSI物理层的位置,到四种MAC-PHY接口的细节。你想想看,这些接口本质上都是在解决同一个问题:如何在MAC和PHY之间高效、可靠地传输数据

最后给各位三个实战建议:

  1. 先看datasheet的时序图——别急着画原理图,先把建立时间、保持时间、时钟抖动这些参数看清楚
  2. 预留调试接口——MDIO/MDC一定要引出来,调试时能省一半时间
  3. 做信号完整性仿真——特别是RGMII和SGMII,仿真一下眼图,心里有底

下一章咱们讲PHY芯片的寄存器配置和调试方法,到时候我会分享几个真实项目的调试案例。嗯,那些坑你们提前知道,能少走不少弯路。