1. SGMII概述
SGMII,全称 Serial Gigabit Media Independent Interface。说白了,就是把千兆以太网的 MAC 和 PHY 之间的连接,从几十根线变成两对差分线。我几年前第一次调这玩意儿的时候,还以为跟 RGMII 差不多,插上就能跑。结果样板回来死活不通,折腾了两天才发现是时钟恢复参数没配对。
嗯,这个接口在交换机、高端路由器、FPGA 板卡上非常常见。今天我们就先把它的来龙去脉搞清楚。后面讲时钟恢复和链路建立时,你会理解为什么 SGMII 比并行接口难调,但也更灵活。
1.1 协议背景
SGMII 是 Cisco 和 Broadcom 早期推广的,后来被标准化到 IEEE 802.3 的 1000BASE-X 附录中。它的核心思路是——用串行差分信号代替并行总线。这样 PCB 走线能从十多根降到 4 根(两对差分线),而且能跑更长的距离。
为什么会有这个需求?你想想看,GMII 需要 24 根信号线,RGMII 也需要 12 根。到了布线密集的板卡上,这些线绕来绕去,时序根本控不住。我遇到过一块四口千兆交换芯片,RGMII 布线绕得跟迷宫一样,最后还是改了叠层才通过信号完整性仿真。
SGMII 的工作频率是 625 MHz(数据率 1.25 Gbps),每对差分线传输时钟和数据。它不像 RGMII 那样需要专门的时钟走线,时钟是嵌在数据流里的,通过 CDR(时钟数据恢复)电路提取。这个特点既是优势也是坑——后面我们会单独拿一章来讲 CDR。
1.2 应用场景
SGMII 主要用在以下场景:
- 千兆交换机:每个端口通过 SGMII 连接到外部 PHY 或 SFP 光模块。
- FPGA 高速接口:Xilinx 和 Intel 的 FPGA 的 GTY/GTH 收发器可以直接配置成 SGMII 模式。
- SoC 内部互连:部分 SoC 将 MAC 和 PHY 通过 SGMII 走内部差分线连接。
- 多端口背板:通过连接器传输到子卡,节省接插件引脚。
我习惯把 SGMII 看作一种“低成本串行方案”。它不需要昂贵的 SerDes 核,普通 LVDS 收发器就能做。但要注意,它的参考时钟抖动要求很严格——曾经有块板子因为时钟源的 RMS jitter 超过 40 ps,直接导致链路建不起来。嗯,后面我们会讲 jitter 预算。
1.3 SGMII 与 GMII / RGMII 的区别
直接看对比表比较清楚:
| 特性 | GMII | RGMII | SGMII |
|---|---|---|---|
| 信号总数 | 24 | 12 | 4(两对差分线) |
| 时钟方式 | 独立时钟+数据 | DDR沿对齐 | 嵌入时钟(CDR) |
| 最大传输距离(PCB) | 几厘米 | 十几厘米 | 可超过1米 |
| 布线难度 | 极高(大量并行线需等长) | 中等(需精细等长) | 低(差分对简单) |
| EMI | 差 | 中等 | 好(差分信号共模抑制) |
| 典型应用 | 早期芯片、板内短距 | 当前主流消费级 | 工业/通信/FPGA设计 |
这里有两个坑提一下:
- RGMII 的时序非常苛刻——我曾经见过某款 PHY 的 RGMII 驱动能力调错,导致数据沿和时钟沿偏移超过 1 ns,在高温下直接丢包。而 SGMII 因为用了差分和 CDR,对 skew 容忍度高得多。
- SGMII 回环测试需小心——如果你用示波器看 SGMII 差分线,有时候看起来眼图很干净,但实际链路建不起来,多半是 CDR 的锁定范围没对上。我们后面会专门分析。
下面这张图帮你厘清三种接口在以太网系统中的位置关系:
好了,这一章我们看清楚了 SGMII 是什么,为什么用它,以及和另外两种接口的根本差异。记住这些背景,后面讲链路建立时你就会知道:为什么 SGMII 需要专门的训练序列,为什么 CDR 必须快速锁定——这些都是由它“串行、嵌入时钟”的体质决定的。