从网线到芯片:手把手拆解一个百兆以太网PHY芯片,看MII/RMII信号到底怎么跑
从网线到芯片手把手拆解一个百兆以太网PHY芯片看MII/RMII信号到底怎么跑当你在浏览器输入网址按下回车时一组电信号正以每秒1亿次的频率在网线中穿梭。这背后是一套精密的硬件舞蹈——PHY芯片如同翻译官将模拟世界的电脉冲转换为数字世界的二进制语言。今天我们就以IP101GRI这颗经典百兆PHY为例用示波器和逻辑分析仪带你亲历数据帧的硬件之旅。1. 信号进入PHY从RJ45到A/D转换RJ45接口的8根线中实际用于百兆以太网的只有4根1,2,3,6。当差分信号到达PHY时首先经过的是变压器耦合和基线漂移校正电路RJ45 → 脉冲变压器 → 高通滤波器 → 可变增益放大器 → ADC这个过程中有两个关键参数需要PHY动态调整信号幅度100Base-TX标准要求2.8Vpp差分电压但长距离传输会有衰减时钟恢复数据流内嵌时钟PHY需通过CDR(Clock Data Recovery)电路提取实测发现用6类线传输时PHY的AGC(自动增益控制)会将信号放大到标准电平而用劣质网线时能看到明显的波形失真2. 解码的艺术从曼彻斯特编码到并行数据百兆以太网采用曼彻斯特II型编码每个比特周期中间都有电平跳变。PHY的解码流程如下ADC采样通常8bit分辨率数字均衡器消除码间干扰时钟数据同步曼彻斯特解码4B/5B解码100Base-TX特有# 简化的曼彻斯特解码逻辑示例 def manchester_decode(signal): decoded [] for i in range(1, len(signal), 2): if signal[i] signal[i-1]: # 上升沿代表1 decoded.append(1) else: # 下降沿代表0 decoded.append(0) return bytes(decoded)实测抓取到的MII接口信号显示PHY会在RX_DV信号拉高期间在RX_CLK的上升沿输出有效数据。下图是10M和100M模式下的关键差异参数10M模式100M模式时钟频率2.5MHz25MHz数据位宽4bit4bit帧间隔9.6μs0.96μs3. MII接口的硬件实现细节用逻辑分析仪捕获IP101GRI的MII接口可以看到典型的16线结构数据通道TXD[3:0]MAC→PHY发送数据RXD[3:0]PHY→MAC接收数据控制信号TX_EN发送使能MAC控制RX_DV接收数据有效PHY控制CRS载波侦听COL冲突检测调试技巧当TX_EN和TXD不同步时通常需要检查PCB布线长度是否匹配。经验值是25MHz时钟下走线偏差应小于1cm。通过FPGA抓取的波形显示在100M模式下一个标准以太网帧的传输过程MAC拉高TX_EN在TX_CLK上升沿依次发送前导码连续0x55SFD0xD5目标MAC地址源MAC地址类型/长度字段数据负载FCS校验4. RMII的简约哲学用7根线完成百兆传输RMII的精妙之处在于时钟复用和双沿采样时钟方案统一使用50MHz参考时钟TX/RX数据在上升沿和下降沿都有效数据压缩发送方向TXD[1:0]承载2bit数据接收方向RXD[1:0]承载2bit数据// RMII接收端的Verilog示例 always (posedge ref_clk or negedge ref_clk) begin if(rx_dv) begin rx_buffer {rx_buffer[5:0], RXD}; if(bit_cnt 3) begin byte_out rx_buffer; bit_cnt 0; end else begin bit_cnt bit_cnt 1; end end end实测对比发现RMII的布线要求更严格时钟抖动必须500ps数据相对时钟的建立/保持时间需要2ns建议使用阻抗控制的差分走线5. 调试实战PHY寄存器揭秘通过MDIO接口可以访问PHY的寄存器以下是几个关键寄存器地址名称位域功能说明0x00BMCR[15]软复位[12]全双工模式0x01BMSR[5]链路状态[3]自动协商完成0x04AUTONEG_ADVERT[9]100BASE-TX能力[8]10BASE-T能力用示波器抓取MDIO波形时要注意时钟频率最高2.5MHz数据在MDC上升沿采样读写时序包含32位前导码在实验室用热风枪对PHY芯片加热到85℃时观察到误码率从10^-12升高到10^-8时钟抖动增加约30%自动协商时间延长2-3倍6. 从理论到PCB硬件设计要点设计PHY电路时容易踩的坑电源部分模拟电源3.3V_A必须与数字电源隔离每个电源引脚都需要0.1μF10μF去耦电容建议使用π型滤波器布线规范MII走线长度差25mmRMII走线长度差10mm避免靠近开关电源等噪声源ESD防护RJ45接口需要TVS二极管阵列建议使用带隔离变压器的RJ45座接地阻抗要1Ω用网络分析仪测量时发现未加屏蔽的网线在1GHz频段会有约20dB的辐射超标这解释了为什么工业设备必须使用STP网线。