当前位置:网站首页>以太网驱动详解之RMII、SMII、GMII、RGMII接口
以太网驱动详解之RMII、SMII、GMII、RGMII接口
2022-07-26 11:45:00 【芒果520】
上一章节讲到MII接口虽然很灵活,但是有一个缺点是因为它一个端口用的信号线有14根之多,如果一个 8 端口的交换机要用到 112 根线,16 端口就要用到 224 根线,到 32 端口的话就要用到 448 根线。一般按照这个接口做交换机是不太现实的。所以现代的交换机的制作都会用到其它的一些从 MII 简化出来的标准,比如 RMII、SMII、GMII等。
MII
MII(Media Independent interface)即介质无关接口,它是IEEE-802.3定义的行业标准,是MAC与PHY之间的接口。MII数据接口包含16个信号和2个管理接口信号,如下图所示:

信号定义如下:
MAC 通过MII 接口读取PHY 状态寄存器以得知目前PHY 的状态。例如连接速度、双工的能力等。也可以通过 MII设置PHY的寄存器达到控制的目的。例如流控的打开关闭、自协商模式还是强制模式等。MII以4位半字节方式传送数据双向传输,时钟速率25MHz,其工作速率可达100Mb/s;当时钟频率为2.5MHz时,对应速率为10Mb/s。
RMII
RMII(Reduced Media Independant Interface),精简MII接口,节省了一半的数据线。RMII收发使用2位数据进行传输,收发时钟均采用50MHz时钟源。信号定义如下:
其中CRS_DV是MII中RX_DV和CRS两个信号的合并,当物理层接收到载波信号后CRS_DV变得有效,将数据发送给RXD。当载波信号消失后,CRS_DV会变为无效。在100M以太网速率中,MAC层每个时钟采样一次RXD[1:0]上的数据,在10M以太网速率中,MAC层每10个时钟采样一次RXD[1:0]上的数据,此时物理层接收的每个数据会在RXD[1:0]保留10个时钟。
SMII
SMII(Serial Media Independant Interface),串行MII接口。它包括TXD,RXD,SYNC三个信号线,共用一个时钟信号,此时钟信号是125MHz,信号线与此时钟同步。信号定义如下:
SYNC是数据收发的同步信号,每10个时钟同步置高一次电平,表示同步。TXD和RXD上的数据和控制信息,以10bit为一组。发送部分波形如下:

从波形可以看出,SYNC变高后的10个时钟周期内,TXD依次输出一组10bit的数据即TX_ER,TX_EN,TXD[0:7],这些控制信息和MII接口含义相同。在100M速率中,每一组的内容都是变换的,在10M速率中,每一组数据需要重复10次,采样任一一组都可以。
GMII
GMII(Gigabit Media Independant Interface),千兆MII接口。GMII采用8位接口数据,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。GMII接口数据结构符合IEEE以太网标准,该接口定义见IEEE 802.3-2000。信号定义如下:
RGMII
RGMII(Reduced Gigabit Media Independant Interface),精简GMII接口。相对于GMII相比,RGMII具有如下特征:
发送/接收数据线由8条改为4条
TX_ER和TX_EN复用,通过TX_CTL传送
RX_ER与RX_DV复用,通过RX_CTL传送
1 Gbit/s速率下,时钟频率为125MHz
100 Mbit/s速率下,时钟频率为25MHz
10 Mbit/s速率下,时钟频率为2.5MHz
信号定义如下:

虽然RGMII信号线减半,但TXC/RXC时钟仍为125Mhz,为了达到1000Mbit的传输速率,TXD/RXD信号线在时钟上升沿发送接收GMII接口中的TXD[3:0]/RXD[3:0],在时钟下降沿发送接收TXD[7:4]/RXD[7:4],并且信号TX_CTL反应了TX_EN和TX_ER状态,即在TXC上升沿发送TX_EN,下降沿发送TX_ER,同样的道理试用于RX_CTL,下图为发送接收的时序:
边栏推荐
- Data type of SQL Server database
- Audio and video technology development weekly | 255
- 【倒计时10天】腾讯云音视频专场即将见面,千元大奖等你来拿!
- 4.1 配置Mysql与注册登录模块
- Programmer growth chapter 28: how can managers not do it by themselves?
- Substance Painter 2021软件安装包下载及安装教程
- 如何使用数据管道实现测试现代化
- PyCharm是真的强
- X 2 earn must rely on Ponzi startup? Where is the way out for gamefi? (top)
- 滴滴被罚80亿!拿用户数据赚钱的时代结束了
猜你喜欢

微服务化解决文库下载业务问题实践

Esp8266 Arduino programming example - development environment construction (based on Arduino IDE)

【附下载】一款强大的Web自动化漏洞扫描工具——Xray

基于 Flink CDC 实现海量数据的实时同步和转换
![[early knowledge of activities] list of recent activities of livevideostack](/img/a5/06c13865b7adbd99d43c1a52f3fc4d.png)
[early knowledge of activities] list of recent activities of livevideostack

【活动早知道】LiveVideoStack近期活动一览

Mlx90640 infrared thermal imager temperature sensor module development notes (6)

Practice of microservice in solving Library Download business problems

网络协议:TCP/IP协议

Recalling Sister Feng
随机推荐
Swagger2.9.2 tutorial and swagger3.0.0 tutorial
Colt DCS is serious about building a green data center!
开放原子开源基金会OpenHarmony工作委员会主席侯培新寄语OpenAtom OpenHarmony分论坛
Esp8266 Arduino programming example - know esp8266
元宇宙日报|元宇宙社交 App“派对岛”产品下架;广州南沙元宇宙产业集聚区揭牌;数字经济发展部际联席会议制度推出
Application scheme of ankerui residual pressure monitoring system in residential quarter
An online duplicate of a hidden bug
Wechat applet - Advanced chapter Lin UI component library source code analysis button component (I)
Pyechart offline deployment
基于 Flink CDC 实现海量数据的实时同步和转换
浅谈低代码技术在物流运输平台中的搭建与管理
pytest接口自动化测试框架 | pytest之fixture介绍
[ten thousand words long text] Based on LSM tree thought Net 6.0 C # realize kV database (case version)
科目三 掉头与转弯
Hashtable
What is per title encoding?
什么是Per-Title编码?
win10使用nvm安装node、npm、cnpm
Live broadcast preview at 19:30 on July 27: harmonyos3 and Huawei's full scene new product launch
SQL statement of SQL server creates database