当前位置:文档之家› 基于ARM的嵌入式Web服务器设计与实现

基于ARM的嵌入式Web服务器设计与实现

河南工业大学嵌入式系统课程设计题目:基于ARM的嵌入式Web服务器设计与实现专业课程设计任务书说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页目录摘要 (4)1 嵌入式Web服务器的软件构成 (6)1.1 CGI技术 (6)1.1.1 CGI概述 (6)1.1.2CGI工作原理 (7)2 嵌入式Web 服务器简述 (8)2.1 嵌入式Web 服务器的主要应用 (10)2.2 嵌入式Web 服务器的优点 (10)2.3 嵌入式Web 服务器实现原理 (10)3 嵌入式Web 服务器硬件整体结构 (11) (13) (1)3.1 嵌入式Web 服务器软件构成 (13)3.2 精简TCP/IP 协议及实现 (13)3.2.1 ARP 协议及其实现 (13)3.2.2 ICMP 协议及其实现 (14)3.2.3 IP 协议及其实现 (14)3.2.4 TCP 协议及实现 (14)3.3 HTTP 协议 (15)3.4 CGI 接口 (16)4 系统软件设计 (16)4.1 嵌入式操作系统 (16)4.2 Boa的移植 (17)4.3 软件实现 (17)5 实验测试 (20)6 结束语 (21)参考文献 (22)摘要随着计算机、网络通信和Internet 技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛。

如何将嵌入式系统和工业控制系统接入Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。

网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互。

传统的服务器程序一般运行在大型的拥有高级操作系统的服务器的计算机上,这样服务器软件需要强大的硬件和系统软件支持。

嵌入式网络服务器是利用嵌入式系统实现服务器的软件和硬件功能,是嵌入式技术和网络技术相结合的产物。

与传统服务器相比,嵌入式Web服务器具有结构简单、体积小、可靠性强以及方便灵活等特点。

这些让它具有很大的发展潜力。

另一方面,嵌入式Web服务器与传统的web服务器相比,也受到一些限制。

传统的Web服务器主要用于处理较大的客户量的同时并发访问,硬件方面有强大的处理器和内存支持,软件方面有商业数据库支持,而嵌入式Web服务器的处理能力和存储容量都有限,这就要求嵌入式Web服务器在设计过程中需要尽量合理利用资源。

将嵌入式技术与Web 技术相结合,已成为目前嵌入式系统的一个重要发展方向和必然趋势。

利用源代码开放的uClinux 为操作系统平台,实现了以ARM 微处理器为核心的嵌入式Web 服务器,在分析了嵌入式Web 服务器的体系结构后,给出了系统的硬件结构组成和软件设计。

对Web 服务器的测试结果表明,该服务器运行稳定、控制方便,将在智能家居、远程数据采集、工业控制等领域有着广泛的应用前景。

关键词:网络通信;嵌入式系统;ARM处理器;uClinux;Boa服务器;1 嵌入式Web服务器的软件构成嵌入式Web 服务器主要解决的问题是通过Internet 来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP 协议和Web 服务器,以解决网络互联问题。

但是嵌入式服务器系统只需要使用其中的某些基本的功能,也要减去一些使用不到有功能,以节省有限的嵌入式资源。

TCP/IP 此外还要用到的软件资源有嵌入式实时操作系统、HTTP 协议,同时带有SMTP 和SNMP 协议,使其具有网络管理的简单功能,通过网络可以对接入到Internet 上的设备进行管理和控制。

1.1 CGI技术1.1.1 CGI概述由于传统的Web 服务器无法实现Web 数据库访问功能,CGI 技术充当了访问数据库的重要媒介。

CGI 是使用应用相关软件增强Web 服务器的一种标准方法,可以用任何语言书写。

CGI 根据需求更新网页,是一种公共网关接口。

它通过客户提供给Web 服务器的各种信息,由Web 服务器启动指定CGI 模块函数,完成客户端与服务器端动态的交互,从而实现静态HTML 网页无法实现的功能( 如表单查询、数据库查询等)。

通常CGI 应用程序处于休眠状态,通过使用一定的网络事件触发回调函数来实现,并显示动态页面。

例如,Web 服务器收到一个URL 里面包含的网页请求时,将执行结果返回给HTML 网页,CGI 可实现处理表格、数据库查询和电子邮件等操作。

1.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服务器把应答数据传送给客户,并关闭连接;图1.1 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方法。

2 嵌入式Web 服务器简述嵌入式Web 服务器(Embedded Web Server)是指将Web 服务器嵌入到控制设备和现场测试中,借助于相关的软硬件平台系统,将传统嵌入式设备转变成了以TCP/IP 为底层通信协议和Web 技术为核心的网络测试及远程控制设备。

嵌入式Web 服务器基于HTTP 协议运作,具有标准的接口形式和通信协议,所以它可以向接入其所在网络的用户提供统一的基于浏览器的控制界面和相关操作。

这种技术因具有平台独立特性和开放性,在某种程度上降低了开发难度,使通信系统和软件系统的设计维护工作更容易,提升了控制设备和现场测试的管理水平。

如图1所示是典型的嵌入式Web服务器的系统模型:图1 典型的嵌入式Web服务器系统模型Internet可以提供多种网络服务,比如通过SMTP(简单邮件传输协议)收发邮件,通过FTP(文件传输协议)传输文件。

Internet能得到如此大规模的流行,WWW(World Wide Web)技术居功至伟。

可以说如果没有WWW和HTTP 技术就不会有这么多人使用Internet,正是WWW技术把Internet的结构、服务和应用引上了一个新台阶。

2.1 嵌入式Web 服务器的主要应用目前嵌入式Web 服务器主要用于设备管理和企业应用程序网络扩展,它作为后台程序在运行嵌入式设备上,用户可以通过网络对设备进行配置、监测和控制,以保证设备正常而高效地运作。

Web 接口可以让用户借助于Web 浏览器和网络来访问嵌入式设备。

以这种方式对设备进行管理不仅可以监测和控制,而且可以根据设备的特点设计地更加人性化和智能化。

Web 服务已成为支撑现代应用程序的技术和系统的核心组件,目前大部分企业用户都希望为他们的程序添加上基于Web 的用户接口。

2.2 嵌入式Web 服务器的优点嵌入Web 服务器的优点主要体现在以下几个方面:1)它可以与Internet 连接,不再使用专用的线路,这样就具有了最大的普及范围;2)传输内容不局限于数据信息,还有图像和声音等多媒体信息;3)通信协议(HTTP)独立于系统平台,而且是标准而且公开的;4)Web 页面使用的HTML 语言是统一的网页语言,这使标准化界面与客户端的软硬件平台相互独立,节省了客户端的开发工作;5)Web 架构能够减少了在设计系统时的工作量;6)存在大量的工具和函数库,减少了开发的工作量;7)嵌入式Web 服务器具有通用性,能够嵌入到任何设备当中。

通过应用程序接口,服务器可以运行程序去实现高级功能,普通的监控方式达不到这样的效果。

2.3 嵌入式Web 服务器实现原理Web 服务器监听来自客户端请求,并根据请求类型提供相对应的服务。

它将Web 服务器引入到现场嵌入式设备中,并将信息采集与发布都集成到现场的嵌入式设备中。

在相应的软硬件平台支持下,利用标准的通信协议和接口形式,内嵌于嵌入式设备的Web 服务器就具备了向接入它所在网络的合法用户提供统一的基于浏览器方式的控制界面和操作,此时浏览器成了设备的前端控制板。

当前在嵌入式应用领域,主要通过两种方式将嵌入式系统转变为嵌入式WebServer:1)通过网关服务器实现Internet 接入;2)直接通过TCP/IP 协议实现嵌入式设备的Internet 接入。

3 嵌入式Web 服务器硬件整体结构嵌入式Web 服务器的硬件系统包含了具有Web 通信能力的微处理器,它可以通过现场总线与应用系统相连,也可以与前端的应用系统直接集成在一起。

其硬件结构如图2所示。

系统中的FLASH ROM 存储器是用来存储软件系统的内核、HTML 文档、TCP/IP 协议;RAM 存储器用于存储各种数据;网络接口用于与Internet 连接;前端现场测控的硬件完成对现场设备的监测、监测、报警、自动控制等功能;微型处理器负责全体的管理与运行;人机接口是可选条件,实现在本地对现场设备的人工监控。

图2 (a) 嵌入式系统web 服务器硬件结构图2(b)嵌入式系统Web 服务器软件系统3.1 嵌入式Web 服务器软件构成嵌入式Web 服务器主要解决的问题是通过Internet 来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP 协议和Web 服务器,以解决网络互联问题。

相关主题