结构
从硬件的角度看,以太网接口电路主要由MAC(Media Access Control,MAC)控制器和物理层接口PHY(Physical Layer,PHY)两大部分构成。如下图所示:
但是,在实际的设计中,以上三部分并不一定是独立分开的。由于PHY整合了大量模拟硬件,而MAC则是典型的全数字器件。考虑到芯片面积模拟/数字混合架构的原因,通常,将MAC集成进微控制器,而将phy留在片外。(现在更灵活,密度更高的芯片技术已经可以实现MAC和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芯片,中间是RGMII接口。
PHY
PHY是IEEE-802.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位。