已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1第1页共16页题目基于ARM的嵌入式WEB服务器设计学号1020410211姓名洪室平班级10204102专业计算机科学与技术课程老师高小辉二零一二年十二月2第2页共16页摘要随着计算机、网络通信和INTERNET技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛。如何将嵌入式系统和工业控制系统接入INTERNET,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互。传统的服务器程序一般运行在大型的拥有高级操作系统的服务器的计算机上,这样服务器软件需要强大的硬件和系统软件支持。嵌入式网络服务器是利用嵌入式系统实现服务器的软件和硬件功能,是嵌入式技术和网络技术相结合的产物。与传统服务器相比,嵌入式WEB服务器具有结构简单、体积小、可靠性强以及方便灵活等特点。这些让它具有很大的发展潜力。另一方面,嵌入式WEB服务器与传统的WEB服务器相比,也受到一些限制。传统的WEB服务器主要用于处理较大的客户量的同时并发访问,硬件方面有强大的处理器和内存支持,软件方面有商业数据库支持,而嵌入式WEB服务器的处理能力和存储容量都有限,这就要求嵌入式WEB服务器在设计过程中需要尽量合理利用资源。将嵌入式技术与WEB技术相结合,已成为目前嵌入式系统的一个重要发展方向和必然趋势。利用源代码开放的UCLINUX为操作系统平台,实现了以ARM微处理器为核心的嵌入式WEB服务器,在分析了嵌入式WEB服务器的体系结构后,给出了系统的硬件结构组成和软件设计。对WEB服务器的测试结果表明,该服务器运行稳定、控制方便,将在智能家居、远程数据采集、工业控制等领域有着广泛的应用前景。关键词网络通信;嵌入式系统;ARM处理器;UCLINUX;BOA服务器;3第3页共16页引言随着INTERNET技术的飞速发展,导致许多领域的传统控制方式发生变革。这些领域的控制系统可以通过WEB服务器接入INTERNET,这样用户在世界任何一个地方都可以通过INTERNET获取WEB服务器提供的信息,进而实现系统的远程控制和管理。但以具有高运算处理能力和海量存储容量的工作站或PC机为硬件平台,以非实时操作系统为软件平台,运行着大型复杂程序的传统WEB服务器,并非在任何环境下都适用,尤其是对实时性要求比较高的领域,如工业控制、远程数据采集等。基于嵌入式系统的WEB服务器的出现,为以上问题的解决开辟了一条新途径。1发展背景随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。广义讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。所谓嵌入式设备,是指具有计算机功能,但又不称为计算机的设备或器材,几乎包括了我们周期的所有电路设备PDA、手机机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、自动取款机等。嵌入式系统可以通过各种无线形式(如WAP、BLUETOOTH等)和有线形式(TCP/IP、PPP等)的网络连接方式实现它们之间的相互连接,因此,在网络通信市场上极具生命力。现在人们对INTERNET应用的依赖程序日渐增加,也促进了嵌入式技术的增长。信息家电的发展也为嵌入式INTERNET技术提供空间,如面向INTERNET的信息冰箱。这种信息家电的特点就是价格低廉、软件功能强大、全面支持INTERNET访问、软件可通过网络升级、有效保护用户投资。嵌入式INTERNET技术主要包括传感器技术、通信技术、计算机技术和集成电路技术等。以前的设备控制系统一般是通过专用通信线中进行的,其通信介质、通信协议、相关软件和硬件都是专用的,而INTERNET技术的发展使嵌入式设备的远程控制和管理方式有了改变。不需要专用的通信线路,并且传输的信息不局局于数据信号,还有声音和图像。最重要的是其通信协议是标准且公开的。随着WEB技术的发展,几乎改变了现在的信息表达形式,很多应用都是基于WEB技术的。由于HTML语言的标准统一性,只要在嵌入式设备中有一个微型服务器,就可以使用任意一种WEB浏览器接收和发送信息。所以如何设计这种特别WEB服务器,如何在嵌入式设备中安装WEB服务器,就成了嵌入式WEB服务器的发展和研究方向。对于嵌入式WEB服务器的研究和应用,其意义是重大的。它为我们管理、控制和监测各种各样设备提供了一个很好的途径。这种设备可以是具有有限内存资源的8位或16位系统,已足够提供一个用户界面,而且这种方式是基于INTERNET的。这种设备可以在世界任何一个地方,只要它连入INTERNET就能够控制它。4第4页共16页11课题的研究意义INTERNET的迅猛发展,传统的CLIENT/SERVER体系结构客户机/服务器,渐渐的在某些方面显示出它的局限性,BROWSER/SERVER结构浏览器/服务器的出现恰恰弥补了这种缺陷。B/S方式已成为一种时尚,大部分网络应用系统都是以这种B/S方式与网络用户交换信息。B/S的基础是客户端要有一个浏览器程序,服务器端要有一个与之对应的WEB服务器。显然,WEB服务器在B/S方式下起着决定性的作用,因此,一般互联网站都采用功能强大的通用WEB服务器。随着网络各个核心部分业务量的提高,其访问量和数据流量快速增长,处理能力和计算强度也相应增大,使得单一设备根本无法承担,而且许多企业级应用系统的应用请求具有突发性和紧急性的特点,当应用访问急剧上升时,容易造成网络瓶颈。解决这一问题的办法是采用多台嵌入式WEB服务器为一个应用服务,集群负载均衡机制就是为解决多个网络设备之间实现合理的业务量分配而提出的。12论文研究内容嵌入式WEB服务器是指将WEB服务器引入到现场测试和控制设备中,在相应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为具备了以TCP/IP为底层通信协议,WEB技术为核心的基于互联网的网络测试和控制设备。EWS系统与传统的WEB应用相比,简化了系统结构,将信息采集和信息发布都集成到现场的测控设备中。而有了标准的接口形式和通信协议,内嵌于设备的从WEB服务器同样可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面,浏览器成了设备的前端控制板。由于WEB技术的开放性和独立平台特性,大大降低了软件系统和通信系统的设计、维护工作量,节省了人员培训费用等,提高了现场测试和控制设备的管理水平。本文设计的基于ARM的嵌入式WEB服务器,响应速度快,实时性强,用户通过浏览器中的表单向服务器发送控制信息,操作方便、快捷,经过适当修改,能够很好地适应智能家居等远程监控的需要。2嵌入式WEB服务器的软件构成嵌入式WEB服务器主要解决的问题是通过INTERNET来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP协议和WEB服务器,以解决网络互联问题。但是嵌入式服务器系统只需要使用其中的某些基本的功能,也要减去一些使用不到有功能,以节省有限的嵌入式资源。TCP/IP此外5第5页共16页还要用到的软件资源有嵌入式实时操作系统、HTTP协议,同时带有SMTP和SNMP协议,使其具有网络管理的简单功能,通过网络可以对接入到INTERNET上的设备进行管理和控制。21CGI技术211CGI概述由于传统的WEB服务器无法实现WEB数据库访问功能,CGI技术充当了访问数据库的重要媒介。CGI是使用应用相关软件增强WEB服务器的一种标准方法,可以用任何语言书写。CGI根据需求更新网页,是一种公共网关接口。它通过客户提供给WEB服务器的各种信息,由WEB服务器启动指定CGI模块函数,完成客户端与服务器端动态的交互,从而实现静态HTML网页无法实现的功能如表单查询、数据库查询等。通常CGI应用程序处于休眠状态,通过使用一定的网络事件触发回调函数来实现,并显示动态页面。例如,WEB服务器收到一个URL里面包含的网页请求时,将执行结果返回给HTML网页,CGI可实现处理表格、数据库查询和电子邮件等操作。212CGI工作原理系统嵌入式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服务器把应答数据传送给客户,并关闭连接;6第6页共16页WEB浏览器CGI脚本WEB服务器POST用STDIN输入数据GET用QUERYSTRING输入数据用STDOUT输出数据运行结果启动CGI图24CGI工作原理其中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服务器EMBEDDEDWEBSERVER是指将WEB服务器嵌入到控制设备和现场测试中,借助于相关的软硬件平台系统,将传统嵌入式设备转变成了以TCP/IP为底层通信协议和WEB技术为核心的网络测试及远程控制设备。嵌入式WEB服务器基于HTTP协议运作,具有标准的接口形式和通信协议,所以它可以向接入其所在网络的用户提供统一的基于浏览器的控制界面和相关操作。这种技术因具有平台独立特性和开放性,在某种程度上降低了开发难度,使通信系统和软件系统的设计维护工作更容易,提升了控制设备和现场测试的管理水平。如图1所示是典型的嵌入式WEB服务器的系统模型7第7页共16页嵌入式WEB设备WEB浏览器嵌入式WEB服务器图形用户界面HTML解析器HTML解析器HTML解析器HTML解析器HTTP引擎TCP/IP协议栈TCP/IP协议栈HTTP引擎静态WEB页面嵌入式设备HTML解析器HTML解析器图1典型的嵌入式WEB服务器系统模型INTERNET可以提供多种网络服务,比如通过SMTP(简单邮件传输协议)收发邮件,通过FTP(文件传输协议)传输文件。INTERNET能得到如此大规模的流行,WWW(WORLDWIDEWEB)技术居功至伟。可以说如果没有WWW和HTTP技术就不会有这么多人使用INTERNET,正是WWW技术把INTERNET的结构、服务和应用引上了一个新台阶。31嵌入式WEB服务器的主要应用目前嵌入式WEB服务器主要用于设备管理和企业应用程序网络扩展,它作为后台程序在运行嵌入式设备上,用户可以通过网络对设备进行配置、监测和控制,以保证设备正常而高效地运作。WEB接口可以让用户借助于WEB浏览器和网络来访问嵌入式设备。以这种方式对设备进行管理不仅可以监测和控制,而且可以根据设备的特点设计地更加人性化和智能化。WEB服务已成为支撑现代应用程序的技术和系统的核心组件,目前大部分企业用户都希望为他们的程序添加上基于WEB的用户接口。32嵌入式WEB服务器的优点嵌入WEB服务器的优点主要体现在以下几个方面1)它可以与INTERNET连接,不再使用专用的线路,这样就具有了最大的普及范围;2)传输内容不局限于数据信息,还有图像和声音等多媒体信息;3)通信协议HTTP独立于系8第8页共16页统平台,而且是标准而且公开的;4)WEB页面使用的HTML语言是统一的网页语言,这使标准化界面与客户端的软硬件平台相互独立,节省了客户端的开发工作;5)WEB架构能够减少了在设计系统时的工作量;6)存在大量的工具和函数库,减少了开发的工作量;7)嵌入式WEB服务器具有通用性,能够嵌入到任何设备当中。通过应用程序接口,服务器可以运行程序去实现高级功能,普通的监控方式达不到这样的效果。33嵌入式WEB服务器实现原理WEB服务器监听来自客户端请求,并根据请求类型提供相对应的服务。它将WEB服务器引入到现场嵌入式设备中,并将信息采集与发布都集成到现场的嵌入式设备中。在相应的软硬件平台支持下,利用标准的通信协议和接口形式,内嵌于嵌入式设备的WEB服务器就具备了向接入它所在网络的合法用户提供统一的基于浏览器方式的控制界面和操作,此时浏览器成了设备的前端控制板。当前在嵌入式应用领域,主要通过两种方式将嵌入式系统转变为嵌入式WEBSERVER1)通过网关服务器实现INTERNET接入;2)直接通过TCP/IP协议实现嵌入式设备的INTERNET接入。4嵌入式WEB服务器硬件整体结构嵌入式WEB服务器的硬件系统包含了具有WEB通信能力的微处理器,它可以通过现场总线与应用系统相连,也可以与前端的应用系统直接集成在一起。其硬件结构如图2所示。系统中的FLASHROM存储器是用来存储软件系统的内核、HTML文档、TCP/IP协议;RAM存储器用于存储各种数据;网络接口用于与INTERNET连接;前端现场测控的硬件完成对现场设备的监测、监测、报警、自动控制等功能;微型处理器负责全体的管理与运行;人机接口是可选条件,实现在本地对现场设备的人工监控。存储器FLASHROM数据存储器RAM微型处理器网络接口部件应用系统硬件9第9页共16页图2A嵌入式系统WEB服务器硬件结构INTERNET图2(B)嵌入式系统WEB服务器软件系统41嵌入式WEB服务器软件构成嵌入式WEB服务器主要解决的问题是通过INTERNET来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP协议和WEB服务器,以解决网络互联问题。但是嵌入式服务器系统只需要使用其中的某些基本的功能,TCP/IP也要减去一些使用不到有功能,以节省有限的嵌入式资源。此外还要用到的软件资源有嵌入式实时操作系统、HTTP协议,同时带有SMTP和SNMP协议,使其具有网络管理的简单功能,通过网络可以对接入到INTERNET上的设备进行管理和控制。42精简TCP/IP协议及实现嵌入式WEB服务器软件中必须实现TCP/IP协议,但要根据实际的需求作相应的裁减。精简的TCP/IP协议通常只包含TCP,IP,ARP,ICMP等协议。文档(网页页面小程序)虚拟文件系统配置模块安全模块应用程序接口HTP引擎嵌入式操作系统应用系统管理嵌入式应用系统10第10页共16页421ARP协议及其实现嵌入式WEB服务器软件方面需实现ARP协议中的应答部分嵌入式WEB服务器在收到远程ARP请求后,将ARP请求报文中目标机和本地IP、物理地址进行了交换处理,并将EWS的物理地址写在ARP应答报文的本地物理地址段。实际上此ARP协议的实现是通过向网络接口层发送含有目标机物理地址和本机IP地址的ARP应答报文这一过程来完成。422ICMP协议及其实现ICMP(网际控制报文协议)主要用来将处理一个IP数据过程中的错误显示出来,并提供相关状态和管理信息。ICMP的差错信息由8位代码和8位类型组成。嵌入式WEB服务器简化了ICMP协议,只需简化实现与PING命令相关的ICMP报文处理部分。具体可通过编制PINGACK过程来完成,用PINGACK监测PING命令,如果监测到对本机的PING连接,则发送类型为0的ICMP报文。423IP协议及其实现IP协议提供无连接的、不可靠的数据分组传送服务,在嵌入式WEB服务器中,IP协议只需要完成接收数据的IP解包和发送数据的IP封装。IP协议在嵌入式WEB服务器中的实现可通过以下两个过程来完成1)IPPACK(),此过程将传输层传来数据的前部添加20字节的IP报头。2)IPUNPACK,此过程提取网络接口层送来的IP报头的20字节数据并与本机的IP地址进行比较,如果相同,记录对方的IP地址,并去除报数据的前20字节的报头;否则,丢弃。424TCP协议及实现TCP协议提供面向连接的、可靠的字节流传输服务。建立连接、数据传输和关闭连接的工作过程,保证了TCP协议数据传输的可靠性。在数据传输前,必须在信源与信宿建立一条连接,只有连接成功才可以发送数据。此外,接收端也要对收到的第一个报文进行确认,未经确认的报文被认为是出错。由于嵌入式WEB服务器传输数据量较少,支持单进程的TCP任务即可,故只需要简化TCP协议的数据重组和分组的功能。方法为嵌入式WEB服务器在本地打开一个端口监听TCP报文数据,监测到远程用户对系统的TCP请求连接时,系统发送确认报文并建立TCP连接,然后开始传送数据。发送数据时,TCP状11第11页共16页态机会在数据前面加上TCP报头后发送到IP层;接收数据时,从IP层来的数据经过TCP状态机去掉TCP报头后送到应用层。TCP协议软件可通过两个过程来实现1)TCPPACK,将TCP报头添加到应用层送来的数据前部;2)TCPUNPACK,将网络接口层送来的TCP报数据的34字节数据(目的端口号)与系统默认端口作对比,如相同,则去除数据报的前20字节的报头;否则,丢弃。TCP数据报重发、确认是通过发送特定内容的报文来控制。43HTTP协议HTTP引擎是嵌入式WEB服务器的核心,它是浏览器与WEB服务器通信的协议。HTTP规定了浏览器和服务器之间传输的消息格式及各种控制信息和发送和处理请求的标准方式,从而定义了所有WEB通信的基本框架。如图所示,在嵌入式WEB服务器中,为了不影响嵌入式系统的CPU和内存资源而又得到一个稳定的用户界面,应该使用HTTP10标准。44CGI接口CGI也就是通用网关接口,它定义了CGI脚本与WEB服务器之间的接口标准,其主要功能是在WEB环境下,将客户端的一些信息传送给服务器端,WEB服务器接收有关信息并放入环境变量,然后启动所指定的CGI脚本以完成特定的工作。CGI脚本从环境变量中获取相关信息来运行,最后以HTML格式输出相应的执行结果返回给浏览器端。由于用户能传递不同的参数给CGI脚本,所以CGI技术使得浏览器和服务器之间具有交互性。5系统软件设计51嵌入式操作系统UCLINUX是一种专为嵌入式系统设计的LINUX,它从LINUX20/24内核派生而来,专门应用于没有MMU的CPU9。UCLINUX带有一个完整的TCP/IP协HTTP服务器端HTTP客户端CGIHTML文档12第12页共16页议,同时它还支持许多其他网络协议。因此,UCLINUX对于嵌入式系统来说,是一个网络完备的操作系统。另外,由于LINUX的源代码开放性,任何新的网络协议都可以很容易加入到内核中,用户可以方便地开发定制,不受任何限制。正是基于以上原因,本系统采用了UCLINUX作为嵌入式WEB服务器的操作系统。52BOA的移植在UCLINUX下构建BOA服务器的方法由以下步骤完成(1)从WWWBOAORG上下载BOA的源代码,将其解压后生成MAKEFILE文件。修改MAKEFILE文件,将文件中的CCGCC改为CCARMLINUXGCC,CPPGCCE改为CPPARMLINUXGCCE。然后运行MAKE进行编译,得到可执行文件BOA,再将调试信息舍去,使其瘦身。(2)修改BOACONF文件。BOA启动时需要用到一个配置文件BOACONF,该文件用于配置BOA服务器的相应接口、服务器名称、相关文件路径等。在这里,将USERNOBODY改为USER0,将GROUPNOGROUP改为GROUP0,将DOCUMENTROOT/VAR/WWW改为DOCUMENTROOT/ETC/BOA/HTML,将SCRIPTALIAS/CGIBIN/USR/LIB/CGIBIN/修改为SCRIPTALIAS/CGIBIN/ETC/BOA/CGIBIN/。(3)由于默认的根文件系统是只读的,所以在编译内核前,需要根据配置文件BOACONF在文件系统中建立相关目录。(4)将可执行文件BOA、配置文件BOACONF、可执行的CGI程序和网页文件分别放入对应的目录中,并在/ETC/BOA/HTML中建立主页文件INDEXHTML。(5)重新编译内核,将编译好的内核下载到开发板。53软件实现为了实现客户浏览器同WEB服务器之间的动态交互性,需要采用某种服务器端技术来动态生成WEB页。目前,实现动态网页的四种技术分别是CGI、ASP、PHP和JSP,但UCLINUX不支持ASP和PHP,故采用CGI来实现动态WEB页面。CGI是一种在WEB服务器中运行的程序,它定义了WEB服务器与其他可执行程序之间进行交互的接口标准。当WEB服务器接收到客户浏览器发送的HTTP请求时,先判断它是静态页面请求还是CGI动态请求,如果是后者就将数据传递给CGI程序,并重定向CGI程序的输出到WEB页,CGI程序在处理时将数据封装成HTML形式发送到输出,这样客户端浏览器就可以看到对应的WEB页。软件的设计框架如图3所示。开始13第13页共16页NY静态页面请求CGI动态请求图3软件设计框图其中的监听连接部分是一个无限循环,它总在监听来自浏览器端的连接请求,如果发现连接合法,就建立起客户端浏览器和WEB服务器的连接。可以利用UCLINUX提供的SOCKET
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网金融合规培训课件
- 2026年剧本杀运营公司员工入职培训管理制度
- 智能图像识别在2025年跨境数字内容审核平台的应用可行性研究
- 产后健康评估与随访管理
- 2025年太阳能光伏板回收十年技术报告
- 交通辅警面试题目及答案
- 2026年柔性显示材料创新应用报告
- 河池辅警面试题目及答案
- 催收公司的作业制度
- 全州县公安局2025年度第三批警务辅助人员招聘备考题库及一套完整答案详解
- 2024-2025学年江苏省南京市玄武区八年级上学期期末语文试题及答案
- 专升本语文教学课件
- 别人买房子给我合同范本
- 电力通信培训课件
- 中建三局2024年项目经理思维导图
- 基层党建知识测试题及答案
- DG-TJ08-2021-2025 干混砌筑砂浆抗压强度现场检测技术标准
- 鼻窦炎的护理讲课课件
- 肠系膜脂膜炎CT诊断
- 体外膜肺氧合技术ECMO培训课件
- 老年医院重点专科建设方案
评论
0/150
提交评论