MII RMII SMII GMII
扫描二维码
随时随地手机看文章
定义的以太网行业标准。它包括一个数据接口和一个 MAC 和 PHY 之间的管理接口。
数据接口包括分别用于发送器和接收器的两条独立信道,每条信道都有自己的数据、时
钟和控制信号。 MII 数据接口总共需要 16 个信号。
管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层
能监视和控制 PHY。 MII ( Management interface)只有两条信号线。
MII 标准接口用于连接 Fast Ethernet MAC-block 与 PHY。表明在不对 MAC 硬件重新设
计或替换的情况下,任何类型的 PHY 设备都可以正常工作。在其他速率下工作的与 MII 等
效的接口有: AUI( 10M 以太网)、 GMII( Gigabit 以太网)和 XAUI( 10-Gigabit 以
太网)。
在IEEE802.3中规定的MII总线是一种用于将不同类型的 PHY与相同网络控制器( MAC)
相连接的通用总线。网络控制器可以用同样的硬件接口与任何
相连接的通用总线。网络控制器可以用同样的硬件接口与任何 PHY 进行连接。MII 相关接口介绍:
以太网媒体接口有: MII RMII SMII GMII
所有的这些接口都从 MII 而来, MII 是(Medium Independent Interface)的意思,是指不
用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有 PHY 或者叫做 MAC
的芯片完成。
但是有一个缺点是因为它一个端口用的信号线太多,如果一个 8 端口的交换机要用到 112
根线, 16 端口就要用到 224 根线,到 32 端口的话就要用到 448 根线,一般按照这个接口
做交换机,是不太现实的,所以现代的交换机的制作都会用到其它的一些从 MII 简化出来的
标准,比如 RMII、
SMII、 GMII
等。
要求是 50 兆的总线时钟。 RMII 一般用在多端口的交换机,它不是每个端口安排收、发两个
时钟,而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数
目。 RMII 的一个端口要求 7 个数据线,比 MII 少了一倍,所以交换机能够接入多一倍数据
的端口。和 MII
一样, RMII 支持
10 兆和 100
兆的总线接口速度。
思。因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以在时钟上为了满
足 100 的需求,它的时钟频率很高,达到了 125 兆,为什么用 125 兆,是因为数据线里面
会传送一些控制信息。 SMII 一个端口仅用 4 根信号线完成 100 信号的传输,比起 RMII 差
不多又少了一倍的信号线。 SMII 在工业界的支持力度是很高的。同理,所有端口的数据收
发都公用同一个外部的 125M
时钟。
GMII 是千兆网的
MII 接口,这个也有相应的
RGMII 接口,表示简化了的 GMII
接口。
“媒体独立”表明在不对 MAC 硬件重新设计或替换的情况下,任何类型的 PHY 设备都可
以正常工作。包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时
钟和控制信号。
MII 数据接口总共需要 16 个信号,包括 TX_ER, TXD, TX_EN, TX_CLK, COL, RXD,RX_EX, RX_CLK, CRS, RX_DV 等。
MII 以 4 位半字节方式传送数据双向传输,时钟速率 25MHz。其工作速率可达 100Mb/s。MII 管理接口是个双信号接口,一个是时钟信号,另一个是数据信号。
通过管理接口,上层能监视和控制 PHY,其管理是使用 SMI ( Serial Management Interface)
总线通过读写 PHY
的寄存器来完成的。
面, MAC 通过 SMI 总线不断的读取 PHY 的状态寄存器以得知目前 PHY 的状态,例如连接
速度,双工的能力等。
当然也可以通过 SMI 设置 PHY 的寄存器达到控制的目的,例如流控的打开关闭,自协
商模式还是强制模式等。
不论是物理连接的 MII 总线和 SMI 总线还是 PHY 的状态寄存器和控制寄存器都是有
IEEE 的规范的,因此不同公司的 MAC 和 PHY 一样可以协调工作。当然为了配合不同公司
的 PHY 的自己特有的一些功能,驱动需要做相应的修改。
PHY 是物理接口收发器,它实现物理层。包括 MII/GMII(介质独立接口)子层、 PCS(物
理编码子层)、PMA (物理介质附加)子层、PMD (物理介质相关)子层、MDI 子层。100BaseTX
采用 4B/5B 编码。
PHY 在发送数据的时候,收到 MAC 过来的数据(对 PHY 来说,没有帧的概念,对它来
说,都是数据而不管什么地址,数据还是 CRC),每 4bit 就增加 1bit 的检错码,然后把并
行数据转化为串行流数据,再按照物理层的编码规则把数据编码,再变为模拟信号把数据送
出去。收数据时的流程反之。
PHY 还有个重要的功能就是实现 CSMA/CD 的部分功能。
它可以检测到网络上是否有数据在传送,如果有数据在传送中就等待,一旦检测到网络
空闲,再等待一个随机时间后将送数据出去。如果两个碰巧同时送出了数据,那样必将造成
冲突,这时候,冲突检测机构可以检测到冲突,然后各等待一个随机的时间重新发送数据。
这个随机时间很有讲究的,并不是一个常数,在不同的时刻计算出来的随机时间都是不同的,
而且有多重算法来应付出现概率很低的同两台主机之间的第二次冲突。
通信速率通过双方协商,协商的结果是两个设备中能同时支持的最大速度和最好的双工
模式,这个技术被称为 Auto Negotiation 或者 NWAY。
隔离变压器把 PHY 送出来的差分信号用差模耦合的线圈耦合滤波以增强信号,并且通过
电磁场的转换耦合到连接网线的另外一端。
RJ-45 中 1、 2 是传送数据的, 3、 6 是接收数据的。
1、 2 上的传送信号线和 3、 6 上的接收信号线的功能自动互相交换。
GMII 简介:
GMII (Gigabit MII)
GMII 采用 8 位接口数据,工作时钟 125MHz,因此传输速率可达 1000Mbps。同时兼容
MII 所规定的 10/100 Mbps 工作方式。
GMII 接口数据结构符合 IEEE 以太网标准。该接口定义见 IEEE 802.3-2000。
发送器:
◇ GTXCLK——吉比特 TX..信号的时钟信号( 125MHz)
◇ TXCLK——10/100M 信号时钟
◇ TXD[7..0]——被发送数据
◇ TXEN——发送器使能信号
◇ TXER——发送器错误(用于破坏一个数据包)
注:在千兆速率下,向 PHY 提供 GTXCLK 信号, TXD、 TXEN、 TXER 信号与此时钟信
号同步。否则,在 10/100M 速率下, PHY 提供 TXCLK 时钟信号,其它信号与此信号同步。
其工作频率为 25MHz( 100M 网络)或 2.5MHz( 10M 网络)。
接收器:
◇ RXCLK——接收时钟信号(从收到的数据中提取,因此与 GTXCLK 无关联)
◇ RXD[7..0]——接收数据
◇ RXDV——接收数据有效指示
◇ RXER——接收数据出错指示
◇ COL——冲突检测(仅用于半双工状态)
管理配置
◇ MDC——配置接口时钟
◇ MDIO——配置接口 I/O
管理配置接口控制 PHY 的特性。该接口有 32 个寄存器地址,每个地址 16 位。其中前
16 个已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由
各器件自己指定。
RMII: Reduced Media Independant Interface 即简化媒体独立接口;是标准的以太网接
口之一,比 MII 有更少的 I/O 传输。
关于 RMII 口和 MII 口的问题
RMII 口是用两根线来传输数据的,
MII 口是用 4 根线来传输数据的,
GMII 是用 8 根线来传输数据的。
MII/RMII 只是一种接口,对于 10M 线速,MII 的速率是 2.5M, RMII 则是 5M;对于 100M
线速, MII 的速率是 25M, RMII 则是 50M。
MII/RMII 用于传输以太网包,在 MII/RMII 接口是 4/2bit 的,在以太网的 PHY 里需要做
串并转换、编解码等才能在双绞线和光纤上进行传输,其帧格式遵循 IEEE 802.3(10M)/IEEE
802.3u(100M)/IEEE 802.1q(VLAN)。
以太网帧的格式为:前导符+开始位+目的 mac 地址+源 mac 地址+类型/长度+数据
+padding(optional)+32bitCRC
如果有 vlan,则要在类型/长度后面加上 2 个字节的 vlan tag,其中 12bit 来表示 vlan id,
另外 4bit 表示数据的优先级!
网卡的工作原理, MAC 和 PHY:
认识网卡,我们上网必备组件之一。
网卡工作在 osi 的最后两层,物理层和数据链路层,物理层定义了数据传送与接收所需要
的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接
口。物理层的芯片称之为 PHY。数据链路层则提供寻址机构、数据帧的构建、数据差错检
查、传送控制、向网络层提供标准的数据接口等功能。以太网卡中数据链路层的芯片称之为
MAC 控制器。很多网卡的这两个部分是做到一起的。他们之间的关系是 pci 总线接 mac 总
线, mac 接 phy, phy 接网线(当然也不是直接接上的,还有一个变压装置)。
下面继续让我们来关心一下 PHY 和 MAC 之间是如何传送数据和相互沟通的。通过 IEEE
定义的标准的 MII/GigaMII(Media Independed Interfade,介质独立界面)界面连接 MAC 和
PHY。这个界面是 IEEE 定义的。 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
的自己特有的一些功能,驱动需要做相应的修改。一片网卡主要功能的实现就基本上是上面
这些器件了。其他的,还有一颗 EEPROM 芯片,通常是一颗 93C46。里面记录了网卡芯片
的供应商 ID、子系统供应商 ID、网卡的 MAC 地址、网卡的一些配置,如 SMI 总线上 PHY
的地址, BOOTROM 的容量,是否启用 BOOTROM 引导系统等东西。很多网卡上还有
BOOTROM 这个东西。它是用于无盘工作站引导操作系统的。既然无盘,一些引导用必需
用到的程序和协议栈就放到里面了,例如 RPL、PXE 等。实际上它就是一个标准的 PCI ROM。
所以才会有一些硬盘写保护卡可以通过烧写网卡的 BootRom 来实现。其实 PCI 设备的 ROM
是可以放到主板 BIOS 里面的。启动电脑的时候一样可以检测到这个 ROM 并且正确识别它
是什么设备的。 AGP 在配置上和 PCI 很多地方一样,所以很多显卡的 BIOS 也可以放到主
板 BIOS
里面。这就是为什么板载的网卡我们从来没有看到过 BOOTROM
的原因。
的概念,对它来说,都是数据而不管什么地址,数据还是 CRC),每 4bit 就增加 1bit 的检错
码,然后把并行数据转化为串行流数据,再按照物理层的编码规则(10Based-T 的 NRZ 编码
或 100based-T 的曼彻斯特编码)把数据编码,再变为模拟信号把数据送出去。收数据时的
流程反之。现在来了解 PHY 的输出后面部分。一颗 CMOS 制程的芯片工作的时候产生的
信号电平总是大于 0V 的(这取决于芯片的制程和设计需求),但是这样的信号送到 100 米甚
至更长的地方会有很大的直流分量的损失。而且如果外部网现直接和芯片相连的话,电磁感
应(打雷)和静电,很容易造成芯片的损坏。 再就是设备接地方法不同,电网环境不同会导
致双方的 0V 电平不一致,这样信号从 A 传到 B,由于 A 设备的 0V 电平和 B 点的 0V 电平
不一样,这样会导致很大的电流从电势高的设备流向电势低的设备。我们如何解决这个问题
呢?这时就出现了 Transformer(隔离变压器)这个器件。它把 PHY 送出来的差分信号用差模
耦合的线圈耦合滤波以增强信号,并且通过电磁场的转换耦合到连接网线的另外一端。这样
不但使网线和 PHY 之间没有物理上的连接而换传递了信号,隔断了信号中的直流分量,还
可以在不同 0V 电平的设备中传送数据。隔离变压器本身就是设计为耐 2KV~3KV 的电压的。
也起到了防雷感应(我个人认为这里用防雷击不合适)保护的作用。有些朋友的网络设备在雷
雨天气时容易被烧坏,大都是 PCB 设计不合理造成的,而且大都烧毁了设备的接口,很少
有芯片被烧毁的,就是隔离变压器起到了保护作用。