GMAC & PHY介绍

2023-10-26

1.1PHY接口发展

(1)MII支持10M/100Mbps,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多。参考芯片:DP83848 、DM900A(该芯片内部集成了MAC和PHY接口)。 DP83848芯片只支持10、100兆网络通信速度,采用4/5B编码。
(2)RMII是简化的MII接口,支持10M/100Mbps,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50兆的总线时钟,是MII接口时钟的两倍。
(3)SMII是由思科提出的一种媒体接口,支持10M/100Mbps,接口时钟频率125MHZ。它有比RMII更少的信号线数目,S表示串行的意思。
(4)GMII是千兆网的MII接口,工作时钟125MHz,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式。用8位接口数据。

(5)RGMII接口,表示简化了的GMII接口。工作时钟125MHz,RGMII均采用4位数据接口,并且在上升沿和下降沿同时传输数据,因此传输速率可达1000Mbps。同时兼容MII所规定的10/100 Mbps工作方式,支持传输速率:10M/100M/1000Mb/s ,其对应clk 信号分别为:2.5MHz/25MHz/125MHz。

(6)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。
 

1.2 RGMII

Reduced Gigabit Media Independent Interface (RGMII) (Reduced GMII)是最常见的接口,因为它支持PHY层的10 Mbps,100 Mbps和1000 Mbps连接速度。RGMII使用4-bit宽发送和接收数据通路,每个数据通路都有自己的源同步时钟。所有发送数据和控制信号源同步到TX_CLK,与此同时所有接收数据和控制信号源同步到RX_CLK。

所有速度模式中,TX_CLK始终由MAC提供时钟源,而RX_CLK始终由PHY提供时钟源。在1000 Mbps模式下,TX_CLK和RX_CLK为125 MHz,用Dual Data Rate (DDR)信令。

10 Mbps和100 Mbps模式下,TX_CLK和RX_CLK分别为2.5 MHz和25 MHz,使用上升沿Single Data Rate (SDR)信令。

1.2.1 RGMII I/O管脚时序

本小节从满足1000 Mbps模式下各种要求的角度触发,解决RGMII接口时序相关问题。1000 Mbps模式下,需要最多接口时序裕量,因而这是此处唯一需要考虑的情况。

125 MHz时,周期为8 ns,但由于两个沿都已使用,因而有效沿周期仅为4 ns。TX 和RX总线完全独立但时钟源同步,从而简化了时序。RGMII规范要求CLK在任意方向上从接收器的DATA延迟最短1.0 ns到最长2.6 ns。

换言之,MAC到PHY的TX_CLK必须延迟于输出到PHY输入和从PHY输出到MAC输入的RX_CLK。如在输出管脚处测得的那样,信号在每个方向的+/- -500 ps RGMII偏斜规范内同步传输。每个方向所需的最小延迟为1 ns,但建议将目标延迟定为1.5 ns到2 ns,以确保足够的时序裕量。

参考文章:

RGMII (intel.cn)

千兆网络PHY芯片 RTL8211E的实践应用

国产单端口1000M以太网收发(PHY)芯片介绍

phy芯片的千兆以太网的时钟传输方向

千兆网PHY自学笔记 

【Datasheet】PHY KSZ9031千兆网络芯片

以太网学习(二)——PHY芯片

MII/GMII/RGMII知识学习。 - 知乎 (zhihu.com)

ARM处理器与PHY之间的MII,RMII,GMII,RGMII接口有什么区别

千兆网之RGMII & SGMII解析

[转]GMII/RGMII/SGMII/TBI/RTBI接口信号及时序介绍 

车载以太网 - AVB vs EAVB vs TSN

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

GMAC & PHY介绍 的相关文章

  • 如何让一句话木马绕过waf的检测 ?

    一 什么是一句话木马 一句话木马就是只需要一行代码的木马 短短一行代码 就能做到和大马相当的功能 为了绕过waf的检测 一句话木马出现了无数中变形 但本质是不变的 木马的函数执行了我们发送的命令 二 我们如何发送命令 发送的命令如何执行 我
  • 爬虫逆向实战(33)-某联社数据(webpack)

    一 数据接口分析 主页地址 某联社 1 抓包 通过抓包可以发现数据接口是 nodeapi telegraphList 2 判断是否有加密参数 请求参数是否加密 通过查看 载荷 模块可以发现有一个sign加密参数 请求头是否加密 无 响应是否
  • CSS盒子模型

    CSS盒子模型 课程目标 1 常用样式 2 盒子模型 3 CSS3常见效果 盒子模型介绍 引用百度百科 层叠样式表其实就是对静态页面进行装饰 但是 特别要注意的点是 通常建议表现形式与页面内容分离 例如 人就是内容 穿着打扮就是表现形式 常
  • 使用MQTT客户端连接阿里云MQTT服务器

    本文是转载的 原文请戳这里查看 摘要 物联网全栈教程 从云端到设备 八 一 这一篇文章零妖老哥将给你展示两个电脑软件的使用方法 将极大地方便你调试与MQTT有关的物联网项目 一个叫MQTT客户端用来模拟设备向云端发送数据和接收云端的数据 另
  • linux常用命令

    Linux目录结构简介 目录结构 说明 bin 是Binary的缩写 这个目录存放着最经常使用的命令 sbin s就是Super User的意思 这里存的系统管理员使用的系统管理程序 home 存放普通用户的主目录 在Linux中每个用户都

随机推荐

  • 使用Symchk来离线需要的Symbol文件

    我们在工作中会经常遇到离线环境 这时候就需要准备好离线符号 我们使用安装windbg时候自带的工具SymChk exe 微软的官方说明在下面 使用起来也很简单 下面是一个使用示例 使用 SymChk exe 实用程序下载 Windows S
  • python怎么打开npz文件_numpy的文件存储.npy .npz 文件详解

    Numpy能够读写磁盘上的文本数据或二进制数据 将数组以二进制格式保存到磁盘 np load和np save是读写磁盘数组数据的两个主要函数 默认情况下 数组是以未压缩的原始二进制格式保存在扩展名为 npy的文件中 import numpy
  • matlab_线性规划

    求解线性规划问题 min z f x s t Ax b Aeqx beq lb x ub 其中 f x b beq lb ub为向量 A Aeq为矩阵 linprog函数 x fval exitflag output lambda linp
  • linux解压rar包的命令

    压缩文件 rar a r test rar file 解压文件 unrar x test rar
  • QT信号槽connect的第五个参数

    用过QT的小伙伴都知道连接信号槽的connect方法 但是这个方法有第五个参数 一般都是用的默认的 1 connect th SIGNAL started tmpmyobject SLOT showID 今天给大家讲讲第五个参数的用法 一
  • Python 爬虫运行时如何忽略错误,并继续运行

    我在第一次写Python爬虫的时候 没过多久Python就会报错 然后停止采集 总是没办法从头到尾把数据采集下来 每一下次报错我都要去找原因 随着一次又一次的报错问题越来越少 比如我要采集的标签里面没有URL URL为空就会报错 或者页面没
  • 03虚幻4【UE4】蓝图通信

    UE蓝图通信 目录 UE蓝图通信 情景一 方法一 直接拾取 简单粗暴 局限性一对一 方法二 获取类的actor 调用 自定义函数 变量 1 获取类的actor 调用 自定义函数 2 获取类的actor 调用 变量 方法三 蓝图接口 情景二
  • 预训练语言模型

    模型参数不再是随机初始化的 而是通过一些任务进行预先训练 得到一套模型参数 然后用这套参数对模型进行初始化 再进行训练 从模型的角度 模型参数不再是随机初始化 而是通过一些任务 如语言模型 进行预训练 从数据的角度 将训练任务拆解成共性学习
  • Go_Goroutine和channel的使用、定时器、runtime、select、条件变量

    程序 程序是指编译好的二进制文件 存放在磁盘上不占用系统资源 cpu 内存 当程序在计算机上运行时 它就变成了一个进程 包括程序 数据和状态信息 程序是静态的 而进程是动态的 进程 进程是程序的实例 是资源分配的最小单位 当一个程序开始运行
  • 【QT】 QT 自己定义全局变量,编译时报错:undefined reference to

    编译时的报错截图 但是变量在头文件内定义过 原因 静态变量需要在cpp文件中先进行赋值 解决方式 在cpp文件中给定义的全局变量赋予一个初始值
  • 计算机系统文件格式,iso是什么文件格式,怎么使用呢?

    经常安装系统的朋友应该很清楚iso是什么文件格式 iso是一种光盘的镜像文件 无法直接使用 需要利用工具才能解压使用 那么下面小编给您详细介绍下iso镜像文件以及使用用途 有需要的朋友可以看下 使用过光盘安装系统的朋友应该知道ISO文件是如
  • linux操作系统管理-主机重启不能能启动分析(nfs)

    问题概述 2个节点rac集群 节点1 采用nfs方式共享 backup 目录 节点2进行mount 2个节点分别重启 发现节点1能够起来 节点2不能启动 通过分析发现 节点1 nfs服务未启动 导致节点2不能启动 将节点1 的nfs服务启动
  • 华为OD机试 - 高效的任务规划(Java)

    题目描述 你有 n 台机器 编号为 1 n 每台都需要完成一项工作 机器经过配置后都能独立完成一项工作 假设第 i 台机器你需要花 Bi 分钟进行设置 然后开始运行 Ji 分钟后完成任务 现在 你需要选择布置工作的顺序 使得用最短的时间完成
  • table表头固定,内容滚动

    最近接到一个需求 要thead表头固定 tbody内容实现滚动 简单 给tbody加高度就行了 什么 竟然不行失败了 既然无法限制tbody本身的高度 那就给它套一个div 限制div的高度 让tbody在div里面滚就好了 但是 tabl
  • linux中wget命令失败解决方法

    问题描述 执行下面的代码 wget https shapenet cs stanford edu media indoor3d sem seg hdf5 data zip 出现下面的错误提示 正在解析主机 shapenet cs stanf
  • 正版rust进去闪退_Tomcat运行startup.bat时,闪退,或者说直接退出——之解决方法...

    最近刚开始学Java EE 在部署Web应用的时候 需要Tomcat服务器 我们知道Tomca是一个容器 用来部署应用的 在使用的时候 需要在安装目录 bin里找到startup bat文件和shutdown bat文件 用于启动和关闭To
  • C语言二分查找法

    二分查找法 从一个有序数组中找到一个数 不管是升序还是降序 思路 先从中间找 之后依次截半查找 比如从1 2 3 4 5中找到4 先找中间数3 发现4小那么取3与5最中间的数4 找到了 如果是1 2 3 4找3 先找下标为 0 3 2 就是
  • AD20/Altium designer——如何对线宽进行设置、布线过程中快速改线宽的方法

    1 设计 规则 2 线宽设置 首选宽度即 布线时的 默认线宽 3 布线过程中改线宽 连线过程中按 Tab键 打开布线属性 直接 输入线宽 后 回车键 即可
  • 计算机学习路线及java图书参考

    学习路线图LIVE地址 1 科普 浪潮之巅 2 编程语言 C结构化的编程语言 java面向对象的语言 JavaScript Python动态编程语言 Headfirst Python 3 数学 高等数学 离散数学 线性代数 线性代数及其应用
  • GMAC & PHY介绍

    1 1PHY接口发展 1 MII支持10M 100Mbps 一个接口由14根线组成 它的支持还是比较灵活的 但是有一个缺点是因为它一个端口用的信号线太多 参考芯片 DP83848 DM900A 该芯片内部集成了MAC和PHY接口 DP838