首页 > 其他分享 >Xilinx平台以太网接口(二)系统架构

Xilinx平台以太网接口(二)系统架构

时间:2023-09-14 23:26:36浏览次数:47  
标签:架构 TX CLK RX 接口 MAC Xilinx 以太网 时钟

 

汇总篇:

Xilinx FPGA平台以太网接口(汇总篇)_xilinx ethernet_子墨祭的博客-CSDN博客

一、系统架构

基于TOP-DOWN的设计思路,我们首先需要了解基于FPGA的以太网接口设计的系统模型:

 

 

MAC是媒体访问控制器。以太网MAC由IEEE-802.3以太网标准定义。它实现了数据链路层。最新的MAC同时支持10/100/1000Mbps速率。通常情况下,它实现MII/GMII/RGMII等接口,来同行业标准PHY器件实现接口。

MAC由硬件控制器及MAC通信协议构成。该协议位于OSI七层协议中数据链路层的下半部分,主要负责控制与连接物理层的物理介质。

MAC层可以自己编写代码,也能使用现成的IP。由FPGA来实现。

PHY是TCP/IP协议栈中的物理层器件,也就是我们常说的PHY芯片,如88E1111,支持不同形式的数据转换为以太网所支持的传输媒介,例如支持1000BASE-T、100BASE-T、10BASE-T类型的以太网传输。支持CAT-5类非屏蔽双绞线上的数据收发。可以直接连接到MAC/SWITCH接口,例如FPGA的IP核。支持RMII、GMII、RGMII、SGMII、XAUI等接口。

PHY芯片的作用可以说就是MAC层与双绞电缆间的适配。

RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。RJ是Registered Jack的缩写,意思是“注册的插座”。在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。就是连接器。

在此系统架构基础上,我们继续了解MAC层接口。

 

PS: 插播一个OSI七层结构与TCP/IP五层结构模型

 

 

 

二、MAC层接口

MII接口 : Medium Independent Interface,介质独立接口。 一般应用于以太网硬件平台的MAC层与PHY层之间,MII接口的类型有很多,常用的有MII、RMII、GMII、RGMII、SGMII、XAUI等接口。

MII接口 :

 

 

l RXD(Receive Data)[3:0]:数据接收信号,共4根信号线;

l TX_ER(Transmit Error):  发送数据错误提示信号,同步于TX_CLK,高电平有效,表示TX_ER有效期内传输的数据无效。对于10Mbps速率下,TX_ER不起作用;

l RX_ER(Receive Error):  接收数据错误提示信号,同步于RX_CLK,高电平有效,表示RX_ER有效期内传输的数据无效。对于10Mbps速率下,RX_ER不起作用;

l TX_EN(Transmit Enable): 发送使能信号,只有在TX_EN有效期内传的数据才有效;

l RX_DV(Reveive Data Valid): 接收数据有效信号,作用类型于发送通道的TX_EN;

l TX_CLK:发送参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。注意,TX_CLK时钟的方向是从PHY侧指向MAC侧的,因此此时钟是由PHY提供的。

l RX_CLK:接收数据参考时钟,100Mbps速率下,时钟频率为25MHz,10Mbps速率下,时钟频率为2.5MHz。RX_CLK也是由PHY侧提供的。

l CRS:Carrier Sense,载波侦测信号,不需要同步于参考时钟,只要有数据传输,CRS就有效,另外,CRS只有PHY在半双工模式下有效;

l COL:Collision Detectd,冲突检测信号,不需要同步于参考时钟,只有PHY在半双工模式下有效。

接口共16根线。

-----------------------

剩下的RMII、GMII、RGMII等接口就不再这么详细列举了,我们使用一个表格(from:“碎碎思”大佬)对比就能清晰了解,重点关注速率的变化。

MII

基本的100Mbps/10Mbps接口

RXD[3:0]、TXD[3:0]

TX_ER、TX_EN

RX_ER、RX_DV

TX_CLK、RX_CLK

CRS、COL

Clock=25MHz or 2.5MHz

数据位宽4bit(一个时钟周期传输4bit数据)

100Mbps=25 MHz *4bit

10Mbps=2.5 MHz *4bit

RMII

在MII基础上精简的100Mbps/10Mbps接口;

通过提升Clock频率保持与MII一样的速率;

RXD[1:0]、TXD[1:0]

TX_EN

RX_ER

CLK_REF

CRS_DV

Clock=50MHz

数据位宽2bit(一个时钟周期传输2bit数据)

100Mbps=50 MHz *2bit

10Mbps是利用10个周期采样一次数据,相当于

10Mbps=50MHz/10*2bit

SMII

串行MII 100Mbps/10Mbps接口;

进一步提升Clock频率保持与MII一样的速率;

RXD[1:0]

TXD[1:0]

TX_EN

RX_ER

CLK_REF

CRS_DV

Clock=125MHz

数据位宽1bit(一个时钟周期传输1bit数据)

串行数据帧:一帧10bit(8bit data+2bit control)

计算有效带宽时需要去掉控制位

100Mbps=125 MHz *(8bit/10bit)

10Mbps是利用10个周期采样一次数据,相当于

10Mbps=(125 MHz/10)*(8bit/10bit)

GMII

在MII接口基础上提升了数据位宽和Clock频率成为1000Mbps接口

RXD[7:0]、TXD[7:0]

TX_ER、TX_EN

RX_ER、RX_DV

GTX_CLK、RX_CLK

CRS、COL

Clock=125MHz

数据位宽8bit(一个时钟周期传输8bit数据)

1000Mbps=125 MHz *8bit

RGMII

GMII的简化版本

RXD[3:0]、TXD[3:0]

TX_EN

RX_DV

TX_CLK、RX_CLK

CRS、COL

Clock=125MHz

数据位宽4bit(一个时钟周期里,上升沿取TX\RX的0-3bit,下降沿取TX\RX的4-7bit,所以实际还是在一个时钟周期里传输8bit数据)

1000Mbps=125 MHz *8bit

100Mbps=25 MHz *8bit

10Mbps=2.5MHz *8bit

SGMII

串行GMII,在此基础上提升了时钟频率达到1000Mbps

RXD[0]、TXD[0]

RX_CLK

Clock=125MHz

数据位宽1bit(一个时钟周期传输1bit数据)

串行数据帧:一帧10bit(8bit data+2bit control)

1000Mbps=125.0MHz *8bit

但计算有效带宽时需要去掉控制位

 

重点注意速率的变化,因为当我们使用TRI_MODE三速以太网IP的时候,IP其实就是通过时钟频率来控制MAC层速率的。

另外,在FPGA实现网络通信时,还有一个特殊的接口不得不提,那就是SerDes。万兆以太网通信就是基于SerDes来实现的。我们这里暂时略过。

 

下一篇,我们开始介绍IP核的配置以及所用接口的介绍。

标签:架构,TX,CLK,RX,接口,MAC,Xilinx,以太网,时钟
From: https://www.cnblogs.com/zimoji/p/17703786.html

相关文章

  • 缺陷检测常见的工业层架构
    百度智能云缺陷检测工业产线架构机械系统,包括供料收料装置、上料周转和下料分拣装置、姿态变换机构、光学检测机构、机架,起到功能支撑的作用;电气系统,包括动力元件、控制元件、控制器件、人机交互、光学元件和子系统和电柜,起到控制支撑作用;软件系统,包括总控制软件、子系统软件、人机......
  • 如何从0开始画出一张优秀的架构图
    咱们做开发的,日常工作中多多少少都会涉及一些架构设计方面的知识。说到架构设计就不得不提架构图,曾几何时,每一个软件项目都需要一个架构图。但想要画好一张架构图并不容易,一个很简单的架构也可能会出错。你可能曾经也遇到过类似的问题:在构思架构图的过程中,如何针对当前需求选择......
  • java架构师主要是干什么的,要注意什么?
    Java架构师当然是专注于Java开发架构设计的工程师。这里包含两层意思:1、Java架构师限定了工程师的专业范围,专注于Java开发;2、Java架构师明确了工作职责,主要从事Java架构设计。如果往深一层探讨,则需要明白,什么是Java开发,Java架构师的主要职责是什么?什么是JavaJava是一种程序......
  • Java进阶学习之Java架构师的学习路线
    Java架构师,首先要是一个高级Java攻城狮,熟练使用各种框架,并知道它们实现的原理。Java架构师的作用就是要满足业务需求,用低的硬件网络成本和技术维护成本。Java架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,并且设计当前架构时将架构的升级扩展考虑进去,做......
  • 怎么成为一名Java架构师 都需要掌握哪些技术
    怎么成为一名Java架构师?都需要掌握哪些技术?Java架构师,首先要是一个高级Java攻城狮,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池……Java构架师需要掌握的技术:1、熟练使用各种框架,并知道它们实现......
  • JAVA架构与开发(JAVA架构是需要考虑的几个问题)
       在企业中JAVA架构师主要负责企业项目技术架构,企业技术战略制定,技术框架搭建,技术培训和技术攻坚的工作。   在JAVA领域,比较多的都是web项目。用于解决企业的数字化转型。对于JAVA架构师而言,平时对项目的架构主要考虑这几个方面的问题。 一、项目的业务架构:包......
  • java架构师是做什么的 java架构师的工作内容
    Java架构师每天的工作是什么?Java架构师估计是每个java程序员都向往的职位吧,不过成为java架构师是需要经历漫长修炼的,不过我们可以先了解一下Java架构师每天的工作内容,感兴趣的小伙伴不妨看看吧。 java架构师是做什么的java架构师的工作内容1.负责设计和建设软件系统架构(平台......
  • 多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读
    本文分享自华为云社区《多主创新,让云数据库性能更卓越》,作者:GaussDB数据库。华为《TaurusMM:bringingmulti-mastertothecloud》论文被国际数据库顶会VLDB2023录用,这篇论文里讲述了符合云原生数据库特点的超燃技术。介绍了如何通过各种黑科技减少云原生数据库的网络消耗,......
  • 公司某产品MySql分布式架构总结
    这个是目前公司某产品Server端MySql分布式架构总结(内容总结自wiki),该产品同时使用了Mysql和MongoDB。本篇Blog只做Mysql分布式架构的介绍。----------------------------------------------------一、共4台Linux服务器A\B\C\DAmasterwithslaveBC......
  • Myspace数据库架构经验学习
    50万账户两台Web服务器和一个数据库服务器。第二代架构:运行在3个SQLServer数据库服务器,一主二从,读写分离。1-2百万账户垂直分割:不同的数据库服务于站点的不同功能,如登录、用户资料和博客。账户到达2百万后,数据库服务器开始受制于I/O容量,用高带宽、专门设计的网络将大量磁盘存储设......