基于可编程逻辑器件实现Web服务器的应用设计

时间:2025-04-28  作者:Diven  阅读:0

1 引言

基于可编程逻辑器件实现Web服务器的应用设计

嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,是计算机技术、通信技术、半导体技术、微电子技术、语音图像数据传输技术等先进技术和具体应用对象相结合后的更新换代产品,具有可靠性高,成本低,体积小,功耗少的特点,可应用于家电、工业、通信、国防等领域。FPGA(Field Programmable Gate Array,现场可编程门阵列)是电子设计领域中最具活力和发展前途的一项技术,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用来实现,FPGA在嵌入式系统中的应用越来越。随着Internet技术应用到各种嵌入式系统中的不断发展,网络化的嵌入式系统的研究和应用也倍受关注。B/S(Brower/Server)模式现在已经成为流行的开发模式,B/S访问模式是WEB Server和Browser之间的直接访问,客户和服务器间的中间节点不对HTTP请求及响应做任何操作,只需在客户端采用如IE这样的浏览器对服务器上的数据进行浏览,不用开发客户端程序。采用B/S结构具有分布性特点,可以随时随地进行业务处理;系统维护或升级只在服务器端,对客户端无须进行改动,只需要改变服务器端网页,即可实现所有用户的同步更新,易于维护和升级;开发简单,共享性强。研究在FPGA上实现嵌入式Web服务器(Embedded Web Server, EWS)很有必要。

2 WEB相关技术

Web全称为World Wide Web,缩写为WWW,通过HTTP协议以及超文本(Hypertext)技术将各种各样的信息资源组织在一起形成一个巨大的多媒体信息网。Web系统的工作过程大致可以归纳为以下几个步骤:

① 用户启动浏览器,并在浏览器中指定一个 URL,浏览器向该URL所指向的Web服务器发出请求。

② Web服务器接到请求后,解析请求,如果URL所指向的是普通的HTML文档,Web服务器直接将送给浏览器。HTML文档中可能包含有java、javaScript、ActiveX、VBS等编写的小应用程序,服务器也将其随HTML一起传送到浏览器,并在浏览器所在的机器上运行。

③ 如果HTML文档中嵌有CGI程序,Web服务器就运行CGI,并将结果以HTML格式传送至浏览器。

2.1 HTTP

HTTP(超文本传输协议)是Web服务器用来与浏览器通信的协议,HTTP规定了发送和处理请求的标准方式,规定了浏览器和服务器之间传输的消息格式及各种控制信息,从而定义了所有Web通信的基本框架。工作于网络应用层,HTTP协议的详细说明可以在网上查阅RFC2518、RFC2616等文档。HTTP 协议老的标准是HTTP/1.0,目前最通用的标准是HTTP/1.1。HTTP/1.1是在HTTP/1.0基础上的升级,增加了一些功能,全面兼容HTTP/1.0,目前的Web服务器绝大多数都采用了HTTP/1.1。基于HTTP协议的B/S模式的信息交换分四个过程,建立连接、发送请求信息、发送响应信息和关闭连接。HTTP请求消息的格式为:请求消息=请求行(通用信息|请求头|实体头)CRLF[实体内容]。HTTP的响应消息格式为:响应消息=状态行(通用信息头|响应头|实体头)CRLF〔实体内容〕。

2.2 超文本标记语言HTML

HTML是超文本标识语言,是构成Web页面的主要工具,是用于因特网文档的标准标记语言,是由欧洲原子核研究委员会(CERN)创造出的新的计算机语言。HTML是用来格式化WWW页面的一组规则,HTML文本是由HTML命令组成的描述型文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等等,HTML的连接能力可以使文本中的每一个词或图形连接到Internet中相同或不同位置的另一个文本或另媒体信息,用户通过浏览器读取HTML文本并得到相应媒体表达的效果。

2.3 CGI原理

CGI(通用网关接口)是Web服务器与CGI脚本之间的接口标准。其主要功能是在Web环境下,从客户端传送一些信息给Web服务器,Web服务器把接收到的有关信息放入环境变量,然后再去启动所指定的CGI脚本以完成特定的工作,CGI脚本从环境变量中获取相关信息来运行,最后以HTML格式输出相应的执行结果返回给浏览器端。由于用户能传递不同的参数给CGI脚本,所以CGI技术使得浏览器和服务器之间具有交互性。

2.4嵌入式Web服务器

嵌入式Web服务器是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,以Web技术为核心的基于互联网的网络测试和控制设备[2,3]。

2.5 FPGA的Nios II软核处理器

NIOS II嵌入式处理器是Altera公司于2004年6月推出的第二代用于可编程逻辑器件的可配置的软核处理器,性能超过200 DMIPS。NIOS II采用了基于RISC架构的32位指令集,能与用户逻辑相结合,使用Altera 公司的Quartus Ⅱ软件以及SOPC Builder 工具,可以将NIOS Ⅱ处理器嵌入到系统中,编程至Altera的FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令以及数据缓冲。特别为可编程逻辑进行了优化设计,也为可编程单芯片系统(SoPC)设计了一套综合解决方案。NIOS II处理器系列包括三种内核:是高性能的内核(NIOS II/f);是低成本内核(NIOS II/e);是性能/成本折中的标准内核(NIOS II/s),是前两种的平衡。

NIOS II 处理器支持256 个具有固定或可变时钟周期操作的定制指令;允许NIOS II设计人员利用扩展CPU指令集,最多达256 个用户定义的CPU 指令,通过提升那些对时间敏感的应用软件的运行速度,来提高系统性能;基于JTAG边界扫描测试的调试逻辑,支持硬件断点,数据触发,以及片外和片内的调试跟踪;可配置外设达60 多个,提供种类繁多的配置选择,包括以太网、USB、存储控制器等;提供了Berkeley socket API支持IP、ICMP、UDP 和带拥塞控制的TCP、RTT 固件及快速恢复/ 快速重传;支持MICroC/OSⅡ RTOS提供源码的操作系统,支持航空设备RTCA DO2178B 标准的强制要求。

3 嵌入式WEB服务器的设计

3.1 硬件设计

系统的硬件结构如图1 所示。硬件系统的核心是构建于Altera Cyclone中的NIOS II嵌入式软核处理器。NIOS II采用标准内核。通过以太网接口,建立与Internet的联系。以太网接口采用DM9000A。

SOPC Builder组合设置如图2所示。

3.2 软件设计

嵌入式Web服务器和浏览器之间遵循HTTP协议,因此系统的软件结构如图3所示。

HTTP协议的实现是关键。当系统启动后,WEB服务器监听80端口,接受浏览器的请求消息。得到请求消息后,系统根据HTTP的格式进行解码。如果请求得到静止的网页文件,就到保存在FLASH中的文件系统中查找并处理相应的请求。如果请求得到动态的网页信息,执行动态网页生成程序,并把执行的结果返回到浏览器端。由于FPGA上的资源有限,也因为嵌入式WEB的应用系统不像PC机上的WEB服务器的要求那么高,所以动态网页生成程序只需要完成必需的功能就可以了。为了方便系统对浏览器请求的解析,我们采用如下方式:静态的网页文件我们统一采用后缀为HTML的文件保存在Flash中,文件系统采用只读的ZIP文件系统;动态的网页文件的请求我们采用后缀为JSP的格式。当解析请求为请求得到HTML格式的文件时,我们返回静态的网页文件;当解析请求为请求得到JPS格式的文件时,我们把请求的参数生成网页文件,返回到浏览器端;如果不是请求以上两种类型的文件,系统返回静态的错误提示网页文件。系统的流程如图4所示。在系统的实现上,应注意配置文件系统,把静态的网页文件压缩到ZIP文件包中,注意压缩时压缩模式选择Store模式,否则会出错。编译后的程序下载到FPGA上,连接好网线,就可以测试了。实验证明达到了预期的要求。

4 结束语

本文分析和介绍了嵌入式Web服务器技术的主要内容,描述了NIOS II嵌入式软核处理器技术,提出了基于FPGA的嵌入式WEB服务器的实现方案。本系统在NIOS II嵌入式软核处理器的基础上,采用MicroC/OS-II实时操作系统,移植LWIP协议栈,在TCP/IP协议的基础上实现了HTTP协议,从而实现了FPGA芯片上的提供静态和动态网页功能的嵌入式WEB服务器,为基于嵌入式WEB的智能仪表、网络测控和远程监控系统提供一个优秀的通信平台。

猜您喜欢

西门子1200的数字输入开关点均提供了增量编码器脉冲信号的快速计数器功能,单相信号达到200KHz,双相信号(可四倍频及判断方向)达到80KHz,对于常用的25...
2019-07-04 17:51:00


QFN(QuadFlatNo-lead)是一种广泛应用于电子元器件的封装形式,因其优良的散热性能和小型化设计而受到青睐。本文将重点介绍QFN6_2X2MM_EP...
2025-02-24 16:50:18

发光二极管(LED,Light Emitting Diode)是能够将电能转化为光能的半导体器件,应用于照明、显示、指示等多个领域。随着科技的进步,LED因其高...
2025-04-06 22:30:03

贴片电阻R050是一种常用的电子元件,其封装尺寸为050,即长0.5毫米,宽0.5毫米。在电路中主要起到限流、分压、阻抗匹配等作用。R050电阻的阻值范围非常,...
2024-11-29 10:25:54

二极管稳压是电子电路中常用的稳压技术,应用于电源管理和信号调节中。利用二极管的特性来保持输出电压的稳定性,尤其在电压波动较大的情况下,能够有效保护电路和设备的正...
2025-03-30 08:00:34

周转推车是应用于仓储、物流和工业生产中的重要工具,主要用于物品的搬运和存储。在市场上,周转推车根据不同的功能和设计,通常可以分为以下几类。按材质分类,周转推车可...
2010-07-17 00:00:00

贴片电阻1002,指的是尺寸为1.0mm x 0.2mm的表面贴装电阻器,以其微小的封装尺寸和优异的性能,应用于各种电子产品中。 的小巧身材能够节省电路板空间,...
2024-11-29 10:25:47

你是否好奇过,电子设备是如何在没有变压器的情况下改变电压的呢?答案就是:电荷泵电路。这篇文章将以通俗易懂的方式,为你揭开二三极管电荷泵电路的神秘面纱。想象一下,...
2024-02-01 00:00:00

安规测试仪作为电气安全检测的重要工具,具有多项显著优势。能够全面评估电气设备的安全性,确保产品符合国际标准和法规要求,降低企业在产品安全方面的法律风险。安规测试...
2015-01-21 00:00:00