以太网接口MII,RMII,SMII,GMII总线接口简介
以太网接口MII,RMII,SMII,GMII总线接口简介
所有的这些接口都从MII而来,MII是(MediumIndependent Interface)的意思,是指不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC的芯片完成。
MII支持10兆和100兆的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到32端口的话就要用到448根线,一般按照这个接口做交换机,是不太现实的,所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如RMII、SMII、GMII等。
RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50兆的总线时钟。RMII一般用在多端口的交换机,它不是每个端口安排收、发两个时钟,而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目。RMII的一个端口要求7个数据线,比MII少了一倍,所以交换机能够接入多一倍数据的端口。和MII一样,RMII支持10兆和100兆的总线接口速度。
SMII是由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意思。因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以在时钟上为了满足100的需求,它的时钟频率很高,达到了125兆,为什么用125兆,是因为数据线里面会传送一些控制信息。SMII一个端口仅用4根信号线完成100信号的传输,比起RMII差不多又少了一倍的信号线。SMII在工业界的支持力度是很高的。同理,所有端口的数据收发都公用同一个外部的125M时钟。
GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。
MII工作原理
“媒体独立”表明在不对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(SerialManagement Interface)总线通过读写PHY的寄存器来完成的。
PHY里面的部分寄存器是IEEE定义的,这样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是接收数据的。
新的PHY支持AUTO MDI-X功能,也需要隔离变压器支持,它可以实现RJ-45接口的1、2上的传送信号线和3、6上的接收信号线的功能自动互相交换。
GMII简介
GMII(Gigabit MII)
GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100Mbps工作方式。
GMII接口数据结构符合IEEE以太网标准。该接口定义见IEEE802.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个已经在“IEEE802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。
RMII简介
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表示数据的优先级!
千兆以太网MII接口类型主要有GMII、RGMII、SGMII、TBI和RTBI 五种。
!\pKY#wqZQ @,k
[0
中国通信人博客2V;{*x^)?EBQ
GMII接(如下图):
A"k3k:A
E&_\QN0
N+zcTn:hW0
与MII接口相比,GMII的TX/RX数据宽度由4位变为8位,GMII接口中的控制信号如TX_ER、TX_EN、RX_ER、RX_DV、CRS和COL的作用同MII接口中的一样,发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。中国通信人博客#[j)Ix!t.^9l]
在这里有一点需要特别说明下,那就是发送参考时钟GTX_CLK,它和MII接口中的TX_CLK是不同的,MII接口中的TX_CLK是由PHY芯片提供给MAC芯片的,而GMII接口中的GTX_CLK是由MAC芯片提供给PHY芯片的。两者方向不一样。中国通信人博客h$u
x~^
UP
在实际应用中,绝大多数GMII接口都是兼容MII接口的,所以,一般的GMII接口都有两个发送参考时钟:TX_CLK和GTX_CLK(两者的方向是不一样的,前面已经说过了),在用作MII模式时,使用TX_CLK和8根数据线中的4根。
7L'H(L7yX%J0
中国通信人博客X6@y+V9]2o%h|'I`4`
RGMII接口(如下图所示):中国通信人博客-V(b q Y!K'B,I6m
.`mNG4G0
RGMII即Reduced GMII,是RGMII的简化版本,将接口信号线数量从24根减少到14根(COL/CRS端口状态指示信号,这里没有画出),时钟频率仍旧为125MHz,TX/RX数据宽度从8为变为4位,为了保持1000Mbps的传输速率不变,RGMII接口在时钟的上升沿和下降沿都采样数据。在参考时钟的上升沿发送GMII接口中的TXD[3:0]/RXD[3:0],在参考时钟的下降沿发送GMII接口中的TXD[7:4]/RXD[7:4]。RGMI同时也兼容100Mbps和10Mbps两种速率,此时参考时钟速率分别为25MHz和2.5MHz。
:M Ae,}/p5e&G l4M(g!N0
TX_EN信号线上传送TX_EN和TX_ER两种信息,在TX_CLK的上升沿发送TX_EN,下降沿发送TX_ER;同样的,RX_DV信号线上也传送RX_DV和RX_ER两种信息,在RX_CLK的上升沿发送RX_DV,下降沿发送RX_ER。RGMII的收发时序如下图所示(点击看大图):
@;Bl?_H'r
n#@ r0
中国通信人博客x6~C'f)F Op3^
y} gO J5U‑f0
SGMII接口(如下图所示):
6R}%dl$i:sf:Xc'b0
,TX,|;k2|h k0
h w"c+u ~;_Gv_
^l0
SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。
X5`P g#X P0
在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER 两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入RX_DV/RX_ER 两比特控制信息,所以总的数据速率为1.25Gbps=625Mbps*2.
2Npg ],Li:S0
其实,大多数MAC芯片的SGMII接口都可以配置成SerDes接口(在物理上完全兼容,只需配置寄存器即可),直接外接光模块,而不需要PHY层芯片,此时时钟速率仍旧是625MHz,不过此时跟SGMII接口不同,SGMII接口速率被提高到1.25Gbps是因为插入了控制信息,而SerDes端口速率被提高是因为进行了8B/10B变换,本来8B/10B变换是PHY芯片的工作,在SerDes接口中,因为外面不接PHY芯片,此时8B/10B变换在MAC芯片中完成了。8B/10B变换的主要作用是扰码,让信号中不出现过长的连“0”和连“1”情况,影响时钟信息的提取,关于8B/10B变换知识,我后续会单独介绍。
%WE*b+O#QH0
MG t I7r.~;W0
TBI接口(如下图所示):
/R/OnS)m|KG/J6G0
‑e
N!TIl["|0
TBI即Ten Bit Interface的意思,接口数据位宽由GMII接口的8位增加到10位,其实,TBI接口跟GMII接口的差别不是很大,多出来的2位数据主要是因为在TBI接口下,MAC芯片在将数据发给PHY芯片之前进行了8B/10B变换(8B/10B变换本是在PHY芯片中完成的,前面已经说过了),另外,RX_CLK+/-是从接收数据中恢复出来的半频时钟,频率为62.5MHz,RX_CLK+/-不是差分信号,而是两个独立的信号,两者之间有180度的相位差,在这两个时钟的上升沿都采样数据。RX_CLK+/-也叫伪差分信号。除掉上面说到的之外,剩下的信号都跟GMII接口中的相同。
`3K d
PaJ,A%I0
大多数芯片的TBI接口和GMII接口兼容。在用作TBI接口时,CRS和COL一般不用。
ZG y‑oE.J"M0
中国通信人博客2DHZv},y0yx
RTBI接口(如下图所示):中国通信人博客y{*CzE'Q [
_,IUW){g}h2l|1C0
RTBI即Reduced TBI,简化版TBI,接口数据位宽为5bit,时钟频率为125MHz,在时钟的上升沿和下降沿都采样数据,同RGMII接口一样,TX_EN线上会传送TX_EN和TX_ER两种信息,在时钟的上升沿传TX_EN,下降沿传TX_ER;RX_DV线上传送RX_DV和RX_ER两种信息,在RX_CLK上升沿传RX_DV,下降沿传RX_ER。
|
以太网接口MII,RMII,SMII,GMII总线接口简介相关推荐
- 浅聊一下各类以太网媒体接口MII/RMII/SMII/GMII/RGMII/SGMII
最近在学习以太网,了解到各种各样的以太网媒体接口:MII.RMII.SMII.GMII等等,有点乱,于是抽空理一下: MII MII,即Media Independent Interface,翻译过来 ...
- MII,RMII,SMII,GMII,RGMII,SGMII接口定义 和 MDIO接口定义
一.MII,RMII,SMII,GMII,RGMII,SGMII接口定义一览表 1.1 MII接口连接示意图 1.2 RMII接口连接示意图 1.3 SMII接口连接示意图 1.4 GMII接口连接示 ...
- MII,RMII,SMII,GMII,RGMII,SGMII
玩嵌入的同门不论是硬件还是软件,都应该了解 MII,RMII,SMII,GMII,RGMII,SGMII的区别:自己整理了一下,供参考 简单讲这些接口是用于连接MAC和PHY的.
- (二)再议MII、RMII、GMII接口
概述: MII (Media Independent Interface(介质无关接口)或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准.它包括一个数据接口和一个MAC ...
- MII,RMII,GMII接口详细介绍
MII (Media Independent Interface(介质无关接口)或称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准.它包括一个数据接口和一个MAC和PHY之间的管理接口. ...
- 以太网知识-GMII / RGMII接口
今天和海翎光电的小编一起分析MII/RMII/SMII,以及GMII/RGMII/SGMII接口的信号定义,及相关知识,同时小编也对RJ-45接口进行了总结,分析了在10/100模式下和1000M模式 ...
- 总线板卡(1)——总线接口类型
行业的朋友们是否碰到过这种情况,比如你问某厂家是否有1553B总线或者其他总线板卡时,对方会问你要什么接口的? 你知道厂家说的接口指的是什么吗? 这里的接口一般指板卡的总线接口,比较普遍的有PCI.P ...
- MII、 RMII、 GMII、 RGMII 接口介绍
1.RGMII 接口概要 以太网的通信离不开物理层 PHY 芯片的支持,以太网 MAC 和 PHY 之间有一个接口,常用的接口有MII. RMII. GMII. RGMII 等. MII(Medium ...
- VIVADO 以太网接口(SGMII转GMII接口)
以FPGA V7为例,搭建一个千兆以太网接口.运行环境为Vivado2019.1.板卡的FPGA V7与千兆网口芯片采用SGMII互联,最终实现FPGA与上位机之间的千兆网卡通信,实际实现时,V7采用 ...
最新文章
- bayer格式插值算法实现
- 如何识别媒体偏见_描述性语言理解,以识别文本中的潜在偏见
- Shell 脚本编程之基础
- NTT通信公司在大阪开通运营容灾数据中心
- linux-3.5.4内核添加新的系统调用并测试!!!!!
- 程序员 45 岁怎么了?!
- 2019年前端面试都聊啥?一起来看看
- JAVA 反编译方法
- 一文入手 JUC(20+单元)
- Android Study之跳转自启动管理页
- 牛客网:牛牛玩平板(c++)
- Android音视频学习系列(五) — 掌握音频基础知识并使用AudioTrack、OpenSL ES渲染PCM数据
- 详情页用虚拟机还是云服务器,详情页用虚拟机还是云服务器
- Modbus通讯协议(四)——Java实现ModbusTCP Slave(从机)
- cot函数 java_java8、jdk8日期与字符串转化
- web.firewall.RequestRejectedException: The request was rejected because the URL contained a potentia
- python调用浏览器内核实现内嵌浏览器_python实现随机调用一个浏览器打开网页
- 自动控制原理->根轨迹
- 青语易呼电销机器人源码独立部署搭建步骤
- Y9000X安装Ubuntu 系统没有无线网卡驱动问题解决方法
热门文章
- chrome91 后 SameSite by default cookies 不对外开放 解决方案
- 给你安利一款国产良心软件uTools
- urllib3源码基本入门
- JavaScript返回语句
- vue js 对象下的原型_如何使用Vue.js和Pusher创建实时原型反馈应用程序
- 125_Power BI 中 DAX 的性能测试
- 帮助文档_中英对照读ANSYS帮助文档,是怎么玩的?
- 全连接层的输入和输出_理解Web应用程序的本质,网络数据流处理与基础网络连接...
- ubuntu16.04源码安装node
- ubuntu16.04安装java环境