GMII,RGMII,SGMII,TBI,RTBI接口信号及时序介绍

2023-11-08

GMII,RGMII,SGMII,TBI,RTBI接口信号及时序介绍

千兆以太网MII接口类型主要有GMII、RGMII、SGMII、TBI和RTBI 五种

GMII接(如下图): 与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)。在这里有一点需要特别说明下,那就是发送参考时钟GTX_CLK,它和MII接口中的TX_CLK是不同的,MII接口中的TX_CLK是由PHY芯片提供给MAC芯片的,而GMII接口中的GTX_CLK是由MAC芯片提供给PHY芯片的。两者方向不一样。在实际应用中,绝大多数GMII接口都是兼容MII接口的,所以,一般的GMII接口都有两个发送参考时钟:TX_CLK和GTX_CLK(两者的方向是不一样的,前面已经说过了),在用作MII模式时,使用TX_CLK和8根数据线中的4根。 RGMII接口(如下图所示): 

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。 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的收发时序如下图所示: 
 


SGMII接口(如下图所示):


SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER 两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入RX_DV/RX_ER 两比特控制信息,所以总的数据速率为1.25Gbps=625Mbps*2. 其实,大多数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变换知识。

TBI接口(如下图所示):


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接口中的相同。大多数芯片的TBI接口和GMII接口兼容。在用作TBI接口时,CRS和COL一般不用。

RTBI接口(如下图所示):


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。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GMII,RGMII,SGMII,TBI,RTBI接口信号及时序介绍 的相关文章

  • 在位数组中有效查找“1”的位置

    我正在连接一个程序来测试一组电线的开路或短路情况 该程序在 AVR 上运行 将测试向量 步行 1 驱动到电线上并接收返回结果 它将所得向量与已存储在 SD 卡或外部 EEPROM 上的预期数据进行比较 这里有一个例子 假设我们有一组 8 根
  • GCC 中 -O0 和 -O1 的区别

    在编译一些代码时 我注意到 O0 和 O1 之间创建的汇编器存在很大差异 我想运行启用 禁用优化 直到找出导致汇编器发生某种变化的原因 如果我使用 fverbose asm 准确找出 O1 与 O0 相比启用了哪些标志 然后手动禁用它们 为
  • 交叉编译 PHP [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我已经下载了 PHP 5 4 0 源代码 将其解压并移至源文件夹中 我做了一个配置 configure build x86 64 unknown li
  • 如何通过链接描述文件将符号放置在特定地址处?

    这是关于 GNU Linker 的 我有一个 可以说 名为的变量myVar 现在我希望我的变量被放置在内存中的某个地址 我使用的编译器有一个 attribute blablabla 这样就可以了 不过我决定使用链接描述文件 从现在开始 我设
  • 为嵌入式系统编写常量参数的最佳实践

    这是一个案例C 中的 static const 与 define https stackoverflow com questions 1674032 static const vs define in c对于嵌入式系统 在具有 传递 代码和
  • 在 C 中匹配(一些)字符串的最有效方法?

    我们的系统需要接受来自终端的用户输入 并与一些已知的关键字字符串 可能是 10 个 进行匹配 我们没有空间 计算机来执行正则表达式等 代码需要小而快 现在 最糟糕的方法是 str is null terminated assume we k
  • ANSI C 中的超便携、小型复杂配置文件库?

    我正在寻找一个非常可移植 简约 小型的 ANSI C 语言库 没有外部依赖项 或很少 编译后大小小于 100K 我需要它来创建一个中等复杂的配置文件 并且它必须支持 Unicode 还有一些要求 可以使用 嵌入 静态链接到专有代码 在应得的
  • 将子程序的地址转换为 void 指针

    尽管函数指针大小并不总是与不透明指针大小相同 但可以使用 void 指针来转换函数位置吗 我已经搜索过不透明指针和转换函数指针 我发现函数指针和普通指针在某些系统上不一样 void fptr void void 0x00000009 is
  • Python Shell:写入一个字节并从串口读取十进制数据

    问题描述 我正在尝试使用 rs232 检索存储在设备上的所有数据 How 对于这个特定设备 我需要 Step 1 发送一个字节 0x80 uInt8 8 位无符号整数 通过串行端口 COM5 并期望收到 0x81 作为响应 Step 2 发
  • 如何在 Eclipse 中为托管 ARM C 项目添加单元测试?

    我有一个托管 Eclipse 项目 它使用 GNU ARM 嵌入式工具链为 ST 微控制器进行编译 我现在想做的是 对该项目中的代码进行单元测试 我想用于单元测试的框架是Google Test 我尝试为单元测试创 建第二个 Eclipse
  • C++ 异常处理增加了多少占用空间

    这个问题对于嵌入式开发尤其重要 异常处理为生成的二进制输出增加了一些占用空间 另一方面 毫无例外 错误都需要以其他方式处理 这需要额外的代码 最终也会增加二进制大小 我对你的经历很感兴趣 尤其是 您的编译器为异常处理添加的平均占用空间是多少
  • 数组和结构体可以以不同的方式初始化吗?

    我的问题可能看起来很奇怪 事实上 这是上下文 我目前在切换时遇到一个奇怪的问题 关于我正在从事的项目 核心从pullinino到CV32 也发生了一些其他变化 例如关于crt0 如一些数据内存重置 这是一个 真实的 例子 说明了一个非常简单
  • C 如何计算没有浮点精度的百分比(千)

    如何将 2 个 int 值的百分比计算为表示百分比的 int 值 更精确的是千分之一 背景 目的 使用没有 FPU 的处理器 浮点计算所需的时间要长 100 倍 int x 25 int y 75 int resultPercentage
  • 如何调试 STL/C++ 的 GCC/LD 链接过程

    我正在用 C 开发裸机 cortex M3 以获取乐趣和利润 我使用 STL 库 因为我需要一些容器 我认为通过简单地提供我的分配器 它不会向最终的二进制文件添加太多代码 因为您只得到您使用的内容 实际上我根本没想到与 STL 有任何链接过
  • 有人有关于 C 语言设计和错误跟踪/控制系统的好指南吗?

    我是 C 开发的软件工程方面的新手 有没有人有关于如何为 C 项目 尤其是嵌入式 设计错误跟踪或错误控制系统的良好指南 谈论 C 库的错误跟踪也会有帮助 根据我的经验 这里的策略分为几个阵营 全局变量ala的使用errno http www
  • Node.js |如何通过串口向设备发送和接收一个字节?

    我正在尝试编写使用以下方法的 Node js 脚本serialport https serialport io 用于读取和写入数据的 npm 包COM5串行端口 使用 RS 232 电缆连接到设备 该设备会自动传输其拥有的数据 要检索设备内
  • ELF 文件头

    关于 elf 文件头的一个简单问题 我似乎找不到任何关于如何在 elf 头中添加 更改字段的有用信息 我希望能够更改幻数并向标题添加构建日期 以及可能的其他一些内容 据我了解 链接器创建标头信息 但我在 LD 脚本中没有看到任何引用它的内容
  • 使用 Android NDK 使用 -fsigned-char 进行构建安全吗?

    为了与其他平台保持一致 我需要使用signed char在我正在处理的一些本机代码中 但默认情况下在Android NDK上char类型是unsigned 我尝试明确使用signed char类型 但它生成太多警告differ in sig
  • MISRA C++(规则 18-4-1)和动态内存分配 - 是否允许 std::string?

    MISRA C 规则 18 4 1 说 不得使用动态堆内存分配 See http dist sonarsource com reports coverage misra c 2008 html http dist sonarsource c
  • 构建 makefile 依赖/继承树

    如果我解释得不好或者问了一些明显的问题 我很抱歉 但我是 Linux 内核的新手 而且有点深入 我们有一个嵌入式 Linux 系统 它附带一个 文档非常糟糕的 SDK 其中包含数百个文件夹stuff 大多数文件夹包含rules make m

随机推荐

  • ansys时间步长怎么设置_ANSYS瞬态动力学分析中的时间步长的选择

    对于瞬态动力学分析问题 如何选取合适的时间步长 才能保证得到正确的计算结果呢 这是我们在瞬态动力学分析中需要关注的一个问题 积分时间步长的选取决定了瞬态动力学问题的求解精度 时间步长越小 则计算精度越高 太大的时间步长会导致高阶模态的响应出
  • centos7下rpm方式安装mysql

    一 CentOS下通过rpm方式安装MySQL CentOS版本 CentOS 7 MySQL版本 MySQL 5 6 22 在网上搜了一下 Linux下安装MYSQL有三种方式 1 通过yum命令在线下载安装 2 下载离线rpm安装包安装
  • Qt应用程序的语言切换

    Qt实现软件界面显示不同的语言 是通过加载字库文件实现的 因此有三个对应的问题需要解决 如何制作字库文件 创建Qt应用程序后 在 pro文件中添加一行代码 TRANSLATIONS qmain zh ts 2 使用QtCreator菜单中的
  • Python工程或Flask项目整体加密——so加密

    python代码加密的方法有很多种 可以先进行混淆再加密 我们一般会对Flask项目或python项目的核心代码进行加密 加密方式采用so 编写一个工程加密的工具类 过程如下 1 安装依赖库 pip3 default timeout 100
  • C语言——水仙花数

    今日笔者突然有了兴致 便写一个很简单的适合于C语言初学者的程序 水仙花数定义 一个三位数i它的百位十位个位分别为a b c 若是i a 3 b 3 c 3那么该数称为水仙花数 输出100 999以内的水仙花数 代码如下 include
  • 通信OFDM相关知识总结

    子载波长度 一个OFDM symbol的时域长度 一个OFDM symbol共有64个子载波 如果按照20M的发射带宽计算的话 那么64个子载波的时域长度为64 20 3 2us 再加上保护间隔 GI guard interval 的长度为
  • Finetune方式总结

    方式一 使用Pretrain模型做约束 具体包括 直接使用Pretrain模型作为约束 使用Pretrain模型的中间层作为约束 使用Pretrain模型对不同特征注意力强度作为约束 Explicit inductive bias for
  • Leetcode 环形链表 -- 快慢指针

    0 题目描述 leetcode原题链接 环形链表 最容易想到的是哈希表解法 遍历所有节点 每次遍历到一个节点时 判断该节点此前是否被访问过 但是空间复杂度为 O n O n O n 有以下更优的解法实现空间复杂度为
  • vue 在自定义指令的时候警告[Vue warn]: Property or method "v" is not defined on the instance but referenced...

    话不多说 看警告 好 渲染也都没问题 这警告看着很不舒服 我是用的pug模板引擎 先看一下pug 好 再看看解释后的HTML 注意那个v focus 因为在将一个空属性传给pug时在纯HTML中会解释成attribute attribute
  • 基于Vue的动态通用table表格及dialog对话框处理技巧总结

    前言 采用vue并结合element ui制作网页端管理系统中的表格是不难的 对应的form table dialog基本都有现成的样例 再结合vue基于数据的方式 很轻松就可以实现一个表格展示并进行动态添加 那么问题来了 如果一个管理系统
  • CSDN如何导出为pdf文档?

    CSDN如何导出为pdf文档 1 打开要打印的csdn文章 2 按F12进入浏览器调试模式 在小箭头处粘贴以下三个代码中的任意一个并回车 可以每一个都尝试一下 总有一个适合你 方式一 推荐 对原文中的代码有增加 去掉了背景图片 其中的doc
  • 【Linux之Shell脚本实战】检查文件是否被修改脚本

    Linux之Shell脚本实战 检查文件是否被修改脚本 一 脚本要求 二 本地环境介绍 三 配置脚本注释模板 1 编辑 vimrc 文件 2 检查模板生效情况 四 编写shell脚本 1 创建脚本目录 2 编辑shell脚本 五 测试脚本功
  • IELTS Writing Line graph-Energy Consumption by Fuel

    The line graph above illustrates consumption of energy in the USA since 1980 with projections until 2030 As an overall t
  • 用Java实现一个简单的考试系统

    用Java实现一个简单的考试系统 需求分析 设计思路 编码实现 需求分析 该考试系统可以实现的功能和系统要求应该包括 学生 登录 考试 考试后查看成绩 老师 出题目 往题库中添加新题目 批阅卷子 同时打分 考试系统 学生的登录校验 存储学生
  • [Unity] 使用Mathf函数实现平滑移动物体的7种方法

    Unity中要利用Mathf中的函数实现物体的平滑运动 有以下7种方法 使用Mathf PingPong 函数在初始位置和X 311之间往复运动 rectTransform anchoredPosition new Vector2 Math
  • R数据分析:孟德尔随机化实操

    好多同学询问孟德尔随机化的问题 我再来尝试着梳理一遍 希望对大家有所帮助 首先看下图1分钟 盯着看将下图印在脑海中 上图是工具变量 不知道工具变量请翻之前的文章 的模式图 明确一个点 我们做孟德尔的时候感兴趣的是x和y的关系 也就是小b 但
  • Just a Hook

    http acm hdu edu cn showproblem php pid 1698 Problem Description In the game of DotA Pudge s meat hook is actually the m
  • 完美解决无法安装node-sass的问题

    很多人都会遇到这类问题 利用搜索引擎搜索一大堆解决方案 最终都不尽人意 所以下面我来为大家解决一下 希望看到的朋友少踩坑 如果你遇到其它的奇葩问题 欢迎给我留言 因为很多坑我都踩过 希望大家可用互帮互助 首先大家安装npm cnpm yar
  • VS2017中将调试信息输出到输出窗口

    在开发过程中输出调试信息总是必不可少的 之前习惯性的使用cout和printf 发现并不能输出调试信息到输出窗口中 后来通过网上了解之后 cout和printf只能输出信息到dos窗口中 但是如果我们的界面中不需要用到dcs窗口呢 经过网上
  • GMII,RGMII,SGMII,TBI,RTBI接口信号及时序介绍

    GMII RGMII SGMII TBI RTBI接口信号及时序介绍 千兆以太网MII接口类型主要有GMII RGMII SGMII TBI和RTBI 五种 GMII接 如下图 与MII接口相比 GMII的TX RX数据宽度由4位变为8位