将常用的网络接口总结一下,主要分为MAC与PHY之间的和PHY之前的,我们在说接口时,一定要注意接口所处的位置,MAC与PHY之间的接口大体上常用的有MII/GMII/RGMII/SGMII,PHY之前的常见接口主要分为1000BASE-T/1000BASE-X/1000BASE-TX,我会分别对这些进行说明,下面的图和介绍都是从88E1111这款PHY的手册上摘下来的,感兴趣的朋友可以具体翻翻该手册,我这里只是简单提下。
MAC与PHY之间
MII
端口名称 | 端口含义 |
---|
TX_ER | 发送数据错误 | TX_EN | 发送使能 | TXD[3:0] | 发送数据 | TX_CLK | 发送参考时钟 (100Mbps下,时钟频率为25MHz,10Mbps下,时钟频率为2.5MHz) | RX_CLK | 接收参考时钟 (100Mbps下,时钟频率为25MHz,10Mbps下,时钟频率为2.5MHz) | RX_ER | 接收数据错误 | RX_DV | 接收数据有效 | RXD[3:0] | 接收数据 | CRS | 载波侦测信号(仅在半双工下有效) | COL | 冲突监测信号(仅在半双工下有效) |
GMII
?
端口名称 | 端口含义 |
---|
GTX_CLK | 1000M发送时钟 (除此之外PHY可能还有TX_CLK此为10/100M发送时钟) | TX_ER | 发送数据错误 | TX_EN | 发送使能 | TXD[7:0] | 发送数据 | RX_CLK | 接收时钟 | RX_ER | 接收数据错误 | RX_DV | 接收数据有效 | RXD[7:0] | 接收数据 | CRS | 载波侦测信号 | COL | 冲突监测信号 |
RGMII
端口名称 | 端口含义 |
---|
GTX_CLK | 1000M发送时钟 | TX_EN | 发送使能 | TXD[3:0] | 发送数据 | RX_CLK | 接收时钟 | RX_DV | 接收数据有效 | RXD[3:0] | 接收数据 |
SGMII
端口名称 | 端口含义 |
---|
S_OUT+/- | 串行接收数据发送口 | S_IN+/- | 串行发送数据接收口 |
PHY之前的
1000BASE-T
1000Base-T采用4对5类双绞线完成1000Mbps的数据收发,每一对双绞线传送250Mbps的数据流,?使用非屏蔽双绞线作为传输介质传输的最长距离是100米,1000BASE-T不支持8B/10B编码方式,而是采用更加复杂的编码方式。
1000BASE-TX
1000Base-TX也是基于四对双绞线,但却是以两对线发送,两对线接收( 类似于100Base-Tx)。由于每对线缆本身不进行双向的传输,线缆之间的串扰就大大降低,同时其编码方式也相对简单。这种技术对网络的接口要求比较低,不需要非常复杂的电路设计,降低了网络接口的成本。
1000BASE-X
1000BASE-X与上面的完全不同,使用的是光纤而不是双绞线作为传输介质,收发端需要有光模块进行支持,根据所使用的单模光纤还是多模光纤,以及信号源波长的不同,其下又可以进行细分,如?1000BASE-LX、1000BASE-ZX、1000BASE-SX、1000BASE-CX。
?接口部分说完了,接下来进行一些简要的说明:
1.上面的接口中,基本都隐去了PHY配置的MDC和MDIO接口,主要是配置PHY寄存器用的
2.MII的数据接口是4位宽的,且需要注意,发送时钟TX_CLK的方向是从PHY到MAC,时钟由PHY提供,这是与GMII及RGMII口不同的,RX_CLK方向也是从PHY到MAC
?3.GMII的数据接口是8位宽的,GTX_CLK的方向是从MAC到PHY,由MAC产生,绝大多数时候,GMII是可以兼容MII口的,此时使用的时钟是TX_CLK,需注意方向,数据线使用8根中的4根
?4.RGMII的数据接口是4位宽的,是简化的GMII接口,其与GMII最大的不同是数据会在时钟的上升和下降沿都进行采样,RGMI同时也兼容100Mb和10M两种速率,两种速率下的参考时钟分别为25MHz和2.5MHz
?5.SGMII与上面几个接口都不同,其数据是使用串行的方式进行收发的,可以看到接口处并没有收发的时钟接口,这是因为时钟可以从数据中恢复出来,另外多说两句,有些时候我们可以看到MAC经SGMII接高速BANK走光模块直出,而不是像上面介绍的这种MAC接外部专用的PHY芯片,这两种方式都是能够工作的,只是一定一定要区别清楚,在MAC经SGMII直出时候,serdes充当了外部PHY的作用,在配置时,需配置成1000BASE-X,而在外部接有专用PHY芯片时,serdes不需要充当PHY的角色,配置时选择SGMII就行
|