嵌入式web服务器的实现

时间:2022-08-25 07:57:14

嵌入式web服务器的实现

摘要:介绍一种嵌入式web服务器的设计方案。该系统采用Altera公司的Cyclone1C20的平台及软核NiosII,采用uClinux操作系统配置成嵌入式服务器 。该服务器能支持工业设备、家用电器连入互连网,具有成本低、设计简单、容易升级,并具有很好的动态web页面功能。能很好地满足家用电器和工业设备接入互联网的需求。

关键词:嵌入式Web服务器;NiosII cpu;uClinux操作系统;CGI

中图分类号:TP368文献标识码:A文章编号:1009-3044(2008)34-1865-02

Embedded Web Server Based on Nios II

SHU Bin1,2

(1.Jiangsu University, Zhenjiang 212013, China; 2.Zhenjiang College, Zhenjiang 212003, China)

Abstract:A embedded web server design is presented in this paper. In this system, a CYCLONE1C20 is applied as a control unit.An NIOS II embedded system is built on FPGA. An uClinux operation system is transplanted to it. With the embedded web server, the function of long-distance real-time monitor is successfully realized. Server can support the industry equipment and information appliance to access into Internet.It is low cost,simple design and easy to upgrade.

Key words: embedded web; niosⅡcpu; uClinux; CGI

1 引言

随着计算机、通信、自动控制、微电子等技术的发展,电器设备上网已经成为现实。与传统的单片机相比,嵌入式设备重要的突破之一就是解决了设备和internet的互连问题。近年来,嵌入式技术飞速发展,种类繁多、功能强大的CPU和片外连接,为网络应用提供了稳定、可靠的硬件环境;嵌入式操作系统对这些硬件和以太网也有很好的支持,操作系统的移植大为简化,这些就为嵌入式web服务器的实现提供了方便。嵌入式web服务器将监控系统中的各种协议的数据转换成统一的TCP/IP协议格式,以便用户通过以太网远程访问web服务器,实现对设备的监控。

该文结合快速发展的嵌入式技术,给出了一种基于嵌入式网络化远程监控系统的web服务器实现方案。它采用uClinux操作系统,通过CGI实现了管理人员通过对网页上的表单和按钮的操作来对对象的远程测量和控制。

2 系统的硬件组成

一个完整的嵌入式Web服务器(Embedded Web Server,EWS)硬件系统以具有Web通信功能的嵌入式微处理器为核心。硬件结构图如图1 。

图1 硬件结构图

根据网络服务的要求,选用:

1) Altera公司的CYCLONE1C20,其性价比高,支持Nios II,芯片有20060个逻辑(LE)单元数,64个存储容量为4K的RAM块(128×36位),2个锁相环, 最大用户I/O引脚达301个。

2) SRAM:两个256K×16位的异步SRAM器件(IDT71V416S)作为系统的通用数据存储器。

3) SDRAM:16MB带PC100功能和自刷新方式的SDRAM器件(MT48LC4M32B2)作为系统内存。

4) Flash:8MB Flash存储器件作为系统程序存储器。

5) CF卡:16M的1型Compact Flash(CF)卡,作系统硬盘。

6) 以太网接口:选用LAN91C111。

7) 串口:其电平经过MAX232转换后形成RS232总线。

在QUARTUS II软件中,通过在SOPC Builder系统中添加合适的CPU内核、存储器以及模块就可以构建Nios II系统了。本系统中需加入的主要部件包括:Nios II标准内核、SDRAM接口、SRAM接口、FLASH接口、CF卡接口、多个串口模块、JATG接口等。添加完毕后,系统会自动生成Nios II CPU。在QUARTUS II开发环境中对该CPU进行编译,并分配FPGA引脚后,就可以启用QUARTUSII自带的编程器将CPU下载到FPGA中了。

3 系统的软件层及关键技术

软件结构可分为设备驱动程序、uClinux内核以及系统应用程序三部分。其中设备驱动程序位于最低层。用于驱动控制各个设备。uClinux内核是操作系统的核心。它除了完成进程调度、内存管理等功能外,还集中管理设备的驱动程序,为系统应用层提供统一的编程接口,从而简化了用户应用程序的编写。最上层是应用程序层,也是用户与系统的交互接口。

3.1 ?滋Linux操作系统移植

Microtronix 公司专门为Nios II处理器提供了?滋Linux操作系统。uClinux的内核要比原Linux 2.6内核小的多,但却保留了Linux 操作系统的稳定性、优异的网络能力及多文件系统支持等主要优点。在PC机上安装Microtronix Linux软件后,就可以在NIOSII IDE开发环境中移植?CLinux操作系统了。操作系统可以分为两个部分:内核和文件系统。在配置内核的时候,加入的相应的设备驱动。在Nios II IDE中分别编译好内核和文件系统后即可将它们的二进制文件下载到FLASH中。

3.2 嵌入式Web服务器配置

采用uClinux操作系统下的Boa作为测控系统的嵌入式Web Server。Boa是一个单线程的HTTP服务器,它不同于其它传统的Web服务器,它不为每个连接创建一个进程,只有当CGI程序运行时才创建一个新的进程。另外,Boa体积非常小,通常只有几十K字节,非常适合于嵌入式系统中使用。因此系统通过移植Boa来实现Web服务器功能 。根据具体情况,对Boa做相应的配置修改。主要有:

l) Document Root及ChRoot更改为mnt/ideo/www,此目录为boa服务器所使用的目录。

2) Alias选项中添加: “mnt/ideo/www”这样可以省略服务器文件夹的绝对路径,增加了系统的安全性。

3) 同样为了增加CGI脚本的安全性同样要进行映射,即修改“ScriptAlias”选项:“mnt/ideo/www/cgi-bin”。

在Nios II IDE中修改后保存此文件,在经过编译之后,将文件系统下载到Flash中。则下一次运行的时候,修改内容就会生效。

3.3 CGI技术

CGI是人们在寻求Web服务器与客户机之间信息简单交互的过程中形成的一个公用的标准。在嵌入式Web开发中,可以使它作为服务器应用程序和处理函数之间的一个接口。要使用CGI程序,一般使用HTML中的FORM结构:内容其METHOD属性指明提交数据的方法(POST或GET),由ACTION属性指定相关的CGI程序。处理表单的CGI程序主要包括3部分,即数据输入、数据处理和处理结果输出。

上一篇:基于ISD2560的公交车报站系统的模拟设计 下一篇:浅谈无线局域网安全的发展