基于ARM9的嵌入式Web服务器的研究与应用综述_第1页
基于ARM9的嵌入式Web服务器的研究与应用综述_第2页
基于ARM9的嵌入式Web服务器的研究与应用综述_第3页
基于ARM9的嵌入式Web服务器的研究与应用综述_第4页
基于ARM9的嵌入式Web服务器的研究与应用综述_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录第 1 章 序言 11.1 选题背景 11.2 选题目的及意义 11.3 选题完成情况 2第 2 章 本项目用到的关键技术 32.1 嵌入式系统构建技术 32.2 ARM体系结构技术概述 4第 3章 系统总体结构和硬件设计与实现 53.1 嵌入式硬件环境的介绍 53.2 核心部件选型 53.3 系统硬件模块设计与实现 63.4 硬件开发环境简介 73.5 嵌入式系统开发环境的建立 7第 4 章 系统软件设计与实现 84.1 LINUX2 . 6 内核的移植 84.2 嵌入式文件系统的移植 104.3 以太网驱动程序的移植 11第5章嵌入式WEB艮务器的研究与实现 125.1嵌入式WEB服务

2、器的原理 125.2 Boa服务器工作过程 145.3 CGI工作过程 15第6章 嵌入式WEB艮务器的应用 156.1 无人值守通信机房远程监控系统的应用 156.2 无人值守通信机房远程监控系统的软件设计 166.3 用户管理 186.4 通信机房远程监测系统的实时数据模块 226.5 通信机房远程监测系统的历史数据模块 23第 7 章 实训总结 247.1 实训工作总结与展望 247.2 项目中未完成的工作 24参考文献 25第1章序言1.1选题背景近几十年来,随着嵌入式技术和网络技术,特别是以太网技术的快速发展, 越来越多特定环境现场都需要能够借助于嵌入式系统接入In ternet进行

3、远程监控。嵌入式系统接入玩In ternet成为了当前嵌入式领域研究的热点之一,将 嵌入式Web服务器移植到嵌入式系统后接入In ternet,该嵌入式系统相当于一 个功能齐全的小型Web服务器,在远程即可启动浏览器通过 In ternet获取该 Web服务器发布的信息,进而实现远程实时监视、控制甚至维护。本文以 ARM9 处理器芯片S3C2410A和嵌入式Linux为平台,结合了嵌入式 Web技术和嵌入式 数据库技术,对嵌入式 Web服务器进行研究。1.2选题目的及意义近几十年来,随着嵌入式技术和网络技术,特别是以太网技术的快速发展, 越来越多特定环境现场,比如无人值守的通信机房、大型粮库、

4、电气火灾易发场所等等,都需要能够借助于嵌入式系统接入In ternet进行远程监控。嵌 入式系统通过HTTP协议将现场采集的数据以Wei页面的形式传送到远程计算机 的浏览器上显示,维护人员能够在远程实时监视、控制、调节监控现场。相对 于传统的远程监控模式,基于嵌入式的远程监控系统具有各个模块集成度高、 性能稳定、成本低、体积小等优点。嵌入式系统接入In ternet成为了当前嵌入式领域研究的热点之一。将嵌入 式Web服务器移植到嵌入式系统后接入In ternet,该嵌入式系统相当于一个功 能齐全的小型Web服务器,在远程即可启动浏览器(比如IE)通过In ternet获 取该Web服务器发布的

5、信息,进而实现远程实时监视、控制甚至维护,并且, 这种基于HTML标准化的web用户界面降低了为不同操作平台而定制人机界面的 开发费用、人员培训费用和系统升级维护费用。嵌入式Web服务器接入In ternet后,需要处理来自远程客户端的连接请求 和传输大量的数据,一方面要求嵌入式硬件处理能力更强;另一方面随着传输数 据增多,并且数据类型更加复杂,在嵌入式系统中以文件存储数据的传统存储 形式远远满足不了需求,解决办法是使用嵌入式数据库来存储并且管理数据。 在设计嵌入式系统时使用嵌入式数据库将极大地增强嵌入式系统的整体性能, 缩短嵌入式系统的开发周期,同时借助数据库的安全性检查可以提高嵌入式系 统

6、的整体安全性能。正是基于以上背景,本论文搭建了 ARM嵌入式Linux的嵌入式软硬件平 台,在此软硬件平台之上实现了嵌入式 web服务器Boa和嵌入式数据库SQLite, 采用C语言和HTM设计了一个无人值守通信机房远程监控系统来体现嵌入web服务器和嵌入式数据库的应用。1.3选题完成情况1.3.1嵌入式系统平台的构建嵌入式系统硬件采用S3C241O的嵌入式处理器,主要的外围设备包括:64MB的 SDRAMZMB的 NORFIash 64MB的 NANDFIash以及外扩的DM9OOO1O/1OO以太网控制器。裁剪Linux2.6内核为嵌入式操作系统,移植以 太网驱动程序以及根文件系统的制作。

7、1.3.2嵌入式Web服务器的研究与实现选择Boa作为嵌入式 Web服务器,研究Boa服务器的源码,学习使用 CGI 技术开发Wet应用程序。1.3.3嵌入式Web服务器在无人值守通信机房远程监控系统中的应 用。以一个无人值守通信机房远程监控系统为例介绍了嵌入式web服务器的应用,详细阐述了无人值守通信机房远程监控系统各个模块的设计第2章本项目用到的关键技术2.1嵌入式系统构建技术嵌入式系统是一类特殊的计算机系统,具有功耗低、体积小、集成度高等 特点,通常由嵌入式硬件系统、嵌入式操作系统和应用软件构成。他们之间的 关系如图2-1所示。嵌入式应用软件V嵌入式操作系统文件系统1p1操作系统内核0驱

8、动程序嵌入式便件系统嵌入式处理器外禺设备图2-1嵌入式系统基本结构图在介绍了嵌入式系统的基本结构后,本章以下几小节将首先介绍嵌入式系 统的硬件环境,然后详细介绍嵌入式交叉编译环境的构建,接着阐述了嵌入式 系统软件环境的建立,包括Linux2.6内核的移植、根文件系统的制作、以太网 驱动程序的移植,最后对构建的嵌入式软硬件平台进行了测试。2.2 ARM9体系结构技术概述对于ARM系列,其基本内核是 ARM9TDMI主要有7部分构成。比较最常用的是ARM920T内核。ARM920结构主要部分有:ARM9TDM内核CPUMMUCache协处理器接口、运行跟踪信息接口 (ETM)、JTAG调试接口、总

9、线接口等7部分 构成。外部指令cache接口数据数据 cacheCP150CIS愎数据MMUAKMTDMI酬电吐dICE&JTAt5AMEA 口缓器写冲物理IA地址数据图2-2 ARM920T结构框图ARM猱用哈佛(Harvard)结构,程序存储器与数据存储器分开,提供了较 大的存储器带宽。同时,大多数 DSP都采用此结构。RM9为五级流水(取指, 译码,执行,缓冲/数据,回写),平均功耗为0.7mW/MH。时钟速度为 120MHz-200MHz每条指令平均执行1.5个时钟周期。ARM9S列微处理器包含 ARM920、ARM922和ARM940三种类型,主要应用在手持产品、视频电话、PDA 数

10、字消费产品、机顶盒、家用网关等方面。第3章系统总体结构和硬件设计与实现3.1嵌入式硬件环境的介绍本论文的硬件平台为广州致远电子有限公司的MagicARM2410教学实验平台,它的中央处理器(CPU)是韩国三星公司基于 ARM920内核开发的S3C2410A S3C2410A适用于POS机、手持设备、数字多媒体播放设备等等,具有价格低、 功耗低、性能高等优点。该实验平台主要由微处理器、存储模块、控制模块、 以太网接口模块、USB接 口模块、液晶显示模块、仿真调试模块组成。嵌入式硬件系统由嵌入式处理器和外围设备组成,为嵌入式系统软件运行 提供了物理平台,是整个嵌入式系统的基础。嵌入式操作系统包括文

11、件系统, 操作系统内核以及驱动程序,是整个嵌入式系统的逻辑控制核心。嵌入式操作 系统向上为应用程序开发提供 API接口,向下提供与硬件设备交互的接口,同 时还要管理复杂的系统资源,如内存管理,进程调度等。3.2核心部件选型3.2.1S3C2410 处理器S3C2410处理器是Samsung公司基于ARM公司的ARM920处理器核,采用 0.18um制造工艺的32位微控制器。该处理器拥有:独立的16KB指令Cache和 16KB数据Cache, MMU支持TFT的LCD控制器,NAN闪存控制器,3路UART 4 路 DMA 4 路带 PWM勺 Timer,I/O 口,RTC 8 路 10 位 A

12、DC Touch Screen 接口,IIC-BUS 接口,IIS-BUS 接口,2 个 USB主机,1 个 USB设备,SD主机 和MM接口,2路SPI。S3C2410处理器最高可运行在 203MHz核心板的尺寸仅相当于名片的2/3大小,尺寸如此小巧的嵌入式核心板是 国内首创。开发商可以充分发挥想象力,设计制造出小体积,高性能的嵌入式 应用产品。322 NAND Flash 存储器S3C2410内部有NAND Flash控制器,支持从 NADN Flash启动。图3-1所 示是NAND Flash连接图。S3C2410采用一组内部寄存器来完成 NAND Flash的 操作。CLE ALE n

13、FCE nFRE nFWE R/n BCIEIO1ALEIO2-CEIO3REIO4WEIO5R/BIO6IO7IO816179818729 DATA0 3 DATA1 丁 DATA2 矿 DATA341 DATA4 DATA543 DATA6 44 DATA7图3-1 NAND Flash 连接图3.3系统硬件模块设计与实现与嵌入式Web服务器应用相关的几个模块:微处理器S3C241OA存储模块、 以太网接口模块。3.3.1 微处理器 S3C241OAS3C2410A采用了 ARM公司设计的ARM92O内核,0.18um工艺的CMO存储器单元和标准宏单元。S3C241OAU下丰富的内部设备:

14、16KB的指令Cache和16KB 的数据cache, MM虚拟存储器管理,支持 NANDFIash系统引导,系统管理器, 3通道UART 4通道DMA 1/0端口,RTc, 8通道10位ADq USB主机接口, USB设备接口,2个SPI总线接口以及内部PLL时钟倍频器。3.3.2存储模块S3C24IOA!过外部总线接口扩展了 2片SDRAI和 1片NORFIash其中,SDRAM 使用的是 H师公司的HY57V651620容量为64MB;NORFlash采用的是SST公司 的SST39VF1601容量为ZMB这两种存储器相当于通用计算机的内存条,用来 运行各种程序。NANDFIash(Sa

15、msung公司的 K9F1208)是 S3C2410A通过 NANDFIashBU扩展的一片存储设备,容量为64MB它就相当于通用计算机的硬 盘,用来存放各种数据和程序。53C2410A既支持从NANDFlash启动,又支持从 NORFIash启动,可通过0M(引脚进行选择,当0M前低电平时,系统从NANDFlash 启动;当OM前高电平或悬空时,系统从 NORFlash启动。3.3.3以太网接口模块本实验平台使用DAVICOI公司的DM900C快速以太网控制处理器,该处理器 配备有标准10M/100M自适应,16K大容量的FIFO, 4路多功能GPIQ全双工工 作等功能。MagicARM24

16、1试验箱主板使用16位总线控制DMg00(以太网控制器, 数据总线DATA1DATA与DM900(的SD0SD1接,地址线SA4一 SA4进行了相 应的连接,片选线nGCG与芯片的AEN相连。DM9000以太网控制器的工作基址 为 0X300=3.4硬件开发环境简介硬件平台为广州致远电子有限公司的 MagicARM241教学实验平台,它的中 央处理器(CPU)是韩国三星公司基于 ARM920T内核开发的S3C2410A S3C2410A 适用于POS机、手持设备、数字多媒体播放设备等等,具有价格低、功耗低、 性能高等优点。该实验平台主要由微处理器、存储模块、控制模块、以太网接 口模块、USB接

17、 口模块、液晶显示模块、仿真调试模块组成。3.5嵌入式系统开发环境的建立由于嵌入式系统缺乏足够的系统资源而不能在本机上(目标机)进行开发,因此,嵌入式软件开发形成了自己独特的交叉开发方式。也就是说,在开发者 将软件编写好以后,先在宿主机上采用适合目标机的编译器对软件进行编译, 然后将编译后的可执行程序下载到目标机。如果可执行程序在目标机上不能达 到用户的预期目标,则要在宿主机上对目标机进行相应的交叉调试。嵌入式系 统开发环境一般由如下部分构成:宿主机,目标机,工作站以及将连接网络环境。所谓宿主机,就是进行交叉编译的主机,论文采用的基于32位X86平台的Cen tOS服务器。目标机就是交叉编译后

18、的可执行程序实际运行的环境,也就是 MagicARM241实验平台。根据宿主机与目标机通信的目的不同,他们之间的连 接方式分为三种:以太网连接主要用于嵌入式操作系统内核和根文件系统的下 载;并口连接主要用于 BootLoader的移植和系统的调试;串口连接主要用于 应用软件的调试。通过交换机和网线将工作站、宿主机、嵌入式系统组建成一个小型的局域 网,两两之间能够相互通信,在本论文中,直接操作宿主机不太方便,效率较 低,解决的办法就在工作站安装了 wi ndowsXP系统,通过工作站利用远程联机 软件登入宿主机,这样既解决了操作不便的问题,又能够对宿主机和目标机进 行操作和管理。第4章系统软件设

19、计与实现4.1 Linux2.6 内核的移植由于Linux操作系统的内核源代码是使用 C语言编写的,这使得它具有良 好的可移植性,只需要一些修改就能移植到不同的处理器平台上。同时Linux是一款GNUS准的开源操作系统,用户可以免费下载,并能够依据需要对其进 行修改。所以Linux操作系统成为嵌入式系统开发首选的操作系统。Linux内核2.6版本对53C2410A处理器的支持十分完善,在 S3C241OA处 理器上移植Linux只需要要较少的修改。内核移植主要包括修改内核代码和配 置内核选项两部分,具体移植步骤如下:1、 准备LinuX2.6.28内核源代码。先下载源代码,并解压至/base目

20、录下:#tarzxvflinux-2628.tar.gz- C /base#cd/base/li nux-2.6.282、 内核依据各个分层次结构的Makefile进行编译,首先修改Linux-2.6.28 目录下的顶层Makefile文件,目的是为了修改Linux内核支持的处理器体系结构和指定编译内核所需的编译器。#vi Makefile将 ARCH ?=$(SUBARC修改为 ARCH =arm将 CROSS_COMPILE ?=修改为CROSSCOMPILE =/usr/loc3.4.1/bi n/arm-li nux-3、因为MagieARM241的BootLoader已经对Nandf

21、lah进行了分区,要避 免LinuX内核再次对Nandnah进行分区。#vi arch/arm/Plat-s3c24xx/co mmon-smdk.c/找到如下数据结构Static structPlatform-device_i nitdata*smdk-devs=&s3c_device_nand, 注释掉或者删除该语句,防止Linux对nandflash行二次擦除和分区&smdk_led4, &smdk_led5, &smdk_led6, &smdk_led7,;4、修改BoadLOader中的para.bin 文件将其中的ttySO改为ttySACO,要 通专门修改param.bin的软件

22、来完成.5、 配置内核。在配置内核前,先拷贝S3C2410朋发板的默认配置到内核 目录下,以简化配置过程。#cp arch/a nn/eon figs/s3e2410_defc on fig.c onfig#make menuconfig/以下是配置内核的主要选项。Gen eralsetuP-*C on figuresta ndardkernelfeatures(forsmallsystems)-SystemTyPe-s3C2410Maeh in es-*SMDK2410/A9M2410Boot oPti on s-将(root=/dev/hdal ro i nit=/bi n/bashcon

23、 sole=ttySACO)Defaultkernelcommandstring 改成(root=/dev/ram rw ramdisk=4096console=tty0console=ttySACO , 11520ON8)Default kernel commandstringNetwork device support-Ethe net(IOorlOOMbit)-v*DM9000support 支持 DM900C网卡Ge neric Media In depe ndent In terface device supportFilesystems-Ker nel autom oun ter

24、supportKemel autom oun ter versi on 4 support(also supports V3)Pseudo filesystems-*Virtualmemory file system support(former shm fs)Network FileSystems-NFSfilesystemsupport*Root filesystem on NFS保存退出,产生.config文件。6、编译内核。#make zlmage编译完成以后,会生成内核镜像文件 /base/li nux-2614/arch/arm/boot/zlmage,透过串口将这个文件下载到目标

25、机上。重启目标机就会看到Linux内核启动画面。4.2嵌入式文件系统的移植在嵌入式系统中,当嵌入式Linux内核运行以后,需要加载合适的文件系 统,用于管理、组织各种文件。常用的嵌入式系统文件包括Cramfs文件系统、Yaffs文件系统和JFFSZ文件系统等。嵌入式Linux系统中的文件系统常常采 用树型结构,如图4-1所示为本系统采用的Cramfs文件系统的组织结构。在Linux系统中,包括硬件设备在内的一切都以文件的形式存在。整个文 件系统挂载在根目录(/) 上,然后根据不同的分类以树形组织在一起。下面简要介绍一些重要的目录。1) 整个文件系统的挂载点。2) .bi n: 般用户可执行的命

26、令。3) /sbin 超级用户(root)可执行的命令。4) /etc: 一些服务和程序的配置文件,比如 res,li nuxrc 。5) /dev:包括系统的硬件设备文件,比如null.console 。6) /Proc:不占用硬盘空间,在系统启动时由系统维护,存放一些系统的信 息,比如cpu,内存,NandFlash的使用信息。4.3以太网驱动程序的移植前面已经制作好了内核和文件系统的镜像文件,接着将它们下载到实验平 台,但发现无法获取IP地址,也ping不通宿主机。然后在/Proc目录下也找 不到网络设备,所以可以推断主机无法识别网络设备,也就是没有相应的以太 网驱动程序。为了以后进行嵌

27、入式 Web服务器的研究和开发,移植以太网驱动 程序十分重要。本系统平台外扩了一路10/100MPS以太网接口电路,该电路的核心芯片是 DAVICOC公司的DM9000自适应网络芯片。图 4-2为DM900C和S3C2410A处理器的电路连接示意图。下面主要介绍与以太网驱动移植的相关的端口连接。S3C2410A勺 16 根数据总线 DAIA0- DATA15f DM9000芯片的 SDX SD15相连;片选线与 DM9O0的 AEN相连,CMD连接S3C2410A勺地址总线 ADDR由 s3c2410A 的说明文档可查地址和数据端口地址分别为 0x18000000和Ox18000004;EEC

28、拉高:16bit模式;EECK拉高,INT连接到2440EINT7:INT脚为低时为有效中断信 号,中断线为 EINT7,EEECS EEDO EECKJl脚悬空。S3C2410ADM9000VDD33DATA0.15 nOE nEW ADDR2 nGCSS ErNTO NSS-SPIOSD0J5】ORL1NKACTJOWDUPCMDSPEEDAEN1TMT科I RSTRX1+TPIN+RXbTPIN-TX-EECSTXO+TPOUT+ RX*EEDITXO-TPOUT- RX-EEDOEECK图4-2DM9000和说额S3C2410A处理器的电路连接示意图RJ45有了以上对硬件接口的分析,移

29、植以太网驱动程序就比较简单了。以太网 驱动程序的移植通常包括以下几步:网络设备的初始化,网络设备向内核注册, 网络设备收发数据,网络设备的内核移植。下面详细介绍DM900C驱区动程序的移 植。1)DM9000的初始化。DM9000的初始化包括地址注册的物理地址,数据注 册的物理地址以及DM9000中断注册的物理地址。在linux 2.6.29/arch/arm/plats3c24xx 添加了 三 个结构 my_dm9000_resource, my_dm9000_platdata,my_device_dm9000 用于 DM90009的初始化。2) 注册DM9000到内核。在arm/arm/m

30、ach-s3c24l0/devs.h 文件中添加如 下一行:extern struct platform_device my_device_dm9000;在 arm/arm/maeh_s3e24l0/maeh_smdk24l0.c 文件中的 *smdk2410_devices_initdata 添加 &s3c_device 处 dm9000。3)网络设备收发数据先在内核自带的DM900C网卡驱动源码driver/net/dm9000.c中添加下面必要的头文件和宏定义。接着利用for循环设置芯片MAC地址,最后使能DMg000 的中断。4)设备驱动程序加载到内核这步比较容易,在内核编译配置选项中

31、,driver-net-10/100M net-DM9O00support选项选中,然后重新编译,最后将包含DM900C驱动程序的内核下载到系统。第5章嵌入式Web服务器的研究与实现5.1嵌入式 Web服务器的原理以ARM9处理器芯片S3C241OA口嵌入式Linux为平台,结合了嵌入式 Web 技术和嵌入式数据库技术,对嵌入式 Web!务器进行研究,选用Sams ung公司 的S3C2410A处理器和嵌入式Linux操作系统,搭建了嵌入式 Web务器所需要 的软硬件平台。构建了嵌入式 Web服务器的软件平台,包括内核、文件系统以 及以太网驱动程序设计,编译后将他们下载到目标板上调试、 运行。

32、嵌人式Web 服务器采用Browser/Server的方式来工作,在这种工作方式下,客户端要有 一个浏览器程序,而服务器端则需要有一个 Web服务器。客户端可以使用浏览 器来访问Web!务器,并可通过网页来进行相应的设置和操作。嵌人式Web服务器的核心部分是通过boa实现的,而应用程序接口模块则 采用CGI来实现。对嵌入式 Web服务器Boa的源码进行了深入的分析,也分析 了嵌入式数据库SQLite的体系结构、API接口,最后成功将嵌入式Web服务器 技术和嵌入式数据库技术应用于无人值守通信机房远程监控系统。当Web浏览器发送一个HTTP青求给Wet服务器,如果Web!务器判断这个请求为动态请

33、求, 自己不能处理,就将这个请求提交给CGI程序处理,CGI程序将请求的有关数据设置成环境变量,然后在 Web服务器与CGI程序之间建立标准输入输出两条 通道,CGI程序通过标准输出将处理结果返回给Web服务器,Web服务器再将处理结果会送到客户端并用浏览器进行显示。Boa服务器支持CGI。根据需要,编写各种控制程序,实现数据的动态交互。 将Boa源码移植到目标板上,首先要使用交叉编译工具将Boa源码编译成目标板 上可运行的程序。具体做法为,在源码下运行而Configure命令来得到MakeFile 文件,然后修改MakeFile中的编译工具,将其改为宿主机的交叉编译工具,如CC =/usr/

34、local/arm/2.95.3/bin/arm- linux - gccCPP =/usr/local/arm/2.95.3/bi n/arm- linux - gcc -E然后在宿主机上进行编译,得到目标板上可运行Boa。编译后的可以编译到 内核,也可直接将其下载到目标板上。要使得 boa能够运转起来,还需要对配置 文件boa.conf进行相应的配置。主要的配置选项包括侦听端口Port。访问日志AccessLog;错误日志ErroeLog;存放HTM文件的根目录DocumentRoo等。配置好 boa.conf后,就可将相应的文件按照配置好的路径进行存放。这样就可正常运转 起来。CG是 W

35、eb艮务器与外部扩展应用程序交互的一种标准接口。在设计Web艮务器时,可以根据CG标准来编写相应的扩展程序,以实现客户端与服务器间的动 态互。5.2 Boa服务器工作过程Boa服务器的工作流程如图5-1所示,在Boa服务器启动以后,首先进行 Web服务器的初始化工作,包括创建环境变量、创建TCP套接字、绑定端口、开始侦听、进入循环结构,以及等待接受客户端浏览器的请求。当客户端请求 到来时,Boa服务器验证客户端的请求能否通过,若不能通过验证,则丢弃客 户端的请求,继续侦听客户端的请求;否则接受请求。接受数据包请求以后,Web 服务器分析客户端的请求,解析请求的方式,若为静态页面请求Web服务器

36、调用init get()函数进行处理;若为CGI动态请求,web服务器调用init_get() 函数进行处理,将结果放回给客户端的浏览器,完成处理后,关闭与客户端的 TCP连接,返回等待客户端的请求。处理静态页面请求的init get ()函数的基本执行流程。init-get() 函 数首先会取消cGI环境变量,获取文件req 一pathname的信息,并且根据req 结构更新文件信息,然后将数据写入 req 一datasemem process-get ()函数 完成的功能为将request结构中的datae-men字符串返回套接字并在用户浏览 器上显示相应的内容。图5-1Boa服务器的工作

37、流程图5.3 CGI工作过程CGI是外部扩展应用程序与 Web服务器交互的一个标准接口,遵循 CGI标 准的外部扩展应用程序能够处理 Web客户端与Web服务器之间的动态交互,这 样扩展了 Web!务器的功能,丰富了对网络的使用。CGI的工作原理如图5-2所示,当Web浏览器发送一个HTTP请求给Web服 务器,如果 Web服务器判断这个请求为动态请求,自己不能处理,就将这个请 求提交给CGI程序处理,CGI程序将请求的有关数据设置成环境变量,然后在 Web服务器与CGI程序之间建立标准输入输出两条通道,CGI程序通过标准输出 将处理结果返回给Web服务器,Web服务器再将处理结果会送到客户端

38、并用浏 览器进行显示。图5-2CGI的工作原理图第6章嵌入式Wet服务器的应用前几章搭建了嵌入式系统的软硬件平台,实现了嵌入式Web服务器以及嵌入式数据库系统。本章以设计一个无人值守通信机房远程监控系统为例来介绍 嵌入式Web!务器的应用。6.1无人值守通信机房远程监控系统的应用无人值守通信机房远程监控系统的总体设计如图6-1,本系统采用总线进行集中控制,嵌入式 Web服务器负责上下级模块、数据处理、储存等等。机房 供电监测模块负责监控电网运行情况和后备电源(UPS)的状态,通过电压互感器、电流互感器来获取交流电的各项参数。机房安全监测模块负责处理机房内 环境的监测和控制,通过多传感器负责收集

39、机房的各种环境参数,包括温度、 湿度、门窗开/关状况。这样能发挥各个传感器的优势,全方位的集信息,尽可 能地消除信息的不确定性。维护人员可以在远端通过浏览器访问本嵌入式Web服务器发布的信息,进而实现对无人值守通信机房的远程监控。 基于嵌入式Web 服务器的无人值守通信机房远程监控系统运行稳定,该系统具有较好的人机交 互界面,实现了对无人值守通信机房的温度、湿度、门窗开关状态、电机状态 等参数的远程监控,达到了预期的设计目标。6.2无人值守通信机房远程监控系统的软件设计本软件设计是基于嵌入式Linux操作平台,采用目前流行的B/S (browser/server) 结构,采用C编写CGI应用程

40、序,后台为sQLite数据库。数 据库接受客户端的服务请求,把处理结果或是中间数据返回给客户端,保存这 些信息。嵌入式 Web服务器和前端模块通信,获取机房的各种信行状态,把所 有的运行状态保存在内存区域中,并把这些信息写入sQLite库中。按远程监控系统的功能可以将系统划为如图6-2所示的5个模块,分用户管理模块、供电检测模块、安全监测模块、历史数据模块和退出系统。图6-2无人值守机房远程监控系统的软件设计框图6.3用户管理用户管理模块用于管理登入无人值守通信机房远程监控系统的各个用户及 其密码,包括添加、删除、查询、修改密码等功能。当用户想要登入本远程监 控系统时必须要通过密码安全验证,进

41、而提高了整个系统的安全性能。631测试登录用户验证用例通信机房远程监控系统包含管理员和一般用户两种用户权限,整个用户登 录验证的流程图如图5.3所示。本系统只需要一个管理员 Admin,当用户向Boa 服务器发送登录请求后,Boa服务器调用后台的CGI程序,CGI程序首先检查登 录用户是否为管理员(Admin),若登录用户为Admin,则比较登录密码是否与表 Adminlnfo中Paasoword栏数据相同,若相同,以管理员身份登录。若登入用 户不为Admin,则CGI程序会查询Userinfo表中User-ld 看是否有与登录用 户相同的记录,接着比较登录密码是否与相应Password栏数据

42、相同,若相同,以一般用户身份登录。如果以上过程中出现用户名或者密码错误,CGI程序会返回相应的出错信息给客户端浏览器。用户登入通信机房远程监控系统的页面 如图6-3所示。632测试登录用户验证过程、乙*慣4VJk, ,JJ1 + 1i w钾砂tn*%i *5宦.i *Zll 皆.通信机房远程监控系统tit图6-4通信机房远程监控系统登录页面633测试添加用户用例添加记录使用INSERT语句删除数据库表中相应的记录,并将返回客户端浏览器是否添加记录成功,添加用户页面如图6-5所示。图6-5添加用户页面20634测试删除用户用例删除用户使用DELECTS句删除数据库表中相应的记录,并将返回客户端浏

43、 览器是否删除记录成功。删除用户页面如图 6-6所示。图6-6删除用户页面635测试查询用户用例查询用户使用SELCET5句从数据相应的表中查询适当的记录,然后将该记录返回到客户端浏览器上显示。查询用户信息页面如图6-7所示。StU査询用户=輩磴-5r* T各*h 二二636测试密码修改用例当CGI程序接收到用户两次输入新密码以后会根据两次输入密码是否为六位以及两次输入密码是否相同这两个条件来验证密码的合法性,若满足了这两 个条件则将新密码写入数据库的表中,下次登录就可以使用新密码。反之,返回客户端相应的出错提示。密码修改的具体流程如图6-8所示。修改密码页面27如图6-9所示。图6-8密码修

44、改流程图图6-9修改密码页面6.4通信机房远程监测系统的实时数据模块641测试用例过程如图6-10所示,通过用户名和密码正确地登入系统之后,系统默认显示实时数据模块。也可以点击左边功能列表的“实时数据”进入该页面。此时显示的为2011/10/1010:10:01时刻所获取的数据。h dP r MM .iW IM n WiJl -*U*V|t h, -* *亠卩亠亠匚通信机瞎远稈监控系统图6-10通信机房远程监控系统实时数据显示(2011/10/1010:10:0)通信机房远程监控系统兰自溥里二图6-11通信机房远程监控系统实时数据显示(2011/10/1010 : 11: 20)通信机房远程监控系统实时数据模块主要由以下数据组成:观测时间、当前电压、当前电流、UPS状态、当前温度、当前湿度、门窗状态、电机状态。显 示当前所采集的通信机房的各项数据。点击

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论