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

时间:2025-05-02  作者: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的智能仪表、网络测控和远程监控系统提供一个优秀的通信平台。

猜您喜欢

在现代电力系统中,AC-DC控制器和稳压器是非常重要的配件。AC-DC控制器主要用于将交流电转换为直流电,应用于电源适配器、充电器和工业设备中。通过整流和滤波等...
2010-04-13 00:00:00

防浪涌电阻作为保护元件是非常重要的配件。浪涌电流往往因雷击、电力切换等原因产生,若不加以防护,极易损坏设备。融欣(JACKCON)作为知名的防浪涌电阻品牌,优异...
2015-09-13 22:32:30

贴片电阻是电子元件中最常见的一种,应用于各种电路设计中。0603是贴片电阻的一种封装规格,尺寸为0.06英寸 x 0.03英寸(约1.5mm x 0.75mm)...
2025-03-17 08:00:34

SOT-SC70是广泛应用于电子元件的表面贴装封装技术,因其小巧的体积和优异的性能而受到行业的青睐。随着电子设备向小型化、高性能化发展,SOT-SC70封装在现...
2025-02-21 12:18:49

起重器是用于提升、移动和支撑重物的机械设备,应用于建筑、制造、物流等行业。其基本功能是通过杠杆原理、绳索、链条或其装置,将重物从一个位置移动到另一个位置。起重器...
2016-08-25 00:00:00

在FPGA高速AD采集设计中,PCB布线差会产生干扰。今天小编为大家介绍一些布线解决方案。1、信号线的等长以SDRAM或者DDRII为例,数据线,命令线,地...
2019-03-07 14:52:00

耦合器是重要的机械元件,应用于各类机械传动系统中。主要作用是将动力源与负载之间有效连接,确保动力的传递,同时能够吸收和缓解因负载变化或冲击而产生的震动和冲击力,...
2016-10-03 00:00:00

现代工业制造中,标准化的部件和工具显得尤为重要。PM_11.5X6MM_TM作为特定规格的零部件,因其独特的尺寸和性能,广泛应用于多个领域。本文将为您详细解析P...
2025-02-21 14:12:52

贴片电阻的精密度指的是其实际阻值与标称阻值之间的偏差范围,通常用百分比表示,例如±1%、±5%等。精度越高,偏差范围越小,电阻值就越接近标称值。区分贴片电阻的精...
2024-11-29 10:25:44

在许多行业中,模拟和数字称重传感器是用于精确称重的两种基本传感器形式。目前市场上的大多数称重传感器仍然基于模拟技术,尽管数字称重传感器也已经集成称重过程一段时间...
2023-12-19 10:02:00