2. Marvell以太网PHY与SerDes架构解析

要真正掌握Marvell以太网PHY的链路调优,第一步不是急着改寄存器,而是先建立一张清晰的“内部地图”:一颗PHY芯片从MDI侧的双绞线或光模块,到MAC侧的数据接口,中间到底经过了哪些功能层,SerDes的发送与接收通道各自包含什么,寄存器与固件又是如何协同工作的。只有把这张地图记牢,后续调均衡、改预加重、读眼图监视器时,才知道自己动的是哪一段、影响的是哪一级。

一、PHY的三大分层:PCS、PMA、PMD

按照IEEE 802.3的分层模型,以太网PHY在逻辑上被划分为PCS、PMA、PMD三层,Marvell的PHY芯片内部基本遵循这一划分,只是把各层进一步拆成了具体的硬件模块。

PCS(Physical Coding Sublayer,物理编码子层)负责与MAC层对接的数字逻辑部分。它的核心工作包括:发送方向做64B/66B或8B/10B编码、加扰、插入对齐标记;接收方向做块同步、解扰、解码、弹性缓冲和时钟容限补偿。对于多速率端口,PCS还要处理速率适配和通道绑定。PCS是纯数字域,工作时钟来自恢复时钟或本地参考时钟,寄存器中大量与链路状态、块锁定、误码统计相关的位都映射在PCS层。

PMA(Physical Medium Attachment,物理媒介附加子层)是SerDes真正所在的位置。发送方向包含并串转换、时钟合成、预加重/去加重、输出驱动;接收方向包含连续时间线性均衡(CTLE)、可变增益放大(VGA)、判决反馈均衡(DFE)、时钟数据恢复(CDR)和串并转换。PMA直接决定信号质量,是链路调优的主战场。眼图、信噪比、均衡器收敛状态这些关键观测点都位于PMA。

PMD(Physical Medium Dependent,物理媒介相关子层)是芯片与外部媒介的电气接口。对电口而言,它包含变压器驱动、回波损耗控制、共模抑制;对光口而言,它对应光模块的电气接口规范(如SFP+的SFI)。PMD决定了发送幅度、上升下降时间、输出阻抗等物理参数,很多与EMC和互操作相关的指标在这一层约束。

三层之间是串行数据流与控制信号的传递关系:MAC送来的并行数据经PCS编码后交给PMA串行化,再由PMD驱动到媒介;接收方向则完全反向。理解这个方向性,是后面判断“问题出在哪一层”的基础。

Marvell PHY 内部分层与 SerDes 通道结构 MAC / 主机接口 PCS 物理编码子层 64B/66B 编解码 加扰 / 解扰 块同步 / 对齐标记 弹性缓冲 / 时钟容限 误码统计 / 链路状态 速率适配 / 通道绑定 数字域 · 寄存器密集区 PMA 物理媒介附加子层 发送通道 (TX) 并串转换 (Serializer) 预加重 / 去加重 输出驱动 / 摆幅控制 接收通道 (RX) CTLE 连续时间线性均衡 VGA 可变增益放大 DFE 判决反馈均衡 CDR 时钟数据恢复 模拟/混合信号域 · 调优主战场 PMD 物理媒介相关子层 变压器 / 线路驱动 回波损耗控制 共模抑制 / 偏置 光模块电气接口 (SFI) 发送幅度 / 上升时间 电气/光学接口 · 物理约束区 TX RX TX RX TX RX 寄存器接口 (MDIO/SPI) ←→ 固件 (Firmware) 协同控制 PCS / PMA / PMD 各层参数

二、SerDes发送与接收通道的组成

SerDes是PMA的核心,也是整个PHY里最“模拟”的部分。发送通道从PCS拿到并行数据后,先经过并串转换,把10位或20位宽的低速并行数据变成高速串行比特流。接着进入预加重/去加重级:由于PCB走线和连接器对高频分量的衰减大于低频,发送端故意提升信号跳变沿的幅度(预加重)或压低非跳变位的幅度(去加重),以补偿信道的高频损耗。最后一级是输出驱动,负责设定差分摆幅和共模电平。

接收通道的挑战更大。信号经过信道后,高频被衰减、幅度变小、抖动增加。第一级CTLE提供高频增益,把被信道“压扁”的眼图重新张开;第二级VGA把信号放大到适合后续判决的电平;DFE则利用之前判决出的比特来消除当前比特受到的码间干扰(ISI)。CDR从数据跳变中提取时钟,保证采样点始终落在眼图中央。整个接收链是一个闭环自适应系统,各均衡器的系数会随信道条件动态收敛。

需要特别注意的是,发送和接收通道的参数是独立配置的。调优时如果只改TX预加重而不管RX CTLE,可能出现“对端看着好、本端收不好”的情况。因此实际调试中通常要同时观察两端的关键指标。

三、寄存器与固件的交互关系

Marvell PHY对外通过MDIO(管理数据输入输出)或SPI接口暴露寄存器空间。寄存器分为两类:一类是标准IEEE 802.3定义的通用寄存器(如BMCR、BMSR、PHYID等),另一类是厂商私有寄存器,用于访问PCS状态、PMA均衡器系数、眼图监视器、误码计数器等。

固件在PHY内部运行,负责上电初始化、自适应算法、链路训练状态机以及部分寄存器的默认值加载。寄存器与固件的关系可以理解为“窗口与引擎”:寄存器是软件读写PHY的窗口,固件是内部自动运行的引擎。有些寄存器直接映射硬件状态(如实时误码计数),读写立即生效;有些寄存器则是向固件发送命令或参数,固件在下一个调度周期才执行。调优时必须区分这两类,否则会出现“写了寄存器但没反应”的困惑。

典型操作顺序:先读PHY ID确认芯片型号和固件版本,再通过厂商寄存器使能眼图监视器或误码统计,然后调整PMA均衡参数,最后回读链路状态寄存器确认是否达到预期。每一步的寄存器地址和位定义必须查阅对应型号的数据手册,不同型号之间不可直接套用。

四、从架构到调优的映射

把三层结构和SerDes通道记熟之后,调优就有了明确的“坐标系”。遇到链路不通,先看PCS层的块锁定和同步状态寄存器,判断数字侧是否建立;如果PCS正常但误码高,问题大概率在PMA的均衡或CDR;如果PMA收敛但眼图仍然闭合,则需要检查PMD的驱动幅度和信道回波。寄存器与固件的交互关系则决定了你改一个参数后,是立即生效还是需要触发固件重新训练。