毕设论文.docx

上传人:b****6 文档编号:7282595 上传时间:2023-01-22 格式:DOCX 页数:66 大小:3.04MB
下载 相关 举报
毕设论文.docx_第1页
第1页 / 共66页
毕设论文.docx_第2页
第2页 / 共66页
毕设论文.docx_第3页
第3页 / 共66页
毕设论文.docx_第4页
第4页 / 共66页
毕设论文.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

毕设论文.docx

《毕设论文.docx》由会员分享,可在线阅读,更多相关《毕设论文.docx(66页珍藏版)》请在冰豆网上搜索。

毕设论文.docx

毕设论文

 

以太协议的应用层FPGA实现

 

目录

摘要4

Abstract5

第一章绪论7

1.1研究背景和研究意义7

1.2国内外研究和发展现状8

1.3主要研究内容8

1.4论文结构9

第二章以太网Web服务器11

2.1通用Web服务器简介11

2.2基于FPGA的Web服务器11

2.3以太网的概述12

2.3.1以太网的简介12

2.3.2以太网帧的结构12

2.4本章小结14

第三章Web服务器相关协议及实现16

3.1TCP/IP协议16

3.1.1TCP/IP协议概述16

3.1.2TCP/IP协议数据包的封装17

3.2ARP协议18

3.2.1ARP的概述18

3.2.2实验中的ARP包19

3.3网际协议IP21

3.3.1IP协议的概述21

3.3.2ICMP协议及Ping包实现22

3.4传输层协议TCP24

3.4.1TCP简介24

3.4.2实验中的TCP包26

3.5HTTP协议26

3.6本章小结29

第四章FPGA逻辑实现30

4.1FPGA的概述30

4.2XilinxFPGA平台介绍30

4.3FPGAIPCore32

4.3.1IPcore的分类32

4.3.28051IPcore33

4.4本章小结35

第五章8051中软件实现Web服务器36

5.1WebServer软件设计36

5.2HTML表单设计38

5.2.1网页设计的基本格式39

5.2.2文字、表格及图片显示40

5.2.3LED灯的控制及用户登录设计41

5.2.4网页链接设计42

5.3HTTP应用层设计43

5.4本章小结44

第六章FPGA逻辑实现46

6.1DMA的概念及应用46

6.2软件功能移植到8051核中47

6.3ISE软件设计流程48

6.4实验结果52

6.4.1网页显示52

6.4.2LED控制及用户登录53

6.4.3网页链接实现55

6.4.4实现后的资源分析57

6.5本章小结58

第七章总结与展望59

7.1本文总结59

7.2研究展望59

致谢61

参考文献62

附录63

附录一文献翻译63

英文原文63

中文译文72

摘要

随着Web服务应用的广泛开展,Web己成为目前资源最丰富的信息库。

日常的社会生活、经济活动,越来越离不开Web服务。

利用单个处理器提供Web服务已经满足不了业务的需求。

一般的办法是利用多台基于服务器或者PC机器通过交换机的方法实现网络带宽的增加以及业务的增长。

但是这种方式需要的功耗随着业务的增加也越来越大,对空间以及能源的消耗成为其发展的瓶颈。

目前FPGA技术获得了巨大的发展。

性能和集成度不断提高,而成本却在不断降低,比如Altera公司,Xilinx公司已有了几千万门并且集成了嵌入式处理器、DSP块、嵌入式存储器块等IPCore的FPGA芯片,大大节省了空间、减少了能源消耗的问题。

基于此,本课题研究基于Web服务器的核心芯片设计与开发,结合FPGA中用8051核开发便于实现、便于移植、代码小的特点以及FPGA硬件速度快的特点,采用硬件加速及软件协调的方式在XilinxVirtex-5ML507的FPGA开发平台上实现基于WEB服务的软硬件系统开发。

通过实验,基本在FPGA上实现了以太协议的应用层通信,可通过HTTP协议进行发送和获取信息。

实现的代码小、速度快,有利于开发芯片进行广泛的应用。

关键词:

WebServer,TCP/IP,FPGA,8051core

Abstract

WiththeextensivedevelopmentofWebservicesapplications,webhasbecomethemostabundantresourcesinformationlibraryatpresent.Webserviceshavebecomemoreandmoreinseparableindailylifeandeconomicactivities.Usingasingleprocessortoofferwebservicefailedtomeettheneedsofthetraffic.Thegeneralapproachistousemulti-serverorPC-basedmachinesthroughtheswitchesmethodtoincreasenetworkbandwidthandbusiness.However,themorebusinesstheyhave,themorepowertheywillconsume.Thedemandsofspaceandenergyconsumptionbecomeabottleneckofthedevelopment.

Currently,FPGAtechnologyhasagrowingdevelopment,whoseperformanceandintegrationareconstantdeveloped.Andtheircostsarecontinuouslyreduced.Altera,XilinxCompany,forinstance,nowhaveFPGAchipsintegratedembeddedprocessor,DSPblocks,embeddedmemoryblocksandotherIPCoreusingtensofmillionsofthedoor.Theysavemorespaceandsolvetheproblemofenergyconsumption.

Basedonabove,theresearchbaseonthecorechipdesignanddevelopmentofwebserver,combiningthecharacteristicofeasytoimplement,easytotransplantandsmallercodeofusing8051coreinFPGAwiththecharacteristicoffastspeedoftheFPGAhardware.Theresearchcanusehardware-acceleratedandsoftware-controlledtoimplementthesystembasedonwebservices.

Throughexperiments,thebasicEthernetprotocolisimplementedonFPGAapplicationlayer,whichcanaccesstotransmitinformationbyHTTPprotocol.Thecodeimplementedissmallandfast,anditisbeneficialtodevelopthechipandwidelyusethetechnologyinourdailylife.

Keywords:

WebServer,TCP/IP,FPGA,8051core

第一章绪论

1.1研究背景和研究意义

在信息技术高速发展的今天,人们越来越依赖互联网技术给我们带来的方便与快捷。

很多大、小型系统开始接入互联网,实现网络管理与操作。

当前,无论在企业网、园区网还是在广域网如Internet上,业务量的发展都超出了过去最乐观的估计,上网热潮风起云涌,新的应用层出不穷,即使按照当时最优配置建设的网络,也很快会感到吃不消。

尤其是各个网络的核心部分,其数据流量和计算强度之大,使得单一设备根本无法承担。

为了提高计算机系统的处理能力和计算强度,以满足当前业务量的需求,一般的办法是利用多台基于服务器或者PC机器通过交换机的方法实现网络带宽的增加以及业务的增长。

这种方法预想使业务量不会出现一台设备过忙、而其他的设备却没有充分发挥处理能力的情况。

但我们不能过于乐观:

这种方式需要的功耗随着业务的增加也越来越大,而业务量却在每日剧增,因此对空间以及能源的消耗成为其发展的瓶颈。

FPGA是一类高集成度的可编程逻辑器件,起源于美国的Xilinx公司,该公司于1985年推出了世界上第一块FPGA芯片。

在这二十年的发展过程中,FPGA的硬件体系结构和软件开发工具都在不断的完善,日趋成熟。

从最初的1200个可用门,90年代时几十万个可用门,发展到目前数百万门至上千万门的单片FPGA芯片,Xilinx、Altera等世界顶级厂商已经将FPGA器件的集成度提高到一个新的水平。

FPGA运行速度快;管脚多,容易实现大规模系统;内部程序并行运行,有处理更复杂功能的能力;并且由于大量的软核,可以方便进行二次开发。

目前,FPGA各公司通过各种新工艺和技术大大降低了FPGA的功耗,使得FPGA在各方面都有很强的竞争力。

因此,本课题采用了Xilinx公司的Virtex-5ML507FPGA实现Web服务器来克服由于业务量增长而带来的功耗增加的问题。

随着IP核应用领域的不断扩展,可编程芯片的规模化,从而使得将数字电子系统集成到一块芯片上变成可能,同时IP核的重用性,使得开发风险降低,周期变短[1]。

而8051核,是即通用又控制简单的IP核。

克服了传统8051本身固有的缺点,在最高时钟频率、稳定程度、指令的执行效率、易于升级、易于扩展使用等诸多方面都有了很大的提高,为基于FPGA的操作带来更小的代码、更高的性能。

现在有许多免费的8051核可以利用,这些核都可通过硬件描述语言来实现,并且基本上可以综合,能拿来直接使用。

需要的只是根据自身的具体要求做一些简单修改即可。

特别是8051中TCP/IP的实现较为成熟,有利于我们在FPGA的8051核中实现相应的功能。

并且为之后做芯片提供了有利条件,也更促进了基于FPGA的Web服务器的推广。

1.2国内外研究和发展现状

对于用FPGA的方式实现Web服务器的功能,达到PC与FPGA通过以太网络连接,国内外有不同的研究方式。

多见于使用嵌入式的方式:

RajendraPatel团队用PowerPC的处理器在VirtexII的开发环境下嵌入Linux操作系统,并使用100Mbps以太网核用于目标板的接口[2]。

在XilinxPlatformStudio中开发硬件平台,实现了外设的远程访问;华盛顿大学的JamesMoscola在FPX(Field-ProgrammablePortExtender)的平台上用XilinxVirtexE-8FPGA实现了网络应用层分析[3];国内海军工程大学及中南名族大学实现的Web服务器是基于FPGA和SOPC(SystemOnProgrammableChip,可编程的片上系统)技术的NiosII软核处理器,在Altera公司的EP1S40F780CFPGA中实现嵌入式服务器;也有的基于Xilinx的MicroBlaze软核实现嵌入式Web服务器。

以上的解决方案各有千秋,为了有更好的性能并能为后期开发成芯片,本文提出了用FPGA中的8051核实现TCP/IP及HTTP协议功能,在XilinxVirtex-5ML507FPGA中实现Web服务器的功能。

8051中实现的代码较小、调试方便、便于移植并结合XilinxVirtex-5ML507功耗低、资源多,硬件速度快的特点,有利于实现性能高,功能强大的Web服务器。

1.3主要研究内容

本课题主要利用FPGA中的8051核实现TCP/IP及HTTP协议及FPGA逻辑实现物理层、MAC层及相应接口的连接,最终在XilinxVirtex-5ML507FPGA中实现以太网应用层的服务。

简单的应用结构如图1-1所示:

图1-1FPGAWeb服务器简单应用结构图

(1)理论部分:

对Web服务器的概念及TCP/IP工作模型有一定的了解,清楚以太网中的通信流程及以太帧的结构,对TCP/IP各层协议有一定了解,特别是对应用层的超文本传输协议HTTP有进一步的研究。

在FPGA中,对FPGA的IP核的发展及应用有一定了解,特别对8051IP核进行深入的研究。

(2)软件部分:

由于要使用FPGA中的8051核,直接在分配的ROM里写入代码不利于软件的调试。

因此首先要在现有的单片机开发平台中实现TCP/IP协议及HTTP协议功能,经过调试后移植到FPGA的8051核中。

这里我们在Keil软件中编写Web服务器的C语言程序,主要针对应用层的设计,并涉及到HTML语言的网页设计内容。

逻辑语言主要是在Xilinx的ISE软件中用Verilog语言设计底层的接口通信。

主要是实现以太网控制器的功能。

(3)硬件部分:

采用XilinxVirtex-5ML507开发板,即最终实现Web服务的开发环境。

它支持70,000多个逻辑单元,以太网符合IEEE802.3-2002规范,使用RocketIOGTP收发器的全单片1000Base-X解决方案,通过使用软逻辑和RocketIOGTP收发器的SGMII,支持到外部PHY器件的连接,通过软逻辑和SelectIO资源支持多种外部PHY连接(RGMII、GMII等)接口,支持巨型帧。

1.4论文结构

针对以上论文内容的阐述,本论文的组织结构安排如下:

第一章主要介绍了本课题的研究背景以及在该背景下用FPGA实现Web服务器的好处及当下国内外实现的现状,同时介绍了本课题研究的主要思想。

基于FPGA的Web服务器运用8051核来实现TCP/IP协议栈不仅现有的相关技术较为成熟、代码小、FPGA资源多、速度快,而且有利于移植、开发芯片等。

第二章主要提供了Web服务器的概念、对以太帧的传输及帧的结构有一定的介绍,为课题的实际操作提供了理论依据。

第三章主要针对设计的Web服务器所用的TCP/IP协议的概述,结合Wireshark实际抓取的以太帧重点对ARP、IP、TCP、HTTP等协议进行分析。

并渗透了HTTP中GET与POST的请求方式的概念。

第四章主要介绍本课题的FPGA开发环境XilinxVirtex-5ML507,及其IP核的发展。

重点介绍FPGA的8051IP核及本课题中用到了INVENTRA™公司的M8051及其好处。

第五章主要介绍了本课题如何利用C语言实现Web服务器的功能,重点描述了应用层网页的设计、HTML语言详细设计分析和HTTP协议的工作流程。

第六章介绍了TCP/IP协议及相应功能移植到XilinxVirtex-5ML507的8051核中,结合逻辑实现的底层设计最终实现FPGA的以太应用层服务。

并对实验的最终结果进行展示,分析资源利用率。

第七章对本文总结,一对所作的工作进行总结,二提出了研究的不足之处并对课题进行了展望。

第二章以太网Web服务器

2.1通用Web服务器简介

WEB服务器也称为WWW(WORLDWIDEWEB)服务器,主要功能是提供网上信息浏览服务。

WWW采用的是浏览器/服务器结构,其作用是整理和储存各种WWW资源,并响应客户端软件的请求,把客户所需的资源传送到Windows95(或Windows98)、WindowsNT、UNIX或Linux等平台上。

比较流行的Web服务器有微软的IIS(InternetInformationServer)及Apache的服务器。

Web服务器可以解析(handles)HTTP协议。

当Web服务器接收到一个HTTP请求(request),进行处理(GET方式、POST方式)会返回一个HTTP响应(response),例如送回一个HTML页面。

为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamicresponse)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServerPages)脚本,servlets,ASP(ActiveServerPages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。

无论脚本的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。

Web服务器并不总是为万维网服务使用,他们也可以被嵌在打印机,路由器,网络摄像头设备或仅服务在本地网络。

Web服务器可能会被用来作为系统的一部分来监测或管理设备。

这通常意味着不需要额外的软件安装在客户端计算机上,因为只要有一个Web浏览器就可以了。

2.2基于FPGA的Web服务器

基于FPGA的Web服务器,顾名思义就是利用FPGA芯片上丰富的资源,如软核、硬核等,通过软硬件设计并在单个FPGA上实现通用Web服务器的大部分功能。

在本课题中硬件设计使用的是ISE可编程逻辑器件集成开发环境,提供从设计输入到器件编程的全部功能。

采用Xilinx公司的Virtex5ML507FPGA开发板,并结合开发板上已实现的8051IP核开发Web服务器的基本功能,达到能利用网页直接与基于FPGA的Web服务器进行请求、应答操作。

2.3以太网的概述

2.3.1以太网的简介

以太网(Ethernet)指的是由Xerox公司并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。

以太网是一种使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以传输速率为10Mbps的常用LAN(局域网)标准。

以太网与IEEE802.3系列标准相类似。

IEEE现在支持9种10Mbps标准,6种100Mbps标准,5种1Gbps标准。

表2-1列出了一些常用的以太网类型、电缆选择、支持长度和拓扑结构。

表2-1常用的IEEE以太网标准

传输速率

以太网类型

传输介质

最大网段长度

100Mbps

10Base-5

同轴电缆(RG-8或RG-11)

500米

10Base-2

同轴电缆(RG-58)

185米

10Base-T

UTP/STP3类或者更好

100米

10Base-F

光纤

2000米

10Base-36

同轴电缆(75ohm)

变化

100Mbps

100Base-T

UTP/STP5类或者更好

100米

100Base-TX

UTP/STP5类或者更好

100米

100Base-FX

光纤

400米~2000米

100Base-T4

UTP/STP5类或者更好

100米

1000Mbps

1000Base-LX

长波光纤

变化

1000Base-SX

短波光纤

变化

1000Base-CX

短铜跳线

变化

1000Base-T

UTP/STP5类或者更好

变化

2.3.2以太网帧的结构

在数据链路层,协议数据单元成为帧;在TCP/IP术语中,这些PDU(ProtocolDataUnit,协议数据单元)也可以称为IP数据报,它可以封装在不同的类型的帧中。

本文主要介绍MAC子层EthernetII帧及802.3帧的结构。

(1)EthernetII

EthernetI是由XeroxPARC提出的3MbpsCSMA/CD以太网标准的封装格式,后来在1980年由DEC、Intel和Xerox标准化形成EthernetI标准。

在1982年公布又公布了EthernetII标准,主要更改了EthernetI的电气特性和物理接口,在帧格式上并无变化。

EthernetII帧头结构为6bytes的源地址+6bytes的目标地址+2Bytes的协议类型字段+数据。

EthernetII帧结构如图2-2所示:

图2-2EthernetII以太帧结构

(2)IEEE802.3

802.3/802.2LLC这是IEEE正式的802.3标准,它由EthernetII发展而来。

它将EthernetII帧头的协议类型字段替换为帧长度字段(取值为0000-05dc;十进制的1500);并加入802.2LLC头用以标志上层协议,LLC头包含目的服务访问点(DSAP)、源服务访问点(SSAP)和控制(Control)字段.IEEE802.3以太帧结构如图所示2-3。

图2-3IEEE802.3以太帧结构

每个字段的详细解释如下[4]:

●前同步码:

由7字节(56位)交替1和0组成,有提醒目的设备有帧传入及建立局域网介质设备间的时钟同步功能。

●帧首定界符(SFD):

是一个8位字段,表示同步码的结束和帧的开始。

它和帧同步码一样,但它以1结束。

●目的地址:

字段是6个8位的MAC地址字段,包含发送帧的目的设备的物理地址。

●源地址:

字段也是6个8位的MAC地址地段,它包含发送帧的设备物理地址。

●长度字段:

是两个8位的字段,包含帧长度字段的字节数。

长度字段的值范围从0X0000到0X05DC。

●LLC:

包含目的DSAP、SSAP和Control字段。

●数据字段:

是帧的有效负载,它可以是LLCPDU,也可以是一个或多个上层协议,如:

ARP或IP,以及TCP或UDP。

以上两种帧的格式封装进行比较如图2-11所示:

图2-11EthernetII和802.3帧的封装

两者的区别主要在于802.3多加了LLC帧头结构,这是为了使数据链路层能更好地适应多种局域网标准,将局域网的数据链路层拆成两个子层:

逻辑链路控制LLC(LogicalLinkControl)子层和媒体接入控制MAC子层(MediumAccessControl)子层。

2.4本章小结

本章先对通用的Web服务器进行介绍,引出我们要设计的基于FPGA的Web服务器。

本章重点介绍了以太网的类型并对EthernetII及IEEE802.3两种以太帧进行了介绍并对比了它们的不同。

为下一章通过实现TCP/IP协议,发送各形式的以太帧的分析奠定了基础。

 

第三章Web服务器相关协议及实现

支撑基于FPGA的Web服务器工作的两个主要的协议就是TCP/IP协议和HTTP协议。

TCP/IP协议是计算机通过Internet互联的基础,而HTTP引擎是Web服务器的核心技术。

3.1TCP/IP协议

3.1.1TCP/IP协议概述

传输控制协议/网际协议(TransmissionControlProtocol/InternetProtocol,TCP/IP)是网络中使用的基本通信协议。

虽然从名称上看TCP/IP包括两种协议,即传输控制协

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1