基于ARM的嵌入式Web服务器设计
- 格式:doc
- 大小:204.50 KB
- 文档页数:16
摘要论文主要介绍了基于ARM9的嵌入式Web服务器Boa的软、硬件设计及其实现,其中硬件部分的核心是三星的S3C2410X为处理器。
最后成果形式为可以远程访问的WebServer嵌入式服务器。
Boa是一款单任务的HTTP服务器。
与其他传统的Web服务器不同的是当有连接请求到来时,它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接。
而是通过建立HTTP请求列表来处理多路HTTP连接请求。
同时它只为CGI程序创建新的进程,这样就在最大程度上节省了系统资源,这对嵌入式系统来说至关重要。
同时它还具有自动生成目录、自动解压文件等功能。
因此, Boa在嵌入式系统中具有很高的应用价值。
关键词:ARM;Linux;嵌入式Web服务器;CGIThis paper has mainly developed the software hardware design and realization of the embedded Web server Boa based on ARM. And the core of the hardware part is S3C2410X microprocessor produced by Samsung . The final achievement is the embedded webserver which can remote visit. Boa is a single-tasking HTTP server. That means that unlike traditional webservers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections. And forks only for CGI programs, this is very important to embedded system. At the same time, it also has the function of automatic directory generation、automatic file gunzipping and so on. So Boa is of highly value in the embedded system application.Keywords: ARM;Linux;Embedded Web server;CGI摘要 (1)Abstract (2)目录 (3)第一章引言 (5)第二章课题背景 (6)2.1 嵌入式系统简介 (6)2.2 嵌入式系统和Linux (6)2.3 ARM9硬件平台 (7)2.3.1 ARM简介 (7)2.3.2 JXARM9-2410 ARM嵌入式教学实验系统 (8)第三章嵌入式Web服务器 (9)3.1 概述 (9)3.2 Web服务器原理 (9)3.3 嵌入式Web服务器实现原理 (9)3.3.1 TCP/IP协议 (9)3.4 嵌入式Web服务器Boa (10)3.4.1 Boa概述 (10)3.4.2 Boa的功能实现 (11)第四章CGI技术 (12)4.1 CGI概述 (12)4.2 CGI工作原理 (12)第五章建立嵌入式系统开发环境 (14)5.1 在Vmware下安装Redhat 9.0 (14)5.2 编译配置主机开发环境 (18)5.2.1 配置以太网 (18)5.2.2 安装配置tftp服务器 (19)5.2.3 配置防火墙 (21)5.2.4 配置NFS服务器 (22)5.3 JXARM9-2410中U-boot烧写 (22)5.3.1 u-boot的功能 (22)5.3.2 使用ADT IDE烧写u-boot (23)第六章系统功能的实现 (25)6.1 GCC简介 (25)6.1.1 GCC概述 (25)6.1.2 GCC基本用法 (25)6.2 Linux内核移植 (26)6.2.1 Linux内核源代码的安装 (26)6.2.2 Linux交叉编译环境的建立和使用 (27)6.2.3 Linux内核的配置和编译 (27)6.3 加载Linux内核映像 (30)6.4 Boa Web服务器的移植 (31)6.4.1 Boa Web服务器的建立 (31)6.5 Linux下动态Web页面的实现 (32)6.5.1 CGI程序分析 (32)6.5.2 Form输入的分析和解码 (34)第七章系统功能的测试 (36)7.1 测试Web服务器 (36)7.2 动态Web页面测试 (37)结束语 (40)致谢 (41)参考文献 (42)附录 (43)第一章引言随着计算机技术的发展,嵌入式系统已成为计算机领域的一格重要组成部分。
题目:基于ARM的嵌入式Web服务器设计学号:1020410211姓名:洪室平班级:10204102专业:计算机科学与技术课程老师:高小辉二零一二年十二月摘要随着计算机、网络通信和Internet 技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛。
如何将嵌入式系统和工业控制系统接入Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。
网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互。
传统的服务器程序一般运行在大型的拥有高级操作系统的服务器的计算机上,这样服务器软件需要强大的硬件和系统软件支持。
嵌入式网络服务器是利用嵌入式系统实现服务器的软件和硬件功能,是嵌入式技术和网络技术相结合的产物。
与传统服务器相比,嵌入式Web服务器具有结构简单、体积小、可靠性强以及方便灵活等特点。
这些让它具有很大的发展潜力。
另一方面,嵌入式Web服务器与传统的web服务器相比,也受到一些限制。
传统的Web服务器主要用于处理较大的客户量的同时并发访问,硬件方面有强大的处理器和内存支持,软件方面有商业数据库支持,而嵌入式Web服务器的处理能力和存储容量都有限,这就要求嵌入式Web服务器在设计过程中需要尽量合理利用资源。
将嵌入式技术与Web 技术相结合,已成为目前嵌入式系统的一个重要发展方向和必然趋势。
利用源代码开放的uClinux 为操作系统平台,实现了以ARM 微处理器为核心的嵌入式Web 服务器,在分析了嵌入式Web 服务器的体系结构后,给出了系统的硬件结构组成和软件设计。
对Web 服务器的测试结果表明,该服务器运行稳定、控制方便,将在智能家居、远程数据采集、工业控制等领域有着广泛的应用前景。
关键词:网络通信;嵌入式系统;ARM处理器;uClinux;Boa服务器;引言随着Internet 技术的飞速发展,导致许多领域的传统控制方式发生变革。
摘要工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我们以ARM体系结构与编程课程中所学知识为基础,对基于ARM的简单嵌入式WEB服务器系统进行了简单设计。
本设计利用ARM 自带的WEB服务器技术,来实现对嵌入式WEB服务器系统的控制设计。
该技术基于WEB服务器之上,且用嵌入式WEB 服务器来实现对于网络的访问。
本设计说明重点介绍了如下几方面的内容:1)基于嵌入式WEB服务器的HTTP协议;12)Linux 下的signal()函数的使用;3)嵌入式WEB服务器的工作原理;4)ARM开发板上的SOCKET网络编程。
关键词:ARM体系;嵌入式WEB服务器;HTTP协议;SOCKET网络编程。
目录第一章绪论 (3)1.1课题简介 (3)1.2设计目的 (3)1.3设计内容 (3)1.4设计用途 (3)第二章嵌入式WEB服务器设计原理简介 (4)2.1需求说明 (4)2.2功能需求详细说明 (4)2.3数据流图(DFD) (5)2.4数据需求 (6)第三章嵌入式WEB服务器设计流程 (6)3.1系统结构图 (6)3.2整体结构图说明 (6)3.3连接处理模块 (7)3.4功能分配 (7)第四章嵌入式WEB服务器设计程序分析及实践 (9)4.1程序设计 (9)4.2程序分析 (10)4.3实验步骤 (14)参考文献 (16)第一章绪论1.1课题简介随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。
目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。
巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。
ARM单片机技术由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。
ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统的主控制器,由linux 下的vi编程,来实现对于嵌入式WEB服务器的访问。
题目:基于ARM的嵌入式Web服务器设计与实现学号:1308010139姓名:吴明川班级:1308010139专业:计算机科学与技术课程老师:孔军二零一六年五月摘要随着计算机、网络通信和Internet 技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛。
如何将嵌入式系统和工业控制系统接入Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。
网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互。
传统的服务器程序一般运行在大型的拥有高级操作系统的服务器的计算机上,这样服务器软件需要强大的硬件和系统软件支持。
嵌入式网络服务器是利用嵌入式系统实现服务器的软件和硬件功能,是嵌入式技术和网络技术相结合的产物。
与传统服务器相比,嵌入式Web服务器具有结构简单、体积小、可靠性强以及方便灵活等特点。
这些让它具有很大的发展潜力。
另一方面,嵌入式Web服务器与传统的web服务器相比,也受到一些限制。
传统的Web服务器主要用于处理较大的客户量的同时并发访问,硬件方面有强大的处理器和内存支持,软件方面有商业数据库支持,而嵌入式Web服务器的处理能力和存储容量都有限,这就要求嵌入式Web服务器在设计过程中需要尽量合理利用资源。
将嵌入式技术与Web 技术相结合,已成为目前嵌入式系统的一个重要发展方向和必然趋势。
利用源代码开放的uClinux 为操作系统平台,实现了以ARM 微处理器为核心的嵌入式Web 服务器,在分析了嵌入式Web 服务器的体系结构后,给出了系统的硬件结构组成和软件设计。
对Web 服务器的测试结果表明,该服务器运行稳定、控制方便,将在智能家居、远程数据采集、工业控制等领域有着广泛的应用前景。
关键词:网络通信;嵌入式系统;ARM处理器;uClinux;Boa服务器;引言随着Internet 技术的飞速发展,导致许多领域的传统控制方式发生变革。
这些领域的控制系统可以通过Web 服务器接入Internet,这样用户在世界任何一个地方都可以通过Internet 获取Web 服务器提供的信息,进而实现系统的远程控制和管理。
但以具有高运算处理能力和海量存储容量的工作站或PC机为硬件平台,以非实时操作系统为软件平台,运行着大型复杂程序的传统Web 服务器,并非在任何环境下都适用,尤其是对实时性要求比较高的领域,如工业控制、远程数据采集等。
基于嵌入式系统的Web服务器的出现,为以上问题的解决开辟了一条新途径。
1 发展背景随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。
广义讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。
所谓嵌入式设备,是指具有计算机功能,但又不称为计算机的设备或器材,几乎包括了我们周期的所有电路设备:PDA、手机机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、自动取款机等。
嵌入式系统可以通过各种无线形式(如等)和有线形式(TCP/IP、PPP等)的网络连接方式实现它们之间的相互连接,因此,在网络通信市场上极具生命力。
现在人们对Internet应用的依赖程序日渐增加,也促进了嵌入式技术的增长。
信息家电的发展也为嵌入式Internet技术提供空间,如面向Internet的信息冰箱。
这种信息家电的特点就是价格低廉、软件功能强大、全面支持Internet访问、软件可通过网络升级、有效保护用户投资。
嵌入式Internet技术主要包括传感器技术、通信技术、计算机技术和集成电路技术等。
以前的设备控制系统一般是通过专用通信线中进行的,其通信介质、通信协议、相关软件和硬件都是专用的,而Internet技术的发展使嵌入式设备的远程控制和管理方式有了改变。
不需要专用的通信线路,并且传输的信息不局局于数据信号,还有声音和图像。
最重要的是其通信协议是标准且公开的。
随着Web技术的发展,几乎改变了现在的信息表达形式,很多应用都是基于Web技术的。
由于HTML语言的标准统一性,只要在嵌入式设备中有一个微型服务器,就可以使用任意一种Web浏览器接收和发送信息。
所以如何设计这种特别Web 服务器,如何在嵌入式设备中安装Web服务器,就成了嵌入式Web服务器的发展和研究方向。
对于嵌入式Web服务器的研究和应用,其意义是重大的。
它为我们管理、控制和监测各种各样设备提供了一个很好的途径。
这种设备可以是具有有限内存资源的8位或16位系统,已足够提供一个用户界面,而且这种方式是基于Internet 的。
这种设备可以在世界任何一个地方,只要它连入Internet就能够控制它。
1.1 课题的研究意义Internet的迅猛发展,传统的Client/server体系结构(客户机/服务器),渐渐的在某些方面显示出它的局限性,Browser/server结构(浏览器/服务器)的出现恰恰弥补了这种缺陷。
B/S方式已成为一种时尚,大部分网络应用系统都是以这种B/S方式与网络用户交换信息。
B/S的基础是客户端要有一个浏览器程序,服务器端要有一个与之对应的Web服务器。
显然,Web服务器在B/S方式下起着决定性的作用,因此,一般互联网站都采用功能强大的通用Web服务器。
随着网络各个核心部分业务量的提高,其访问量和数据流量快速增长,处理能力和计算强度也相应增大,使得单一设备根本无法承担,而且许多企业级应用系统的应用请求具有突发性和紧急性的特点,当应用访问急剧上升时,容易造成网络瓶颈。
解决这一问题的办法是采用多台嵌入式Web服务器为一个应用服务,集群负载均衡机制就是为解决多个网络设备之间实现合理的业务量分配而提出的。
1.2 论文研究内容嵌入式Web服务器是指将Web服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,Web技术为核心的基于互联网的网络测试和控制设备。
EWS系统与传统的Web应用相比,简化了系统结构,将信息采集和信息发布都集成到现场的测控设备中。
而有了标准的接口形式和通信协议,内嵌于设备的从Web服务器同样可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面,浏览器成了设备的前端控制板。
由于Web技术的开放性和独立平台特性,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用等,提高了现场测试和控制设备的管理水平。
本文设计的基于ARM的嵌入式Web服务器,响应速度快,实时性强,用户通过浏览器中的表单向服务器发送控制信息,操作方便、快捷,经过适当修改,能够很好地适应智能家居等远程监控的需要。
2 嵌入式Web服务器的软件构成嵌入式Web 服务器主要解决的问题是通过Internet 来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP 协议和Web 服务器,以解决网络互联问题。
但是嵌入式服务器系统只需要使用其中的某些基本的功能,也要减去一些使用不到有功能,以节省有限的嵌入式资源。
TCP/IP 此外还要用到的软件资源有嵌入式实时操作系统、HTTP 协议,同时带有SMTP 和SNMP 协议,使其具有网络管理的简单功能,通过网络可以对接入到Internet 上的设备进行管理和控制。
2.1 CGI技术2.1.1 CGI概述由于传统的Web 服务器无法实现Web 数据库访问功能,CGI 技术充当了访问数据库的重要媒介。
CGI 是使用应用相关软件增强Web 服务器的一种标准方法,可以用任何语言书写。
CGI 根据需求更新网页,是一种公共网关接口。
它通过客户提供给Web 服务器的各种信息,由Web 服务器启动指定CGI 模块函数,完成客户端与服务器端动态的交互,从而实现静态HTML 网页无法实现的功能( 如表单查询、数据库查询等)。
通常CGI 应用程序处于休眠状态,通过使用一定的网络事件触发回调函数来实现,并显示动态页面。
例如,Web 服务器收到一个URL 里面包含的网页请求时,将执行结果返回给HTML 网页,CGI 可实现处理表格、数据库查询和电子邮件等操作。
2.1.2CGI工作原理系统嵌入式Web服务器通过CGI程序来获取用户的请求、查询条件,使用HTML方式描述结果并直接回送到客户端的浏览器上,此过程中浏览器将用户输入的数据发送到Web服务器,Web服务器将数据使用STDIN(标准输入)送到CGI程序。
在执行CGI程序后,会访问数据库的记录,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器显示给用户。
使用CGI实现客户与服务器的交互分一下九个标准步骤:Web客户(浏览器)通过URL与Web服务器相连;服务发送HTML(和别的组成请求页面的文件)给用户,一旦页面内容传完,这个连接自动断开;在客户方,HTML脚本提示用户做动作或输入,当用户响应后客户请求Web 服务器建立一个新的连接;一旦建立连接,客户把用户输入的数据传送给Web服务器;Web服务器把这些信息和别的进程变量传给由HTML以URL形式提交的CGI程序;CGI程序根据输入作出相应的操作,产生对客户的响应(一般以一个HTML 文档的形式),并将其传送给Web服务器;Web服务器把应答数据传送给客户,并关闭连接;图2.4 CGI工作原理其中CGI与表单之间的信息交互方法有两种模式:“GET”和“POST”。
选择哪一种模式取决于表单(FORM)的“METHOD”字段的设置,如果METHOD 设定为GET,CGI程序从环境变量QUER_STRING中获取数据。
为了解释数据和执行需要的动作,CGI程序必须要分析(处理)此字符串;如果METHOD设定为POST,数据会以STDIN,必须使用CONTENT_LENGTH值。
在本设计中CGI程序采用的是POST方法。
如果想从服务器获得数据并且不改变服务器上的数据时,应该选用GET方法;也有例外,当传输的数据很长时,选用POST方法较好;使用GET方式编写CGI程序会更加简单,但是POST方式则更加先进;当发送的数据将改变Web服务器端的数据时,或者想给CGI程序传输大量数据(一般地,超过1024字节,这是URL的极限长度)时,应该选用POST方法。
3 嵌入式Web 服务器简述嵌入式Web 服务器(Embedded Web Server)是指将Web 服务器嵌入到控制设备和现场测试中,借助于相关的软硬件平台系统,将传统嵌入式设备转变成了以TCP/IP 为底层通信协议和Web 技术为核心的网络测试及远程控制设备。
嵌入式Web 服务器基于HTTP 协议运作,具有标准的接口形式和通信协议,所以它可以向接入其所在网络的用户提供统一的基于浏览器的控制界面和相关操作。