我主要来自嵌入式软件背景,因此我对硬件的了解非常有限。我总是将以太网视为计算机上连接以太网电缆的小型物理连接器。从软件的角度来看,您需要做的就是安装驱动程序(在Windows中)或配置Linux内核以包含以太网的驱动程序。
问题:
但是当我开始向下一级(朝向硬件)并查看各种数据表和原理图时,我已经开始遇到诸如PHY,MII,SGMII,RGMII等术语。现在我很困惑构成以太网的是什么?例如,当我说英特尔82574L 1.0 Gbps以太网端口时,所有这些术语在哪里适用?
答案 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)
一些定义:
很久以前,信息产业部已经标准化,支持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连接感到困惑,因为我期望使用两个单独的芯片。