当前位置: 首页 > 技术文章 > 正文

网络设备一定离不开MAC和PHY,有MAC和PHY的地方就有相应的接口,无论看得见或者看不见,它就在那里,不悲不喜。在以太网中,这个接口就是介质无关接口,英文称为Media Independent Interface,简称MII。MII适用于百兆网络设备,有个很大的缺点就是走线很多,于是就出现了RMII,即Reduced Media Independent Interface,在MII的基础上减少了一半的数据线。千兆以太网的诞生带来了GMII,即Gigabit Media Independent Interface,人们发现GMII的走线也很多,于是又出现了RGMII,即Reduced Gigabit Media Independent Interface,也就是本文的主角。当然还有串行的MII接口家族,请读者自行查阅相关文献。

Why RGMII?

有这么多形式的MII接口,为什么笔者偏要选择RGMII呢?原因简单而粗暴:用得多。随着芯片集成度的提高,很多网络处理器/SoC集成了百兆以太网交换机,如果用户需要实现千兆以太网络,那么往往需要配合RGMII接口的千兆以太网PHY。我司网站博文中介绍的很多处理器都是这样的。

RGMII技术特征

如前所述,RGMII接口减少了MAC与PHY之间的走线数量,通过在参考时钟的上升/下降沿同时采样及信号复用得以实现。RGMII有RTBI与RGMII两种模式,由于笔者在工作中未接触过RTBI,所以不做介绍。RGMII具有如下特征:

  • 相对于GMII接口,发送/接收数据线由8根减少为4根
  • TX_ER与TX_EN复用,通过TX_CTL传送
  • RX_ER与RX_DV复用,通过RX_CTL传送
  • 1 Gbit/s速率下,时钟频率为125MHz
  • 100 Mbit/s速率下,时钟频率为25MHz
  • 10 Mbit/s速率下,时钟频率为2.5MHz
  • RGMII 1.3版本要求:通过PCB走线使得时钟相对数据线延迟1.5-2ns
  • RGMII 2.0版本引入了片上延迟的功能,即在芯片内部实现时钟延迟

RGMII信号定义

RGMII-Signal

RGMII接口时序图

RGMII-Timing

RGMII Layout Guide

有了前文的叙述,相信读者已经具备了RGMII Layout的思路,主要就是以下几项:

  • 创建2个等长组,分别参考TXC与RXC
  • 如果MAC/PHY内部带有时钟延迟,则无需对时钟线做延迟
  • 如果MAC/PHY内部均不具备时钟延迟,则需要对时钟线做延迟

Allegro中等长规则的创建方式可参照:https://www.witimes.com/allegro-create-match-group/

关于时钟线的延迟,以下几张图片可以很好地说明,分别对应PCB延迟,MAC+PHY延迟与PHY延迟。当然,选取那种方式取决于使用的MAC/PHY芯片。

PCB-Trace-Delay

MAC-PHY-Delay

PHY-Delay

RGMII在1 Gbit/s速率下的时钟频率可达125MHz,可想而知,RGMII Layout还需要遵守高速数字电路布线基本准则:

  • 阻抗控制
  • 2W/3W原则

注意,在射频与高速数字电路同时存在的设计中,不可能同时对射频走线及高速数字走线进行阻抗控制,这时请务必在RGMII所有走线上增加串联匹配电阻,摆放位置遵守源端匹配原则。

RGMII Layout实例

下图是笔者为朋友开发设计的多口PHY,通过排针连接到外部的MAC板。读者一定很好奇这个板子是干啥用的,其实笔者也不知道。

PHY-Board

放大其中的一个,可以看到笔者在RGMII走线上增加的串联匹配电阻,绕线处理,仔细一点还可以看出走线间距(Air Gap)在2倍线宽以上。

PHY-Single

查看Constrain Manager,可以看到RGMII走线规则的各种设定。

RGMII-Spacing

2W线距规则

RGMII-Match-Group

等长规则

Impedance-Control

阻抗控制规则

其实,MII/RMII/GMII的Layout方式与RGMII很像,留给读者自行摸索。

RGMII布线指导,RGMII Layout Guide:目前有4 条评论

  1. 板凳
    海默

    “摆放位置遵守源端匹配原则”,对收发2组信号有不同的具体解释吗?phy的tx算源端,rx算终端?

    文章写的很好。

    2015-12-02 09:12
    • lics

      一般情况下,PHY的Tx引脚实际上是输入端,是MAC的输出端;PHY的Rx引脚实际上是输出端,是MAC的输入端。如果是Switch当作PHY来用,情况可能就不一样了,如Marvell 88E6176,要仔细查看Datasheet以便确认信号方向。

      2015-12-02 09:31
  2. 沙发
    海兰花

    楼主能否写一个常用的phy和switch的文章呢,最好带光口。谢谢

    2015-12-07 14:51
    • lics

      没问题,有时间写一下。

      2015-12-07 14:57