MAC和PHY构造
从硬件角度来看以太网是由CPU,MAC,PHY三部分组成的,如下图示意:

上图中DMA集成在CPU,CPU,MAC,PHY并不是集成在同一个芯片内,由于PHY包含大量仿照器件,而MAC是范例的数字电路,考虑到芯片面积及仿照/数字稠浊架构的缘故原由,将MAC集成进CPU而将PHY留在片外,这种构造是最常见的。 下图是网络接口内部构造图,虚框表示CPU,MAC集成在CPU中,PHY芯片通过MII接口与CPU上的MAC连接:

以上因此太网构造大框架,下面分别先容各个部分。
MAC
MAC(Media Access Control) 即媒体访问掌握层协议。MAC由硬件掌握器及MAC通信协议构成。该协议位于OSI七层协议中数据链路层的下半部分,紧张卖力掌握与连接物理层的物理介质。MAC硬件框图如下图所示:
在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些掌握信息,终极将数据以及掌握信息以规定的格式发送到物理层;在吸收数据的时候,MAC协议首先判断输入的信息并是否发生传输缺点,如果没有缺点,则去掉掌握信息发送至LLC(逻辑链路掌握)层。该层协议因此太网MAC由IEEE-802. 3以太网标准定义。一样平常以太网MAC芯片的一端连接PCI总线,另一端连接PHY芯片上通过MII接口连接。
PHY
PHY(Physical Layer)是IEEE802.3中定义的一个标准模块,STA(Station Management Entity,管理实体,一样平常为MAC或CPU)通过MIIM(MII Manage Interface)对PHY的行为、状态进行管理和掌握,而详细管理和掌握动作是通过读写PHY内部的寄存器实现的。PHY的基本构造如下图:
PHY在发送数据的时候,收到MAC过来的数据(对PHY来说,没有帧的观点,对它来说,都是数据)然后把并行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为仿照旗子暗记把数据送出去,收数据时的流程反之。
PHY还有个主要的功能便是实现CSMA/CD的部分功能,它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络空闲,再等待一个随机韶光后将送数据出去.如果两个恰巧同时送出了数据,那样必将造成冲突,这时候冲突检测机构可以检测到冲突,然后各等待一个随机的韶光重新发送数据。
PHY寄存器的地址空间为5位,从0到31最多可以定义32个寄存器(随着芯片功能不断增加,很多PHY芯片采取分页技能来扩展地址空间以定义更多的寄存器),IEEE802.3定义了地址为0-15这16个寄存器的功能,地址16-31的寄存器留给芯片制造商自由定义,如下表所示:
注:
上图B和E表示在特定接口下,寄存器是基本的还是扩展的。例如:MII接口下只有0和1寄存器是基本的,其它的是扩展的。所为扩展是指留给IEEE往后的扩展特性用,不是给PHY厂商的扩展,PHY厂商自定义的只能是16~31号寄存器 。
在IEEE标准文档及某些PHY手册中,某寄存器的比特(bit)用X.y表示,如0.15表示第0寄存器的第15位。
MII
MII(Media Independent interface)即介质无关接口,它是IEEE-802.3定义的行业标准,是MAC与PHY之间的接口。MII数据接口包含16个旗子暗记和2个管理接口旗子暗记,如下图所示:
旗子暗记定义如下:
MAC 通过MIIM 接口读取PHY 状态寄存器以得知目前PHY 的状态。例如连接速率、双工的能力等。也可以通过 MIIM设置PHY的寄存器达到掌握的目的。例如流控的打开关闭、自协商模式还是逼迫模式等。MII以4位半字节办法传送数据双向传输,时钟速率25MHz。其事情速率可达100Mb/s。当时钟频率为2.5MHz时,对应速率为10Mb/s。MII接口虽然很灵巧但由于旗子暗记线太多限定多接口网口的发展,后续又衍生出RMII,SMII等。
RMII
RMII(Reduced Media Independant Interface),精简MII接口,节省了一半的数据线。RMII收发利用2位数据进行传输,收发时钟均采取50MHz时钟源。旗子暗记定义如下:
个中CRS_DV是MII中RX_DV和CRS两个旗子暗记的合并,当物理层吸收到载波旗子暗记后CRS_DV变得有效,将数据发送给RXD。当载波旗子暗记消逝后,CRS_DV会变为无效。在100M以太网速率中,MAC层每个时钟采样一次RXD[1:0]上的数据,在10M以太网速率中,MAC层每10个时钟采样一次RXD[1:0]上的数据,此时物理层吸收的每个数据会在RXD[1:0]保留10个时钟。
SMII
SMII(Serial Media Independant Interface),串行MII接口。它包括TXD,RXD,SYNC三个旗子暗记线,共用一个时钟旗子暗记,此时钟旗子暗记是125MHz,旗子暗记线与此时钟同步。旗子暗记定义如下:
SYNC是数据收发的同步旗子暗记,每10个时钟同步置高一次电平,表示同步。TXD和RXD上的数据和掌握信息,以10bit为一组。发送部分波形如下:
从波形可以看出,SYNC变高后的10个时钟周期内,TXD依次输出一组10bit的数据即TX_ER,TX_EN,TXD[0:7],这些掌握信息和MII接口含义相同。在100M速率中,每一组的内容都是变换的,在10M速率中,每一组数据须要重复10次,采样任逐一组都可以。
GMII
GMII(Gigabit Media Independant Interface),千兆MII接口。GMII采取8位接口数据,事情时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps事情办法。GMII接口数据构造符合IEEE以太网标准,该接口定义见IEEE 802.3-2000。旗子暗记定义如下:
RGMII
RGMII(Reduced Gigabit Media Independant Interface),精简GMII接口。相对付GMII比较,RGMII具有如下特色:
发送/吸收数据线由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旗子暗记线减半,但TXC/RXC时钟仍为125Mhz,为了达到1000Mbit的传输速率,TXD/RXD旗子暗记线在时钟上升沿发送吸收GMII接口中的TXD[3:0]/RXD[3:0],在时钟低落沿发送吸收TXD[7:4]/RXD[7:4],并且旗子暗记TX_CTL反应了TX_EN和TX_ER状态,即在TXC上升沿发送TX_EN,低落沿发送TX_ER,同样的道理试用于RX_CTL,下图为发送吸收的时序:










