




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的以太网设计方案第一章 绪论1.1研究背景及意义当今,随着互联网技术的迅速发展,采用以太网实现数据采集和控制方面的应用,成为了电子系统设计的热点。以太网具有价格低廉、稳定可靠、传输速度快、传输距离远等特点,以太网技术发展成熟,具有很高的性价比。采用以太网技术的设备,可以通过协议进行数据的传输,不需要进行传输协议转换,使用和维护设备简单。随着技术的发展和各类应用的需求,出现了各种以太网的标准,包括标准以太网(10Mbit/s)、百兆以太网(100Mbit/s)、千兆以太网(1000Mbit/s)和10G(10Gbit/s)以太网1。不同类型的以太网有其各自需要遵循的标准,同时其所用的传输介质以及数据吞吐量也各不相同。千兆以太网技术作为新一代的高速以太网技术,它可以提供1Gbps的通信带宽,采用和传统10M、100M以太网同样的CSMA/CD协议、帧格式和帧长、全/半双工工作方式、流控模式以及布线系统,给用户带来了提高核心网络的有效解决方案,这种解决方案的最大优点是继承了传统以太网技术价格便宜的特点。同时随着电子技术的发展,系统设备正向小型化、集成化、网络化发展。FPGA(Field Programmable GateArray,现场可编程门阵列)以其高密度、大容量、低成本和微功耗等特点,被广泛的应用于各种电子系统的设计和开发中,面向各种技术的应用也越来越广泛2。在其内部加入处理器系统,不仅能够实现一般的逻辑功能设计,同时能够实现一般单片机功能,通过内部逻辑功能连接可以使整体获得优异的性能,并大大减少设计工作。目前,在FPGA中嵌入了许多专用功能的IP Core,还增加了许多硬件核,如存储器、时钟管理和算法功能核,甚至包括了DSP核和嵌入式处理器核等,即能在FPGA中进行DSP和嵌入式处理等关键领域的开发,使得FPGA可实现的功能越来越强。比如世界第一大FPGA生产厂商Xilinx公司推出的最新器件Zynq-7000系列甚至将业界标准ARM双核Cortex-A9 MP Core处理系统嵌入到了可编程芯片中,不但能够实现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核合作伙伴之一的IXXAT提供工业以太网开发套件,但费用是相当高的,近乎上百万美元。因此,自行开发出合理的协议堆栈、MAC、TCP/IP协议堆栈以及接口应用将具有很重大的意义和经济价值。综上所述,目前国内外实现的千兆以太网主要以单芯片或单系统环境,趋向于以底层链路层以下的协议为基本设计起点完成千兆以太网的数据传输功能,且很多研究与应用都是面向专用的场合,并不适合普通用户的开发。面对FPGA的快速发展,在基于片内处理器的千兆以太网高速数据传输还很少,且使用处理器实现网络传输的TCP/IP协议正好与目前大量使用的以太网网络能快速兼容地结合,可以很容易用于商业产品的生成。因此,本课题的研究,对于千兆以太网在嵌入式高速数据网络通信技术的实际应用,以及进一步在其他嵌入式系统中的应用,都具有很好的应用前景和潜在的经济价值。1.3论文内容和论文组织结构安排本文在章节上一共分为五章,论文的组织结构安排如下:第一章为绪论部分,主要介绍了FPGA中接入千兆以太网技术的研究背景以及目前国内外的研究现状,以及本论文的研究内容和论文安排。第二章主要阐述了以太网基础理论的研究第三章主要阐述以太网数据传输硬件部分设计与实现。第四章主要阐述以太网数据传输软件部分设计与实现。第五章主要阐述了本文的总结和研究展望,对本文进行总结,并在设计方法和性能提升上提出一些改进的方法。53第二章 千兆以太网理论基础19第二章 千兆以太网理论基础本章首先介绍了以太网的发展历程和千兆以太网的标准内容,按照标准的分层原理介绍了其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层模型之间的相互关系。图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米。2.2介质访问控制(MAC)2.2.1半双工MAC传统以太网总是使用半双工MAC。半双工系统双向通信的效率受到半双工信道上通信方向快速变化的影响。在以太网环境中,每个站可以迅速判断是否可以发送帧,即半双工LAN利用了每个站的分布处理能力。然而,将以太网MAC算法扩展到支持千兆速率会阻碍半双工模式下的有效操作。当仲裁时间(最坏情况下等于往返延时)达到或超过一个典型帧的传送时间时,算法的效率就有问题了。MAC算法的目的是为了使站能够确定谁能在一个共享物理信道上传送数据8。以太网使用了一个分布式算法称为载波侦听、带冲突检测的多路访问(CSMA/CD:Carrier Sense,Multiple Access/Collision Detect)。图2.2显示了该算法的一个简化流程图。图2.2以太网MAC流程(传统半双工操作)半双工模式下的帧传送:在发送数据前,它首先要监听物理信道是否处于忙状态,只有侦听到信道上没有其他的站在使用时,才会发送帧。每次传送结束后,站必须等待一段时间(一个帧间隙,Interframe Gap),使物理信道有一段稳定时间后,站才开始其传送。如果同时有多个站的队列中有待发帧,在经过载波侦听和帧间隙后,每个站都试图发送,结果就会产生冲突。当发生冲突时,所有相关的站都继续发送一段时间以保证让所有的站都能发现冲突,这个过程叫堵塞。堵塞后,每个站需要等待一个随机时间,这个过程叫后退。后退以后,站从头开始处理并尝试重新发送帧。但是,在千兆以太网中会碰到一个问题。在10Mbps和100Mbps以太网系统中,最小帧长度被设置成等于网络最大往返传播延时,即最小帧长和时隙是相同的值:512比特(64字节),不包括前导码和物理层负载9。由于512比特时间是51.2s,根据10Mbps以太网使用的电缆类型,其布线长度可以达到2到3km这一量级。如果保持512比特最小帧长而不做其他算法改变的话,将速率从10Mbps提高到100Mbps再到1000Mbps,为了使CSMA/CD正常工作,网络的覆盖范围将下降到200m(100Mbps)和20m(1000Mbps)的量级。这仅仅能在一个配线间内互连设备,对于实际应用的这种网络尺寸是不切实际的。由于升级到千兆网络以太网需要支持可实用的网络规模,同时出于维持最小帧长向后兼容性的考虑,必须对MAC算法做出改进。在IEEE802.3z标准中引入了载波扩展和帧突发的概念用来解决这个问题,这个解决方案有如下三个基本内容:(1) 从软件接口(设备驱动)角度看,仍保持512比特最小的帧。在移植到千兆速率时,这可避免修改驱动程序设计和现有的协议栈。(2) 修改MAC算法,使用一个称为载波扩展的机制,从物理信道角度看帧已被人为扩展了,短帧看起来变长了。这使千兆以太网能继续支持相同的布线拓扑(从配线间起半径100m),而不增加帧数据部分的最小长度。(3) 为短帧传送方提供可供选择的性能增强功能,称为帧突发。使用这种技术在传送大量短帧时,因加入载波扩展引起的效率损失对网络的性能没有明显的下降。2.2.2全双工MAC全双工MAC操作意味着信道是专用的,这样前面讨论的关于半双工操作的所有复杂问题都不用考虑了。在全双工模式下,千兆以太网没有必要使用载波扩展,只有在使短帧传送能持续足够长的时间以便CSMA/CD算法能正确地仲裁信道时,载波扩展才是必需的。同样,全双工千兆以太网也没有必要使用帧突发,当站可在任意时间发送一个帧,也可在任意时间从物理信道接收帧。因为使用专用信道,站甚至可以根据自己的意愿进行发送和接收帧操作。但是,全双式MAC不会为收到的流量推迟发送,也不会检测冲突、阻塞、放弃、后退或重新调度发送。在全双工交换网络中,如果多个端口向一个输出端口进行发送,那么将发生缓冲区溢出,在这种情况下数据包将被丢弃,因此需要一种流量控制的策略来避免这种错误的发生。IEEE802.3z已经规定了一种用于点对点全双工链路的流量控制机制,称为基于Pause帧的流量控制10.(1)暂停(Pause)控制帧在传统以太网系统中,802.3的MAC协议只定义了数据帧,没有控制帧,数据帧的绝大部分内容都被MAC子层交给上一层处理。802.3x定义了一种控制帧暂停(Pause)帧用于全双工工作方式的一对站点、中间设备之间或工作站与中间设备之间交换流控数据,Pause帧的格式如图2.3所示。图2.3Pause帧格式及各字段定义(2)使用Pause帧进行流量控制的流程图2.4 Pause帧流量控制:事件序列使用Pause帧进行流量控制,是基于一种事件序列的方式来完成的。当某个被拥塞实体向发送源发出一个Pause帧时,发送源在停止发送新的帧之前要经过一段时间,这段等待时间由图2.4中所示的几部分构成。从图中可以看出,如果端站点在收到Pause帧时正好开始发送一个最大长度帧,将产生最大等待时间。(3)流量控制策略虽然IEEE802.3x定义了用于点到点流量控制的机制,但是何时或在什么情况下启动流量控制以及使用多长时间,却完全取决了供应商或用户。根据实现的复杂度可以使用多种不同的策略。在交换设备中使用的流量控制策略主要有3种:基于缓存空间的流量控制;基于发送权的流量控制;基于速率的流量控制。其中,基于速率的流量控制有很多优点,这也是平常网卡设置流量控制时使用的一种策略,下面简要说明下它的原理。当使用基于速率的流量控制策略时,端站点可以通过调整帧间间隔(IFG)来以较快或较慢的速度发送帧。当不存在拥塞时,交换机可以通知站点以最小的IFG,即以最大速率发送帧。当交换机检测到拥塞时,它将发送一个带有新的IFG的流量控制帧,接着端站点就将以修改后的IFG发送帧。不同速率的IFG应预先定义好,取决于复杂度,可以定义好几个级别的拥塞,用来满足不同情况下的流量控制。2.3介质无关接口(MII)以太网的每个数据率上都有多种介质类型。为支持同轴电缆、双绞线和光纤,每种以太网系统在控制器设备(如网络接口控制器或NIC)和物理层连接设备(如收发器)之间加入了(至少在逻辑上)一个标准接口11。这可使控制器制造商能独立地制造他们的设备,同时保持了灵活性,可让终端用户选择其喜欢的介质。这个接口点正是介质无关接口,三种以太网数据率的每一个都定义了一个这种接口。十兆以太网向百兆以太网过渡时,引入了4位的介质无关接口MII,取代了AUI的串行接口。从百兆向千兆以太网过渡时引入了一个新的千兆位介质无关接口(GMII),它是快速以太网MII的逻辑扩展,保留了部分MII接口信号。两种设计的主要差别在于接口宽度(字节宽与半字节宽)以及时钟频率(125MHz与25MHz)。GMII中的数据通路宽度被设计为8位而不是半位元组宽度。每个时钟周期内数据以1ocset/sec的速率通过GMII,因此为了获得1000Mbps的数据速率,发送和接收时钟必须工作在125MHz。由于GMII接口也可以工作在10Mbps和100Mbps,所以相应的时钟分别为2.5MHz和25MHz,但是并不需要支持所有三种数据速度,PHY必须通过站点管理实体来声明自己所支持的速率。当然,以10Mbps和100Mbps速度工作的GMII等同于MII。2.3.1GMII接口信号定义GMII接口的数据结构符合IEEE以太网标准,其接口定义见IEEE802.3-2000。GMII接口可分为MAC模式和PHY模式,一般说来MAC和PHY对接,但是MAC和MAC也是可以对接的,图2.5为MAC与PHY的接口连接图。 图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_CLKOutput吉比特 TX 信号的时钟信号(125MHz)TXD0:7Output被发送数据GTX_CLKTX_EROutput发送器错误(用于破坏一个数据包)GTX_CLKTX_ENOutput发送器使能信号GTX_CLK接收器RX_CLKInput接收时钟信号(从收到的数据中提取,因此与 GTX_CLK 无关联)RXD0:7Input接收数据RX_CLKRX_ERInput接收数据出错指示RX_CLKRX_DVInput接收数据有效指示RX_CLK网络状态COLInput冲突检测(仅用于半双工状态)异步CRSInput信道激活的指示,侦听到接收信号或传送信号(仅用于半双工状态)异步管理配置MDCOutput配置接口时钟MDIOI/O配置接口 I/OMDC注:(1)时钟信号GTX_CLK对于MAC来说,此时是Output信号;而对于PHY来说,此时是Input信号。(2)在千兆速率下,GMII向PHY提供GTX_CLK信号,TXD、TXEN、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通道一侧的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无任何关系。MDIO:是一根双向的数据线,用来传送MAC层的控制信息和物理层的状态信息。MDIO数据与MDC时钟同步,在MDC上升沿有效。MDIO管理接口的数据帧结构顺序如表2.2: 表2.2MDIO管理接口的数据帧结构Management Frame FieldsPRESTOPPHYADREGADTADATAIDLEREAD110110AAAAARRRRRZ0DDDDDDDDDDDDDDDDZWRITE110101AAAAARRRRR10DDDDDDDDDDDDDDDDZ其中,各个数据域的含义如下: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引脚需要上拉电阻。MDIO数据帧的时序关系如图2.9和图2.10所示:图2.9MDIO写操作时序图图2.10MDIO读操作时序图当MDIO写操作时,OP值为“01”,映射的地址(PHYAD)将MDIO的16bit数据写入到REGAD指定的寄存器里;当MDIO读操作时,OP值为“10”,映射的地址(PHYAD)从REGAD指定的寄存器里读出MDIO接口的16bit数据。2.4物理层技术物理层提供了将数据链路层给出的数据字节转换成可在物理介质上传输的合适信号的字段,同样它也负责将从物理介质上接收到的信号转换成可向数据链路层传递的数据字节。千兆位以太网的物理层技术很大一部分是摘自光纤通道标准,在千兆位以太网中采用了最低两层的光纤通道技术、FC-0(接口与介质)和FC-1(编码/译码)。由于光纤通道技术已经应用了多年,所以IEEE 802.3z标准委员会为了大大减少千兆位以太网标准的开发时间和风险,而决定采用这种技术。千兆位以太网的物理层由三个子层构成:物理编码子层(PCS):用于提供与所用物理介质无关的数据编码和译码功能。但是在千兆位以太网中,光纤介质和短双绞线所采用的编码模式(光纤通道8B/10B 编码)与UTP铜介质是不同的。物理介质接入子层(PMA):完成符号的串行化和解串(SERDES)。由10位符号一组组成的编码数据流在进行发送前要被串行化,另外接收到的数据流也应被解串行化,并以10位符号一组的形式传递给PCS子层。物理介质相关子层(PMD):负责将来自于PMA子层的信号转换成适合特定介质类型的信号。如果介质是光纤,那么电信号将被转换成光信号,在接收方则是相反的过程。介质相关接口(MDI)定义了PMD层和介质之间的连接器。2.5TCP/IP协议栈LwIP(Light weight IP)是瑞士计算机科学院(SCICS)的AdamDunkels等开发的一套用于嵌入式系统的开放源码的轻型 TCP/IP协议栈13。LwIP的移植主要是针对系统采用的微处理器、编译器、操作系统和网络控制器做相关的修改工作,其运行既可以依赖于特定操作系统,也可以不需要操作系统独立运行。LwIP,TCP/IP实现的重点是在保持TCP协议主要功能的基础上减少对 RAM和ROM的占用,一般它只需要几十KB的RAM和50KB左右的ROM就可以运行,使得LwIP协议栈很适合在嵌入式系统中使用。LwIP的特性主要包括如下几方面:(1) 支持多网络接口下的IP转发;(2) 支持ICMP协议(Internet控制报文协议);(3) 包括实验性扩展的的UDP(用户数据报协议);(4) 包括阻塞控制,RTT估算,以及快速恢复和转发的TCP(传输控制协议);(5) 提供专门的内部回调接口(Raw API)用于提高应用程序性能;(6) 可选择的Berkeley接串口API(多线程情况下);(7) 在最新的版本中支持PPP(点对点协议);(8) 新版本中增加了的IP Fragment的支持;(9) 支持DHCP协议,动态分配IP地址(动态主机设置协议)。LwIP是目前使用最广泛的轻型TCP/IP免费协议栈,实现了较为完备的IP、ICMP、TCP、UDP、DHCP协议,具有超时时间估计、快速恢复和重发、窗口调整等功能。LwIP提供了两种操作网络执行的API方式:RawAPI和SocketAPI。Socket API即常见的标准Berkeley Socket模式,有规范统一的上层函数接口,移植性好,便于理解和使用;而RawAPI可理解为原始套接字方式,它与SocketAPI相比有更卓越的性能以及更低的内存占用,Socket API实际上也是基于Raw API来实现的。因此,如果希望简化开发,就选用Socket API,而如果为了实现最好的网络性能,则应选用RawAPI。在LwIP实现中,一个TCP连接是由协议控制块(Protocol Control Block,PCB)来识别的,但具体实现上也是与普通的协议栈类似,一种基本的TCP协议的数据传输处理过程可简单分为4个步骤:LwIP协议栈初始化;TCP三次连接建立;数据发送与接收;关闭当前TCP连接。类似的,在LwIP中基本的UDP协议的数据传输流程也和TCP一样,只是不需要独立的连接创建和关闭的过程。第三章 以太网数据传输硬件设计实现31第三章 以太网数据传输硬件设计实现3.1系统方案设计3.1.1设计思想本文研究的是基于FPGA的以太网的MAC层数据处理,目的是能广泛应用于多种嵌入式网络设备的前端设计,如网络视频监控设备、IP数字电视设备、家庭智能设备等。根据FPGA的可重复擦写编程的特点,采用FPGA可以方便对设备的升级和维护。本文为了设计能满足于各种不同的以太网网络环境,和增强系统的可移植性,采取了一系列的措施。首先,考虑到以太网高速而又庞大的数据量,尤其是载有音视频流的1000M网络,以及开发的成本问题,我们引入了一种针对普通产品开发的Xilinx芯片Spartan系列。FPGA具有并行执行的特点,相对于其他器件在数据处理上具有明显的速度上的优势,同时Spartan系列FPGA拥有几百Kb甚至几千Kb的块RAM资源,可用于数据的缓存,完全可以满足于1000M以太网数据量的要求14。在FPGA的系统设计开发中,常常会采用某些具有特定功能的IP核以提高系统开发的效率,减少成本。考虑到开发周期和设计要求,本系统设计方案采用Xilinx公司的Tri Mode Ethernet MAC IP核实现对MAC数据的主要处理工作,该IP核支持多种工作模式,同时用户可以根据要求实现自定义配置。其次,为了实现网络的IP地址和MAC地址的自动映射,本系统还增加了对ARP数据包的解析和ARP应答功能的设计。除此之外,为了提高系统的通用性,物理芯片需能够支持1000/100/10M以太网、双工/半双工工作模式以及1000M光纤的接入。3.1.2系统功能根据以述的设计思想,为了满足大部分设备对以太网的MAC数据处理的需求,确定了本系统设计的功能如下:(1)支持10M/100M/1000M以太网;(2)支持双工/半双工;(3)CRC校验和帧长度校验;(4)MAC地址滤波;(5)支持ARP解析;(6)支持RJ45标准网口和SFP插口的输入;(7)支持I2C接口用户配置。3.1.3系统总体结构设计根据上述技术指标及设计思想,图3-1给出了本系统的总体结构框图。本系统可分为五大模块:以太网数据转换电路、PHY接口模块、MAC核心处理模块、用户配置模块和用户数据接口模块。图3-1系统总体结构框图(1)以太网数据交换电路以太网数据交换电路,主要功能是实现双绞线或光纤电缆的以太网物理层数据与MAC层数据的转换,为FPGA提供处理的MAC数据源和送出FPGA的上传MAC数据,是传输介质和FPGA数据交流的桥梁。(2)PHY接口模块PHY接口模块,可分为接收PHY和发送PHY接口两个子模块,实现接收数据和发送数据的同步。(3)MAC核心处理模块根据以上设计思想,MAC数据的核心处理模块直接采用Xilinx的Tri Mode Ethernet MAC IP核,可以完成MAC地址滤波、数据CRC和长度校验、封装MAC数据帧格式等基本功能,对接受的数据进行相应的好坏标记和对上传的数据进行封装标记。(4)用户配置模块用户配置模块主要是实现主控系统正确地完成对IP核寄存器和系统地址信息(IP地址和MAC地址)的配置,同时实时地监控IP核的工作状态。该模块可分为I2C接口和IP核配置两个子模块,I2C接口子模块采用400Kb/s的I2C总线协议,模拟从设备I2C时序;IP核配置子模块模拟IP核HOST配置时序,以实现对IP核寄存器的配置。(5)用户数据接口模块用户数据接口模块涉及对通过IP核处理后的接收数据帧和待上传的数据包两部分数据的处理以及ARP功能的实现,可分为接收数据用户接口、上传数据用户接口、ARP解析与应答三个子模块。3.2芯片的选取3.2.1物理层芯片选择以太网物理层的处理工作大多数直接采用专业的物理层芯片来完成,完成数据的物理层编解码和收发功能15。目前,物理层芯片的生产商以国外为主,如Marvell、NS、Broadcom公司等,其主流产品为100/10M和1000M物理层芯片,随着以太网的速率的提高,万兆物理层芯片也被广泛应用于光纤以太网。国内对芯片的研发起步比较晚,华为、中兴、天津中晶微电子等企业近些年也推出了不少的产品,但是技术还有待发展。88E1111芯片是Marvell公司Alaska系列的一款千兆以太网收发器,主要应用于10Base-T、100Base-TX、1000Base-T的以太网,采用CMOS工艺,能实现基于CAT5非屏蔽双绞线标准的以太网物理层数据的收发。88E1111支持多种MAC接口模式,有GMII/MII、RGMII、SGMII、TBI和RTBI,是一款应用广泛的以太网物理层芯片。88E1111芯片采用了Marvell公司的VCT(Virtual Cable Tester,虚拟电缆测试仪)功能,可以使用时域反射技术远程测试电缆故障,减少了设备应答和服务请求的次数,同时还能通过VCT检测线缆潜在的问题和线缆的开路、短路或阻抗不匹配问题,准确度能达到一米。另外,88E1111芯片具有先进的混合信号处理能力,可以以1Gbps的速率完成自适应均衡、消除反射或串扰、数据恢复、误码纠正等功能,是一款抗噪声能力强的低功耗以太网物理层芯片。88E1111芯片中嵌入了一个可选的1.25GHzSERDES(并串转换/串并转换器),可以直接与光纤收发器连接,实现1000Base-X光纤标准与1000Base-T双绞线标准传输媒体的转换。通过选择,88E1111可以通过RJ45接口接入1000Base-T双绞线网络或SFP(小型可插拔)模块接入光纤网络,分别如图3-2和3-3所示。图3-2 88E1111接入双绞线网络图3-3 88E1111接入光纤网络除了以上所述,88E1111芯片还支持光纤与铜线自动检测、网络连接的自动协商、可编程的LED驱动等功能,方便了用户对以太网接入的开发。根据本文系统设计的功能的要求,以太网物理层芯片需满足同时支持RJ45和SFP两种接口,10Base-T、100Base-TX、1000Base-T标准双绞线和千兆光纤介质的传输,半双工和双工切换的工作模式。Marvell公司的以太网物理层芯片88E1111,采用0.13m的CMOS工艺,是一款低成本、低功耗的千兆以太网物理层芯片,足以满足系统设计的要求3.2.2FPGA主芯片选择在FPGA的开发设计中,FPGA芯片的选取非常重要,不合理的选取会导致一系列的后续设计问题,甚至会失败;合理的选取不仅避免设计问题,而且可以提高系统的性价比,延长产品的生命周期。通常,FPGA芯片选取需从芯片的供货商和开发工具的支持、电气接口标准、硬件资源、速度等级、温度等级、封装形式、价格七个方面入手16。(1)供货商和开发工具的支持目前,主要的FPGA供应商有Xilinx公司、Altera公司、Lattice公司和Actel公司等,FPGA的发展迅速,器件的淘汰率随之提高,为了延长产品的生命周期,最好选择货源比较足的主流器件。从开发工具来看,Xilinx公司的ISE和Altera公司的Quartus,更新及时、功能强大、界面友好,支持本公司所有器件的设计开发和很多第三方软件的应用,如Synplify Pro、ModleSim等,能将器件的性能发挥到最佳。因此,一般在没有特殊要求情况下,器件从这两家公司中选取。虽然Altera公司的开发智能程度相对Xilinx公司要高一些,但Xilinx公司具有更强的硬件功能,通过IP核的使用可以达到更高的效率。目前,Xllinx公司的主流器件有Spartan-3、Spartan-3A/3ADSP/3AN、Virtex-4LX、Virtex-4SX、Virtex-4FX、Virtex-5LX、Virtex-5SX、Virtex-5FX、Spartan-6和Virtex-6等系列,其中Spartan-3系列主要应用于逻辑设计;Spartan-3A/3ADSP/3AN主要应用于简单数字信号处理,Virtex-4LX和Virtex-5LX系列主要应用于高速逻辑设计,Virtex-4SX和Virtex-5SX系列主要应用于高速复杂数字信号处理,Virtex-4FX和Virtex-5FX系列主要应用于嵌入式系统。本设计只需要对MAC数据帧做简单的逻辑处理和缓存等等,Spartan-3系列器件足以满足这一需求。(2)芯片的电气接口标准目前,数字电路的电气接口标准非常多,在某些大型的系统设计中常常需要同时支持多种电气接口标准。本设计中的FPGA的接口电气标准只采用了LVCMOS2.5V和LVCMOS3.3V,Xilinx公司的绝大部分器件均能够满足。(3)硬件资源硬件资源是FPGA芯片选取的重要指标,包括逻辑资源、I/O资源、布线资源、存储器资源和某些底层内嵌功能单元和内嵌专用硬核等。在FPGA设计中,I/O资源和逻辑资源的需求是最需要重点考虑的问题。逻辑资源一般要求消耗的资源不超过70%,主流FPGA器件中,逻辑资源都比较丰富,比较容易选择。I/O资源需要注意的是避免过度的消耗,因为过度的消耗可能会导致FPGA负荷过重,器件发热量过大,以影响器件的速度性能、工作稳定性和寿命,设计中也要充分考虑器件的散热问题。另外,局部布线资源也要充足,以免影响电路的运行速度。在一些特殊场合,特别是数据量比较大的情况下,还得考虑存储器资源,如BRAM或LUT资源。还有锁相环、DSP等底层内嵌功能单元或内嵌专用硬核可以根据具体的设计作为参考需求。(4)速度等级对于芯片速度等级的选取,有一个基本原则:在满足应用需求的情况下,尽量选择速度等级低的芯片。因为速度等级高的芯片更容易产生信号反射,增加价格成本,延长开发周期。本设计的主时钟最高位125M,XC3S400芯片具有-4和-5两个速度等级,-4等级的最高可以达到250M,为节约成本,选取的芯片采用-4等级。3.3硬件电路设计3.3.1以太网变换电路设计以太网数据变换电路,实现的是以太网传输媒介上的物理层数据与MAC层数据的转换,为FPGA提供待处理的MAC数据源和输出待上传的MAC数据,本设计主要是选择物理层专业芯片88E1111完成这一功能,其电路设计包括以下几个方面:(1)电源与时钟电路设计88E1111芯片支持两种电平:2.5V和 1.0V,有时也可用1.2V代替1.0V。如图3-4所示为芯片的电源电路图,PHY_VDDIO采用 2.5V,为芯片I/O引脚供电,与芯片引脚VDDO、VDDOH、VDDOX相连;PHY1_AVDD提供内部模拟逻辑电平,为2.5V,与AVDD引脚相连;PHY1_DVDD提供内部数字逻辑电平图3-488E1111芯片电源电路为1.0V,与DVDD引脚相连。为了提高电源的稳定性,电源PHY_VDDIO、PHY1_AVDD、PHY1_DVDD需接入一些滤波电容,以减少电源噪声。88E1111芯片对数据的处理需要有一个参考时钟,一般通过XAT1引脚输入25M或125M的参考时钟,或通过XAT1和XAT2直接接一个晶振。本设计采用XAT1引脚输入25M的时钟,以减少晶振的使用数量,如图3-5所示,CLK_25M_PHY1与XAT1引脚相连,提供25M的时钟;为了保证电路的可调性,同时在XAT1和XAT2的两端添加一个晶振,作为参考时钟的备用方案。图3-588E1111芯片时钟电路(2)配置电路设计在88E1111的芯片设计中,器件物理地址、PHY操作模式、自动协商模式、MDI(Media Dependent Interface,媒介相关接口)交叉功能、PHY接口模式等的配置需通过芯片CONFIG0CONFIG6引脚硬件配置来实现,CONFIG0CONFIG6引脚配置位映射关系表和各配置寄存器的定义描述分别如表3-3和表3-4所示。在硬件电路设计中,CONFIG0CONFIG6配置位的选择通常是通过与LED输出引脚、VDDO或者VSS引脚的连接来完成的,其各引脚与配置位的映射关系如表3-5所示。为了方便开发设计,本设计将芯片地址设置为00000,屏蔽PAUSE帧,同时使能MDI交叉连接、光纤与铜线接入自动识别、能量检测功能,其自动协商支持所有网路模式;125MHz的数据发送的参考时钟由FPGA提供,125MHz时表3-3CONFIG0CONFIG6引脚配置位映射关系表引脚Bit2Bit1Bit0CONFIG0PHYADR2PHYADR1PHYADR0CONFIG1ENA_PAUSEPHYADR4PHYADR3CONFIG2ANEG3ANEG2ANEG1CONFIG3ANEG0ENA_XCDIS_125CONFIG4HWCFG_MODE2HWCFG_MODE1HWCFG_MODE0CONFIG5DIS_FCDIS_SLEEPHWCFG_MODE3CONFIG6SEL_TWSIINT_POL75/60OHM表3-4各配置寄存器定义描述配置寄存器定义描述PHYADR4:0器件的物理地址,在MDC/MDIO配置模式下,表示器件五位的物理件地址;在I2C配置模式下,表示器件物理地址phyaddr4:0,phyaddr6:5固定为10。ENA_PAUSEPAUSE 帧使能信号,高有效;同时影响寄存器 4 的默认值ANEG3:0自动协商模式配置寄存器 ,10/100/1000Base-T模式下由ANEG3:0配置决定,而1000Base-X模式下由ANEG3:2配置决定,具体的配置映射关系可参考88E1111芯片手册。ENA_XC交叉连接使能信号,1时MDI交叉功能有效,反之则无效。DIS_125125MHz时钟使能信号,0使能。HWCFG_MODE3:0硬件配置模式,决定了PHY接口模式,常用的有:1000Base-X模式下RGMII为0011;1000Base-X模式下GMII 为0111;10/100/1000Base-T模式下RGMII为1011;10/100/1000Base-T模式下RGMII为1111;其他的模式配置可参考88E1111芯片手册DIS_FC光纤与铜线接入自动识别使能信号,0有效。DIS_SLEEP能量检测使能信号,0有效。SEL_TWSI寄存器配置模式选择,0表示采用MDC/MDIO配置模式,1表示采用I2C配置模式。INT_POL中断电平值,0表示高电平中断,1表示低电平中断。75/60 OHM终端电阻匹配选择信号,主要用于光纤接入模式下,0采用 50OHM,1采用75OHM。表3-5各引脚与配置位的映射关系引脚Bit2:0VDDO111LED_LINK10110LED_LINK100101LED_LINK1000100LED_DUPL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论