基于fpgafso以太网接口设计和实现

基于fpgafso以太网接口设计和实现

ID:32020528

大小:1.99 MB

页数:67页

时间:2019-01-30

上传者:U-22107
基于fpgafso以太网接口设计和实现_第1页
基于fpgafso以太网接口设计和实现_第2页
基于fpgafso以太网接口设计和实现_第3页
基于fpgafso以太网接口设计和实现_第4页
基于fpgafso以太网接口设计和实现_第5页
资源描述:

《基于fpgafso以太网接口设计和实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

ADissertationSubmittedinPartialFulfillmentoftheRequirementsfortheDegreeofMasterofEngineeringDesignandImplementationofEthernetInterfaceOverFSOBasedonFPGACandidate:YanGuoqiongMajor:PhysicalElectronicsSupervisor:AssociateProf.XuHaifengHuazhongUniversityofScience&TechnologyWuhan430074,P.R.China 独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密□,在年解密后适用本授权书。本论文属于不保密□。(请在以上方框内打“√”)学位论文作者签名:指导教师签名: 日期:年月日日期:年月日 摘要随着网络技术的发展,采用以太网技术构建的IP接入网越来越受到人们的重视。无线光以太网的开发具有更深远的意义,它使计算机通信网摆脱了电缆的束缚,真正“移动”起来;使建立、维护和升级通信网络变得更加简单;提高了通信网络接入的灵活性。有很强应用价值。本论文主要是把无线光通信技术和以太网技术结合起来,完成了无线光以太网设计中最核心的部分—以太网传输子系统。由于传统的以太网接入控制体系不能够满足迅速发展的接入网技术要求,于是本文提出按照新的IEEE802.3基于端口的接入控制标准设计出一种运用于网络前端的设备,来解决以太接入网在这方面的不足。在充分熟悉VerilogHDL电路设计与仿真工具的基础上,本文采用FPGA实现的方式,设计出了一种基于802.3的简单、廉价和有效的以太网接口来完成以太网接入控制。能够方便的安装于以太网交换机的前端,连接各个需要接入的用户,并将其有效的隔离。根据无线光以太网接口功能的需要,本文首先进行了以太网接口的方案设计,完成了系统的框图,划分了各模块的功能。分析了以太网MAC帧格式,完成了以太网接口的硬件设计,然后以自顶向下的方法完成了执行数据包收发功能的以太网端口设计。它包括:MAC帧接收发送的时序和控制状态机设计、MII接口设计。整个设计利用VerilogHDL语言进行了描述,最后通过QuartusII对Rx/TxMAC模块进行了功能仿真。结果表明,该电路模块能满足设计要求。关键词:无线光通信以太网接口循环冗余校验状态机I AbstractWiththedevelopmentofnetworks,EthernettechnologycomestoberegardedasthemajortechnologybeingusedinbroadbandIPaccessnetworks.ThedevelopmentofwirelessopticalEthernethasamorefar-reachingsignificance,itenablesthecomputercommunicationnetworkstogetridofelectriccable‟sfetter,atruly"mobile";toestablish,maintainandupgradecommunicationnetworksbecomesimpler;improvecommunicationnetworksaccessflexibility.Ithastheverystrongapplicationvalue.Thispapermainlyunifiedthewireless-communicationstechnologyandEthernettechnologies,completedthedesignofwirelessopticalEthernetinthecorepart—Ethernettransmissionsub-system.BecausethetraditionalaccessauthenticationsysteminEthernetdoesnotmatchtherequirementoftheaccessnetworkdevelopingatgreatspeed,thisdissertationfiguresoutthewaybasedonIEEE802.3standardPort-basedNetworkAccessControltodesignanewdeviceusedinthefrontofthenetwork.WhilefullyfamiliarwiththebasisofVerilogHDLcircuitdesignandsimulationtools,thetargetofthisdissertationistodesignaFPGA,whichisabletoimplementEthernetaccessauthenticationinasimple,cheapandefficientEthernetinterfacecircuitfollowedstandardof802.3.ThedevicecanbeinstalledinfrontofEthernetswitchconvenientlytoconnecttoalltheusers.Thesystemschemeofthepaperisintroducedinthebeginningofthisdissertation;includingdesignthefunctionalblockdiagramandthefunctionofsub-module.Then,describesdifferentMACframesstructures,andcompletesthehardwaredesignofEthernetinterface.Next,thentheEthernetportthatreceivesandtransmitsthedatapacketsisdesignedinthewayofTopDown.TimingandstatemachinesofRx/TxMACcontroller,andMIIinterfacearepresentedinthedissertation.Moreover,thekeymodulesaredescribedwithVerilogHDL.Finally,aQuartusIIiswrittentosimulateRx/Txmodule.Theresultsshowthattheelectriccircuitmoduletomeetthedesignrequirements.Keywords:FreeSpaceOpticalcommunication(FSO)EthernetInterfaceCyclicRedundancyCheck(CRC)StateMachineII 目录摘要..................................................................................................................IAbstract................................................................................................................II1绪论1.1无线光通信..............................................................................................(1)1.2无线以太网..............................................................................................(4)1.3现场可编程逻辑器件..............................................................................(6)1.4论文选题的意义与主要工作..................................................................(7)2系统方案设计2.1系统原理框图设计..................................................................................(9)2.2以太网技术简介....................................................................................(10)2.3MAC帧的接收与发送过程..................................................................(14)2.4EDA技术介绍.......................................................................................(15)2.5本章小结................................................................................................(19)3接口硬件平台设计3.1RTL8201接口电路................................................................................(20)3.2FPGA硬件设计与实现.........................................................................(23)3.3其他电路设计........................................................................................(28)3.4本章小结................................................................................................(30)III 4以太网接口模块的FPGA设计4.1以太网接口顶层设计............................................................................(31)4.2数据接收模块的设计............................................................................(32)4.3发送模块设计........................................................................................(40)4.4MAC帧存储模块设计..........................................................................(46)4.5状态模块的设计....................................................................................(47)4.6MII接口控制模块.................................................................................(48)4.7本章小结................................................................................................(49)5系统模块调试与测试结果5.1开发调试环境........................................................................................(50)5.2系统调试与测试结果............................................................................(51)5.3本章小结................................................................................................(55)6总结与展望6.1工作总结................................................................................................(56)6.2工作展望................................................................................................(57)致谢.............................................................................................................(58)参考文献.........................................................................................................(59)IV 1绪论1.1无线光通信本文中的无线光通信是指自由空间激光通信(FSO)。自从1960年激光的出现以来,许多学科的发展都得到极大地促进了,尤其在通讯领域的表现尤为突出。激光良好的单色性、方向性、相干性及高亮度性等特点正是光通信所需的理想光源,将激光用于通信的想法随之产生,从此掀开了现代光通信史上崭新的一页。经过近40年的努力,[1,2,3,4]各项基本技术有了很大的发展,在当今的信息传递中占有非常重要的地位。1.1.1无线光通信的优势与特点无线光通信是以激光为传输载体以大气为传输媒介的通信方式,与传统的通信方[5,6,7]式相比较,无线光通信主要的优点如下所述。(1)架设灵活便捷,FSO可以翻越山头,以及在江河湖海上进行通信,可以完成地对空、空对空等多种光纤通信无法完成的通信任务。因此FSO对于解决最后一公里的宽带接入,对于应用于企业和校园网络,以及作为光纤冗余链路、无线临时传输手段等,有着极大的应用价值。FSO可以在几小时内把宽带信道接到任何地方,而无需埋设光纤,因此大大缩短了施工周期,这对于通信运营商来说,是一种快速抢占市场的极好选择。(2)微米级的波束发散角和稳定的方向。波束发散角与波长成正比。激光通信的工作波长一般在微米量级或更小,而RF和微波通信的波长范围在数百米到亚厘米之间。因此,激光通信的光束发散角比RF和微波通信至少小3到4个数量级,大约在10微弧度左右。这在军事应用上具有非常重要的意义,因为捕捉这么窄的光束是非常困难的,从而大大提高了军事通信的保密性。(3)设备对电源量需求很低,只需几伏,采用本地供电,并且供电方式多种多样。(4)常轻小的天线尺寸和系统结构。天线尺寸与工作波长有关,波长越短,所需的天线尺寸就越小。由于激光通信的波长远小于RF和微波通信的波长,在同样功能和条件下,激光通信的天线尺寸远小于RF和微波通信的天线尺寸。因此,激光通信系统的1 重量和体积相对就显得非常轻小。这有利于激光通信在各种航天器上的应用,尤其是在小卫星上的应用。(5)高数据传输率。对激光脉冲进行调制解调后,激光通信可以提供高达10Gbps量级的数据传输率,远远高于目前RF及微波通信传输速度。(6)低发射功率。对于接收端而言,有效接收功率与波束发散角的平方成反比。由于激光通信的波束发散角远小于RF和微波通信。因此,在距离相同的情况下,较之RF和微波通信,激光通信可以用更小的发射功率获得更高的接收功率。(7)新的通信频带。由于激光通信的波长远小于RF和微波通信,因此其工作频率比目前拥挤的无线电通信频率高许多,为信息传输提供了新的通信频带。(8)适用任何通信协议。FSO产品作为一种物理层的传输设备,可以适应任何通信协议,如SONET、SONET/SHD、ATM(异步传输模式)、FD-DI(光纤分布式数据接口)、Ethernet(以太网)、FastEthernet(快速以太网)等,并可支持2.5Gbit/s的传输速率,用于传输数据、声音和影像等各种信息。(9)传输容量大。微波频率大致在数GHz到数十GHz量级,而激光的频率大致在数百GHz量级,比微波高3到5个数量级,因而可以得到高得多的数据传输速率。(10)经济性强。没有任何设计、勘察、工程和线路费等附加费用,较其它如卫星站、短波和光缆等手段每兆比特的传输费用更为经济。从上述的特点可以看出,激光通信在科学研究和军事领域有着极为重要的应用,而它在商业上的应用前景更为广泛,潜力也更为巨大。1.1.2无线光通信的应用无线光通信除具有不挤占频带,通信容量大,传输速率高等无线激光通信的优点外,还具有机动灵活、经济、架设快捷、使用方便,不影响市政建设等特点。随着大气通信技术的成熟,它的应用将会越来越广泛,根据其特点,它潜在的应用场合有很[8,9,10]多。(1)民用上可用于移动基站间的互连,单位内部的数据传输及小范围内局域网建设如校园网的组建,需严格保密的场合及要害部门,技术上或经济上不宜敷设光缆的地区如军工、国防部门、核电站、边远山区、江河两岸间和高山间等,以及用于灾区、2 事故地点的快速抢通等。FSO最大的成功来自于校园局域网连接市场。这种应用包括连接编辑室和广播站,或者作为一栋大型综合大楼两个高速传输节点之间的通信手段。有关专家指出,在未来的移动通信网建设中,无线光通信系统将用于最后一公里的接入。(2)军事上则可应用于战斗打响前无线电静默期间的短距离通信,或战斗打响后的保密通信,海岸与海岸之间、海岛之间,边防哨所之间,舰船之间,导弹发射现场与指挥中心之间的短距离通信等。无线光通信的缺点是受天气状况、地形条件、外来物的影响较大,难以实现全天候,超视距的通信,这是一直困扰大气工程师的问题,也是无线光通信无法推广使用的原因,一旦无线光通信技术能克服气候因素的影响,能实行全天候通信,无线光通信不失为一种非常好的通信手段。1.1.3无线光通信的国内外发展状况及前景虽然光纤技术正得到不断地推广使用,但随着高速本地环路网络互联需求不断的增长,实施光纤网络遭遇到的布线难与成本高的问题日益突出。FSO技术既能提供类似于光纤的速率,又不需在频谱这样的稀有资源方面有很大的初始投资,因此备受关注也是理所当然的。近年来,美国、日本、英国等国家相继推出了一些大气激光通信系统产品,比如美国Terra公司的一系列大气光通信产品,日本佳能的无线光通信系统等,1999年末朗讯公司在深圳首届高交会上首先发表了一个短距离激光无线多媒体通信系统样机(采用1550nm激光)。2000年悉尼奥运会期间,美国的Tearbeam与LacentTechnology合作,在水上中心与演播中心之间建立了8波道的无线数据通信链路,运行期间始终保持畅通,效果良好。2001年8月,Terabeam又成功地为MicrosoftCorporation年度员工大会提供了无线数据传输服务。据统计,即使在通信发达的美国,几乎90%的办公大楼与业务提供商之间也没有光纤连接,因为用光纤连接是非常昂贵的。根据AriFiber公司的分析,在美国,如采用FSO的网络结构配置,每大楼的成本约为2万美元,平均链路长度为55米,最长为200米,只需2—3天就能安装完毕。相反,如用光纤连接大楼,则每大楼需5—20万美元,通常需要4—12个月才能连通。因此,与光纤线路相比,FSO系统不仅安装方便、建设迅速,而且成本低,大约是光3 纤到大楼成的1/10—1/3。国内从事FSO技术研究和产品开发的单位主要有电子科技大学、哈尔滨工业大学、南京大学、广东工业大学、上海光机所、信息产业部第34研究所和我们华中科技大学等。2001年4月激光大气通信机在广西桂林研制成功。该通信机以半导体激光器为光源,用两套设备构成点对点无线通信系统,可传输多种速率的数据和图像,直线视距全天候通信距离达4千米。该激光大气通信机具有体积小、组网灵活、无电磁干扰、可靠性强等特点。2003年1月上海光机所信息光学实验室研制成功的无线激光通信系统。该系统具有双向高速传输和自动跟踪功能,兼有体积小重量轻的特点。到目前为止,FSO已被多家电信运营商应用于商业服务网络,这个在前面的概述中已经提到过。于过去的激光大气通信有很大的不同,目前FSO是具有高度发达的光纤通信技术平台,引入望远镜式光学天线后以大气为传输介质,应用目标是5km内的视距通信。作为与现有光纤通信系统和网络兼容的光通信技术,应用于宽带接入网、城域网、企业网、校园网、军用战术通信网、应用通信系统、光纤通信的延伸系统(在通过江河、海岛与大陆、海岛与海岛等应用中),可以利用和移植现有的光放大、波分复用、全光插分复用和交叉连接等技术,是光纤通信的补充。相比较而言,FSO最适宜用来组建高速本地网或用作现有光纤网络的备份。我国电信、移动、联通、网通、铁通等传统和新兴电信运营商,除了电信有接入网以外,包括电信在内都没有可支持高清晰度视频的宽带接入网和城域网,而城域网和接入网是电信运营商向全社会提供电信服务必备通道和聚集利润的漏斗,必然会被高度重视,宽带接入网和城域网的建设高潮将在HDTV等宽带信息业务的驱动下于近期到来,FSO在宽带接入网和城域网建设中将会有广阔的市场前景。FSO的另外一个大市场是没有光纤连接的中小企业。我们有理由相信兼有光通信和无线通信优势的FSO技术会[11,12,13]有迷人的广阔前景。1.2无线以太网在计算机网络的发展过程中,一个重要阶段就是在20世纪80年代初发展起来的有线局域网。由于微型计算机的出现和应用的普及,人们迫切需要将众多的微机组成网络。简单地讲,有线以太网指用电缆或光纤把局部区域(几米至几公里)的大4 型计算机、工作站、微机等相互连接起来,并完成计算机间的数据传输与资源共享。作为网络的一个重要分支,以太网连网简单,只要在微型计算机中插入一个接口板就能实现连网。由于以太网价格便宜,传输速率较高,使用方便,因此以太网从20世纪80年代开始得到了快速发展。微机的大量推广和普及,对以太网的应用起到了很大的推动作用,对当今计算机网络技术的发展也产生了重要影响。然而有线以太网也存在许多不足,例如:传输速率仍不够高;在许多环境下,要求传输、处理多媒体信息,这种应用环境要求以太网具有高达几百兆比特秒,甚至几吉比特秒的传输速率;布线繁琐,办公室电缆线泛滥;在高度信息化社会,办公室成为信息网络系统的末梢,在办公室内,各种网络系统共享,必将出现电缆线的“洪水”;无法从移动体访问局域网。为了克服以上问题,人们开始在提高传输速率、支持可移动性方面着手寻找突破口来研制适于未来的局域网模式。因此能支持具有移动连接能力的无线局域网成为了局域网的一个发展方向。从广义上讲,凡是通过无线传输媒体连接的信息设备共同构成的网络都可称为无线以太局域网。这里的无线媒体可以是无线电波、红外线或激光。接入方式的无线局域网(WLAN)可以将带有无线设备的工作站或计算机通过接入点(AP)连入有线局域网(LAN);中继方式的无线局域网可以用无线链路作为连接两个或多个有线网的桥梁,完成多个有线LAN间的数据传输。这两种WLAN方式延伸了有线LAN[14,15,16,17]的作用范围。1.2.1无线以太网的应用范围(1)难以布线的环境。如老建筑、布线困难或昂贵的地区、无权铺设线路或线路铺设环境可能导致线路损坏等;(2)频繁变化的环境。如频繁更换工作地点和改变位置的零售商、生产商以及野外勘探、试验、军事、公安和银行等;(3)专门工程或高峰时间所需的暂时局域网。如商业展览、建筑工地中的组网等;(4)办公室和家庭办公室,以及需要方便快捷地安装小型网络的用户;(5)重复地临时建立设置和安排通讯的地方;[18](6)时间紧急,需要迅速建立通讯,而使用有线不便、成本高或耗时长。5 1.2.2无线以太网的发展前景在当今的世界上,一方面计算机正以难以想像的速度频繁更新换代,且数量以前所未有的速度在剧烈增长,另一方面大多数计算机进入了无线以太网。这就使无线以太网的市场十分广阔,当前正在世界兴起无线以太网建设的热潮,其用户也以几何级数速度增长。据报道在世界范围内2002年仅有不到10%的计算机进入无线以太网,到2004年达到30%,2007年达到约70%高水平,在当今便携式计算机都有内置无线接入功能。以太网技术的应用在世界先进国家中已经相当普及,在企业网,校园网等各种局域网中已占绝对主导地位并正掀起无线以太网开发建设的热潮。在我国,随着计算机用户的迅猛增加,以太网建设也将会全面铺开,并且将采用新开发的全新以太网先进技术,从更高的起点上开始。这必将迎来我国在通信领域“无线光以太网”建设欣欣[19,20]向荣的春天。1.3现场可编程逻辑器件FPGA/CPLD、DSP和CPU被称为未来数字电路系统的3块基石,也是目前硬件设计研究的热点。与传统电路设计方法相比,FPGA/CPLD具有功能强大,开发过程投资小,周期短,可反复编程修改,保密性能好,开发工具智能化等特点,特别是随着电子工艺的不断改进,低成本FPGA/CPLD器件推陈出新,这一切促使FPGA/CPLD成为当[21]今硬件设计的首选方式之一。FPGA和CPLD都是可编程逻辑器件,FPGA(FieldProgrammableGateArray)是现场可编程门阵列的简称。具有以下三个显著的特点。(1)高集成度、高速度和高可靠性是其最明显的特点。随着超大规模集成电路VLSI(VeryLargeScaleIC)工艺的不断提高,单一芯片内部可以容纳上百万个晶体管,其时钟延时小至ns级,结合其并行工作方式,FPGA在超高速应用领域和实时测控方面有着非常广阔的应用前景。(2)与ASIC设计相比,FPGA设计的开发周期短、投资风险小、产品上市时间短,极大地增强了产品的市场竞争能力和适应能力。6 (3)开发语言标准化、规范化,简单易学,利于在不同型号和规模的FPGA之间移植,使产品设计效率大幅度提高。根据以上特点和以下三方面的原因,本系统选用了Altera公司的EP1C6芯片。(1)AlteraQuartusII具有更直观的开发界面,提供了多种针对Cyclone的基本IP核,为整个系统的开发和扩展提供了很大的方便。(2)片内RAM容量较大,速度快,为MAC帧的缓存提供了丰富的RAM资源,并为功能升级和扩展预留了充分的空间。(3)高达200MHz的工作频率能满足高速数据处理和传输的要求。1.4论文选题的意义与主要工作以太网(Ethernet)作为一种局域网基本介质(媒体)接入技术,由于其高度灵活性和实现的简单性,管理方便,可靠性高,多业务数据,媒体信息量大,易于扩展和更新等优点,在企业、学校等领域中得到广泛的应用。根据IEEE802.3Ethernet标准规范,以太网每段同轴电缆长度不得超过500米,通过中继器互联后,网络最大距离不得超过2.8公里。在此情况下,利用无线光通信技术,超越以太网的地域限制,满足数据通信的需要,有很强应用价值。本论文主要是针对无线光以太网设计中最核心的部分—以太网传输子系统所做的研究。具体是实现无线光以太网接口。论文首先探讨了无线光通信、无线以太网的基本理论、应用及发展。本论文通过对RTL8201物理层芯片的了解,设计出RTL8201接口电路。为了保证无线光以太网的数据通信质量,本论文还研究了以太网通信技术。主要是MAC帧的接收与发送。接着,本论文用VerilogHDL实现电路模块的设计,包括用VerilogHDL进行功能描述,用QuartusII软件进行编译、仿真,然后下载到FPGA芯片中。论文的组织结构如下。第一章介绍FSO的发展情况,以太网,本课题主要内容。第二章为系统方案设计。介绍了无线光以太网通信的原理,对系统原理框图以及本课题具体实现模块进行了详细介绍。详细介绍了实现课题任务需要以太网信号帧格7 式和以太网接收发送过程。介绍了并对所选用器件及其开发工具进行了简单的介绍。第三章为接口硬件平台设计。实现了RTL8201接口电路,FPGA硬件设计以及一些外围电路的设计。第四章为以太网接口模块的FPGA设计。利用VerilogHDL硬件描述语言,实现了MAC帧接收,发送模块的设计。第五章为系统模块调试与测试结果。第六章为结论和展望。本文的创新在于把无线光通信技术和以太网技术结合起来,在以太网上实现了双工通信。在FPGA芯片给出了一种无线光以太网接口的硬件设计,实现了以太网MAC帧的接收与发送。对以太网MAC层处理单元进行了详细的RTL硬件设计,并用Verilog语言进行了代码实现。8 2系统方案设计2.1系统原理框图设计SLEDPHYSMIRTL8201BLTX8(A)EP1C6RX路TXPHYRXRTL8201BL(B)SMIEP1C6SLED数据链数据路层链路层光发接光发射收接MII射天大天收MII系线线系气物理层统统物理层以太网以太网无线光通信系统图2.1系统原理框图如图2.1所示,以太网传输大气激光通信系统分为收发子系统、光学天线子系统、以太网传输子系统三个部分。收发子系统,光学天线子系统由实验室同学完成。本论文完成第三个部分即以太网传输子系统,具体实现的内容如下。9 (1)MAC层接收数据部分。这一部分由PHY芯片RTL8201和FPGA芯片EP1C6实现。PHY芯片将以太网物理层上的比特流转换成数据链路层上的MAC帧信号,FPGA接收PHY芯片输出的数据流,找到MAC帧的帧头,并将接收到的MAC帧数据保存在内部存储器中暂存起来。(2)MAC层发送数据部分。MAC帧传输到物理层,数据转换成MII接口格式发送给以太网物理层接口芯片RTL8201。为保证数据正确发送,本模块处理载波侦听、冲突检测、冲突增强、后退算法、差错校验等功能。(3)控制部分。这一部分主要是EP1C6对PHY芯片的控制,以初始化PHY芯片,控制PHY芯片的工作状态,读取PHY芯片状态,控制LED阵列显示。(4)电源和配置部分。这一部分主要是为系统各个芯片提供各种稳定的电源,对FPGA和PHY进行复位和配置。2.2以太网技术简介以太网本质上只是一个物理层标准。无线以太网是属于OSI标准参考模型中第1、[22,23,24]2层网络。2.2.1网络体系结构IEEE802.3所制定的以太网体系结构对应着OSI七层模型最低的两层,即物理层和数据链路层,如图2.2所示。开放系统互联模型各层说明如下。(1)物理层解决如何在通信信道上传输原始位流。它涉及定义比特„1‟和比特„0‟的电压,每一位时间宽度,信号交互过程,物理连接建立和断开,及连接器引脚的用途等有关机械和电气方面的特性。(2)数据链路层负责在两个相邻终端间的线路上无差错地传输以帧为单位的数据,每一帧由控制信息和数据组成。(3)网络层负责为报文选择从源终端到目的终端的传输路由,解决不同网络间报文转换,介质转换,速率转换等问题。(4)运输层从会话层接收数据,然后将它分割成报文进行传送,为会话层提供端-端之间的可靠传输。10 LLC子层参考模型MAC控制子层(可选)应用层MAC子层表示层调和子层会话层MII传输层PCS网络层PMAPHY数据链路层PMD物理层MDI媒质(FSO)图2.2OSI参考模型(5)会话层对数据传输进行管理,在两个互相通信的应用进程之间建立、组织和协调其交互过程。(6)表示层主要解决用户信息的语法表示问题,它将进行交换的数据从适合于特定用户的抽象语法转换为适合于OSI系统内部使用的传输语法。(7)应用层确定进程之间通信的性质,以满足用户的需要,负责用户信息的语义表示,并在两个通信者之间进行语义匹配。本课题涉及的以太网只是一个计算机通信子网,不存在路由选择问题,因此对应OSI参考模型,它不需要网络层及以上的几层,而只有最低的两个层次:数据链路层和物理层。本文紧紧围绕设计,重点介绍以太网体系中的数据链路层和物理层的功能。(1)无线以太网的数据链路层无线以太网一般要遵守IEEE标准协会制定的关于局域网IEEE802系列标准建议的规定。它将数据链路层具体又分为逻辑链路子层和介质接入控制子层。数据链路层是为网络实体之间建立、保持和更改数据链中的连接,为传送数据链路服务数据单元提供功能与规程手段。提供在物理链路上进行可靠的数据传输条件。包括数据完整帧结11 构的建立、自动纠误、收发同步以及链路层流量控制、实现点对点或多点数据传输与控制。1)逻辑链路控制子层。数据链路层中与媒体接入无关的部分都集中在逻辑链路控制LLC子层,LLC子层的主要功能有建立和释放数据链路层的逻辑连接,提供与高层的接口,差错控制以及给帧加上序号。2)介质接入控制子层。介质接入控制(MAC,MediaAccessControl)子层管理网络中各个站点信号接入传输介质的控制。在发站,MAC子层将信息封装入MAC帧,通过物理层实现在物理介质中传输。MAC帧包括用户数据、组帧和分帧的定位比特、地址和差错检测等。MAC地址用于识别网中各个站。MAC是以太网络与节点之间关键接口。从高层来的接收数据经MAC控制被送到物理层PHY成帧后将其发送到网上;反之,从网上来的信息经PHY变换后,再经MAC控制送入上层处理帧相适应的软件。(2)物理层特性物理层是为链路层实体之间进行比特传输提供物理连接所需机械、电气功能和规程手段。主要功能是建立、维持和拆除物理电路。实现物理电路层比特流的透明传输,并且使MAC层与以太网使用的介质无关。从而使上层的数据和协议与网络使用的介质无直接关系。层间通信是通过物理介质的实际互连实现。关于无线以太网物理层的功能特性主要应包括网络的拓扑结构与最大网径长度、网络使用频段与带宽、每个频段可安排的信道个数、每个信道的网络层与物理层允许最大数据率、采用的无线传输介质和无线传输接口技术、编码复用与调制方式以及天线配置技术等。无线以太网物理层的设计要根据网络的实际需要来确定,而物理层特性的选择标准是依现存无线以太网标准而定的。当今无线以太网物理层所采用的传输技术可包括扩频技术(DSSS/FHSS),正交频分复用技术(OFDM)和红外线辐射传输技术(Ir-DA)。2.2.2以太网信号帧格式以太网信号帧结构是以太网中传输信息的存在基本形式,也是以太网络通信信号的基本单元,一般将以太网帧分为数据帧和管理帧两类,结合本课题所设计的内容,[25,26]这里只介绍数据帧结构。12 数据帧(DataFrame)是用于以太网站点之间传输信息的载体。结构如图2.3所示。帧前序帧起始符目的地址源地址长度/类型客户数据填充帧校验(Preamble)(SOF)(DA)(SA)(L/T)(Data)(Pad)(FCS)7字节1字节6字节6字节2字节P字节N字节4字节图2.3以太网信号的基本帧结构(1)帧前序(Preamble)。这个区域是7个字节的0x55,即是56比特交替的„1‟、„0‟,其功能是告诉接收节点以太网信号马上到来,在数据到来之前,给出接收端检测与读出数据做好准备的时间(比如,用于接收的PLL得到建立与接收帧同步的时钟)。(2)帧起始符SOF(StartofFrameDelimiter)。这是一个0xD5的字节,其功能是用于表示一帧的开始。(3)MAC目的地址与源地址(Destination&SourceMACAddress)。MAC目的地址和源地址分别占用6个字节。其目的地址字节的功能是用于表示发送帧的目的节点地址;而源地址用于表示帧的源节点地址。源地址总是唯一的单播地址,即只允许由一个节点发出信息。而目的地址可以是单播(Unicast)地址、多播(Multicast)地址或广播(Broadcast)到所有节点的广播地址(BroadcastAddress)。(4)帧长度/类型(Length/Type,简写为L/T)。这个区域占用两个字节,其功能是用于表示MAC帧内不包括任何填充的数据字段长度或MAC帧内数据字段的数据类型。若这个区域的取值小于或等于1500字节,则这个区域表示的是MAC帧内数据字段的长度。若这个区域的取值大于1500字节,则其表示客户数据要到达的上层协议类型。(5)MAC客户数据(MACClientData)。这个区域被称为数据段区域,其功能是荷载用户要传输的数据,而占用的字节数随数据量而定,一般在46~1500字节之间。(6)填充区(Pad)。填充区占用的字节数根据需要而定。这个区域的功能是确保数据帧长度不少于64字节。即要满足P+N≥46(2.1)当P≥46时,则没有填充;当P<46时,填充使得P+N=46。(7)帧校验序列(FCS,FrameCheckSequence)。这个区域占用4个字节,其功能13 是用于整个帧的差错校验。这里应该明确,MAC客户数据区的数据尺寸最低不能少于46字节,而最高不能大于1500字节,所以网络MAC帧的尺寸最短不能少于64字节,而最长不能大于1518字节,这里不包括帧前序(Preamble)和帧起始符(SOF)两个区域。为了提高网络传输效率,现在很多的设备供应商的设备都提供超过1518字节长度限制的MAC巨帧支持。巨帧的长度一般在8K字节以内,这和双方连接的设备类型、连接的速率、连接的接口类型和参考时钟的精度都有关系。2.3MAC帧的接收与发送过程[27]从通信双方的信息交互方式来看,分为以下三个基本的通信方式。(1)单向通信。又称为单工通信,即只能有一个方向的通信而没有反方向的交互。无线电广播或有线广播以及电视广播就属于这种类型。(2)半双工通信。通信的双方都可以发送信息,但不能双方同时发送或同时接受信息,这种通信方式是一方发送另一方接收。(3)全双工通信。通信的双方可以同时发送和接收信息。2.3.1MAC帧的接收过程对于半双工和全双工模式,MAC帧的接收过程是一样的。以太网总线中没有处于发送状态的站点时刻监听总线的状态,当监听到总线上有信号活跃时,则开始帧接收过程。首先接收MAC帧数据,在接收数据的过程中要分别对帧的各要素进行有效性检查。首先要判断接收到的帧长度是否小于协议规定的最小帧长。如果小于协议规定的最小帧长,则判断此帧为碎片,则丢弃已经接收到的帧,等待下一次重新接收。然后检查目的地址字段是否与本站的MAC地址相符合,如果不符合,说明该帧不是发送给本站的MAC帧,将它丢弃。还要检查接收到的帧长是不是整数字节的长度,如果不是说明也是无效帧,将其丢弃掉。还要进行帧的CRC校验,如果CRC校验出错,则丢弃该帧。2.3.2MAC帧的发送过程在半双工和全双工模式下,MAC帧的发送过程是不相同的。半双工模式下,由于14 多个站点共享介质,需要使用CSMA/CD介质访问方法,MAC帧的发送工作过程如下。(1)监听总线首先监听总线,确定介质上是否有其他站点正在发送数据帧。1)如果介质空闲,站点在等待1个帧间间隔(1Fs)时间后开始发送数据。802标准规定帧间间隔时间为传送96bit所需的时间,对于10Mbps的以太网,帧间间隔时间是9.6us。这样做是为了使刚刚收到数据帧的主机的接收缓存来得及清理,做好接收下一帧的准备。2)如果介质已经被占用的,则要继续监听,一旦信道空闲,站点就可以开始发送数据。如果站点要发送多帧,在两个帧之间必须等待帧间间隔时间。(2)边发送MAC帧边进行总线监听此时,在发送MAC帧的同时,对总线进行监听。1)如果监听到总线上有冲突信号发生,则立即停止发送,并向总线上发出一串阻塞信号JAM来加强冲突,通知总线上各个站点有冲突发生(如果是在发送前导码和帧起始定界符时发生冲突,则站点将继续发送完前导码和帧起始定界符,然后再发送32bit的JAM阻塞信号)。接下来按照上面讲述的二进制指数退避算法随机延迟一段时间,再按照过程“1”去争用总线和发送MAC帧。2)如果没有冲突信号发生,则将整个MAC帧发送完毕。在全双工通信模式下,由于进行的是两个站点间点对点的通讯,已经没有多个站点争用介质的问题,不需要使用载波监听多路访问/冲突检测算法。MAC层此时的任务只是在发送数据的同时接收数据。全双工模式时,MAC帧的发送机制相对比较简单,发送站点每次发送1个帧,1帧数据发送完毕后再发送下一帧。站点发送相临两帧的间隙插入帧间间隔时间,如果站点接收到Pause帧,则暂停发送,待暂停结束,继续发[28]送。2.4EDA技术介绍EDA(ElectronicDesignAutomation,电子设计自动化)技术就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式。以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,15 自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑简化、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。利用EDA技术进行电子系统设计具有以下几个特点。(1)用软件的方式设计硬件;(2)用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;(3)设计过程中可用有关软件进行各种仿真;(4)系统可现场编程,在线升级;(5)这个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的开发趋势。EDA技术的主要内容是大规模可编程逻辑器件、硬件描述语言、软件开发工具和实验开发系统,这里主要介绍前两者。2.4.1FPGA芯片设计的平台及流程通过Verilog硬件描述语言,采用自顶向下的方法设计,选择NC-Verilog完成芯片[29,30]的仿真验证。采用FPGA后,整个芯片的设计流程如下。(1)总体设计。在进行详细设计前,根据芯片设计需求,对设计按功能进行划分,定义各模块间的接口关系,以便从系统级把握整个设计,提高设计的效率。(2)电路的设计输入。采用Verilog语言在文本编辑器上完成及在EDA工具中使用状态机输入法完成。Verilog语言易于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺不同而改变,利于向ASIC移植。状态机输入法也是常用的辅助设计输入方法。使用状态机输入法时,设计者只需要画出状态转移图,EDA软件就能自动地根据响应关系生成相应的HDL代码,十分方便。(3)功能仿真。电路设计完成后,需仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。(4)把设计综合成门级网表。指将设计翻译成由与、或、非、RAM、寄存器等基本逻辑设计单元组成的逻辑连接,并根据目标与要求优化所生成的逻辑连接,输出网表。(5)实现。综合完成后,使用FPGA厂商提供的工具软件,根据所选芯片的型号,16 将综合输出的逻辑网表适配到具体的FPGA器件上,这个过程包括翻译、映射、布局布线等3个步骤。(6)设计后仿真。布局布线之后作时序仿真。将布局布线后生成的.sdf时延文件反标注到设计中,使设计既包含门延时,也包含线延时信息,与前而各种仿真相比较,后仿真包含的延时信息最全面、准确,能反映芯片的实际工作情况。(7)设计开发的最后步骤就是在线调试或者将生成的配置文件写入芯片中进行实际系统测试。2.4.2VerilogHDL硬件描述语言VerilogHDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。VerilogHDL语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。VerilogHDL语言不仅定义了语法,而目对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。VerilogHDL提供了扩展的建模能力,其中许多扩展最初很难理解。但是,VerilogHDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完[31,32,33]整的电子系统进行描述。下面列出的是Verilog硬件描述语言的主要能力。(1)基本逻辑门,例如and、or和nand等都内置在语言中。(2)用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。(3)开关级基本结构模型,例如pmos和nmos等也被内置在语言中。提供显式语言结构指定设计中的端口到端口的时延及路径时延和设计的时序检查。(4)可采用三种不同方式或混合方式对设计建模。这些方式包括:行为描述方式17 —使用过程化结构建模;数据流方式—使用连续赋值语句方式建模;结构化方式—使用门和模块实例语句描述建模。(5)VerilogHDL中有两类数据类型:线网数据类型和寄存器数据类型。线网类型表示构件间的物理连线,而寄存器类型表示抽象的数据存储元件。(6)能够描述层次设计,可使用模块实例结构描述任何层次。(7)设计的规模可以是任意的;语言不对设计的规模(大小)施加任何限制。(8)VerilogHDL不再是某些公司的专有语言而是正IEEE标准。(9)人和机器都可阅读Verilog语言,因此它可作为EDA的工具和设计者之间的交互语言。(10)VerilogHDL语言的描述能力能够通过使用编程语言接口(PLI)机制进一步扩展。PLI允许外部函数访问Verilog模块内信息、允许设计者与模拟器交互的例程集合。(11)设计能够在多个层次上加以描述,从开关级、门级、寄存器传送级(RTL)到算法级,包括进程和队列级。(12)能够使用内置开关级原语在开关级对设计完整建模。(13)同一语言可用于生成模拟激励和指定测试的验证约束条件,如输入值的指定。(14)VerilogHDL能够监控模拟验证的执行,即模拟验证执行过程中设计的值能够被监控和显示。这些值也能够用于与期望值比较,在不匹配的情况下,打印报告消息。(15)在行为级描述中,VerilogHDL不仅能够在RTL级上进行设计描述,而且能够在体系结构级描述及其算法级行为上进行设计描述。(16)能够使用门和模块实例化语句在结构级进行结构描述。(17)VerilogHDL还具有内置逻辑函数,例如&(按位与)和︱(按位或)。(18)对高级编程语言结构,条件语句、情况语句和循环语句,语言中都可以使用。(19)可以显式地对并发和定时进行建模。(20)提供强有力的文件读写能力。18 (21)语言在特定情况下是非确定性的,即在不同的模拟器上模型可以产生不同的结果;例如,事件队列上的事件顺序在标准中没有定义。2.5本章小结本章介绍了系统总体原理框图设计,并对系统功能模块进行了详细的划分。详细介绍了实现课题的理论依据:OSI参考模型和以太网帧格式。以及本课题研究的重点MAC帧发送接收的原理。对所选择的硬件及其开发工具进行了简单的介绍。19 3接口硬件平台设计3.1RTL8201接口电路3.1.1物理层接口芯片RTL8201在该系统中,使用RTL8201作为以太网的物理层接口芯片。图3.1为RTL8201的[34,35,36]引脚分布图。RTL8201BL引脚功能描述,见表3.1。RTL8201BL图3.1RTL8201的引脚分布20 表3.1RTL8201引脚功能描述信号类型引脚功能描述TXCO7发送时钟:该引脚提供连续时钟信号作为TXD[3:0]和TXEN的时序参考。TXENI2发送使能:该引脚指示目前TXD[3:0]上的4位信号有效。TXD[3:0]I3,4,5,6发送数据:当TXEN有效时,MAC随TXC同步送出TXD[3:0]。接收时钟:该引脚提供连续时钟信号作为RXD[3:0]和RXDV的时序参考,在RXCO16100Mbps时,RXC的频率为25MHz,10Mbps时为2.5MHz。COLO1冲突检测:当检测到冲突时,COL置为高电平。CRSI/O23载波侦听:在非IDEL状态时,该引脚置为高电平。接收数据有效:当接收RXD[3:0]上的数据时,该引脚置高电平,接收结束时置RXDVO22低电平。该信号在RXC的上升沿有效。18,19,RXD[3:0]O接收数据:该引脚随RXC同步将数据从PHY传送给MAC。20,21RXERO24接收错误:当接收数据发生错误时,该引脚置为高电平。站管理时钟信号:该引脚为MDIO提供同步时钟信号,但可能与TXC和RXCMDCI25时钟异步。该时钟信号最高可达2.5MHz。MDIOI/O26站数据输入输出:该引脚提供用于站管理的双向数据信息。25MHz晶振输出:该引脚提供25MHz晶振输出。当Xl外接25MHz振荡器时,X2O47该引脚必须悬空。25MHz晶振输入:该引脚提供25MHz晶振输入。当外接25MHz振荡器时,该X1I46引脚作为输入。TPTX+O34,33发送输出。TPTX-ORTSETI28发送差分电阻连接:该引脚应通过-2.0K的电阻下拉。TPRX+I31,30接收输入。TPRX-I该引脚置高将RTL8201与MAC和MDC/MDIO管理接口隔离。在该模式下,ISOLATEI43功耗最小。SPEEDI39该引脚置高RTL8201以100Mbps的速率工作。DUPLEXI38该引脚置高使能全双工模式。ANEI37该引脚置高使能自动协议模式,置低为强制模式。LDPSI41该引脚置高RTL8201进入未连接省电(LDPS)模式。MII/SNIBI44该引脚置高RTL8201进入Mll模式工作。LED0/PAD0O9连接LED显示。LED1/PAD1O10全双工LED显示。LED1/PAD2O1210M连接/应答LED显示。LED1/PAD3O13100M连接/应答LED显示。LED1/PAD4O15冲突LED显示。RTT3/CTRLO27RESETI42芯片复位引脚,低电平复位。AVDD0/AVDD1P32,36模拟电源:为片内模拟电路提供3.3V电源,应接去耦合电容。AVDD2为片内PLL电路提供3.3V电源,应接去耦合电容并用100ohm@100MHz磁珠P48接到模拟地。AGNDP29,35,45模拟地:接地。DVDD0/DVDD1P8,14数字电源:为片内数字电路提供3.3v电源。DGNDP11,17数字地:接地。21 3.1.2以太网接口电路所需引脚为TX_ERR、TXD[3:0]、TX_EN、TX_CLK、RX_ERR、RXD[3:0]、RX_CLK、RX_DV、nRESET、CRS、COL。接口电路为RTL8201,它是单口高速以太网物理层接口电路,可提供MII接口和传统7线制网络接口,工作电压为3.3V。电路图如图3.2所示。图3.2RTL8201接口电路3.1.3RTL8201配置电路设计本课题设计的RTL8201的配置方式为串行管理接口SMI配置。串行管理接口SMI配置是控制器通过RTL8201的MDC、MDIO两个管脚将配置数据写入RTL8201的MII寄存器中,同时控制器也可以通过SMI接口读出RTL8201内部各个MII寄存器内容,了解RTL8201的工作状态。串行管理接口SMI配置是将其MDC、MDIO按要求与FPGA相连,这里由于其速率都不高(<2.5MHz),所以无需使用FPGA的一些特殊功能,FPGA的管脚当成普通的I/O口使用。3.1.4串行LED接口电路设计为减少芯片的引脚数,RTL8201的LED引脚同时复用为PHY的地址引脚,因此22 引脚9,10,12,13,15不能直接接到电源或地。图3.3为引脚9,10,12,13,15地连接方法,此时RTL8201的PHY地址为0000lB。引脚通过5.IK的电阻上拉或下拉,决定RTL8201的PHY地址,在正常工作时,LED显示RTL8201的工作状态,当不需要LED状态显示时,LED+510欧姆的电阻可去掉。VDD33RRDLED0/PHYAD05K1510LEDR5K1DRLED1,2,3,4/PHYAD1,2,3,4510LEDGND图3.3RTL8201的LED与PHY地址配置RTL8201是单端口的物理层收发器,有MII/SNI(媒体独立接口/串行网络接口)接口,实现了全部的10M/100M以太网物理层功能,包括物理层编码子层(PCS),物理层介质连接设备(PMA)等等。完成了4B/5B的编解码、串并/并串转换、NRZ到NRZI的转换、NRZI到NRZ的转换以及提供与光纤收发模块间PECL接口的驱动和接收等。3.2FPGA硬件设计与实现FPGA的硬件设计指FPGA与周边器件的接口方式。本设计中数据处理单元采用Altera公司的FPGA芯片EP1C6实现,与它连接的器件是以太网物理层处理单元RTL8201。3.2.1FPGA器件EP1C6芯片介绍Altera公司的Cyclone系列FPGA中的EP1C6芯片作为系统的控制核心。Cyclone器件23 平衡了逻辑、存储器、锁相环和高级I/O接口,Cyclone系列FPGA是价格敏感应用的最[37,38]佳选择。Cyclone系列FPGA具有以下特性。(1)新的可编程构架通过设计实现低成本;(2)嵌入式存储资源支持各种存储器应用和数字信号处理(DSP)实施;(3)专用外部存储接口电路集成了DDRFCRAM和SDRAM器件以及SDRSDRAM存储器件;(4)支持串行、总线和网络接口及各种通信协议;(5)使用PLLs管理片内和片外系统时序;(6)支持单端I/O标准和差分I/O技术,支持高达311Mbps的LVDS信号;(7)处理能力支持NiosII系列嵌入式处理器;(8)采用新的串行配置器件的低成本配置方案;(9)通过QuartusII软件OpenCore®评估特性,免费评估IP功能;(10)QuartusII网络版软件提供免费的软件支持。本设计选用的器件为EP1C6,它的性能参数如表3.2所示。表3.2EP1C6资源参数参数特征EP1C6LEs5980M4KRAM快数20RAM总位数92160PLLs2最大输入输出引脚185EP1C6属于Cyclone系列FPGA中的一种,该芯片的工作电压为3.3V,内核电压为1.5V。它可在线编程,采用0.13μm工艺技术,全铜SRAM工艺,具有12万基本门,5980个逻辑单元,包含20个128×36位的RAM块(M4K模块),总的RAM空间达到92160位。内嵌2个锁相环电路和一个用于连接SDRAM的特定双数据率接口,工作频率高达200MHz。此外,该芯片还支持多种不同的I/O标准。图3.4为Cyclone器件的结构框图。24 IOEsM4KROMBlocksPLLLogicArray图3.4Cyclone器件的结构框图3.2.2MAC接口设计RTL8201工作在半/全双工自适应模式下,支持10/100M以太网,实现以太网物理层接口功能,它与FPGA之间通过MII接口(媒介无关接口)相连。MII接口是一个用于以太网的物理层和MAC(MediaAccessControl)层之间的接口。MII硬件接口如图3.5所示。JTAG接口MII接口TXENTXD[3:0]RTL8201BL(以太网物EP1C6Q240C8TXCLK理层接口芯(FPGA)RXDV片)RXD[3:0]RXDVRXCLKRXER图3.5硬件接口25 MII接口有一个发送接口(包括TXEN,TXER,TXD[3:0],TXCLK等引脚),一个接收接口(包括RXDV,RXER,RXD[3:0],RXCLK等引脚),两个状态信号引脚(CRS和COL)和一个管理接口(MDC和MDIO)。在本次设计中只使用了发送接口、接收接口的部分引脚和状态信号引脚。RTL8201的输出引脚上数据有效时置该信号为高电平,通知FPGA接收数据。MII接口的时序关系如图3.6、图3.7、图3.8所示。TxCCTxckRTxckFTxDSTxDHTxckHTxckLTXC(发送时钟)TxRDTxRHTXEN(发送使能)TXD[3:0](数据发送)图3.6MII接口发送数据时序图TrCCTrckRTrckFTrDSTrDHTrckHTrckLRXC(接收时钟)TrDSTrRHRXDV(接收使能)RXD[3:0](数据接收)图3.7MII接口接收数据时序图TrSFRXC(接收时钟)TrHFRXER(接收出错)图3.8MII接口接收数据出错26 所用引脚功能如下:TXEN(输出引脚):发送数据使能。TXD[3:0](输出引脚):发送数据线。TXCLK(输入引脚):发送数据时钟线,该时钟是由FPGA发出的,频率可以为2.5MHz或25MHz。当频率为2.5MHz时,表示以太网工作在10Mbps,为25MHz即工作在100Mbps。COL(输出引脚):发送数据时,如果检测到冲突发生,则该引脚置高,通知FPGA等待一随机时间,再重新发送刚才的帧数据。CRS(输出引脚):发送数据时,用于侦听载波,如果该引脚输出为高,表示线路忙,则FPGA不能发送数据。当CRS输出为低时,才可向局域网发送数据。RXDV(输入引脚):接收数据使能。当FPGA有数据送往RTL8201时,将该引脚置高,通知RTL8201接收数据。RXER(输入引脚):接收数据出错,当FPGA检测到有错误发生时将该引脚置高,通知RTL8201进行处理。RXD[3:0](输入引脚):接收数据引脚。RXCLK(输入引脚):接收数据时钟信号线,时钟频率可以为2.5MHz或25MHz。当频率为2.5MHz时,表示以太网工作在10Mbps;当频率为25MHz即工作在100Mbps。3.2.3FPGA部分电路设计FPGA部分电路主要包括信号的IO脚分配、输入时钟的使用、电源滤波的处理。FPGA的IO脚的特性基本是一致的(有细微的差别),因此,只要是IO引脚,都可以分配给相应的电平逻辑的数字信号,这样对电路的设计就可以简化不少,可以采用就近的原则进行IO脚分配。不过因为Cyclone系列芯片的IO脚分为行列特性,每行、每列的IO脚是有使用数目限定的,不是所有IO引脚都可以分配使用。输入时钟采用有源的24.576MHz晶振(3.3V),布线时考虑尽量靠近FPGA的锁相环输入引脚,以减小其它信号对时钟的干扰。FPGA的电源滤波主要是通过在每个电源引脚的附近增加去耦电容解决,实际电路使用了双面器件摆放的布局,缩短电源引脚与去耦电容之间的距离,而达到最佳27 效果。3.3其他电路设计3.3.1电源电路在系统中,RTL8201及部分外围器件需3.3V电源,另外,部分器件需要5V电源,为简化系统电源电路的设计,要求整个系统的输入电压为5V直流稳压电源。为了得到可靠的3.3V电压,此处选用LinearTechnology公司生产的LTIO85CT-3.3型DC-DC变换器,它的输入电压为5V,输出电压为3.3V,输出电流可达3A。系统电源电路如图3.9所示。LT1085CT-3.332OUTVoutIN5VVinVout3.3VADJC2+C1+1ADJ图3.9电源电路3.3.2晶体振荡器电路该电路用于向RTL8201BL和其他电路提供工作时钟。鉴于有源晶体振荡器在工作可靠性和精度上都要优于无源晶体振荡器,故在系统中使用了有源晶体振荡器。使用25MHz外部时钟源,接在REFCLK管脚,为其提供工作时钟。3.3.3复位电路该电路主要完成系统的上电复位和系统运行时用户的按键复位功能,有助于用户调试程序。此处选用IMP公司生产的IMP708TCSA型复位电路,它的工作电压为3.3V,具有1个手动复位输入引脚和2个复位输出引脚(高电平有效引脚和低电平有效引脚各28 1个),可以满足不同复位信号的要求。复位电路如图3.10所示。3.3V33Ω×228RESVCC0.1uF6RES7nRESETNCRES5GNDPFO341PFIMRIMP708TCSA图3.10复位电路3.3.4JTAG接口电路JTAG(JointTestActionGroup-联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试,JTAG技术是一种嵌入式测试技术。通过JTAG接口可对芯片内部的所有部件进行访问,是开发调试嵌入式系统的一种简洁高效的手段。它有2种连接标准,即14针接口和20针接口。此处选择14针接口的标准。JTAG接口电路如图3.11所示。3.3V10kΩ×412nTRST34TDI56TMS78TCK910TD011121314JTAG图3.11JTAG接口电路29 3.4本章小结本章详细的介绍了RTL8201接口、FPGA硬件平台设计与实现。介绍了所要实现的外围电路的设计。30 4以太网接口模块的FPGA设计前面介绍了以太网接口的硬件电路设计,下面继续介绍各个部分的VerilogHDL程序模块设计,各个功能是通过Altera公司的CycloneFPGAEP1C6实现的,EP1C6含有5980个LE,20个M4KRAM,存储容量为92160个比特,拥有两个锁相环,工作频率满足200MHz的设计要求。模块仿真和调试都采用了Altera公司的Quartus5.1开发平台。4.1以太网接口顶层设计以太网接口模块包括交换机以太网端口,用户以太网端口和MII管理接口三部分组成。它们一端通过MII接口与物理层接口芯片相连,另一端连接到数据包存储器,完成[39]数据包的接收、交换、发送、接入控制等一系列最重要的工作。4.1.1交换机和用户接口的组成MACEP1C6发送数据发送模块物理层发送控制信号以MAC太网以太网状态物存模块理储模层块(RTL8201接收数据BL)接收物理层接收模块控制信号图4.1总体模块结构31 交换机以太网接口和用户以太网接口在功能和组成上都非常相似。两个接口的大部分组成模块都完全一样,通过10/100MMII接口与外部物理层控制芯片连接。(1)接收模块负责从物理层芯片(PHY片)接收MAC帧数据,并按照MAC协议完成MAC帧的接收与解封。(2)发送模块以太网物理层芯片的MII接口对接的接口模块设计。数据转换成MII接口格式发送给以太网物理层接口芯片RTL8201。(3)状态模块负责向其他模块提供状态参数并保存每次发送或接收的结果状态。(4)物理层器件控制模块设计。完成对物理层寄存器的配置和读取功能。我们所设计的接口电路总体模块结构如图4.1所示。4.1.2介质无关接口在部署以太网时,必须提供一些用于站间交换信息的物理介质。以太网通常按所使用的介质来划分,例如同轴电缆以太网、光纤以太网或双绞线以太网,本论文所讨论的是无线光以太网。为了将这些由不同介质组成的物理层和以太网MAC子层方便的连接起来,IEEE802.3协议定义了机制无关接口(MII)。在3.2中,已经详细介绍了MII接口设计,在这里就不叙述了。4.2数据接收模块的设计接收模块主要负责接收从物理层(PHY)芯片送来的数据。接收模块接收MAC帧的工作过程如下。(1)物理层芯片把网络数据组装成以半位元组(nibble)为单位的数据。1个半位元组的长度为4个bit。当物理层芯片把数据准备好并发送到MII接口的4位数据线上时,物理层芯片置MII接口的接收使能信号RX_DV为高。(2)接收模块检测到RX_DV有效时,读取数据线,1次读取1个半位元组的数据。(3)对接收到的数据进行帧起始定界符检测,当检测到有效的帧起始定界符时,说明开始接收到有效帧,32 对帧长进行计数,并且开始装配2个半位元组成1个字节。(4)目的地址检查:将目的地址与该MAC配置的物理地址比较,如果两地址不相同,则丢弃该帧,停止接收。(5)帧同步:等到整帧接收完毕后(RX_DV信号无效时表示帧发送结束),进行帧长度校验,如果是无效帧,则丢弃该帧。(6)CRC校验:对接收到的帧进行CRC校验,如果校验出错,同样丢弃该帧。(7)判断帧类型:根据类型字段,判断帧的类型,确定该帧是一般的数据帧还是MAC控制帧(Pause帧)。(8)把接收到的帧存储。以太网数据帧的接收流程如图4.2所示。准备接收nRX_DV=1?y进行接收n接收完成?yn地址比较交换机接口采用yFCS有效?nyFCS出错接收完成?图4.2以太网数据帧的接收流程图图4.2中,虚线所示的地址比较只是在交换机端口才具有。在该图中,如果33 RX_DV=1开始,直到RX_DV变回0结束的整个接收过程由接收MAC控制状态机(RX_STATE)模块控制,该模块是接收模块的核心。根据上述接收模块的工作过程和功能,设计接收模块包括以下的子模块:接收状态机模块、地址比较模块、计数器模块、CRC校验模块。各子模块关系如下图4.3所示。半字节数据,控制信号接收状态机CRC校验接收MAC计数器地址比较接收的数据字节,状态信号图4.3接收子模块4.2.1接收控制状态机的设计时钟同步的状态机分为Mealy和Moore两类。其中Mealy状态机的输出不仅取决于当前状态,还与输入有关;而Moore状态机的输出只与当前状态有关。在本设计中,[41]状态机都采用了Mealy类型的设计。接收状态机子模块(RX_STATE)是接收模块的核心部分,它控制整个MAC帧的接收过程,负责控制各个功能子模块并向其发出控制信号。该模块由有限状态机实现,共分为7个状态,分别是IDLE、PREAMBLE、SFD、DATA0、DATA1、ERRO和WAIT状态,有限状态机的状态转换图如图4.434 所示。RESETRX_DV=1IDLEPREA-RX_DV=0MBLEERROSFD_DV=0WAITRX_ERR=0SFDRX_DV=0RX_ERR=0DATA1SFD_DV=1RX_DV=0DATA0图4.4接收状态机转换图有限状态机具体状态转换过程描述如下。(1)IDLE:接收准备状态,系统复位后进入IDLE状态,接收模块开始监听总线,准备接收数据帧。如果PHY芯片没有新的有效数据(RX_DV=0),状态机处于空闲状态。一旦新数据有效(RX_DV=1),状态机立即转入接收状态。当检测到前导码55H时,进入到PREAMBLE。否则一直在IDLE状态。(2)PREAMBLE:接收状态机收到的数据帧的第一个数据域是前导信息。它是28个周期的方波信号,用于PHY芯片的接收时钟同步。RXMAC通过字节计数器ByteCounter来监视前导的接收完成。发现连续的6个55H,IDLE状态出现的一个55H共7个55H,则转到SFD。如果不满足这些条件则返回到IDLE状态。(3)SFD:检测帧定界符状态,在该状态启动帧起始定界符的检测,如果检测到有35 效的帧起始定界符,则SFD_EN信号有效,状态机进入DATA0状态;如果是无效的帧起始定界符,则返回IDLE状态。(4)DATA0:接收低半字节状态,处于该状态时接收第1个半位元组,组装成字节的低4位。同时开启帧长计数模块进行计数,开启CRC校验模块进行CRC校验,开启目的地址检查模块对目的地址进行检测。然后转入DATA1状态。如果检测到RX_DV信号变低,说明数据帧接收完毕,则进入WATA状态。在DATA0状态,如果出现物理层报错、目的地址出错等接收错误(用RX_ERR=1表示),则进入ERRO状态。(5)DATA1:接收高半字节状态,接收第2个的半位元组,组装成字节的高4位,这样即完成了1个字节的组装。然后又转入DATA0状态,进行下1个字节的接收,如此循环接收。在DATA1状态,如果RX_DV信号变低,则说明接收发生错误,转入ERRO转态。出现其他接收错误(RX_ERR=1),也转入ERRO状态。(6)WAIT:等待状态,等待接收的数据帧全部传送到网络处理器的缓存中。当PE读取数据帧完毕,状态机返回IDLE状态,等待下一帧的接收。(7)ERRO:接收错误状态,如果出现接收错误即进入该状态。在该状态,当RX_DV信号变低时,则返回IDLE状态。4.2.2CRC-32模块设计通信的目的就是将信息快速可靠地传送到对方,但是快速和可靠往往又是相互矛盾的,为了解决这一矛盾,通信系统一般都采用了容错控制。循环冗余校验CRC(Cyclic[42,43]RedundancyCheck)由于编码简单且其误判概率很低,在广大通信中得到广泛应用。CRC校验采用多项式编码方法。采用CRC校验时,发送方和接收方用同一个生成多项式g(x),并且g(x)的首位和最后一位的系数必须为1。CRC的处理方法是:发送方以g(x)去除t(x),得到余数作为CRC校验码。校验时,以计算的校正结果是否为0为据,判断数据帧是否出错。CRC校验可以100%地检测出所有奇数个随机错误和长度小于等于k(k为g(x)的阶数)的突发错误。所以CRC的生成多项式的阶数越高,那么误判的概率就越小。在以太网中使用32阶的CRC校验,即CRC32。CRC32的生成多项式如式(4.1)所示。322623221612111087542g(x)=x+x+x+x+x+x+x+x+x+x+x+x+x+x+1(4.1)36 CRC32效验的长度包括目的地址、源地址、长度/类型、数据和填充域。具体按下面的步骤来计算所需要的CRC值。(1)所效验帧的第一个32位的值初始值均置为1。(2)假设所效验帧的位长为n,这n位数据被当作是n-1次多项式M(x)的系数(在n−10以太网帧中,目标地址的第一位作为x的系数而数据域的最后一位作为x的系数)。32(3)M(x)乘以x,然后被生成多项式G(x)除,得到余数R(x)。(4)R(x)的系数作为32位序列。取这32位序列的补码,结果即为所求的CRC值。在802.3中,最高字节先传,31301即传送顺序依次为:x、x…x、1。在FPGA中实现CRC-32校验的方法有串行计算和并行计算两种。在本系统中,采用并行计算。并行数据输入进行CRC-32计算有许多种实现方法,一种是在FPGA内部保存一个256×32bit的CRC-32结果表,每次通过查表的方法获得CRC-32计算的结果;另一种方法是在线性反馈移位寄存器的基础上,通过计算推导获得经过8个时钟周期的移位后的CRC-32结果。该子模块框图如图4.5所示。CRC32clkcrc_out[31..0]rstdate_in[3..0]图4.5并行数据输入CRC-32计算模块图4.5中,输入的数据时钟是25MHz,输入数据为4比特,rst为整个模块的复位信号,当它为高电平时,它将CRC-32模块复位;为低电平时CRC-32模块开始正常工作,crc_out是32比特的CRC-32计算输出结果。4.2.3计数器模块的设计接收模块需要对接收的数据字节计数,同时也需要计算帧间间隔,计数器模块的主要功能就是提供这些计数器。计数器模块包括2个计数器:字节计数器和帧间间隔计数器。每个计数器受到2个37 信号的影响:重置信号和自加信号。(1)字节计数器ByteCnt字节计数器重置的时机是:检测到帧开始定界符后,或者接收数据长度达到了最大值。字节计数器自加的时机是:接收模块处在前同步码、帧开始定界符、空闲、接收高半字节且数据长度未达到最大值时。(2)帧间间隔计数器:帧间间隔计数器从类型上来说是一个半字节计数器,但是他的作用是用来统计接收到的2个帧之间的时间。其重置信号和自加信号如下。在以下条件时,帧间间隔计数器将被重置。1)状态机处于帧开始定界符状态(StateSFD),同时接收到有效的数据信号且其值为OxD。2)状态机处在WAIT状态(StateWAIT)。当满足以下条件时,帧间间隔计数器会在时钟上升沿到来时自加1。1)帧间间隔重置信号为0。2)状态机处在WAIT、IDLE、Preamble、SFD这四个状态中的任何一个状态。3)帧间间隔计数器的值不为24。为了便于判断,定义一个信号IFGCounterEq24来标志帧间间隔计数器的值等于24,其具体内容如下。该信号的作用是标志达到了最小帧间间隔。对于I0Mb/s的局域网来说,802.3规定的最小帧间间隔为9.6us,也就是96bit即24个半字节。由于接收模块没时钟周期从物理层接收4bit的数据,所以在最小帧间间隔内共有24个时钟周期。计数器模块所产生的计数信号将作为输入信号供状态机、地址比较模块使用。4.2.4地址比较模块交换机接口需要根据接收数据包目的地址来决定其需要被转发到的用户端口。如果收到的数据包的目的地址与地址寄存器中的地址信息不符,就及时丢弃。以太网端口收到的以太帧目的地址有三种,具体定义如表4.1所示。这三种地址对38 应于三种地址比较模式。表4.1以太帧地址类型地址类型说明物理地址(单播地址)每个以太网端口唯一的MAC地址组播地址组播地址的最高一个字节为8‟b1。组播地址有很多,决定一个组播帧是否被接受在于该端口是否加入相应的组播。目的地址为组播地址的帧也有几种:1.普通组播帧,这些组播帧的组播地址不固定,一个组播帧对应一个组播地址。2.PAUSE帧,其目的地址为保留的组播地址:01-80-C2-00-00-01。3.EAPOL帧,其目的地址为保留的组播地址:01-80-C2-00-00-03。广播地址地址的48位全为1需要说明的是,我们针对各种地址比较方式如下。(1)单播地址比较将目的地址和单播地址寄存器的值相比较,如果两者一致,则通过单播地址比较。(2)广播地址比较如果目的地址为全1,则通过广播地址比较。(3)组播地址比较每一个组播组对应着一个组播地址,如果某个端口加入了某个组播组,则应该接收这一组播帧,反之拒绝这一组播帧。每个端口可能同时加入多个组播组,对应的组播地址可以有很多,可以采Hash查找表的方法过滤掉大部分不需要的组播帧。Hash表算法如下。如果帧的目的地址是组播地址(最高字节为0x01),则计算该地址的CRC校验值,取出32位校验值的低5位,用这5位的值在一个32位的寄存器中选择,如果选中的那一位为1,则接受这一帧,否则拒绝这一帧。如果某个端口加入了某一个组播组,它就会通过相应的Hash运算将对应的32bit寄存器的该位置1。上面的组播地址比较的优点是对应的组播可以很多,但是比较的结果不够精确,可能会将不需要的组播帧也收进来。不过将这些误收到的帧通过用户端口发到用户终39 端后,用户终端会将其过滤。4.3发送模块设计发送模块根据呼叫连接控制模块的控制信息,分时读取协议首部缓冲区和数据缓冲区的数据,并把这些数据转换成MII接口格式发送给以太网物理层接口芯片RTL8201。发送模块在将数据送往物理介质进行传输的过程中,为保证数据正确发送,要处理载波侦听、冲突检测、冲突增强、后退算法、差错校验等功能。本模块由以下几个子模块构成。最后用发送状态机对所有子模块进行控制,完成数据的发送功能。4.3.1发送模块子模块设计(1)TXD_Synch子模块把要发送的数据与发送时钟TXC的有效沿同步,并输出使能信号TX_EN和错误标志信号TX_ER。框图如图4.6所示。txd_synchDATA[3..0]TXD[3..0]TRANSMIT_ENABLETX_ENTRANSMIT_ERRORTX_ERCLK图4.6TXD_Synch子模块(2)IFG_Timer子模块执行载波侦听功能,确保每个终端都有同等机会与信道连接。框图如图4.7所示。ifg_timerCRSFULL_DUPLEXTRANSMIT_AVAXLABLE_PTRANSMIT_ENABLECLKRESET_N40 图4.7IFG_Timer子模块当发送端有数据要发送时,需要先进行测试。802.3标准定义一次载波侦听时间为9.6us。当发送端有数据发送请求时,IFG_TIMER开始计数,如在在前6us内检测到CRS信号,信道忙,则重新计数;如在后3.6us检测到CRS信号,则需计完9.6us后才重新开始启动IFG定时。(3)Defer_Counter子模块对有数据请求发送时的等待时间进行计数。802.3标准定义最长等待时间为两帧最大帧长的以太网帧(即3036字节)的发送时间。如超过最大计数值仍未发送数据,则忽略本次操作。如计数期间开始发送数据,则本计数器复位,并等下次又新数据请求发送时重新计数。本子模块框图如图4.8所示。defer_counterTRANSMIT_AVAXLABLE_PTRANSMIT_NEW_PEXCESS_DEFERRALCLKRESET_N图4.8Defer_Counter子模块(4)Frame_Length_Counter子模块以8比特长度为单位对发送到MII接口的数据进行计数,并检测是否超长帧或以太网最小帧。当数据发送完后,对校验和(FCS)字段计数,以确定校验和发送完成。框图如图4.9所示。41 frame_length_counterTRANSMIT_ENABLCOUNT_LENGTH[11..0]TRANSMIT_FCSCOUNT_FCS[3..0]CLKEXCESSIVE_LENGTHTRANSMIT_ERRORRESET_NTRANSMIT_64BYTE图4.9Frame_Length_Counter子模块(5)Collision_Counter子模块检测冲突事件,并对冲突进行计数。本计数子模块在发送完MAC帧前同步码之后启动,每检测到一次冲突计数器加1,如连续冲突超过15次,则不再重发,忽略本次传输。如在发送校验和字段时检测到冲突(这种冲突称为后冲突),则认为本次传输失败。该子模块框图如图4.10所示。coll_counterTRANSMIT_NEW_PTRANSMIT_ENABLTRANSMIT_PREAMBLECOLL_EVENT_PTRANSMIT_SFDLATE_COLLTRANSMIT_64BYTEEXCESSIVE_COLLCLKTRANSMRESET_NICOLL_ATTEMPT[3..0]T_ERRORCOLLFULL_DUPLEX图4.10ollision_Counter子模块(6)Jam_Timer子模块Jam_Timer子模块用于实现冲突增强,对发送的堵塞码进行计数。当发送端检测到冲突后,发送5个随机数据,使冲突周期加长,让所有发送方都能检测到冲突。框图如图4.11所示。42 jam_timerCOLL_EVENCLKCOUNT_JAM[3..0]RESET_N图4.11Jam_Timer子模块(7)CRC_32子模块采用32位并行CRC算法对MAC帧中除了前导字段和校验和字段之外的数据进行校验,结果放在校验和字段中发送出去。该子模块框图如图4.12所示。crc_32COMPUTE_CRCDATA[3..0]CRC_[3..0]CLKRESET_N图4.12CRC_32子模块4.3.2发送状态机模块43 tx_state_machineTX_SOFTX_DATA_USEDTX_EOFTX_DONETX_UNDERRUNTX_ABORTTX_RETRRNSMITCLKRESET_NTX_STAUTS[6..0]TRANSMIT_AVAXLABLE_PTX_STATUS_VALIO_NEXCESS_DEFERRALTRANSMIT_NEW_PCOLL_EVENT_PTRANSMIT_ENABLELATE_COLLTRANSMIT_PREAMBLEEXCESSIVE_COLLTRANSMIT_SFDCOUNT_LENGTH[11..0]TRANSMIT_FCSCOUNT_FCS[3..0]TNSMIT_ERROREXCESSIVE_LENGTHCOMPUTE_CRCCOUNT_JAM[3..0]DATA_SELECT[1..0]图4.13TX_State_Machine子模块发送状态机子模块控制整个MAC帧的发送过程,控制着各个功能子模块,是发送模块的核心组成部分。根据发送MAC帧的工作原理和过程,本子模块框图如图4.13所示。各状态之间的状态转换图如图4.14所示。44 请求发送数据信道空闲IDLEWAITDATA帧超短帧长超长帧正冲常突PAD最小MACFCSTRANSMWAIT_A帧长T_ABORTBORTFCS冲突发冲突冲突超过送15次完JAM成冲突TRANSMIWAIT_DOT_DONENE图4.14MII接口控制状态转换图系统上电后,处于IDLE状态,当有数据请求发送时,转入WAIT状态,启动Defer_Counter和Collision_Counter计数,监听网络是否空闲。如网络忙,则忽略本次发送,转入WAIT_ABORT状态;如网络空闲,则转入DATA状态,开始发送数据。然后对所发数据的长度进行计数,当长度小于60字节(MAC帧最小帧长64字节除去4字节的校验和字段)时,需要发送填充字段,转入PAD状态,填充到60字节后转入FCS状态,发送校验和字段;当长度在60字节和1514字节之间时,数据发送完后转入FCS状态;如长度超过1514字节,则忽略本次发送,转入WAIT_ABORT状态。如发送数据过程中检测到冲突,则转入JAM状态,发送随机数据以增强冲突。在FCS状态,当校验和字段发送完成后,转入WAIT_DONE状态,如没有冲突,则本次数据发送成功,转入TRANSMIT_DONE状态,然后返回IDLE状态;如有冲突,转入JAM状态。在JAM状态,如果冲突次数超过15次,则认为本次发送出错,转入WAIT_ABORT状态,然后转入TRANSMIT_ABORT状态,取消本次发送,并返回IDLE状态。以上各子模块封装在一起,即组成了发送模块。45 4.4MAC帧存储模块设计利用FPGA资源,实现MAC帧存储。而inst1为FPGA存储器,将data[7..0]输入的数据存储。RAM的框图如图4.15所示。RAMdata[7..0]wraddress[15..0]RAMWord(s)wrenq[7..0]4096rdaddress[14..0]wrclockrdclockBlockType:M4Kinst1图4.15数据存储模块RAM如图4.15中所示的RAM是一个简单的RAM,有一个写端口和一个读端口,RAM输入数据是8比特,输出数据是8比特,同时输入数据时钟是每一路PHY提取的25MHz时钟。作为一个环形存储器来使用,在刚开始的时候所有的地址都是0000H,在接收一个MAC帧的过程中,先将RAM写使能信号Rx_wren置位,16比特的写地址信号WrAddr先从16比特的写起始地址信号Haddr获得每开始写一帧MAC数据的起始地址,然后依次递加,将正在接收的MAC数据保存在RAM中,如果最后帧校验结果和CRC-32模块计算的结果一致,即接收的过程中没有误码出现,则改变写地址起始信号Haddr的值为当前写地址信号WrAddr。如果最后校验的结果不正确,即在接收的过程中出现了误码,则不修改Haddr的值,下一次写MAC数据时还是从以前的位置开始,覆盖上一次接收错误的数据。直到一个完整的MAC帧保存在RAM中。46 4.5状态模块的设计状态模块主要用于储存以太网MAC层操作的状态。在MAC的每一个操作(如接收或发送一个帧)结束时,状态模块会根据操作的结果更新一些寄存器来储存该次操作的状态。该模块包含下面的几个状态。4.5.1与接收有关的状态(1)接收错误接收错误(RXErr)是由于物理层在接收数据时发现错误而产生的状态,当发生时,MAC接收操作将被取消,但是并不向上层报告错误。当接收到无效字符时,接收操作仍继续进行,同时报告无效字符错误。(2)接收CRC校验错误该错误发生于当接收到的帧CRC校验未通过时。如果发生该错误的帧是MAC控制帧,则PAUSE计时器不会被设置。(3)接收到无效字符当接收到的帧内含有无效字符时发生该错误。无效字符由物理层发现并报告,并把数据设置成0xE来表示。(4)接收延迟冲突当延迟冲突发生时,帧仍然正常接收,但是该状态将被写入接收状态寄存器。延迟冲突是指发生在争用期之后的冲突,在一般情况下是不会发生的。该状态说明MAC层发生了不正常的操作或者设备发生了故障。(5)接收帧过短短帧通常会被终止和丢弃,并且不做任何记录。但是如果设置为允许接收短帧,那么当接收到一个过短帧时,接收状态寄存器内的SF位将被置1。最短帧长存放于PACKETLEN寄存器内。(6)接收帧过长默认情况下,MAC层不接收过长帧。如果接收的帧长度超过定义在PACKETLEN寄存器内的最大值,那么接收模块将自动在最大帧长处截断该帧,并且不做记录。如若允许接收过长帧,则将接收状态寄存器的LF位置l。47 (7)接收多余比特当接收到多余的比特时(即接收到的数据长度不按字节对齐),接收状态寄存器内的DB位置1,同时CRC错误也会发生,所以这两个状态往往同时被更新。4.5.2与发送相关的状态(1)尝试重发次数在MAC完成一个帧的发送后,该帧的尝试重发次数将被写入发送状态寄存器的RTRY域内。尝试重发次数代表了发送模块在成功发送该帧之前试图发送了多少次。(2)最大发送重试当发送模块尝试重发一个帧的次数超过了定义在COLLCONF寄存器中的值时,发送被取消,同时发送状态寄存器内的RL位被置1。(3)发送延迟冲突与接收延迟冲突相似,该状态在一般情况下永远不应该发生。一旦在发送过程中发生延迟冲突,发送将被取消同时把发送状态寄存器内LC位置1。(4)发送延迟当一个帧被延迟发送时(比如由于载波侦听发现信道繁忙),发送状态寄存器内的DF位被置1。发送延迟并不表示冲突,重传才表示冲突的发生。(5)发送时载波侦听丢失在发送过程中如果物理层提供的CarrierSense信号丢失,状态寄存器的CS位被置l,状态在发送完成后写入。4.6MII接口控制模块MII接口控制模块主要完成对物理层寄存器的配置和读取物理层状态的功能。处理器通过向MAC处理单元发送控制命令和数据来间接对物理层寄存器进行配置,以实现对物理层的管理。MII接口控制模块由时钟产生、输出控制和串并转换3个功能子模块组成。时钟产生模块产生串行时钟;输出控制模块产生MII接口的输出信号,并且产生输出使能信号。串并转换模块负责串行化MAC发向物理层的输出信号,还负责并行化物理层发给MAC的输入信号。48 4.7本章小结本章详细介绍了物理层到MAC层数据发送接收的具体操作模块。首先物理层器件控制模块对物理层器内部的MII寄存器进行配置。其次是本课题的核心部分:RX/TXMAC模块的设计。设计了物理层到MAC数据帧的发送、存储模块,MAC层到物理层数据接收MII接口的各个模块。用一个总的状态控制模块对每个模块进行控制。49 5系统模块调试与测试结果5.1开发调试环境5.1.1QuartusIIQuartus是Altera公司配套的FPGA和CPLD开发工具,它集成了编译、电路综合、时序分析、仿真、代码下载等功能。我们选用的是QuartusII5.1,在这里介绍一下与[48,49,50]本设计相关的功能。(1)逻辑锁功能对于FPGA设计来说,其功能是按模块自顶向下设计的,一般设计时规定好接口后,模块之间相互独立设计,但往往因为内部走线的交叉问题的存在,在最后进行电路综合的时候,各逻辑电路的门延迟可能因综合后的位置不同而发生变化,与单独实现部分功能进行的仿真和模拟测试结果不一致。在QuartusII5.1中提供的逻辑锁功能能有效的减少这些问题,我们可以预先将程序模块指定一个逻辑区域,然后进行编译和电路综合,QuartusII5.1将优先把对应的模块安排在指定的逻辑区域内,这样几个模块之间就向多芯片的电路设计一样。(2)全局时钟在某些Altera的芯片中(如cyclone系列)提供了纵横交错的全局时钟线,全局时钟线与一般的信号线不同,它的线路延迟特别小,可以认为没有延迟,使用全局时钟后,编制代码时可以不用考虑时钟的线路延迟,使得电路的实现更接近于仿真结果。全局时钟在电路中是默认设置,如果选择了使用全局时钟,系统编译时能对主要的时钟信号用全局时钟去综合电路。但对一些局部的时钟则不会,此时可以用手工的方法配置为全局时钟。(3)时序仿真时序仿真是FPGA设计中的一个很好的工具,在对具体的逻辑时序不清楚前,可以编写时序仿真波形,编译执行后查看输出结果。由于能在设计中通过仿真发现功能是否正常以及信号干扰是否存在,从而做到有的放矢。50 5.2系统调试与测试结果5.2.1硬件电路调试(1)第一次上电前检查电路有无短路断路以及器件焊接是否正常。(2)第一次上电,首先观察现象,如发现异常,立即断开电源,查找原因。(3)检查各电源是否正常,包括5V、3.3V、1.5V、1.86V,其中1.5V和1.86V电源可通过调节电阻进行调整。(4)检查晶振是否有波形输出,频率是否正常。本设计用RTL8201的TXC作为FPGA的系统时钟,为25MHz,用示波器对TXC监测,可看出TXC信号完全正确。5.2.2各个模块软件调试与测试结果VerilogHDL代码调试:首先写一个小程序,根据端口状态点亮对应端口的LED灯,下载到FPGA中,如果能正常下载,说明软件配置、下载线和FPGA的下载口都没有问题,然后插上一端已接电脑的1394线缆,看看LED灯是否能点亮,如果正常,说明FPGA内部基本正常。(1)MAC数据接收模块的仿真根据接收模块的设计思路,该模块应能接收含有单播、广播地址的数据帧,并对地址无效的帧做出反应。在下面给出的波形仿真中,本机MAC地址一律设定为0xAC-DE-48-00-00-80。1)接收单播帧接收时钟设为25MHz,允许接收广播帧,需要检测MAC地址。仿真波形如图5.1所示。从接收波形图5.1中可以看到,Reset后,RX_DV信号为0,状态机处于IDLE状态,StateIdLE信号为l;一个时钟周期后RX_DV变为1,开始接收数据。当接收到的数据变为前同步码0x5时状态机进入StateSFD状态,在帧开始定界符0xd被接收到后,进入StateDate。状态,经过两次同步后,RX_date信号为接收到的字节数据,开始接收目的地址字段,同时信号RxStartFm信号变成l。接收到的目的地址于本机MAC地址相同,所以AddressMiss信号保持0,与理论相符。51 图5.1单播帧接收波形2)接收广播帧图5.2广播帧接收波形52 广播帧是目的地址为0xFF-FF-FF-FF的帧,遇到含有该地址的帧时接收模块应将其作为有效帧处理,并标志广播帧。当帧开始定界符过后,目的地址与本机MAC地址不符,则开始检查其是否为广播地址。波形如图5.2所示。从图中可以看到,当目的地址上0xFF-FF-FF-FF接收完成之后,AddressMiss和RX_Abort信号仍然为0,同时Broadcast信号为1。说明该帧被正常接收,与理论相符。3)接收地址无效的帧设置数据帧的目的地址为0x0102-0304-0506,这样该目的地址既不与本机MAC地址相同,也不是广播地址,应该被判为无效地址,该帧的接收也应该被中止。实际仿真波形如下图5.3所示。图5.3无效帧接收波形从图中可以看出,当目的地址接收完毕后,信号AddressMiss和RX_Abort均为1,说明该帧的接收由于地址为无效而被中止,与上面的理论分析结果吻合。通过上面3种情况的仿真,接收模块的波形结果均与理论分析吻合,所以该模块能够对接收帧的目的地址进行判断,从而接收本机所需要的的数据,满足了设计的要求。(2)MAC数据发送模块时序53 主要针对数据接收模块执行802.3标准的CSMA/CD协议以及对冲突的处理情况进行仿真。发送的帧均为数据帧。1)正常发送数据帧的情况发送时钟频率设置为25MHz。初始化将信号Fulld设置为0,采用帧间间隔,最小间隔寄存器设为0x12,在reset后先让载波侦听信号Carriersense信号保持高电平一段时间,表示信道繁忙,过段时间后清零。发送模块应先侦听信道,等信道空闲后等待一个帧间间隔开始时发送数据。仿真波形如图5.4所示。图5.4正常发送波形从图中可以看出,发送数据信号TXD在载波信号CarrierSense信号为0后经过一段帧间间隔时间,开始变为前同步码0x5,同时信号TX_EN也变为1,通知物理层发送开始,在前同步码和帧开始定界符发送完毕后,目的地址字段被发送,每发送一个字节,信号TxUsedDate就由低电平跳转到高电平一次,通知上层提供下一个待发送字节。可以看到,当TxUsedDate信号跳转时,待发送字节信号TX_date也随之改变。仿真波形的结果与理论分析吻合。2)发送冲突时的情况在150时间单位处,冲突信号Collision跳转为1,表示发送了冲突,正常情况下,54 发送模块应停止当前发送,并继续发送一段强化冲突0x9后执行退避算法,退避时间结束后尝试重新发送。仿真波形如下图:图5.5发送冲突波形从图中可以看到,当冲突信号Collision为l时,发送数据信号TXD中止了正在发送的数据,并在下个时钟周期变为强化冲突序列0x9,同时重传信号TxRetry变为l,重传计数器RetryCnt的值由0变成1,表示是第一次重传。当强化冲突信号过后,TXD保持了一段退避时间的0值后,重新变为前同步码0x5,这时状态机也处于Preamble。状态(信号Star_tpreamble跳转为1)。由以上的仿真结果可知,数据发送模块能够进行正常的数据发送,并在冲突发生时能按照设计要求进行动作。5.3本章小结这一章列出了前面几章所讲的各个功能模块的仿真图,从仿真的结果可以看出系统所有设计满足要求,在现场一切工作正常,达到了预定的目标。55 6总结与展望6.1工作总结本文在IEEE802.3规范的基础上,对MAC帧的接收与发送,MII接口进行了研究,实现了一个具有双工收发数据帧的以太网接口模块,保证数据的正确传送。设计流程采用了自顶向下的模式,模块划分明确,设计思路清晰,提高了稳定性和可扩展性。设计采用VerilogHDL语言对各模块进行描述,实现了以太网接口模块的主要功能。本文的主要内容和完成的主要工作总结如下:(1)介绍了该系统的总体设计方案,提出了系统的性能要求,明确了系统组成结构,并对各个子模块进行了功能划分。(2)完成了系统硬件设计,对以太网接口的硬件设计进行了描述。包括RTL8201接口电路,MII硬件接口以及一些外围电路。(3)完成了各个子模块的具体设计。以太网接口模块的设计是本文的核心部分,它包括交换机以太网端口,用户以太网端口和MII管理接口三个部分。主要是接收发送MAC的时序和控制状态机模块,CRC校验模块,存储模块设计以及MII接口的设计等,并且采用VerilogHDL代码对主要模块进行了RTL级描述。(4)最后对设计进行了功能仿真和验证。在设计结果的仿真中,对数据发送、接收、MAC控制帧的生成和识别的各种情况进行测试,各模块均能得出与理论分析相符的结果,确保了设计的正确。通过此项目的设计,从电路设计、VerilogHDL代码设计、信号仿真、电路调试等步骤,了解了以太网物理层、MAC层工作机制,也学会了VerilogHDL代码的编制与优化,掌握的Quartus等设计工具的应用及FPGA的一些特性,使我从FPGA芯片设计相关的各个方面都有了很大的进步,学会了很多分析问题、解决问题的办法,对我今后的工作大有帮助。56 6.2工作展望由于时间和条件的限制,所设计光无线以太网的接口仍旧存在一些不足和可以进一步研究的地方,主要包括:(1)无线光的OFDM接入。主要是物理层与传输媒介的接入;(2)进一步优化、完善硬件设计和代码实现,开展综合与布局布线工作,使之更加完善;(3)主机之间的总线接口,是处理器和MAC处理单元之间进行总线操作的接口,为MAC处理单元提供了接口协议。如WishBone接口的实现;(4)MAC的流量控制。接收数据帧时对MAC帧进行检测与分类和发送数据帧时填充MAC帧。这些有待进一步的学习和研究。57 致谢在完成这篇论文之际,我要向在我研究生学习生活两年里给予我关心和帮助的老师、同学、朋友和父母表示感谢。本文是在我的导师徐海峰副教授精心指导下完成的。在本文的研究和撰写过程中,徐老师给予了我极大的帮助和教诲。在过去的两年里,徐老师严谨求实的治学态度,不辞辛劳的工作作风,以及勇于开拓创新的精神,令我铭记终生。徐老师不仅为我们授业解惑,而且教会我们许多做人的道理,我所取得的每一点一滴的进步都深深凝聚着徐老师的心血和关爱。在此,我衷心感谢徐老师对我的工作、学习和生活上的帮助和关怀。同时,我还要感谢武树斌老师对我的帮助,读研期间他给予了我诸多的鼓励,给予了我悉心的指导。此外,我也要感谢实验室的成员:张建明博士,师兄刘文龙、黎琼、郝海峰、尹恒、林科俊、袁书建,师姐吴之惠,同窗好友刘彬以及师弟王宇明和刘鹤。他们给予了我诸多的鼓励、启发和帮助,使我感受到集体的温暖和互相协作的愉快。感谢光电子科学与工程学院的各位领导的全体老师和给予我两年来的教诲和帮助。感谢我的父母和家人,感谢他们二十多年给予我的博大无私的关怀、鼓励与支持。最后,衷心感谢各位评审老师对我的指导。作者:颜国琼二○○八年五月58 参考文献[1]张煦.光无线通信技术的应用.电信快报,1999,10:3~5[2]罗先明.光无线通信.电信网技术,2001,4:53~55[3]J.R.Kerr,R.J.Titter,A.R.Kmemer.AtmosPhericOpticalcommunications.ProceedingoftheIEEE.1970,58(10):1691~1709[4]郭玉彬.光无线通信系统及其应用.长春邮电学院学报,2000,4:43~48[5]陈刚,蔡燕民,陈高庭等.空间激光通信技术若干问题的讨论.红外与激光工程,2000,3:44~48[6]朱震,陈凌.自由空间光通信技术.无线光通信技术,2003,l:2~22[7]HaimManor,ShlomiArnon.Performanceofanopticalwirelesscommunicationsystemasafunctionofwavelength.APPLIEDOPTICS,2003,42(21):4285~4293[8]李珊.FSO—本地接入市场新焦点.世界电信,2001,12:37~40[9]MohammedO.Zaatari.WirelessOpticalCommunicationSysteminEnterpriseNetworks.TheTelecommunicationsReview,2003,11(5):6~13[10]JosephM.Kahn,JohnR.Barry.WirelessInrfaredCommunications.PROCEEDINGSOFTHEIEEE,1997,85(2):265~297[11]王佳,俞信.自由空间光通信技术的研究现状和发展方向综述.光学技术,2005,31(2):259~265[12]徐荣,龚倩,张光海.城域光网络.北京:人民邮电出版社,2003.25~46[13]EdwardM,KoichiA,TadaakiM,etal.Experimentaldemonstrationofnext-generationFSOcommunication.proeeedingofSPIE,2006,6390:12~25[14]RobertDalman,JayShuler.Howtobuilda21stcenturymetropolitanaccessnetwork.Lightwave,2000,9:10~21[15]张民.光以太网.北京:北京邮电大学出版社,2003.75~130[16]刘奇.无线通信与网络应用技术.上海:浦东电子出版社,2001.20~60[17]何永明.无线局域网.电信科学,1995,11(9):59~62[18]陈长缨,道焰,刘琼.光无线局域网的应用.光通信研究,1999,1:36~39[19]PahlavanK.,Probert.T.H.,ChaseM.E..TrendsInLocalWirelessnetwok.IEEE59 CommunicationMagazine,1995,5:88~95[20]王廷尧.以太网技术与应用.北京:人民邮电出版社,2005.200~275[21]赵雅兴.FPGA原理、设计与应用.天津:天津大学出版社,2000.23~40[22]华蓓.计算机网络原理与技术.北京:科学出版社,1998.20~40[23]逯昭义.计算机网络体系结构—计算机网络原理.北京:北方交通大学出版社,2003.50~78[24]谢希仁.计算机网络(第四版).北京:电子工业出版社,2003.19~27[25]IEEE802LAN/MANStandardsCommittee.IEEEStandardforInformationtechnology—Telecommunicationsandinformationexchangebetweensystems—Localandmetropolitanareanetworks—Specificrequirements,Part3:Carriersensemultipleaccesswithcollisiondetection(CSMA/CD)accessmethodandphysicallayersspecifications.IEEEStd802.32000Edition,2000.735~962[26]郎波,黄冬泉,张辉.千兆以太网技术与应用.北京:机械工业出版社,2000.100~130[27]曹志刚,钱亚生.现代通信原理.北京:清华大学出版社,2003.53~69[28]IEEE802LAN/MANStandardsCommittee.IEEEStandardforInformationtechnology—Telecommunicationsandinformationexchangebetweensystems—Localandmetropolitanareanetworks—Specificrequirements,Part3:Carriersensemultipleaccesswithcollisiondetection(CSMA/CD)accessmethodandphysicallayersspecifications.IEEE802-2005,2005.425~813[29]任爱峰,初秀琴,常存等.基于FPGA的嵌入式系统设计.西安:西安电子科技大学出版社,2004.17~26[30]徐欣,于红旗,易凡.基于FPGA的嵌入式系统设计.北京:机械工业出版社,2004.83~120[31]王金明,杨吉斌.数字系统设计与VerilogHDL北京:电子工业出版社,2002.146~181[32]夏宇闻.VerilogHDL实验练习与语法手册.北京:高等教育出版社,2006.25~80[33]CILETTIMD.AdvanceddigitaldesignwiththeVerilogHDL.PrenticeHall,2003.60

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭