版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、江苏科技大学嵌入式系统设计期末大作业-嵌入式web服务器设计学号:1341901124姓名:武易专业:江苏科技大学2016-12-30嵌入式Web服务器的设计与实现引言近年来,传统上用于办公室和商业的以太网逐渐进入了基于嵌入式设备的控制领域。Web技术可跨越诸多设备和系统在硬件和软件产品间做到即连即用,只需用Web浏览器通过以太网和TCPIP协议便可访问各种信息终端。客户机可任意设置,只要能连上Internet并有权访问Web服务器,便可查阅现场有关信息,给维护和管理工作带来很大的方便。本文提出的基于ARM Linux的嵌入式Web服务器以S3C2410处理器为核心,以可裁减可移植的Linux
2、为操作系统,为嵌入式系统的Internet接入提供了一种方便、快捷、简单的实现方法。1 嵌入式web服务器技术 嵌入式Web服务器(embedded web server,EWS)是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。其执行3种基本功能: 静态和动态网页信息发布; 提供接口监测现场设备; 提供接口控制现场设备。 由于Web技术的开放性和独立平台特性,降低了软件系统和通信系统的设计、维护工作量,提高了现场测试和控制设备的管理水平。嵌入式We
3、b服务器技术提供了异构网络远程管理和监控设备的方法和途径。 在嵌入式Linux系统中,常用的Web Server有Boa、httpd、thttpd和mini-httpd等。其中Boa是一个运行在类Unix系统中的小型WebServer,适合嵌入式环境。在Boa中若两个用户同时访问,则其中的一个必须等待,它产生独立进程来处理CGI(通用网关接口)程序,因此占用较少的资源,其体系结构如图1所示。Boa的优点在于其快速可靠性。它与其它服务器的区别:没有为CGI程序设置REMOTE_HOST环境变量;没有Server-Side Include(SSI)项,要产生动态网页只能通过CGI:没有设置进入控制
4、,而是根据LinuxUnix的文件系统的权限来决定服务的对象:没有chroot选项,即不能改变根目录。 基于以上的阐述,Boa应用到嵌入式平台上有着诸多的优势,本文的嵌入式Web服务器也因此选用Boa作为平台。下面笔者将着重介绍嵌入式Web服务器的硬件平台及软件体系的设计与实现。 图1 Boa网络服务器的体系结构2 硬件平台的设计与实现 本文的硬件平台采用S3C2410为系统硬件核心,系统框图如图2所示。主要包括:存储系统、系统接口、用户接口(显示LCD与键盘)3个部分。 图2硬件平台体系结构 S3C2410把外部复位信号作为一个中断处理,在系统复位时,程序指针(PC)被设置为0,程序跳转到0
5、x00000000开始运行。此空间对应Bank0,系统的2MB的NORFlash和处理器的Bank0相连接。在NORFlash中存储的是BootLoader,它负责配置处理器的结构、工作模式以及自动检测系统的各个硬件是否工作正常。系统经过初始化和自检后,BootLoader负责把16 MB NANDFIash的zlmage(即软件系统的镜像文件)复制到0xc0008000地址(此地址是系统64MB SDRAM的首地址)。然后,引导程序把PC指向0xc0008000地址,系统开始运行。3 基于Boa的软件平台设计与实现 上述的嵌入式硬件平台实际上是一通用平台,基于该平台构建嵌入式Web服务器,设
6、计者必须考虑其通用性、响应速度及对于硬件的可操控性。正是基于这样的考虑,笔者分三层构建嵌入式Web服务器的软件体系:ARMLinux的建立;Boa服务器的移植与构建;Cgi程序的扩展。 31 ARM Linux的建立 ARM Linux的建立是基于U-Boot的实现,它的建立实际上是Linux内核在S3C2410上移植的过程,主要分为3个步骤:建立交叉编译环境;编译内核;生成并配置根文件系统。因本文的工作重点并不是介绍Linux移植,因此下面只是简要介绍3个步骤的实现。 (1)建立交叉编译环境:建立交叉编译环境的过程实际就是对交叉编译器压缩包解包的过程。在本文中,所有的软件源码包都放在tool
7、s目录下,解包所用指令序列在此不做赘述,其解包路径为usrlocalarm cross。 (2)交叉编译Linux内核:在交叉编译内核之前,对编译选项的配置是很重要的。执行“make menuconfig”指令,进入Syetem Type选项。本文中选择对S3C2410系统板的支持,然后配置File System以及Block device。保存配置后要修改Makefile文件,即把交叉编译的路径指定为本文中安装的特定目录,修改语句为:CROSS_Complie=usrIocaarm_cross341binarm-Linux-。最后通过make dep;make clean;make zlma
8、ge命令编译内核,得到内核压缩映象zlmage。 (3)生成并配置根文件系统:生成并配置文件系统主要有以下的几个步骤完成:安装busybox工具包(首先解压busybox压缩包,在解压目录下修改Makefile文件,然后使用Make install完成安装);创建文件系统的映象文件(首先创建img目录,然后进入根目录创建一个空的映象文件,加载创建的文件系统,并复制文件系统中必要的文件):配置文件系统(经过上述步骤已经产生了文件系统所需要的一些文件,但是需要设置根路径,即在根路径下添加必须的目录、文件并且正确设置属性)。 32 Boa服务器的移植与构建 基于Boa建立嵌入式Web服务器可分为以下
9、步骤完成: (1)建立交叉编译环境并下载Boa源码包解压:交叉编译环境在前文中构建ARM Linux时已经建立了,这里编译Bao使用同样的交叉编译器,所以不需要重新建立一遍。Boa的源码包可以从其官方网站http:wwwboaorg下载并解压。 (2)编译Boa代码生成可执行文件boa:在编译之前,需要在fooasrcconfigure文件中加入CC和CPP的说明,同时修改Makefile里的CC=usrlocalarm cross34,1binarm1inux。另外还要在编译之前指定Web服务器的根目录路径(SERVERROOT),具体方法是:进入boasrc目录,通过修改definesh文
10、件中#defineERVER ROOT“homehttpd”语句来指定SERVERROOT。然后make即可完成编译并生成Boa可执行文件。 (3)配置Boa服务器:为了能够在硬件平台上运行Web服务器Boa,还需要对其运行环境、参数等进行设置,并将最终的配置文件Boaconf置于适当位置。通过修改配置文件Boaconf可实现对Web服务器的配置,部分配置为:侦听端口使用80端口;访问日志AccessLog存放于varlogboaaccess_log;错误日志ErrorLog位于varlogboaerror_log;文件的根目录DocumentRoot设在homehttpd;KeepAlive
11、Max的值修改为50;Keep-AliveTimeout的值修改为10;设置CGIPath为cgi-bin等;在Boaconf的最后加上SewerNameEmServer,即将EmServer作为服务器名称(当然也可用其它名称作为服务器名)。最后将修改好的配置文件Boaconf存放于嵌入式系统根文件ereboa目录下。通过镜像制作工具执行命令genromfs-fromfsimgdromdisk生成romdisk的镜像文件romfsimg,将romfsimg通过Bootloader下载到flash存储器。 (4)测试Boa的运行:为了确保Boa的正常运行,利用简单的测试程序测试Boa的运行情况。
12、在目录homebttpd下建立indexhtml文档,其内容为: This is boa server 在PC机上通过浏览器连接到运行Boa的硬件平台http:/192168120(硬件平台IP),若页面显示This is boa server,说明Boa可以正常获取页面。 在cgibin路径下建立test文件,其内容如下:#!binsbecho Content-type:texthtmlecho”This is cgi test”在浏览器中输入http:192168120cgibintest,若页面显示This is cgi test,说明服务器可以正常执行CGI程序。 33 CGI扩展开发
13、 CGI定义了Web服务器与CGI脚本之间的接口标准。其主要功能是在Web环境下,从客户端传送一些信息给Web服务器,Web服务器把接收到的有关信息放入环境变量,然后再去启动所指定的CGI脚本以完成特定的工作,CGI脚本从环境变量中获取相关信息来运行,最后以HTML格式输出相应的执行结果返回给浏览器端。由于用户能传递不同的参数给CGI脚本,所以CGI技术使得浏览器和服务器之间具有交互性。 CGI的扩展开发即是在configc中为该扩展功能增加一个命令码flag,并指定它的处理响应函数;然后在cgiheadc中完成这个处理响应函数的代码即可。下面笔者将以通过Web服务器实现设置嵌入式系统IP地址
14、为例介绍CGI的扩展开发方法及步骤: (1)首先在lefthtml(注:主页采用框架,lefthtml为左框架的页面)主菜单栏中增加一项:“设置IP”。即在:home/httpdhtmllefthtml,增加一项: 这个处理代码中用vfork+execl执行ifconfigroute命令,完成IP设置工作,并返回显示操作结果,提供用户重新启动。重新启动后板子的IP地址就是更改后的IP地址了。 34运行扩展后的Web服务器 采用上述扩展方法,结合硬件资源和既有驱动笔者相继实现了系统时间设置、MAC地址设置、MiniGui演示、触摸屏演示、步进电机控制、录音、播放MTV等多项基本功能和修改管理员密码、系统重启等系统功能。为了较好实现动态网页的交互性,笔者将首页设置成为框架,左框架调用lefthtml显示各管理菜单,右框架显示点击某菜单选项后的页面。通过在右框架中的确认最终实现管理功能。在PC机的浏览器中输入http:1921681201111可进入Web服务器管理页面,其运行结果如图3所示。 图3 嵌入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025特许加盟合同范文
- 2025试用期的合同和试用期后的合同有什么区别
- 2025借款合同抵押范本
- 2025融资服务代理合同
- 2025贸易合同范本钢材订货合同
- 2025关于私人建房合同协议书范本
- qc小组活动总结
- 300字左右的加油稿
- 体育馆维修围挡施工合同及施工方
- 品牌推广标识标牌招投标函范本
- DB21-T 2931-2018羊肚菌日光温室栽培技术规程
- 贵州省黔东南州2023-2024学年九年级上学期期末文化水平测试化学试卷
- 《空调零部件介绍》课件
- 2024年度医院内分泌与代谢科述职报告课件
- 手术室无菌操作流程
- 农业机械控制系统硬件在环测试规范
- 翁潭电站大王山输水隧洞施工控制网设计说明书
- 隆胸术培训课件
- 钢筋焊接培训课件
- 行政内勤培训课件
- 化纤企业(化学纤维纺织企业)安全生产操作规程
评论
0/150
提交评论