基于FPGA的千兆以太网设计

更新时间:2023-03-08 16:39:57 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘 要

摘 要

随着信息技术的快速发展,以太网嵌入式设备的应用越来越广泛。为了让以太网各设备之间能公平有效地共享通信媒介,对以太网MAC层数据处理系统的研究显得尤为重要。

为此,本文首先分析了以太网及其相关协议的基本内涵,解剖了以太网MAC层通信机制、帧的特性与格式、PHY接口协议、ARP协议以及I2C协议。同时通过对FPGA芯片的了解,确定了基于88E1111芯片和XC3S400FPGA芯片相结合的系统设计方案,支持1000Base-T标准以太网的接入,完成了系统的硬件电路设计。系统设计中,88E1111完成PHY层数据的处理,FPGA则完成MAC层数据的处理,主要包含接收MAC数据帧的校验和解封、待发送数据帧的封装、MAC地址滤波、IP数据包的提取、ARP地址映射等,是系统的核心。在FPGA设计中,遵循自上而下的设计思想,对顶层模块以及PHY接口、MAC核心处理、用户配置、用户数据各功能子模块依次进行设计。

关键词:以太网 MAC层 FPGA

ABSTRACT

ABSTRACT

With the rapid development of IT,the embedded devices of accessing to Ethernet are used more and more widely.In order to make each device enjoy a fair and effective shared communications medium, it is particularly important to research the data processing system of the Ethernet MAC layer.

To this end,it is firstly done to analyze the basic connotation of Ethernet and the related agreements,and to dissect the communication mechanisms of the Ethernet MAC layer,the characteristics and format of the frame,the PHY interface protocol,the ARP protocol,I2C protocol in the paper.According to the characteristics and working principle of the FPGA chip ,the system design, which supports the accessing of the 1000Base-T Ethernet,is determined based on the combination of the 88E1111 PHY chip and XC3S400-4fg456C FPGA chip of Xilinx.Then the hardware circuit design is accomplished by the Cadence development tool.In this system, 88E1111 and FPGA respectively completes the data processing of PHY layer and the data processing of the MAC layer,which mainly consists of the calibration and dearchive of the receiving data frames, the encapsulation of the data frames,the MAC address filtering, the extraction of the IP packet,The ARP address mapping,and so on. So FPGA is the core of the system. Following the top-down design conception,the design of FPGA successively includes the top-level module,and the submodule of the PHY interface,the MAC core processing,the user configuration,the user data interface.

Keywords: Ethernet the MAC layer FPGA

目 录 i

目 录

第一章 绪论 ........................................................................................................ 1

1.1研究背景及意义 ..................................................................................... 1 1.2国内外研究现状 ..................................................................................... 2 1.3论文内容和论文组织结构安排 ............................................................. 3 第二章 千兆以太网理论基础 ............................................................................ 5

2.1千兆以太网标准 ..................................................................................... 5 2.2介质访问控制(MAC) ........................................................................ 7

2.2.1半双工MAC .............................................................................. 7 2.2.2全双工MAC .............................................................................. 9 2.3介质无关接口(MII) ......................................................................... 10

2.3.1GMII接口信号定义 ................................................................. 11 2.3.2GMII接口时序特性 ................................................................. 14 2.3.3GMII的管理MDIO接口 ......................................................... 15 2.4物理层技术 ........................................................................................... 17 2.5TCP/IP协议栈 ....................................................................................... 18 第三章 以太网数据传输硬件设计实现 .......................................................... 21

3.1系统方案设计 ....................................................................................... 21

3.1.1设计思想 ................................................................................... 21 3.1.2系统功能 ................................................................................... 21 3.1.3系统总体结构设计 ................................................................... 22 3.2芯片的选取 ........................................................................................... 23

3.2.1物理层芯片选择 ....................................................................... 23 3.2.2FPGA主芯片选择 .................................................................... 25 3.3硬件电路设计 ....................................................................................... 26

3.3.1以太网变换电路设计 ............................................................... 26

第四章 FPGA软件设计与仿真 ...................................................................... 33

ii 目 录

4.1FPGA软件开发简介 ............................................................................ 33 4.2系统顶层模块设计 .............................................................................. 34 4.3PHY接口模块设计 .............................................................................. 38

4.3.1设计思想 .................................................................................. 38 4.3.2相关算法 .................................................................................. 39 4.3.3功能仿真 .................................................................................. 40 4.4MAC核心处理模块设计 ..................................................................... 41 4.5实验测试与结果 .................................................................................. 42

4.5.1硬件测试平台准备 .................................................................. 42 4.5.2软件测试平台准备 .................................................................. 43 4.5.3系统测试与结果分析 .............................................................. 45

第五章 结论与展望 ......................................................................................... 49 致谢.................................................................................................................... 51 参考文献 ........................................................................................................... 53

第一章 绪论 1

第一章 绪论

1.1研究背景及意义

当今,随着互联网技术的迅速发展,采用以太网实现数据采集和控制方面的应用,成为了电子系统设计的热点。以太网具有价格低廉、稳定可靠、传输速度快、传输距离远等特点,以太网技术发展成熟,具有很高的性价比。采用以太网技术的设备,可以通过TCP/IP协议进行数据的传输,不需要进行传输协议转换,使用和维护设备简单。随着技术的发展和各类应用的需求,出现了各种以太网的标准,包括标准以太网(10Mbit/s)、百兆以太网(100Mbit/s)、千兆以太网(1000Mbit/s)和10G(10Gbit/s)以太网[1]。不同类型的以太网有其各自需要遵循的标准,同时其所用的传输介质以及数据吞吐量也各不相同。千兆以太网技术作为新一代的高速以太网技术,它可以提供1Gbps的通信带宽,采用和传统10M、100M以太网同样的CSMA/CD协议、帧格式和帧长、全/半双工工作方式、流控模式以及布线系统,给用户带来了提高核心网络的有效解决方案,这种解决方案的最大优点是继承了传统以太网技术价格便宜的特点。

同时随着电子技术的发展,系统设备正向小型化、集成化、网络化发展。FPGA(Field Programmable GateArray,现场可编程门阵列)以其高密度、大容量、低成本和微功耗等特点,被广泛的应用于各种电子系统的设计和开发中,面向各种技术的应用也越来越广泛[2]。在其内部加入处理器系统,不仅能够实现一般的逻辑功能设计,同时能够实现一般单片机功能,通过FPGA内部逻辑功能连接可以使整体获得优异的性能,并大大减少PCB设计工作。目前,在FPGA中嵌入了许多专用功能的IP Core,还增加了许多硬件核,如存储器、时钟管理和算法功能核,甚至包括了DSP核和嵌入式处理器核等,即能在FPGA中进行DSP和嵌入式处理等关键领域的开发,使得FPGA可实现的功能越来越强。比如世界第一大FPGA生产厂商Xilinx公司推出的最新器件Zynq-7000系列甚至将业界标准ARM双核Cortex-A9 MP Core处理系统嵌入到了可编程芯片中,不但能够实现FPGA

2 基于FPGA的千兆以太网设计

的高度灵活性和可扩展性,同时为利用FPGA进行嵌入式开发带来了可能。

目前,以PC机平台的千兆以太网的开发已经相对成熟,而近些年来随着FPGA、DSP和ARM等嵌入式芯片的处理能力的提升,基于这些芯片的千兆以太网的开发则处于起步阶段[3]。在这类系统的实现中,千兆以太网的MAC子层作为硬核集成在芯片中通过编程来实现,不仅有效降低了系统的成本,实现高效的传输性能,而且可以缩小PCB制板的大小。因此研究基于FPGA的千兆以太网技术,在大吞吐量数据传输通道、实时数据服务和实时信号处理等方面都将有着广泛的应用前景和潜在的经济价值,更进一步地对于千兆以太网在嵌入式系统中的应用,都具有很好的推进作用和实际意义。

1.2国内外研究现状

近些年来,根据一些国内外公开发表的文献,在基于FPGA的千兆以太网的数据传输的研究与应用方面,国内外的各机构已经有了一定的研究成果。

南京信息工程大学王胜杰和王建的基于千兆以太网的PC机与FPGA的高速数据传输,使用WinPcap自定义通信帧格式,实现一种PC机与FPGA之间双向高速数据传输的方法。但该研究绕过了TCP协议和IP协议,只涉及到链路层和物理层,与标准的千兆以太网接入系统无法很好的结合,只能面向特殊的应用。

在Xilinx官方公布的文档xapp1043中,Xilinx公司与Treck公司合作,实现了高效的Treck商业化以太网协议栈,可以实现目前以太网上常用的几乎所有的协议[4]。其文档测试的结果表明,在扩展的MTU大小达到9000Byte的模式下,可以实现惊人的922Mbps的纯网络速度。但该实现是基于Treck商业版的TCP/IP协议栈,且目前Xilinx公司已经去掉与Treck的合作,并不适合普通以太网的应用。

尽管Altera公司现在能提供关键通信协议的FPGA IP支持,但是集成以太网协议的IP核只可以在Altera的一些高端FPGA上实现,如Stratix系列[5]。对于低端的FPGA,如FLEX系列仍然不能实现。尽管作为Altera IP

第一章 绪论 3

核合作伙伴之一的IXXAT提供工业以太网开发套件,但费用是相当高的,近乎上百万美元。因此,自行开发出合理的协议堆栈、MAC、TCP/IP协议堆栈以及接口应用将具有很重大的意义和经济价值。

综上所述,目前国内外实现的千兆以太网主要以单芯片或单系统环境,趋向于以底层链路层以下的协议为基本设计起点完成千兆以太网的数据传输功能,且很多研究与应用都是面向专用的场合,并不适合普通用户的开发。面对FPGA的快速发展,在基于片内处理器的千兆以太网高速数据传输还很少,且使用处理器实现网络传输的TCP/IP协议正好与目前大量使用的以太网网络能快速兼容地结合,可以很容易用于商业产品的生成。因此,本课题的研究,对于千兆以太网在嵌入式高速数据网络通信技术的实际应用,以及进一步在其他嵌入式系统中的应用,都具有很好的应用前景和潜在的经济价值。

1.3论文内容和论文组织结构安排

本文在章节上一共分为五章,论文的组织结构安排如下:

第一章为绪论部分,主要介绍了FPGA中接入千兆以太网技术的研究背景以及目前国内外的研究现状,以及本论文的研究内容和论文安排。

第二章主要阐述了以太网基础理论的研究

第三章主要阐述以太网数据传输硬件部分设计与实现。 第四章主要阐述以太网数据传输软件部分设计与实现。

第五章主要阐述了本文的总结和研究展望,对本文进行总结,并在设计方法和性能提升上提出一些改进的方法。

4 基于FPGA的千兆以太网设计

第二章 千兆以太网理论基础 5

第二章 千兆以太网理论基础

本章首先介绍了以太网的发展历程和千兆以太网的标准内容,按照标准的分层原理介绍了其MAC层、GMII接口层和PHY层的实现原理,然后提出了一种基于FPGA的嵌入式千兆以太网的实现架构,以使用底层PHY硬件芯片实现MAC功能和使用LwIP嵌入式网络协议栈实现上层TCP/IP通信协议的构想来说明实现千兆以太网的通信系统平台的基本架构。

2.1千兆以太网标准

千兆以太网是建立在以太网标准基础之上的技术,它和现在已经大量使用的标准以太网(10Mbps)以及百兆以太网(100Mbps)技术一样,都使用以太网所定义的技术规范,比如:CSMA/CD协议、以太网帧、全双工、流量控制以及IEEE802.3标准中所定义的管理对象等[6]。同时,千兆以太网作为以太网络的一个组成部分,还支持流量管理技术,使得它提供的服务质量能得到保证,这些技术规范包括IEEE802.1P第二层优先级、第三层优先级的QoS编码位、特别服务和资源预留协议(RSVP)。目前,千兆以太网已经发展成为主流网络技术,大量的网络工作人员和普通用户从中受益不浅.

以太网的官方标准为IEEE802.3,IEEE802.3工作组有数百名工作人员从事千兆以太网标准的制定,他们来自十几家生产网络产品的公司,力图将以太网的速度提高到1000Mbps以上。1996年7月,IEEE成立了802.3z千兆以太网特别工作组,这一工作组负责开发1000Mbps千兆以太网标准。1997年1月,通过了IEEE802.3z第一版草案;1997年2月3日,IEEE确定了千兆以太网的核心技术,1998年6月正式通过千兆以太网标准IEEE802.3z。1999年6月,正式通过了IEEE802.3ab标准(即1000Base-T),至此可以将平常使用的双绞线用于千兆以太网中。

图2.1给出了IEEE802.3z中千兆位技术层次模型和OSI7层模型之间的相互关系。

6 基于FPGA的千兆以太网设计

图2.1 802.3z10/100/1000MbpsDTE层次模型

IEEE802.3z标准任务组的首要目标之一就是保持与现在的10Mbps和100Mbps标准的兼容性。从图2.1可以看出,在结构上百/千兆以太网的差别并不大,仅从百兆以太网的4位并行MII接口变为8位并行的GMII接口;二者的自动协商接口有所不同,百兆以太网中的协商功能位于PMD子层之下,而千兆以太网则融合在PCS子层之中;与十兆以太网相比,百/千兆以太网都使用并行的介质无关接口取代十兆以太网的串行AUI接口

[7]

。另外,千兆以太网物理介质接入子层PMA的上下界面分别为10比特

的并行和串行接口,因此PMA需完成串/并接口间的转换。

根据千兆以太网标准的定义,千兆以太网可以支持多种连接媒体和大范围的连接距离。按照传输介质的不同,千兆以太网可分为以下4种: 1. 1000BASE-LX:基于1300nm的单模光纤标准,使用8B/10B编解码方式,最大传输距离为5000米。

2. 1000BASE-SX:基于780nm的多模光纤标准,使用8B/10B编解码方式,最大传输距离为300米到500米。

3. 1000BASE-CX:基于铜缆的标准,使用8B/10B编解码方式,最大传输距离为25米。

4. 1000BASE-T:使用非屏蔽双绞线,使用1000BASE-T铜物理层Copper PHY编码解码方式,最大传输距离为100米。

12 基于FPGA的千兆以太网设计

图2.5 GMII接口连接图

在GMII接口中,它是用8根数据线来传送数据的,发送参考时钟GTX_CLK和接收参考时钟RX_CLK的频率均为125MHz(1000Mbps/8=125MHz)。GMII接口主要包括四个部分:一是从MAC层到物理层的发送数据接口,二是从物理层到MAC层的接收数据接口,三是从物理层到MAC层的状态指示信号,四是MAC层和物理层之间传送控制和状态信息的MDIO接口。GMII的接口信号在表2.1中列举出。

表2.1GMII接口信号定义

信号名称 方向(相对于描述 控制器) 发送器 GTX_CLK Output 吉比特 TX 信号的时钟信号(125 MHz) TXD[0:7] TX_ER Output Output 被发送数据 GTX_CLK 同步于 发送器错误GTX_CLK (用于破坏一个数据包) TX_EN Output 发送器使能GTX_CLK

第二章 千兆以太网理论基础 13

信号 接收器 RX_CLK Input 接收时钟信 号(从收到的数据中提 取,因此与 GTX_CLK 无关联) RXD[0:7] RX_ER Input Input 接收数据 RX_CLK 接收数据出RX_CLK 错指示 RX_DV Input 接收数据有RX_CLK 效指示 网络状态 COL Input 冲突检测(仅异步 用于半双工状态) CRS Input 信道激活的异步 指示,侦听到接收信号或传送信号(仅用于半双工状态) 管理配置 MDC Output 配置接口时 钟 MDIO 注:

I/O 配置接口 I/O MDC (1)时钟信号GTX_CLK对于MAC来说,此时是Output信号;而对于PHY来说,此时是Input信号。

(2)在千兆速率下,GMII向PHY提供GTX_CLK信号,TXD、TXEN、

14 基于FPGA的千兆以太网设计

TXER信14千兆网络通信系统的FPGA设计实现号与此时钟信号同步。PHY端在信号的上升沿采样,GTX_CLK由MAC驱动。GTX_CLK的时钟频率是数据传输速率的12.5倍,即125MHz。否则,在10/100Mbps速率下,PHY提供TX_CLK时钟信号,其它信号与此信号同步,其工作频率为25MHz(100Mbps网络)或2.5MHz(10Mbps网络)。

(3)同样的,RX_CLK与TX_CLK一样具有相同的要求,所不同的为它是RX_DV,RXD和RX_ER(信号方向是从PHY到RS)的参考时钟,MAC端在时钟的上升沿采样。RX_CLK是由PHY驱动,而PHY可能从接收到的数据中提取时钟RX_CLK,也有可能由一个名义上的参考时钟(TX_CLK)来驱动RX_CLK。

(4)管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个寄存器地址16位。其中前16个已经在“IEEE802.3-2000,22.2.4Management Functions”中规定了用途,其余的则根据各器件自己指定。

2.3.2GMII接口时序特性

在GMII接口中,TX通道参考时钟是GTX_CLK,RX通道参考时钟是RX_CLK,IEEE802.3-2005定义了它们之间的关系,如图2.6中所示。

图2.6 GMII接口信号时序要求

由图2.6可知,标准只定义了TX通道中接收端的Setup时间和Hold时间,即只对TX通道上PHY这一侧的接收特性作了定义,而对TX通道MAC那一侧的发送特性并没有定义。对于器件制造商而言,可对TX通道

第二章 千兆以太网理论基础 15

一侧的MAC的发送特性作适当调整,只要最终的时序满足TX通道上PHY这一侧的接收特性就可以[12]。对RX通道也是同样的道理,器件制造商可对RX通道那一侧的PHY的发送特性作适当调整,只要最终的时序满足RX通道上MAC这一侧的接收特性就可以。

GMII接口的发送时序如图2.7所示,接收时序如图2.8所示。

图2.7GMII信号发送时序

图2.8GMII信号接收时序

2.3.3GMII的管理MDIO接口

GMII的管理MDIO接口,在硬件设计上同MII的管理MDIO接口是一样的。MDIO接口包括两根信号线:MDC和MDIO,通过它,MAC层或其它控制芯片可以访问物理层芯片的寄存器,并通过这些寄存器来对物理层芯片进行控制和管理。

MDIO管理接口的两根信号信解释如下:

MDC:管理接口的时钟,它是一个非周期信号,信号的最小周期(实际是正电平时间和负电平时间之和)为400ns,最小正电平时间和负电平时间为160ns,最大的正负电平时间无限制。它与TX_CLK和RX_CLK无任何关系。

16 基于FPGA的千兆以太网设计

MDIO:是一根双向的数据线,用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。 MDIO管理接口的数据帧结构顺序如表2.2:

表2.2MDIO管理接口的数据帧结构

PRE READ WRITE

其中,各个数据域的含义如下:

PRE:帧前缀域,为32个连续“1”比特,这个帧前缀域并不是必要的,某些物理层芯片的MDIO操作就没有这个域。

ST:帧开始标志,出现“01”比特表示帧结构开始。

OP:帧操作码,比特“10”表示此帧为一读操作帧,比特“01”表示此帧为一写操作帧。

PHYAD:物理层芯片的地址,5个比特,每个芯片都把自己的地址与这5个比特进行比较,若匹配则响应后面的操作,若不匹配,则忽略掉后面的操作。

REGAD:用来选择物理层芯片的32个寄存器中的某个寄存器的地址。 TA:状态转换域,若为读操作,则第一比特时MDIO为高阻态,第二比特时由物理层芯片使MDIO置“0”。若为写操作,则MDIO仍由MAC层芯片控制,其连续输出“10”两个比特。

DATA:帧的寄存器的数据域,16比特,若为读操作,则为物理层送到MAC层的数据,若为写操作,则为MAC层送到物理层的数据。 IDLE:帧结束后的空闲状态,此时MDIO无源驱动,处于高阻状态,但一般用上拉电阻使其处在高电平,即MDIO引脚需要上拉电阻。

SOManagement Frame Fields PHYAD REGATD A DDDDDDDDDDDDDDDD DDDDDDDDDDDDDDDD Z DATA IDLE Z T P 1…01 1 10 AAAAA 01 AAAAA RRRRZR 0 1…01 1 RRRR1R 0

本文来源:https://www.bwwdw.com/article/rgg6.html

Top