RGMII接口及时序详解

news2024/9/20 1:02:56

文章目录

    • 一、RGMII接口介绍
    • 二、MAC和PHY
      • 1.关系
      • 2.MAC和PHY的交互
      • 3.MAC为什么要配置PHY
      • 4.如何配置
        • (1)原理
        • (2)PHY地址的确定
        • (3)寄存器地址及配置数据
    • 三、88E1111中PHY的时序
      • 1.接收端时序
        • (1)非延时模式
        • (2)延时模式
      • 2.发送端时序
        • (1)非延时模式
        • (2)延时模式
    • 四、Xinlinx中处理RGMII接口的数据
      • 1.IDDR
        • (1)作用及接口说明
        • (2)三种工作模式
        • (3)数据处理过程
      • 2.ODDR
        • (1)作用及接口说明
        • (2)工作模式
        • (3)数据处理过程
      • 3.IDELAYE2

一、RGMII接口介绍

以太网的通信离不开物理层 PHY 芯片的支持,以太网 MAC 和 PHY 之间有一个接口,常用的接口有MII、 RMII、 GMII、 RGMII 等。

RGMII接口如下:

信号名称位宽方向描述
TXC1OUT发送时钟信号,10/100/1000Mbps 模式频率分别为 2.5M/25M/125MHz
TD4OUT发送数据信号
TX_CTL1OUT发送数据控制信号,上升沿时为数据有效信号,下降沿时为数据有效信号/错误信号
RXC1IN接收时钟信号,10/100/1000Mbps 模式频率分别为 2.5M/25M/125MHz
RD4IN接收数据信号
RX_CTL1IN接收控制信号,上升沿时为数据有效信号,下降沿时为数据有效信号/错误信号

在这里插入图片描述

RGMII 是 GMII 的简化版,数据位宽为 4 位

  • 在 1000Mbps 传输速率下,时钟频率为 125Mhz,在时钟的上下沿同时采样数据
  • 在 100Mbps传输速率下,时钟频率为25MHz,为单个时钟沿采样
  • 在 10Mbps传输速率下,时钟频率为2.5MHz,为单个时钟沿采样

二、MAC和PHY

1.关系

MAC(介质访问控制)和PHY(物理层)是网络通信中两个互补的组件,它们共同工作以实现数据在网络中的传输。它们在OSI模型中分别对应不同的层次:

  • MAC层
    • MAC层位于OSI模型的数据链路层的上层,负责控制对共享介质(如以太网)的访问。
    • 它处理帧的封装和拆封,包括添加MAC头部和尾部,以及处理错误检测和控制机制。
    • MAC层还负责多路访问和冲突解决,例如在以太网中通过CSMA/CD(Carrier Sense Multiple Access with Collision Detection)协议。
    • MAC地址,也称为物理地址或硬件地址,是网络设备在网络中的唯一标识,由MAC层管理。
  • PHY层
    • PHY层位于OSI模型的数据链路层的下层,直接与传输媒介(如电缆、光纤、无线电波等)交互。
    • 它负责通过物理媒介传输和接收比特流,包括信号编码、调制解调、信号放大和时钟恢复。
    • PHY层定义了电气特性,如电压水平、阻抗匹配、数据速率、最大传输距离等。
    • 它还可能包括介质相关接口(MDI)和物理编码子层(PCS),用于进一步处理数据以适应特定的传输媒介。

在这里插入图片描述

2.MAC和PHY的交互

  • MAC层生成要传输的数据帧,并将它们发送到PHY层。
  • PHY层接收来自MAC层的帧,将其转换为适合在物理媒介上传输的信号,并发送出去。
  • 当PHY层接收到来自物理媒介的信号时,它将信号转换回帧,并将其发送到MAC层。
  • PHY层还负责与链路伙伴(如交换机、路由器或另一台主机)的PHY层进行协商,以确定最佳的传输参数,如速率、双工模式等。

3.MAC为什么要配置PHY

MAC(Media Access Control,介质访问控制)是网络接口的一部分,负责管理和控制数据在物理媒介上的传输。PHY(Physical Layer,物理层)是网络接口的另一个重要组成部分,它负责通过物理媒介(如电缆、光纤等)传输和接收实际的比特流。MAC和PHY共同工作以实现网络通信。

MAC需要配置PHY的原因包括:

  1. 物理层参数:不同的物理媒介有不同的特性和要求,例如信号速率、双工模式(全双工或半双工)、流控制等。配置PHY可以确保数据传输符合所使用的物理媒介的特性。
  2. 接口标准化:配置PHY有助于确保网络设备遵循特定的标准(如以太网、Wi-Fi等),这些标准定义了物理层的操作方式。
  3. 自动协商:许多网络设备使用自动协商来确定最佳的传输速率和模式。通过配置PHY,可以实现速率和双工模式的自动协商。
  4. 信号完整性:PHY负责信号的生成和接收,配置PHY可以优化信号的完整性,减少噪声和干扰,提高数据传输的可靠性。
  5. 错误检测和纠正:某些PHY支持错误检测和纠正机制,配置PHY可以启用这些机制,从而提高数据传输的准确性。
  6. 电源管理:PHY可能包含电源管理功能,如节能模式,配置PHY可以优化设备的能耗。
  7. 远程监控:配置PHY还可以允许远程监控物理层的状态,包括链路状态、速率、错误统计等。
  8. 兼容性:不同的网络设备可能使用不同的PHY芯片或技术,配置PHY确保MAC层与PHY层兼容,从而实现无缝通信。
  9. 高级功能:一些高级网络功能,如优先级队列、虚拟局域网(VLAN)标记等,可能需要PHY支持特定的硬件功能。
  10. 故障诊断:配置PHY有助于故障诊断,因为它可以提供链路状态和错误信息,帮助网络管理员识别和解决问题。

总之,MAC配置PHY是为了确保网络接口能够在物理层上正确、高效、可靠地传输数据,并与网络中的其他设备兼容。

4.如何配置

(1)原理

MDIO(Management Data Input/Output,管理数据输入输出) 是一种简单的双线串行接口。该总线由 IEEE 通过以太网标准 IEEE 802.3 的若干条款加以定义。可收集的信息包括链接状态、传输速度与选择、断电、低功率休眠状态、TX\RX 模式选择、自动协商控制、环回模式控制等。

其包含 2 个引脚:MDC 和 MDIO。MDC 管理数据的时钟输入,最高速率 8.3 MHz;MDIO 管理数据的输入输出,数据是与 MDC 时钟同步的。

在这里插入图片描述

通过FPGA向PHY操作的数据格式如下:

PreambleStartOpcodePHY addressRegister addressTurn-aroundRegister dataIdle
32bit 101Read:10 Write:015bit5bitRead:z0 Write:1016 bitz
  • Preamble:32bits的前导码,全1。
  • Start:2bit的开始位
  • PHY adress:5bits的PHY地址,
  • Register adress:5bits的寄存器地址
  • Turn-around:2bits的TA,在读命令中,MDIO在此时由MAC驱动改为PHY驱动,并等待一个时钟周期准备发送数据。在写命令中,不需要MDIO方向发生变化,则只是等待两个时钟周期准备写入数据。
  • Register data:16bits数据,在读命令中,PHY芯片将读到的对应PHYAD的REGAD寄存器的数据写到Data中,在写命令中,MAC将要写入对应PHYAD的REGAD寄存器的值写入Data中。
  • Idle:空闲状态,此时MDIO无源驱动,处高阻状态。

下面给出读写两种情况下的MDIO和MDC的时序图:

①写操作

在这里插入图片描述

②读操作

在这里插入图片描述

时序图中与手册规定的不一样,并没有采用32bit的前导码。

对寄存器进行配置或读取时,需要按照上述的数据格式,通过MDIO一比特一比特的传输到PHY中。

(2)PHY地址的确定

要确定PHY芯片的地址,需要查看PHY芯片手册以及板卡原理图

①PHY芯片手册决定了控制信号和PHY地址的对应关系

②板卡原理图决定了PHY地址的控制信号所连接的对象

接下来以手上的一个325t的办卡进行举例:

先看一下PHY芯片手册:

在这里插入图片描述

可以看到各个控制信号对应的管脚信息,并且说明了CONFIG[0]决定了PHY地址的低3位,CONFIG[1]决定了PHY地址的高两位。

查看板卡原理图:

在这里插入图片描述

我们可以发现,CONFIG[0]连接着PHYA_LED_RX,CONFIG[1]连接着PHYA_LED_LINK1000。我们查看88E1111的手册,如下:

在这里插入图片描述

可知LED_RX对应010,LED_LINK1000对应100,因此CONFIG[0]对应的PHY地址低3位为010,CONFIG[1]对应的PHY地址高2位为00,因此PHY地址为00010。

(3)寄存器地址及配置数据

我们以控制寄存器0举例,为了配置千百兆模式需要对控制寄存器0的bit6和bit13进行配置。

在这里插入图片描述

因此寄存器地址为0,将寄存器数据的bit13、bit6按照需要的模式进行配置,其他功能可对对应bit配置相应数据。

三、88E1111中PHY的时序

1.接收端时序

接收端信号时序如下图所示:

在这里插入图片描述

一般的PHY芯片包含两种RGMII接收端口时序模式,分别为延时模式和非延时模式,通过控制寄存器20bit7实现,当其为1时是延时模式为0时是非延时模式默认情况下是非延时模式

在这里插入图片描述

(1)非延时模式

在这里插入图片描述

非延时模式下,接收时钟与接收数据信号边沿对其。

(2)延时模式

在这里插入图片描述

延时模式下时钟信号RX_CLK的边沿处于数据和控制信号的中心位置,此时的RX_CLK相对于数据和控制信号有2ns的延迟(2ns是因为在1000M速率下时钟为125MHz,一个时钟周期为8ns,一个数据的有效时间为4ns)

2.发送端时序

发送端信号时序如下图所示:

在这里插入图片描述

一般的PHY芯片包含两种RGMII发送端口时序模式,分别为延时模式和非延时模式,通过控制寄存器20bit1实现,当其为1时是延时模式为0时是非延时模式默认情况下是非延时模式

在这里插入图片描述

(1)非延时模式

在这里插入图片描述

非延时模式下时序图如上图所示,可知在此模式下时钟信号TX_CLK的边沿处于数据和控制信号的中心位置,此时的TX_CLK相对于数据和控制信号有2ns的延迟(2ns是因为在1000M速率下时钟为125MHz,一个时钟周期为8ns,一个数据的有效时间为4ns)。

(2)延时模式

在这里插入图片描述

延时模式下,要求发送时钟和数据及控制信号的边沿对齐。

四、Xinlinx中处理RGMII接口的数据

1.IDDR

(1)作用及接口说明

IDDR(Input Double Data Rate)原语是Xilinx FPGA中用于处理双数据速率信号的一种原语,它将输入的双被速率数据转换为单倍速率信号。

信号名称位宽方向描述
CE1IN时钟使能信号
C1IN时钟信号
S1IN置位信号
R1IN复位信号
D1IN输入的双倍速率的数据,即D在时钟的上升沿和下降沿都会发生切换,一个时钟周期发送2bit数据
Q11OUT单倍速率的输出数据
Q21OUT单倍速率的输出数据
(2)三种工作模式

它支持三种不同的工作模式,这些模式决定了IDDR如何对输入数据进行采样以及输出数据的生成方式:

  • OPPOSITE_EDGE模式:在这种模式下,IDDR将在时钟的上升沿和下降沿都进行数据采样。这意味着每个时钟周期的上升沿和下降沿都会有数据变化,实现双沿传输。输出Q1在时钟的每个上升沿提供在该上升沿采集到的数据,而Q2在时钟的每个下降沿提供在该下降沿采集到的数据。

    在这里插入图片描述

  • SAME_EDGE模式:此模式与OPPOSITE_EDGE模式的输入信号时序一致,但区别在于Q1和Q2都只在时钟的上升沿输出数据。在第一个上升沿,Q1输出在该上升沿采集到的数据,而在随后的下降沿,Q2采集数据,并在第二个上升沿,Q1输出第二个上升沿采集的数据,Q2输出第一个下降沿采集的数据。

    在这里插入图片描述

  • SAME_EDGE_PIPELINED模式:这是最常用的数据采集模式。与SAME_EDGE模式类似,但Q1的输出数据会延迟一个时钟周期,使得Q1和Q2的第一个数据至最后一个数据进行对齐,这样方便后续逻辑的操作,但代价是Q1的输出数据会有一个时钟周期的延迟

    在这里插入图片描述

(3)数据处理过程

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.ODDR

(1)作用及接口说明

它的功能是将单倍速率的数据转化成双倍速率的数据。

信号名称位宽方向描述
C1IN时钟信号
CE1IN时钟使能信号
S1IN置位信号
R1IN复位信号
D11IN单倍速率的输入数据
D21IN单倍速率的输入数据
Q1OUT输出的双倍速率的数据,即Q在时钟的上升沿和下降沿都会发生切换
(2)工作模式

ODDR支持两种不同的工作模式:

  • OPPOSITE_EDGE模式:在此模式下,ODDR在时钟的上升沿采集D1输入信号,并在上升沿将采集到的信号输出;在时钟的下降沿采集D2输入信号,并在下降沿将采集到的信号输出。这种模式使用起来相对复杂,因为FPGA内部需要在时钟的上升沿给D1赋值,在时钟的下降沿给D2赋值,一般不常使用1820。

    在这里插入图片描述

  • SAME_EDGE模式:此模式下,ODDR在时钟的上升沿同时采集D1和D2的数据,然后在时钟的上升沿输出采集的D1数据,在下降沿输出采集的D2数据。这种方式实现起来比较简单,属于常用的模式20。

    在这里插入图片描述

(3)数据处理过程

在这里插入图片描述

在这里插入图片描述

3.IDELAYE2

用于将数据延迟一段时间。

例化:

(* IODELAY_GROUP = <iodelay_group_name> *) // Specifies group name for associated 
IDELAYs/ODELAYs and IDELAYCTRL
 IDELAYE2 #(
 .CINVCTRL_SEL("FALSE"), // Enable dynamic clock inversion (FALSE, TRUE)
 .DELAY_SRC("IDATAIN"), // Delay input (IDATAIN, DATAIN)
 .HIGH_PERFORMANCE_MODE("FALSE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
 .IDELAY_TYPE("FIXED"), // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
 .IDELAY_VALUE(0), // Input delay tap setting (0-31)
 .PIPE_SEL("FALSE"), // Select pipelined mode, FALSE, TRUE
 .REFCLK_FREQUENCY(200.0), // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 
290.0-310.0).
 .SIGNAL_PATTERN("DATA") // DATA, CLOCK input signal
 )
 IDELAYE2_inst (
 .CNTVALUEOUT(CNTVALUEOUT), // 5-bit output: Counter value output
 .DATAOUT(DATAOUT), // 1-bit output: Delayed data output
 .C(C), // 1-bit input: Clock input
 .CE(CE), // 1-bit input: Active high enable increment/decrement input
 .CINVCTRL(CINVCTRL), // 1-bit input: Dynamic clock inversion input
 .CNTVALUEIN(CNTVALUEIN), // 5-bit input: Counter value input
 .DATAIN(DATAIN), // 1-bit input: Internal delay data input
 .IDATAIN(IDATAIN), // 1-bit input: Data input from the I/O
 .INC(INC), // 1-bit input: Increment / Decrement tap delay input
 .LD(LD), // 1-bit input: Load IDELAY_VALUE input
 .LDPIPEEN(LDPIPEEN), // 1-bit input: Enable PIPELINE register to load data input
 .REGRST(REGRST) // 1-bit input: Active-high reset tap-delay input
 );

延时值如下:

延时值 = 600 p s + t a p ∗ r e s o l u t i o n r e s o l u t i o n = 1 64 ∗ f ( u s ) 延时值=600ps+tap*resolution\\ resolution=\frac{1}{64*f} (us) 延时值=600ps+tapresolutionresolution=64f1us

其中f频率的单位为MHz,tap值为CNTVALUEIN的值。

详细可参考下面文章:

Xilinx IDELAYE2应用笔记及仿真实操-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows安全应急--应急排查的一些方法

前言&#xff1a; 非法BC植入网站安全应急&#xff0c; 在安全应急中&#xff0c; 总会需要大大小小的问题&#xff0c; 就像成长一样。 检测工具尽量使用轻量级的。。 本次演示环境 Windows Server 2008 问题排查步骤&#xff1a; 先判断服务器有没有被Rootkit 查看登录…

将联表查询到的数据按1000一批次存入数据库-模板

idea模板&#xff1a; /*** ${Shitilei}信息 服务层实现。** author admin*/ Service RequiredArgsConstructor public class Operate${Shitilei}Service {private final ${Shitilei}Mapper ${shitilei}Mapper;private final RegionUtil util;/*** ${shitilei}表* return 操作结…

【抽代复习笔记】18-置换练习题(2)及两个重要定理

最近一直忙于学校的事情&#xff0c;好久没更新了&#xff0c;实在抱歉。接下来几期大概也会更得慢一些&#xff0c;望见谅。 练习4&#xff1a;写出4次对称群S4中所有置换。 解&#xff1a;由上一篇笔记结尾的定理我们知道&#xff0c;4次对称群的阶&#xff08;也就是所含元…

SAP-有历史业务情况下的物料批次切换前提条件和方案建议

转载自&#xff1a;SAP-有历史业务情况下的物料批次切换前提条件和方案建议 - 知乎 (zhihu.com) 在SAP中&#xff0c;物料是否启用批次管理主要是通过物料上的“批次管理”字段进行控制&#xff0c;但物料批次管理涉及库存很多业务节点的控制&#xff0c;因此一旦有业务的发生&…

超市生鲜如何持续盈利?

生鲜经营是现代超市功能配置中不可缺少的组成部分&#xff0c;通过生鲜区经营及其效果可以反映出超市业态发展的成熟化程度。做好了可以达到集客和盈利的目的&#xff0c;做得不好&#xff0c;也很容易成为超市中的亏损&#xff0c;更难指望顾客经常光顾。 超市生鲜区生存和发展…

QT creator centralwidget前面有个禁止符号

centralwidget前面有个禁止符号&#xff1a;表示分拆布局 在主窗口空白处&#xff0c;右键&#xff0c;选择布局即可选择不同的布局方式&#xff0c;表示对窗口内所有控件部件进行布局&#xff0c;不如垂直布局。

Android模块化项目搭建和模块之间跳转传值(2)

一、前言 这是一篇关于Android模块化的项目搭建和配置&#xff0c;没有看过我第一部分的同学如果不清楚整个流程的&#xff0c;可以回头看一下&#xff0c;有利于你更加快速的掌握和使用。 二、引入ARouter 模块化顾名思义就是将项目按模块的方式进行开发&#xff0c;加大了…

C++小病毒

C小病毒&#xff08;注&#xff1a;对电脑无过大伤害&#xff09; 短短行&#xff0c;创造奇迹&#xff01; 把这个文件命名为virus.exe就可以使用了。 #include<bits/stdc.h> #include<windows.h> using namespace std; int main() {HWND hwnd GetForegroundW…

一图看懂 | 蓝卓新材料行业解决方案

小到芯片、手机、智能手表&#xff0c;大到智能装备、新能源汽车、光伏电池板&#xff0c;新材料的运用不可缺少。作为未来产业的“基石”&#xff0c;新材料行业有力支撑了航空航天、电子信息、新能源等战略性新兴产业的发展壮大。 七大行业特点&#xff0c;五大应用场景&…

【WEEK13】 【DAY3】Shiro第三部分【中文版】

2024.5.22 Wednesday 接上文【WEEK13】 【DAY2】Shiro第二部分【中文版】 目录 15.4.登录拦截15.4.1.修改ShiroConfig.java15.4.2.新建login.html页面15.4.3.修改MyController.java15.4.4.再次修改ShiroConfig.java15.4.5.重启 15.5.用户认证15.5.1.修改MyController.java15.5.…

【css】引入背景图时候,路径写入@会报错

看报错信息 我的写法 解决办法 在前面加个~

个体因果效应估计|EDVAE:用于个体治疗效果估计的反事实推理中的解开潜在因素模型

【摘要】根据观察数据估计个体治疗效果&#xff08;ITE&#xff09;是一项至关重要但具有挑战性的任务。解缠结表示已用于将代理变量分为混杂变量、工具变量和调整变量。然而&#xff0c;根据观测数据准确地进行反事实推理来识别 ITE 仍然是一个悬而未决的问题。在本文中&#…

6. Spring面试题汇总

Java全栈面试题汇总目录-CSDN博客 1. 什么是Spring框架? Spring是一种轻量级开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说Spring框架指的都是Spring Framework&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地协助…

每周打靶VulnHub靶机-LOOZ_ 1

Looz: 1 靶机传送门 Not that hard and not that easy, it’s always straightforward if you can imagine it inside your mind. 没有那么难也没有那么容易&#xff0c;只要你能在脑海中想象出来&#xff0c;它总是很简单的 1.信息搜集 使用nmap进行域内存活主机扫描发现targ…

A10 vThunder镜像-eveng pnetlab镜像下载

A10 vThunder 是由 A10 Networks 发布的。A10 Networks 是一家专注于应用交付控制器&#xff08;ADC&#xff09;、负载均衡、安全和基于云的应用交付解决方案的公司。A10 vThunder 系列产品包括虚拟应用交付控制器&#xff08;ADC&#xff09;和其他虚拟化网络功能&#xff0c…

html 段落与排版标记 Web前端开发技术、详细文章(例如)

段落与排版标记 网页的外观是否美观&#xff0c;很大程度上取决于其排版。在页面中出现大段的文字&#xff0c;通常采用分段进行规划&#xff0c;对换行也有极其严格的划分。本节从段落的细节设置入手&#xff0c;利用段落与排版标记自如地处理大段的文字。 段落p标记 在HTM…

展厅设计对企业有哪些作用

1、增强品牌形象 企业展厅对于增强企业品牌形象、提升企业的知名度和市场竞争力具有显著作用和意义。展厅作为企业对外的窗口&#xff0c;是客户和访客了解企业的第一印象。通过独特的设计风格和精心的展示布局&#xff0c;企业可以将自身的核心价值和文化理念巧妙地融入到展厅…

ip地址怎么改成自己想要的地区

在数字化时代&#xff0c;IP地址不仅代表着我们在网络世界中的身份标识&#xff0c;更是与地理位置紧密相连的要素。然而&#xff0c;有时出于隐私保护、网络优化或特定访问需求&#xff0c;我们可能希望更改IP地址至心仪的地区。本文将为您详细介绍如何实现这一目标。 IP地址通…

Mac安装 Intellij IDEA,亲测有效M1、M2可用

引言 最近开始学习使用spring boot写一个简单的后端项目&#xff0c;使用Intellij IDEA软件&#xff0c;Intellij IDEA为新用户提供了30天的免费试用。 方案 1.官网下载Intellij IDEA IntelliJ IDEA – the Leading Java and Kotlin IDE 或者直接网盘连接下载&#xff1a;…

轻松驾驭文件重命名,一键批量导出位置与名称至表格,让文件管理更高效便捷!

无论是工作还是生活&#xff0c;我们都需要与各种各样的文件打交道。有时&#xff0c;为了快速查找或整理文件&#xff0c;我们可能需要记录它们的位置和名称。但面对海量的文件&#xff0c;手动记录不仅耗时耗力&#xff0c;还容易出错。那么&#xff0c;有没有一种方法能够轻…