嵌入式系统设计期末大作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
标准
文案江苏科技大学
嵌入式系统设计期末大作业----嵌入式web服务器设计
学号:1341901124
:武易
专业:科技大学
2016-12-30
嵌入式Web服务器的设计与实现
引言
近年来,传统上用于办公室和商业的以太网逐渐进入了基于嵌入式设备的控制领域。Web技术可跨越诸多设备和系统在硬件和软件产品间做到即连即用,只需用Web浏览器通过以太网和TCP/IP协议便可访问各种信息终端。客户机可任意设置,只要能连上Internet并有权访问Web服务器,便可查阅现场有关信息,给维护和管理工作带来很大的方便。本文提出的基于ARM Linux的嵌入式Web服务器以S3C2410处理器为核心,以可裁减可移植的Linux为操作系统,为嵌入式系统的Internet接入提供了一种方便、快捷、简单的实现方法。
1 嵌入式web服务器技术
嵌入式Web服务器(embedded web server,EWS)是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。其执行3种基本功能:
①静态和动态网页信息发布;
②提供接口监测现场设备;
③提供接口控制现场设备。
由于Web技术的开放性和独立平台特性,降低了软件系统和通信系统的设计、维护工作量,提高了现场测试和控制设备的管理水平。嵌入式Web服务器技术提供了异构网络远程管理和监控设备的方法和途径。
在嵌入式Linux系统中,常用的Web Server有Boa、httpd、thttpd和mini-httpd等。其中Boa是一个运行在类Unix系统中的小型WebServer,适合嵌入式环境。在Boa中若两个用户同时访问,则其中的一个必须等待,它产生独立进程来处理CGI(通用网关接口)程序,因此占用较少的资源,其体系结构如图1所示。Boa的优点在于其快速可靠性。它与其它服务器的区别:没有为CGI程序设置REMOTE_HOST环境变量;没有Server-Side Include(SSI)项,要产生动态网页只能通过CGI:没有设置进入控制,而是根据Linux/Unix的文件系统的权限来决定服务的对象:没有chroot选项,即不能改变根目录。
基于以上的阐述,Boa应用到嵌入式平台上有着诸多的优势,本文的嵌入式Web服务器也因此选用Boa作为平台。下面笔者将着重介绍嵌入式Web 服务器的硬件平台及软件体系的设计与实现。
图1 Boa网络服务器的体系结构
2 硬件平台的设计与实现
本文的硬件平台采用S3C2410为系统硬件核心,系统框图如图2所示。主要包括:存储系统、系统接口、用户接口(显示LCD与键盘)3个部分。
图2硬件平台体系结构
S3C2410把外部复位信号作为一个中断处理,在系统复位时,程序指针(PC)被设置为0,程序跳转到0x00000000开始运行。此空间对应Bank0,系统的2MB的NORFlash和处理器的Bank0相连接。在NORFlash中存储的是BootLoader,它负责配置处理器的结构、工作模式以及自动检测系统的各个硬件是否工作正常。系统经过初始化和自检后,BootLoader负责把16 MB NANDFIash的zlmage(即软件系统的镜像文件)复制到0xc0008000地址(此地址是系统64MB SDRAM的首地址)。然后,引导程序把PC指向
0xc0008000地址,系统开始运行。
3 基于Boa的软件平台设计与实现
上述的嵌入式硬件平台实际上是一通用平台,基于该平台构建嵌入式Web 服务器,设计者必须考虑其通用性、响应速度及对于硬件的可操控性。正是基于这样的考虑,笔者分三层构建嵌入式Web服务器的软件体系:ARMLinux 的建立;Boa服务器的移植与构建;Cgi程序的扩展。
3.1 ARM Linux的建立
ARM Linux的建立是基于U-Boot的实现,它的建立实际上是Linux核在S3C2410上移植的过程,主要分为3个步骤:建立交叉编译环境;编译核;生成并配置根文件系统。因本文的工作重点并不是介绍Linux移植,因此下面只是简要介绍3个步骤的实现。
(1)建立交叉编译环境:建立交叉编译环境的过程实际就是对交叉编译器压缩包解包的过程。在本文中,所有的软件源码包都放在/tools目录下,解包所用指令序列在此不做赘述,其解包路径为/usr/local/arm cross。
(2)交叉编译Linux核:在交叉编译核之前,对编译选项的配置是很重要的。执行“make menuconfig”指令,进入Syetem Type选项。本文中选择对S3C2410系统板的支持,然后配置File System以及Block device。保存配置后要修改Make.file文件,即把交叉编译的路径指定为本文中安装的特定目录,修改语句为:CROSS_Complie=/usr/Ioca/arm_cross/3.4.1/bin/arm-Linux-。最后通过make dep;make clean;make zlmage命令编译核,得到核压缩映象zlmage。
(3)生成并配置根文件系统:生成并配置文件系统主要有以下的几个步骤完成:安装busybox工具包(首先解压busybox压缩包,在解压目录下修改Makefile文件,然后使用Make install完成安装);创建文件系统的映象文件(首先创建img目录,然后进入根目录创建一个空的映象文件,加载创建的文件系统,并复制文件系统中必要的文件):配置文件系统(经过上述步骤已经产生了文件系统所需要的一些文件,但是需要设置根路径,即在根路径下添加必须的目录、文件并且正确设置属性)。
3.2 Boa服务器的移植与构建