澄清以太网,MII,SGMII,RGMII和PHY

时间:2013-04-03 01:35:22

标签: networking ethernet

我主要来自嵌入式软件背景,因此我对硬件的了解非常有限。我总是将以太网视为计算机上连接以太网电缆的小型物理连接器。从软件的角度来看,您需要做的就是安装驱动程序(在Windows中)或配置Linux内核以包含以太网的驱动程序。

问题:

但是当我开始向下一级(朝向硬件)并查看各种数据表和原理图时,我已经开始遇到诸如PHY,MII,SGMII,RGMII等术语。现在我很困惑构成以太网的是什么?例如,当我说英特尔82574L 1.0 Gbps以太网端口时,所有这些术语在哪里适用?

4 个答案:

答案 0 :(得分:35)

让我试着解释一下:

(1)MII,SGMII,RGMII是MAC芯片和PHY芯片之间的三种接口。英特尔82574L是一个MAC芯片。看下图:

 _______         __________                  ___________
  CPU  | PCI-E   |        |  MII/SGMII/RGMII |         |
  or   |<=======>| MAC    |<================>| PHY     |<==========>physical interface 
  board| or else |        |                  |         |
________         __________                  ___________

有关MII(100Mbps),SGMII(1Gbps,串行),RGMII(1Gbps,简化)定义的详细信息,您可以谷歌搜索。

(2)基本上,NIC(网络接口卡)由一个MAC芯片和相关的PHY芯片以及其他外围模块组成。此外,一个以太网设备驱动程序应与NIC硬件配合使用。 MAC芯片与控制CPU或PC主板有一个接口,如PCI-E总线或其他。

答案 1 :(得分:29)

一些定义:

  • MAC - 媒体访问控制器。这是系统的一部分,它将来自OS的数据包转换为要放在线路(或光纤)上的字节流。通常是通过PCI Express(例如)等接口与主处理器接口。
  • PHY - 物理层 - 将来自MAC的字节流转换为一根或多根电线或光纤上的信号。
  • MII - 媒体独立界面。只是MAC和PHY之间的一组标准引脚,因此MAC不必知道或关心物理介质是什么,PHY不必知道或关心主机处理器接口的外观。 / LI>

很久以前,信息产业部已经标准化,支持100Mbit / sec的速度。还可以使用较少引脚的版本,RMII(减少'R')。

对于千兆位速度,使用GMII(千兆位的'G')接口,减少的pincount版本称为RGMII。还有一个名为SGMII的非常简化的pincount版本(串行'S'),它需要MAC的IO引脚上的特殊功能,而其他xMII是相对传统的逻辑信号。

在其他情况下还有更多种类的接口,其中可能与维基百科MII页面相关联:

http://en.wikipedia.org/wiki/Media_Independent_Interface

关于您的特定英特尔芯片问题 - 据我所知(数据表链接似乎已经死亡),该芯片是带有PCIe的MAC。因此它将位于主机上的PCIe总线和某种千兆物理层(PHY)之间。

答案 2 :(得分:1)

你可能想要寻找术语&#34; 7层OSI&#34;其中一些经常听到的条款;

**以太网PHY对应于物理层,物理层由通信的字面物理组件组成。

**以太网MAC(不是Mac地址,而是媒体访问控制器)对应于数据链路层,它负责在将帧发送到物理层之前对其进行排列。

MII,RMII,Auto-Negotion等配置都是从这两个配置的。还有一些库可以让您的生活轻松。

**网络层是负责路由数据包的人。 IP和DHCP等协议被认为是在这一层。此层也是第一个仅基于软件的最低层。如果您使用轻量级IP,例如ip&amp; netif图书馆是其他一切建立在其上的。

**传输层是传输协议,如TCP&amp;可以找到UDP。

希望它有所帮助,我不太了解上层。

答案 3 :(得分:0)

Intel 82574L芯片同时包含MAC和PHY。

请参阅数据表中第15页的体系结构框图,可从以下网址获得:https://ark.intel.com/content/www/us/en/ark/products/32209/intel-82574l-gigabit-ethernet-controller.html

MAC和PHY都在那儿,但是从我的非工程学角度来看,我对MII连接感到困惑,因为我期望使用两个单独的芯片。