嵌入式Web服务器移植与测试

发布者:rnm888最新更新时间:2014-12-23 来源: eccn关键字:Web服务器  通用网关接口  移植 手机看文章 扫描二维码
随时随地手机看文章

随着计算机技术和现代通信技术的不断发展,设备即网络是后PC时代对嵌入式系统的客观要求,因此也需要建立嵌入式设备的网络Web服务器。嵌入式Web能够实现在各种工业监控、检测、以及自动化控制等领域的远程控制,世界上无论任何地方,只要是存在Internet网络,都能够通过Web服务对各种现场进行管理,甚至可以在有网络的手持设备上对现场进行控制管理操作。传统的Web服务器大多在大型机,PC机上实现,其成本比较高,而且不方便工业现场的应用实施,嵌入式系统以及嵌入式小型Web服务器的出现使得Web服务运行在资源、性能有限的嵌入式设备上提供了条件。本文主要介绍嵌入式Web服务器BOA在ARM9嵌入式系统设备板上的移植,并对移植后的BOA服务器进行测试验证。

1 硬件设计需求

根据系统要求,硬件电路部分核心处理器采用三星公司的S3C2440,该器件基于ARM920T内核,主频400 MHz,是性价比比较高的嵌入式32位处理器之一。S3C2440微处理器内部资源丰富,包括1个LCD控制器、SDRAM控制器、4个通道的DMA等。开发板的存储系统分SDRAM和Flash两部分,其中SDRAM存储系统使用了两片外接的32 M字节总共64 M字节的SDRAM芯片,其型号为HY57V561620FTP。这部分通常称之为内存,两片SDRAM并在一起形成32位宽的数据总线,增加了数据访问速度;开发板具有两种Flash:一种是型号为SST39VFl60l的Nor Flash,大小为2 M字节;另一种是型号为K9F1208的Nand Flash,大小为64 M字节;开发板采用的网卡芯片为DM9000,它自适应10/100 M网络,RJ45连接头内部已经包含了耦合线圈,因此在开发板上没有另接网络变压器,通过网线即可连接开发板到Internet网络中,从而实现嵌入式Web服务。另外还包括电源、晶振、JTAG调试口,以及基本输入输出端口等部分。嵌入式硬件设计框图如图1所示。

2 嵌入式Web服务器BOA实现原理

BOA是一款非常小巧的Web服务器,源代码开放、性能优秀、支持CGI通用网关接口技术,特别适合应用在嵌入式系统中。BOA服务器主要功能是在互联嵌入式设备之间进行信息交互,达到通过网络对嵌入式设备进行监控,并将反馈信息自动上传给主控设备的目的。它是基于HTTP超文本传输协议的,Web网页是Web服务最基本的传输单元。嵌入式Web服务的工作基于客户机/服务器计算模型,由Web浏览器(客户机)和Web服务器(服务器)构成,也即著名的B/S结构。运行于客户端的浏览器首先要与嵌入式Web服务器BOA端建立连接,打开一个套接字虚拟文件,此文件建立标志着SOCKET连接建立成功。然后客户端浏览器通过套接字SOCKET以GET或者POST参数传递方式向Web服务器提交请求,Web浏览器提交请求后,通过HTTP协议传送给Web服务器。Web服务器接到请求后,根据请求的不同进行事务处理,返回HTML文件或者通过CGI调用外部应用程序,返回处理结果。服务器通过CGI与外部应用程序和脚本之间进行交互,根据客户端浏览器在请求时所采用的方法,服务器会搜集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序,CGI扩展程序进行信息处理并将结果返回给服务器,然后服务器对信息进行分析,并将结果发送回客户端在浏览器上显示出来。

3 嵌入式Web服务器BOA移植

首先,Web服务器BOA是要运行于ARM嵌入式设备上的,因此需要对BOA源文件进行交叉编译。编译工具使用arm-linux-gcc-4.3.2交叉编译工具链,拷贝文件arm-lin-ux-gcc-4.3.2.tgz到目录/tmp下,执行命令cd/tmp;tar zxvfarm-linux-gcc-4.3.2.tgz-C/.这样交叉编泽工具就安装到/usr/local/arm/4.3.2目录下面。为确保在打开终端后能直接应用交叉编译工具链,要在/root/.bashrc文件中把编译器路径加入到系统环境变量。运行命令gedit/root/.bashrc编辑文件/root/.bashrc。在文件的最后添加export PATH=$PATH:/usr/local/arm/4.3.2/bin。保存退出。接着执行source/root/.bashrc命令使设置生效。最后检测交叉编译工具是否安装成功,命令为在终端中输入arm-linux-gcc-v;若能在输出的信息中看到arm-linux-gcc版本号4.3.2,说明安装成功。

其次,交叉编译BOA源码,拷贝BOA源码包boa-0.94.13.tar.gz到/tmp目录下,解压缩掩码包tar zxvf boa-0.94.13.tar.gz;解压后在Linux终端进入BOA所在目录,首先执行命令./con-figure生成Makefile文件,然后打开文件夹,找到Makefile文件,用文本编辑器打开,找到CC=gcc,CPP=gcc-E两行,分别将其设置成上一步生成的交叉编译工具路径CC=/usr/local/arm/4.3.2/bin/arm-linux-gcc和CPP=/usr/local/arm/4.3.2/bin/arm-linux-gcc-E,然后将Makefile保存后退出,回到终端执行make命令,进行交叉编译得到可执行程序BOA,它就是能够运行在ARM嵌入式设备上的执行文件。可通过命令fileboa查看文件信息。拷贝此BOA文件到目标板/bin目录中。

再次,配置boa服务器。配置BOA主要是为了使其能够支持CGI程序的执行。在文件系统的/etc目录下mkdir boa建立一个BOA目录,拷贝BOA源码目录中的boa.conf文件到文件系统目录/etc/boa目录下,然后根据嵌入式BOA的需求在此配置文件的基础上进行修改。在修改此配置文件时需要注意保证其他文件和设置必须与配置文件相一致,否则嵌入式Web服务器BOA就不能正常运行。boa.conf文件主要配置内容如图2所示。

4 嵌入式Web服务器BOA移植测试

测试的目的主要是验证嵌入式Web服务器BOA移植以及配置是否正确,能否正常工作。根据以上配置文件boa.conf的内容在文件系统目录/var下创建www目录用于存放html文档以及html文档所需的图像资源。创建/www/cgi-bin目录用于存放CGI程序。[page]

1)制作Web测试页 Web测试网页主要由Html语言、Javascript脚本语言完成,新建文本文档输入网页代码如图3所示。

保存此文件并重命名为index.html。拷贝此Html文件到目标板/vat/www/目录下。假设开发宿主机与目标板在同一局域网中,并且无网络故障,目标板ip地址设置为192.168.1.156。在宿主机上运行浏览器进行BOA页面测试,在浏览器地址栏中输入ip地址192.168.1.-1,则可以看到Web测试页面如图4所示。

2)CGI脚本测试在目标板打开一个终端输入命令

viceshi.cgi,新建一个脚本文件,输入如图5所示代码。

:wq保存此脚本文件,并拷贝此文件到/var/www/cgi-bin目录中,chmod+x ceshi.cgi更改此文件的执行权限。然后在宿主机(客户端)浏览器中输入http://192.168.1.156/cgi-bin/ceshi.cgi地址,经过测试符合功能要求。

5 结论

本文实现了嵌入式BOA Web服务器在ARM9目标板的移植以实现微型机在各种控制领域的远程管理,并通过了移植后测试。嵌入式BOA的成功移植为以后在具体生活、工业现场中的应用提供了条件,方便了未来Web应用工程的开发。

关键字:Web服务器  通用网关接口  移植 引用地址:嵌入式Web服务器移植与测试

上一篇:MIMO通信系统的射频测试
下一篇:采用JN338数字转矩转速传感器对转矩转速的测量

推荐阅读最新更新时间:2024-03-30 22:51

U-Boot在基于S3C4480开发板上的移植
1 引言       Bootloader代码是器件复位后进入操作系统前执行的一段代码,通过该代码初始化处理器各寄存器和片上外设,建立存储器映射图以及初始化堆栈,从而为操作系统提供基本的运行环境。由于Bootloader与CPU和开发板配置有关,不可能有通用的Bootloader,因此需要根据具体情况进行移植。嵌入式系统U-boot是当前流行、功能强大的Bootloader。U-Boot用于多种嵌入式CPU的Bootloader程序,U-Boot支持ARM、PowerPC等多种架构的处理器,也支持Linux、NetBSD和Vx—Works等操作系统。这里采用U—Boot的版本为U-boot-1.1.6。 2 U-Boot目录结
[嵌入式]
uCGUI如何移植到S3C44B0X
  一、实验目的   1. 初步掌握uCGUI底层硬件驱动函数;   2. 掌握将uCGUI移植到ARM S3C44BOX上的方法和步骤。   二、实验内容   移植uCGUI到ARM处理器S3C44BOX上,并编写Hello World程序,在Micetek 44B0实验平台的LCD上显示“Hello World!”字符串,在LCD显示平面坐标(20,20)处,显示一个小于10000的整数,该整数不断循环加1,每次加1后立即更新显示,从而反应出显示输出的速度。   三、预备知识   1. uCGUI的体系结构:   uCGUI包含三个总的文件夹:ApplicaTIon,Config,GUI.其中:   Ⅰ Applica
[单片机]
jz2440 ----移植自制的USB RTL8188EUS网卡驱动
1:google 下载rtl8188eus的网卡驱动源码 https://github.com/quickreflex/rtl8188eus 2.解压缩下载的文件,把驱动文件rtl8192_8188eus_linux_xxx.tar.gz(xxx是版本号)添加到要编译的内核树里面去 (1)假定你的内核位置为/root/linux-kernel,解压缩驱动文件,并且把解压缩后的驱动文件夹名改为rtl8192eus。 (2)把改好名字的驱动文件夹rtl8192eus复制到/root/linux-kernel/drivers/net/wireless/下。 (3)修改/root/linux-kernel/driver
[单片机]
jz2440 ----<font color='red'>移植</font>自制的USB RTL8188EUS网卡驱动
UCOS2_STM32移植详细过程 (一)
Ⅰ、概述 该文写针对初学µC/OS的朋友,基于以下平台来一步一步移植µC/OS嵌入式操作系统。UCOS移植相关平台: 系统平台:µC/OS-II(最新V2.92版) 硬件平台:STM32F1(适合F1所以系列) 开发平台:Keil(MDK-ARM) V5 1.为什么是µC/OS-II? 原因在于µC/OS-II是一个比较成熟、稳定的系统,与µC/OS-III比较有些机制相对简单很多。当你掌握了µC/OS-II,µC/OS-III很容易就理解了。 2.为什么是STM32F1? 硬件平台是在移植的过程中比较重要的一点,也就是说,不同的硬件平台,移植过程中的端口(uCOS-IIPorts下源文件)存在一定的差异性。 但是同一内核
[单片机]
UCOS2_STM32<font color='red'>移植</font>详细过程 (一)
Linux-2.6.32.2内核在mini2440上的移植(十六)---中断的按键驱动
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】硬件原理 Mini2440 具有6 个用户测试按键,它们都是连接到CPU 的中断
[单片机]
Linux-2.6.32.2内核在mini2440上的<font color='red'>移植</font>(十六)---中断的按键驱动
基于TQ2440的linux-2.6.30.4内核移植
移植环境 CPU:S3C2440 交叉编译器:arm-linux-gcc-4.3.3 虚拟机系统:Ubuntu12.04 参考资料:《天嵌科技linux移植手册》 移植步骤 1、获取内核源码 网址:http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/ 找到linux-2.6.30.4压缩包下载即可,然后拷贝到虚拟机中解压 2、在系统中添加对ARM的支持 进入内核源码根目录 Makefile中,修改 ARCH = arm CROSS_COMPILE = arm-linux- 3、修改平台输入时钟 修改内核源码 arch/arm/mach-s3c2440
[单片机]
基于TQ2440的linux-2.6.30.4内核<font color='red'>移植</font>
用LabVIEW Web服务器发布网页的两种方法
1. LabVIEW Web服务器 在LabVIEW开发环境中,自身带了一个已连接好的Web服务器。LabVIEW Web服务器除了与其他Web服务器一样能发布文档外,它还可以发布正在运行的VIs前面板图,使得各地的工程师们能在自己的办公室看到服务器上的VIs的变化情况。要进入LabVIEW Web服务器首先需进入LabVIEW 开发环境,然后进入主菜单中 工具- 选项 ,系统会弹出一个对话框,在对话框中选择 Web服务器:配置 一项,继而系统会弹出Web服务器配置对话框,如图1所示。选择启用Web服务器,使其生效。 图1 Web服务器的配置 到此为止,LabVIEW Web服务器已配
[测试测量]
stm32f407 easyflash移植过程记录
EasyFlash是一款开源的轻量级嵌入式Flash存储器库,非常适合智能家居、可穿戴、工控、医疗、物联网等需要断电存储功能的产品,资源占用极低,并且支持各种 MCU 片上存储器。 之所以将其移植到 robomaste-C 型开发板上,是为了存储重要日志,以及在正常运行情况下存储重要数据用于调试分析,尽量减小 debug 环境下对系统行为的影响。目前该开发板已经支持 easyflash ,进入 menucofig 中使能即可,main 函数中会进行初始化。(不需要使用 easyflash 时,一定要记得关闭该功能,Flash 的擦除次数有限) robomaster C 板使用芯片 STM32F407IGH6 片上搭载 1M
[单片机]
stm32f407 easyflash<font color='red'>移植</font>过程记录
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved