RGMII基于V2.0规范解读

一、说明

RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介质独立接口),旨在替代IEEE802.3u MII、IEEE802.3z GMII和TBI。主要目标是将MAC和PHY互连所需的引脚数量从最大28个引脚(TBI)减少到12个引脚,为了实现这一目标,将减少数据路径和所有相关的控制信号,并且将控制信号多路复用在一起,并且将使用时钟的两个边沿。RGMII支持传输速率:10M/100M/1000Mb/s ,其对应CLK信号分别是2.5MHz、25MHz和125MHz。

系统框图如下:

二、信号定义

RGMII将与简化十位接口(RTBI)共享四个数据路径信号,并与第五个数据信号共享控制功能。通过包MDIO/MDC串行管理信号,RTBI将不需要独立的控制信号,如LK_REF、BYTE_EN等。SERDES控制位的寄存器分配留给设计者。

从上表可以看的,TXC/RXC是时钟信号,TD【3:0】/RD【3:0】在时钟上升沿时是RGMII的低4位,时钟下降沿是RGMII的高4位;对于RTBI模式的话,时钟上升沿是低4位,时钟下降沿是第9~6位(bits8:5);TX_CTL/RX_CTL对于RGMII模式,在时钟上升沿是使能信号,在时钟下降沿是使能信号和错误信号的异或后的结果;对于RTBI模式,在时钟上升沿是第5位数据,在时钟下降沿是第10位数据。

总结下来就是,RGMII模式(TX举例)下,TXC是时钟,TD【3:0】是4个数据信号,TX_CTL传输使能和错误信号;RTBI模式,TXC是时钟,TD【3:0】和TX_CTL都是传输数据。

三、时序要求

RGMII是双边沿采样(DDR),具体时序图如下:

RGMII的时钟和数据由信号源同时生成,因此时钟和数据之间的偏斜对于正确操作至关重要。具体参数要求如下:

表格主要以1000M模式举例,备注中有10M/100M的要求。另外特别需要大家了解的是,实测建立保持时间很可能不满足规格要求,原因是芯片内部寄存器可以配置延时,因此实际的建立保持时间需要综合上软件配置的延迟时间,才是实际的建立保持时间。表格中Tr和Tf测试时需保证足够的有效带宽(示波器+探头+正确的测试方法)。

四、TX_CTL的编码

为了减少功率消耗,ERR信号将以在正常网络操作期间最小化转换的方式进行编码。ERR和EN信号异或后的值做为实际信号电平传输,然后在接收端通过已知的EN电平和异或后的电平解码出ERR信号。

当接收到一个无错的有效帧,EN=True(在时钟上升沿产生一个高电平),ERR=False(在时钟下降沿产生一个高电平,EN和ERR值不同,异或后为1);当没有帧被接收,EN=False(在时钟上升沿产生一个低电平),ERR=False(在时钟下降沿产生一个低电平,EN和ERR值想同,异或后为0),这也就是正常的帧间时间。

当接收到一个带错误bit的帧时,EN=True(在时钟上升沿产生一个高电平),ERR=True(在时钟下降沿产生一个低电平,EN和ERR值相同,异或后为0);

各种情况的组合如下表,其中正常遇到一般是第一行和最后2行,分别代表帧间时间,无错传输和有错传输:

对应的时序如下:

五、带内状态

为了便于检测PHY的链路状态、速度和双工模式,帧间信号将被放置在RXD[3:0]信号上,如下表4所示。当不存在正常数据、数据错误、载波扩展、载波检测或假载波时,应指示PHY的状态。当链路状态关闭时,PHY的速度和双工由PHY的内部设置定义。根据个人工作经验,大部分都是寄存器内部设置。

时序波形如下:

六、其他说明

1.电气参数

根据协议描述让参考JEDEC EIA/JESD8-6(https://www.doc88.com/p-1436934939315.html),我查看了一下基本不太适用,大家还是参考具体芯片规格书即可。

2.某芯片规格书

RGMII框图如下:

信号电平:

时序要求,基本和协议要求一致:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/627199.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

求正方形阴影部分面积

正方形边长6,求阴影部分面积 xy6① vw6② 1/26v1/23x1/263③ 1/26v1/26y1/266④ ③是左下角三角形的面积,④是左上角三角形的面积。 求解方程组得到x2 阴影部分面积1/2*3x3.

第2章Spring Boot实践,开发社区登录模块【仿牛客网社区论坛项目】

第2章Spring Boot实践,开发社区登录模块【仿牛客网社区论坛项目】 前言推荐项目总结第2章Spring Boot实践,开发社区登录模块1.发送邮件配置MailClient测试 2.开发注册功能访问注册页面提交注册数据激活注册账号 3.会话管理体验cookie体验session 4.生成验…

idea使用gitee基本操作流程

1.首先,每次要写代码前,先切换到自己负责的分支 点击签出。 然后拉取一次远程master分支,保证得到的是最新的代码。 写完代码后,在左侧栏有提交按钮。 点击后,选择更新的文件,输入描述内容(必填…

数据结构--链表的基本操作

1. 链表的概念及结构 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的 。 链表也是线性表的一种。 链表的结构跟⽕⻋⻋厢相似,淡季时⻋次的⻋厢会相应减少,旺季时…

Java(四)---方法的使用

文章目录 前言1.方法的概念和使用2.方法的定义3.实参和形参的关系4.方法重载4.1.改进4.2.注意事项 5.递归5.1 生活中的故事5.2 递归的概念 5.3.练习 前言 前面一章我们学习到了程序逻辑语句,在写代码的过程中,我们会遇到需要重复使用的代码块&#xff0…

运维别卷系列 - 云原生监控平台 之 05.prometheus alertManager 实践

文章目录 [toc]Alertmanager 简介Alertmanager 实现的核心概念GroupingInhibitionSilencesClient behaviorHigh Availability Alertmanager 配置文件globaltemplatesrouteinhibit_rulesreceivers Alertmanager 部署创建 cm创建 svc创建 stsPrometheus 配置告警Prometheus 配置文…

React Native 开发心得分享

有一段时间没更新了,花了点时间研究了下 React Native(后续用 RN 简称),同时也用该技术作为我的毕设项目(一个校园社交应用,仿小红书),经过了这段时间的疯狂折腾,对 RN 生态有了一定的了解&…

3.TCP的三次握手和四次挥手

一、前置知识 TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。在传输数据前通信双方必须建立连接(所谓连接,是指客户端和服务端各自保存一份关于对方的信息,比如ip地址,端口号等)。TCP通过三次握手建立一个…

iOS 创建pch文件

1.参考链接(xcode8添加方法,之前的跟这个差不多): 参考链接 2.自我总结: (1)创建pch文件: 注意点:1)注意选中所有的targets(看图明义) 2&…

风电功率预测 | 基于CNN卷积神经网络的风电功率预测(附matlab完整源码)

风电功率预测 风电功率预测完整代码风电功率预测 基于卷积神经网络(Convolutional Neural Network, CNN)的风电功率预测可以通过以下步骤实现: 数据准备:收集与风电场发电功率相关的数据,包括风速、风向、温度、湿度等气象数据以及风电场的历史功率数据。 数据预处理:对…

ACM8628 2×41W立体声1×82W单通道数字功放中文寄存器表

ACM8628M是一款国产高度集成、高效率的双通道数字输入功放。供电电压范围在4.5V-26.4V,数字接口电源支持3.3V或1.8V。在8欧负载下,输出功率可以到241W,PBTL模式下单通道可以输出182W1% THDN. 器件介绍见 内置DSP多种音频处理效果ACM8628M-241W立体声…

「51媒体」家居生活发布会,展览展会有哪些媒体邀约资源

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 家居生活类媒体包括多种类型,包括门户网站家居生活消费频道,专业的家居消费生活门户,以及行业媒体,平面媒体,KOL和意见领袖。下…

高通Android 11/12/13 通过包名设置默认launcher

背景&#xff1a;最近在封装供第三应用系统SDK 接口&#xff0c;遇到一个无法通过包名设置主launcher代码坑所以记录下。 涉及类roles.xml # <!---~ see com.android.settings.applications.defaultapps.DefaultHomePreferenceController~ see com.android.settings.appl…

Git 基础使用(2) 分支管理

文章目录 分支概念分支使用查看分支分支创建分支切换分支合并合并冲突分支删除 分支管理快进模式分支策略内容保存错误处理 分支概念 &#xff08;1&#xff09;分支概念 Git分支是指在版本控制系统Git中&#xff0c;用来表示项目的不同工作流程或开发路径的一个重要概念。通过…

海豚调度器如何看工作流是在哪个worker节点执行

用海豚调度器&#xff0c;执行一个工作流时&#xff0c;有时成功&#xff0c;有时失败&#xff0c;怀疑跟worker节点环境配置不一样有关。要怎样看是在哪个worker节点执行&#xff0c;在 海豚调度器 Web UI 中&#xff0c;您可以查看任务实例&#xff0c;里面有一列显示host&a…

从零开始详解OpenCV条形码区域分割

前言 在识别二维码之前&#xff0c;首先要划分出二维码的区域&#xff0c;在本篇文章中将从零开始实现二维码分割的功能&#xff0c;并详细介绍用到的方法。 我们需要处理的图像如下&#xff1a; 完整代码 首先我们先放出完整代码&#xff0c;然后根据整个分割流程介绍用到…

windows 使用 workerman

简单示例 workerman从3.5.3版本开始已经能够同时支持linux系统和windows系统。 1、需要PHP>5.4&#xff0c;并配置好PHP的环境变量。 2、Windows版本的Workerman不依赖任何扩展。 3、安装使用以及使用限制这里。 4、由于Workerman在Windows下有诸多使用限制&#xff0c…

【万字面试题】Redis

文章目录 常见面试题布隆过滤器原理和数据结构&#xff1a;特点和应用场景&#xff1a;缺点和注意事项&#xff1a;在python中使用布隆过滤器 三种数据删除策略LRU (Least Recently Used)工作原理&#xff1a;应用场景&#xff1a; LFU (Least Frequently Used)工作原理&#x…

vs2019 c++中模板 enable_if_t 的使用

&#xff08;1&#xff09; 该模板的定义如下&#xff1a; template <bool _Test, class _Ty void> struct enable_if {}; // no member "type" when !_Testtemplate <class _Ty> struct enable_if<true, _Ty> { // type is _Ty for _Testusing …

OSEK应用模式

1 前言 应用模式&#xff08;Application modes)用于区分不同的场景&#xff0c;以便在系统运行时&#xff0c;组织各自相互独立的OS相关的资源集合&#xff0c;是一种分而治之的思想体现。不同的应用模式是互斥的&#xff0c;即系统当前必须在一种应用模式&#xff08;且只能在…