网卡(Network Interface Card,简称NIC),也称网络适配器,是电脑与局域网相互连接的设备。只要连接到局域网就需要网卡。一个网卡主要包括OSI的最下面两层,物理层和数据链路层。物理层的芯片称之为PHY,数据链路层的芯片称之为MAC控制器。
本文旨在学习以太网基础MAC和PHY的知识,总结系统框架和物理硬件组成原理,了解各种接口。
PHY & MAC & MII
PHY
PHY 是物理接口收发器,它实现物理层。包括 MII/GMII (介质独立接口) 子层、PCS (物理编码子层) 、PMA (物理介质附加) 子层、PMD (物理介质相关) 子层、MDI 子层。定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。
MAC
MAC 是 Media Access Control 的缩写,即媒体访问控制子层协议。该协议位于 OSI 七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。
在发送数据的时候,MAC 协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC 协议首先判断输入的信息是否发生传输错误,如果没有错误,则去掉控制信息发送至 LLC 层。以太网 MAC 由 IEEE-802.3 以太网标准定义。
MII
MII即媒体独立接口,也叫介质无关接口。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。
MII数据接口总共需16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。
由此可见,MAC 和 PHY,一个是数据链路层,一个是物理层;两者通过 MII 传送数据。
系统组成
从硬件的角度来分析,以太网的电路接口一般由CPU、MAC(Media Access Control)控制器和物理层接口PHY组成:
对于上述三部分,并不一定都是独立的芯片,主要有以下几种情况:(1)CPU内部集成了MAC和PHY,难度较高;(2)CPU内部集成MAC,PHY采用独立芯片(主流方案);(3)CPU不集成MAC和PHY,MAC和PHY采用独立芯片或者集成芯片(高端采用)。
PHY整合了大量模拟硬件,而MAC是典型的全数字器件,芯片面积及模拟/数字混合架构的原因,是将MAC集成进微控制器而将PHY留在片外的原因。更灵活、密度更高的芯片技术已经可以实现MAC和PHY的单芯片整合。
以常用的CPU内部集成MAC,PHY采用独立的芯片方案为例,虚线内表示CPU和MAC集成在一起,PHY芯片通过MII接口与CPU上的MAC互联。
对于这种方案,其硬件方案比独立的更简单,PHY与MAC之间有以下两个重要的硬件接口:(1)MDIO总线接口,主要是完成CPU对于PHY芯片的寄存器配置;(2)MII即媒体独立接口,也叫介质无关接口。常见的有MII、RMII、GMII、RGMII等。“媒体独立”表明在不对 MAC 硬件重新设计或替换的情况下,任何类型的 PHY 设备都可以正常工作。MII 数据接口总共需要16个信号,包括:
transmit data - TXD[3:0]
transmit strobe - TX_EN
transmit clock - TX_CLK
transmit error - TX_ER/TXD4
receive data - RXD[3:0]
receive strobe - RX_DV
receive clock - RX_CLK
receive error - RX_ER/RXD4
collision indication - COL
carrier sense - CRS
一般说来,包括IC 对 PHY 作读取与写入用的一组信号:MDC(clock),MDIO(data) 作为 data sampling reference 用的两组 clock,频率应为 25MHz(TX_CLK,RX_CLK)各4-bit 的输出、输入 Bus(TX[0:3],RX[0:3]);通知对方准备输入数据的输出、输入的启动信号(TX_EN);输出、输入的错误通知信号(TX_ER,RX_ER);得到有效输入数据的通知信号(RX_DV);网络出现拥塞的 colision 信号(Col)。做为 carrier 回复用的信号(CRS),电位可使用+5V 或+3.3V。
MII 以 4bit,即半字节方式双向传送数据,时钟速率 25MHz,其工作速率可达 100Mb/s。MII传递了网络的所有数据和数据的控制,而 MAC对PHY 的工作状态的确定和对 PHY 的控制则是使用 SMI ( Serial Management Interface) 界面通过读写PHY的寄存器来完成的。PHY 里面的部分寄存器是 IEEE 定义的,这样 PHY 把自己的目前的状态反映到寄存器里面,MAC 通过 SMI 总线不断地读取 PHY 的状态寄存器以得知目前 PHY 的状态,例如连接速度,双工能力等。当然也可以通过 SMI 设置 PHY 的寄存器达到控制的目的,例如流控地打开关闭,自协商模式还是强制模式等。
不论是物理连接的 MII 总线和 SMI 总线还是 PHY 的状态寄存器和控制寄存器都是有 IEEE 的规范的,因此不同公司的 MAC 和 PHY 一样可以协调工作。当然为了配合不同公司的 PHY 的自己特有的一些功能,驱动需要做相应的修改。
SMI
SMI是MAC内核访问PHY寄存器接口,它由两根线组成、双工,MDC为时钟,MDIO为双向数据通信,原理上跟I2C总线很类似,也可以通过总线访问多个不同的PHY。
MDC/MDIO基本特性:
两线制:MDC(时钟线)和MDIO(数据线)。
时钟频率:2.5MHz
通信方式:总线制,可同时接入的PHY数量为32个
通过SMI接口,MAC芯片主动地轮询PHY层芯片,获得状态信息,并发出命令信息。
后来为了支持千兆网口,也就开始有了千兆网的MII接口,也就是GMII接口。现在比较常用的是RGMII,减小了MAC和PHY之间的引脚数量。数据信号和控制信号混合在一起,并且在工作时钟的上升沿和下降沿同时采样,其对应关系如下:10M带宽对应的是2.5MHz,因为4bit*2.5M=10Mbps100M带宽对应的是25MHz,因为4bit*25M=100Mbps1000M带宽对应的是125MHz,4bit*125M=1000Mbps,因为250MHz频率太高,所以采用双边沿采样技术(会带来设计复杂度)。
审核编辑:汤梓红
-
以太网
+关注
关注
40文章
5371浏览量
171032 -
网卡
+关注
关注
3文章
302浏览量
27335 -
Mac
+关注
关注
0文章
1099浏览量
51363 -
PHY
+关注
关注
2文章
301浏览量
51688 -
MII
+关注
关注
0文章
5浏览量
6027
原文标题:以太网——PHY、MAC、MII与网卡
文章出处:【微信号:cdebyte,微信公众号:亿佰特物联网应用专家】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论