收藏 分销(赏)

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

上传人:二*** 文档编号:4512579 上传时间:2024-09-26 格式:DOC 页数:20 大小:221.03KB
下载 相关 举报
基于ARM的嵌入式Web服务器设计与实现样本.doc_第1页
第1页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、河南工业大学 嵌入式系统课程设计 题目: 基于ARM嵌入式Web服务器设计与实现 专业课程设计任务书学生姓名专业班级学院名称学号题 目基于ARM嵌入式Web服务器设计与实现课题性质工程设计课题来源自拟指引教师同组姓名重要内容设计一种嵌入式系统,Web服务器设计与实现。规定:1. 理解Web服务器原理2.Web服务器设计与实现任务规定设计系统总体方案,并进行论证。 阐明Web服务器原理和ARM 微解决器控制板工作原理及构成,画出电路总体方框图和电路原理图。阐明系统工作原理,对系统进行调试。写出课程设计报告。参照文献嵌入式系统技术关于教材电路设计手册其她资料审查意见指引教师签字: 年1 月 6 日

2、 阐明:本表由指引教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页目录摘 要41 嵌入式Web服务器的软件构成51.1 CGI技术51.1.1 CGI概述51.1.2CGI工作原理52 嵌入式Web 服务器简述72.1 嵌入式Web 服务器的主要应用82.2 嵌入式Web 服务器的优点82.3 嵌入式Web 服务器实现原理83 嵌入式Web 服务器硬件整体结构910103.1 嵌入式Web 服务器软件构成103.2 精简TCP/IP 协议及实现113.2.1 ARP 协议及其实现113.2.2 ICMP 协议及其实现113.2.3 IP 协议及其实现113.2.4 TCP 协

3、议及实现123.3 HTTP 协议123.4 CGI 接口134 系统软件设计134.1 嵌入式操作系统134.2 Boa的移植134.3 软件实现145 实验测试166 结束语17参考文献18 摘 要随着计算机、网络通信和Internet 技术飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛。如何将嵌入式系统和工业控制系统接入Internet,综合运用嵌入式系统资源,实现嵌入式系统远程管理和控制,已成为倍受关注研究课题,而实现嵌入式系统网络化则成为嵌入式系统发展趋势。网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互。老式服务器程序普通运营在大型拥有高档操作系统服务器计算

4、机上,这样服务器软件需要强大硬件和系统软件支持。嵌入式网络服务器是运用嵌入式系统实现服务器软件和硬件功能,是嵌入式技术和网络技术相结合产物。与老式服务器相比,嵌入式Web服务器具备构造简朴、体积小、可靠性强以及以便灵活等特点。这些让它具备很大发展潜力。另一方面,嵌入式Web服务器与老式web服务器相比,也受到某些限制。老式Web服务器重要用于解决较大客户量同步并发访问,硬件方面有强大解决器和内存支持,软件方面有商业数据库支持,而嵌入式Web服务器解决能力和存储容量均有限,这就规定嵌入式Web服务器在设计过程中需要尽量合理运用资源。将嵌入式技术与Web 技术相结合,已成为当前嵌入式系统一种重要发

5、展方向和必然趋势。运用源代码开放uClinux 为操作系统平台,实现了以ARM微解决器为核心嵌入式Web 服务器,在分析了嵌入式Web 服务器体系构造后,给出了系统硬件构造构成和软件设计。对Web 服务器测试成果表白,该服务器运营稳定、控制以便,将在智能家居、远程数据采集、工业控制等领域有着广泛应用前景。 核心词:网络通信;嵌入式系统;ARM解决器;uClinux;Boa服务器; 1 嵌入式Web服务器软件构成嵌入式 Web 服务器重要解决问题是通过 Internet 来进行远程访问和控制现场设备,因此必要在嵌入式设备中配备 TCP/IP 合同和 Web 服务器 , 以解决网络互联问题。但是嵌

6、入式服务器系统只需要使用其中某些基本 功能,也要减去某些使用不到有功能 ,以节约有限嵌入式资源。TCP/IP 此外还要用到软件资源有嵌入式实时操作系统 、HTTP 合同 ,同步带有 SMTP 和 SNMP 合同 ,使其具备网络管理简朴功能 ,通过网络可以对接 入到 Internet 上设备进行管理和控制。 1.1 CGI技术1.1.1 CGI概述由于老式Web 服务器无法实现Web 数据库访问功能,CGI 技术充当了访问数据库重要媒介。CGI 是使用应用有关软件增强Web 服务器一种原则办法, 可以用任何语言书写。CGI 依照需求更新网页, 是一种公共网关接口。它通过客户提供应Web 服务器各

7、种信息, 由Web 服务器启动指定CGI 模块函数, 完毕客户端与服务器端动态交互, 从而实现静态HTML 网页无法实现功能( 如表单查询、数据库查询等)。普通CGI 应用程序处在休眠状态, 通过使用一定网络事件触发回调函数来实现, 并显示动态页面。例如,Web 服务器收到一种URL 里面包括网页祈求时, 将执行成果返回给HTML 网页,CGI 可实现解决表格、数据库查询和电子邮件等操作。1.1.2CGI工作原理系统嵌入式Web服务器通过CGI程序来获取顾客祈求、查询条件,使用HTML方式描述成果并直接回送到客户端浏览器上,此过程中浏览器将顾客输入数据发送到Web服务器,Web服务器将数据使用

8、STDIN(原则输入)送到CGI程序。在执行CGI程序后,会访问数据库记录,最后使用STDOUT输出HTML形式成果文献,经Web服务器送回浏览器显示给顾客。使用CGI实现客户与服务器交互分一下九个原则环节:Web客户(浏览器)通过URL与Web服务器相连;服务发送HTML(和别构成祈求页面文献)给顾客,一旦页面内容传完,这个连接自动断开;在客户方,HTML脚本提示顾客做动作或输入,当顾客响应后客户祈求Web服务器建立一种新连接;一旦建立连接,客户把顾客输入数据传送给Web服务器;Web服务器把这些信息和别进程变量传给由HTML以URL形式提交CGI程序;CGI程序依照输入作出相应操作,产生对

9、客户响应(普通以一种HTML文档形式),并将其传送给Web服务器;Web服务器把应答数据传送给客户,并关闭连接;图1.1 CGI工作原理其中CGI与表单之间信息交互办法有两种模式:“GET”和“POST”。选取哪一种模式取决于表单(FORM)“METHOD”字段设立,如果METHOD设定为GET,CGI程序从环境变量QUER_STRING中获取数据。为理解释数据和执行需要动作,CGI程序必要要分析(解决)此字符串;如果METHOD设定为POST,数据会以STDIN,必要使用CONTENT_LENGTH值。在本设计中CGI程序采用是POST办法。如果想从服务器获得数据并且不变化服务器上数据时,应

10、当选用GET办法;也有例外,当传播数据很长时,选用POST办法较好;使用GET方式编写CGI程序会更加简朴,但是POST方式则更加先进;当发送数据将变化Web服务器端数据时,或者想给CGI程序传播大量数据(普通地,超过1024字节,这是URL极限长度)时,应当选用POST办法。 2 嵌入式Web 服务器简述 嵌入式Web 服务器(Embedded Web Server)是指将Web 服务器嵌入到控制设备和现场测试中,借助于有关软硬件平台系统,将老式嵌入式设备转变成了以TCP/IP 为底层通信合同和Web 技术为核心网络测试及远程控制设备。嵌入式Web 服务器基于HTTP 合同运作,具备原则接口

11、形式和通信合同,因此它可以向接入其所在网络顾客提供统一基于浏览器控制界面和有关操作。这种技术因具备平台独立特性和开放性,在某种限度上减少了开发难度,使通信系统和软件系统设计维护工作更容易,提高了控制设备和现场测试管理水平。如图1所示是典型嵌入式Web服务器系统模型:图1 典型嵌入式Web服务器系统模型Internet可以提供各种网络服务,例如通过SMTP(简朴邮件传播合同)收发邮件,通过FTP(文献传播合同)传播文献。Internet能得到如此大规模流行,WWW(World Wide Web)技术居功至伟。可以说如果没有WWW和HTTP技术就不会有这样多人使用Internet,正是WWW技术把

12、Internet构造、服务和应用引上了一种新台阶。2.1 嵌入式Web 服务器重要应用当前嵌入式Web 服务器重要用于设备管理和公司应用程序网络扩展,它作为后台程序在运营嵌入式设备上,顾客可以通过网络对设备进行配备、监测和控制,以保证设备正常而高效地运作。Web 接口可以让顾客借助于Web 浏览器和网络来访问嵌入式设备。以这种方式对设备进行管理不但可以监测和控制,并且可以依照设备特点设计地更加人性化和智能化。Web 服务已成为支撑当代应用程序技术和系统核心组件,当前大某些公司顾客都但愿为她们程序添加上基于Web 顾客接口。2.2 嵌入式Web 服务器长处嵌入Web 服务器长处重要体当前如下几种

13、方面:1)它可以与Internet 连接,不再使用专用线路,这样就具备了最大普及范畴;2)传播内容不局限于数据信息,尚有图像和声音等多媒体信息;3)通信合同(HTTP)独立于系统平台,并且是原则并且公开;4)Web 页面使用HTML 语言是统一网页语言, 这使原则化界面与客户端软硬件平台互相独立, 节约了客户端开发工作;5)Web 架构可以减少了在设计系统时工作量;6)存在大量工具和函数库,减少了开发工作量;7)嵌入式Web 服务器具备通用性,可以嵌入到任何设备当中。通过应用程序接口,服务器可以运营程序去实现高档功能,普通监控方式达不到这样效果。2.3 嵌入式Web 服务器实现原理Web 服务

14、器监听来自客户端祈求,并依照祈求类型提供相相应服务。它将Web 服务器引入到现场嵌入式设备中,并将信息采集与发布都集成到现场嵌入式设备中。在相应软硬件平台支持下,运用原则通信合同和接口形式,内嵌于嵌入式设备Web 服务器就具备了向接入它所在网络合法顾客提供统一基于浏览器方式控制界面和操作,此时浏览器成了设备前端控制板。当前在嵌入式应用领域,重要通过两种方式将嵌入式系统转变为嵌入式WebServer:1)通过网关服务器实现Internet 接入;2)直接通过TCP/IP 合同实现嵌入式设备Internet 接入。3 嵌入式Web 服务器硬件整体构造 嵌入式Web 服务器硬件系统包括了具备Web

15、通信能力微解决器,它可以通过现场总线与应用系统相连,也可以与前端应用系统直接集成在一起。其硬件构造如图2所示。系统中FLASH ROM 存储器是用来存储软件系统内核、HTML 文档、TCP/IP 合同;RAM 存储器用于存储各种数据;网络接口用于与Internet 连接;前端现场测控硬件完毕对现场设备监测、监测、报警、自动控制等功能;微型解决器负责全体管理与运营;人机接口是可选条件,实当前本地对现场设备人工监控。数据存储器RAM存储器FLASH ROM 网络接口部件 微型解决器 应用系统硬件 图2 (a) 嵌入式系统web 服务器硬件构造 Internet虚拟文献系统文档(网页页面小程序)HT

16、P引擎配备模块安全模块应用程序接口嵌入式操作系统 应用系统管理嵌入式应用系统 图2(b) 嵌入式系统Web 服务器软件系统3.1 嵌入式Web 服务器软件构成 嵌入式Web 服务器重要解决问题是通过Internet 来进行远程访问和控制现场设备,因此必要在嵌入式设备中配备TCP/IP 合同和Web 服务器,以解决网络互联问题。但是嵌入式服务器系统只需要使用其中某些基本功能,TCP/IP 也要减去某些使用不到有功能,以节约有限嵌入式资源。此外还要用到软件资源有嵌入式实时操作系统、HTTP 合同, 同步带有SMT P 和SNMP 合同,使其具备网络管理简朴功能,通过网络可以对接入到Internet

17、 上设备进行管理和控制。3.2 精简TCP/IP 合同及实现 嵌入式Web 服务器软件中必要实现TCP/IP 合同,但要依照实际需求作相应裁减。精简TCP/IP 合同普通只包括TCP,IP,ARP,ICMP 等合同。3.2.1 ARP 合同及其实现 嵌入式Web 服务器软件方面需实现ARP 合同中应答某些:嵌入式Web 服务器在收到远程ARP 祈求后, 将ARP 祈求报文中目的机和本地IP、物理地址进行了互换解决,并将EWS 物理地址写在ARP 应答报文本地物理地址段。事实上此ARP 合同实现是通过向网络接口层发送具有目的机物理地址和本机IP 地址ARP 应答报文这一过程来完毕。3.2.2 I

18、CMP 合同及其实现 ICMP(网际控制报文合同)重要用来将解决一种IP 数据过程中错误显示出来,并提供有关状态和管理信息。ICMP 差错信息由8 位代码和8 位类型构成。嵌入式Web 服务器简化了ICMP 合同,只需简化实现与Ping 命令有关ICMP 报文解决某些。详细可通过编制PingACK()过程来完毕,用PingACK()监测Ping 命令,如果监测到对本机Ping 连接,则发送类型为0 ICMP 报文。3.2.3 IP 合同及其实现 IP 合同提供无连接、不可靠数据分组传送服务,在嵌入式Web 服务器中,IP 合同只需要完毕接受数据IP 解包和发送数据IP 封装。IP 合同在嵌入式

19、Web 服务器中实现可通过如下两个过程来完毕:1)IPPack(),此过程将传播层传来数据前部添加20 字节IP 报头。2)IPUnpack( ),此过程提取网络接口层送来IP 报头20 字节数据并与本机IP 地址进行比较,如果相似,记录对方IP 地址,并去除报数据前20 字节报头;否则,丢弃。3.2.4 TCP 合同及实现 TCP 合同提供面向连接、可靠字节流传播服务。建立连接、数据传播和关闭连接工作过程,保证了TCP 合同数据传播可靠性。在数据传播前,必要在信源与信宿建立一条连接,只有连接成功才可以发送数据。此外,接受端也要对收到第一种报文进行确认,未经确认报文被以为是出错。由于嵌入式We

20、b 服务器传播数据量较少,支持单进程TCP 任务即可,故只需要简化TCP合同数据重组和分组功能。办法为:嵌入式Web 服务器在本地打开一种端口监听TCP 报文数据,监测到远程顾客对系统TCP祈求连接时,系统发送确认报文并建立TCP 连接,然后开始传送数据。发送数据时,TCP 状态机会在数据前面加上TCP 报头后发送到IP 层; 接受数据时, 从IP 层来数据通过TCP 状态机去掉TCP 报头后送到应用层。TCP 合同软件可通过两个过程来实现:1)TCPPack( ),将TCP 报头添加到应用层送来数据前部;2)TCPUnpack( ),将网络接口层送来TCP 报数据34 字节数据(目端标语)与

21、系统默认端口作对比,如相似,则去除数据报前20 字节报头;否则,丢弃。TCP 数据报重发、确认是通过发送特定内容报文来控制。3.3 HTTP 合同 HTTP 引擎是嵌入式Web 服务器核心,它是浏览器与Web 服务器通信合同。HTTP 规定了浏览器和服务器之间传播消息格式及各种控制信息和发送和解决祈求原则方式,从而定义了所有Web 通信基本框架。如图所示,在嵌入式Web 服务器中,为了不影响嵌入式系统CPU 和内存资源而又得到一种稳定顾客界面,应当使用HTTP1.0 原则。 HTTP客户端 HTML文档 HTTP服务器端 CGI3.4 CGI 接口 CGI 也就是通用网关接口,它定义了CGI

22、脚本与Web 服务器之间接口原则,其重要功能是在Web 环境下,将客户端某些信息传送给服务器端,Web 服务器接受关于信息并放入环境变量,然后启动所指定CGI 脚本以完毕特定工作。CGI 脚本从环境变量中获取有关信息来运营,最后以HTML 格式输出相应执行成果返回给浏览器端。由于顾客能传递不同参数给CGI 脚本,因此CGI 技术使得浏览器和服务器之间具备交互性。4 系统软件设计4.1 嵌入式操作系统 uClinux 是一种专为嵌入式系统设计Linux,它从Linux 2.0/2.4 内核派生而来,专门应用于没有MMUCPU9。uClinux 带有一种完整TCP/IP 合同,同步它还支持许多其她

23、网络合同。因而,uClinux对于嵌入式系统来说,是一种网络完备操作系统。此外,由于Linux 源代码开放性,任何新网络合同都可以很容易加入到内核中,顾客可以以便地开发定制,不受任何限制。正是基于以上因素,本系统采用了uClinux作为嵌入式Web服务器操作系统。4.2 Boa移植 在uClinux 下构建Boa服务器办法由如下环节完毕: (1)从.org 上下载Boa源代码,将其解压后生成Makefile 文献。修改Makefile 文献,将文献中CC=gcc 改为CC=arm-linux-gcc,CPP=gcc-E 改为CPP=arm-linux-gcc-E。然后运营make 进行编译,得

24、到可执行文献boa,再将调试信息舍去,使其瘦身。 (2)修改boa.conf文献。Boa启动时需要用到一种配备文献boa.conf,该文献用于配备Boa服务器相应接口、服务器名称、有关文献途径等。在这里,将Usernobody 改为User 0,将Group nogroup 改为Group 0,将DocumentRoot/var/www 改为DocumentRoot/etc/boa/html,将ScriptAlias/cgi-bin/usr/lib/cgi-bin/修改为ScriptAlias/cgi-bin/etc/boa/cgi-bin/。 (3)由于默认根文献系统是只读,因此在编译内核前

25、,需要依照配备文献boa.conf 在文献系统中建立有关目录。 (4)将可执行文献boa、配备文献boa.conf、可执行CGI程序和网页文献分别放入相应目录中,并在/etc/boa/html中建立主页文献index.html。 (5)重新编译内核,将编译好内核下载到开发板。4.3 软件实现 为了实现客户浏览器同Web 服务器之间动态交互性,需要采用某种服务器端技术来动态生成Web页。当前,实现动态网页四种技术分别是CGI、ASP、PHP 和JSP,但uClinux 不支持ASP 和PHP,故采用CGI来实现动态Web页面。CGI是一种在Web 服务器中运营程序,它定义了Web 服务器与其她可

26、执行程序之间进行交互接口原则。当Web 服务器接受到客户浏览器发送HTTP祈求时,先判断它是静态页面祈求还是CGI 动态祈求,如果是后者就将数据传递给CGI 程序,并重定向CGI程序输出到Web 页,CGI程序在解决时将数据封装成HTML形式发送到输出,这样客户端浏览器就可以看到相应Web 页。软件设计框架如图3所示。开始 监听连接连接与否合法 N Y 接受并解析HTTP祈求 静态页面祈求/CGI动态祈求静态页面祈求 CGI动态祈求 直接输出HTML静态文献数据封装并发送由CGI程序产生网页内容 图3 软件设计框图 其中监听连接某些是一种无限循环,它总在监听来自浏览器端连接祈求,如果发现连接合

27、法,就建立起客户端浏览器和Web 服务器连接。可以运用uClinux提供Socket套接字在80端口进行监听连接,其过程为:socket()bind()listen()accept()。 在Web 环境中,浏览器与服务器之间数据交互,诸多是通过HTTP中Form表单完毕,Form提供了两种数据传播方式GET 和POST 办法。虽然HTTP支持办法有各种,考虑到硬件资源限制和系统响应速度,这里只响应GET和POST两种祈求。在嵌入式服务器端,CGI程序接受到来自客户端浏览器祈求,将祈求分解后,查看其祈求办法是GET还是POST。当为GET祈求时,从祈求行中读取顾客祈求文献名;当为POST 祈求时

28、,读取祈求行中文献名和报文主体中顾客提交表单数据,并对表单数据进行解决。 当顾客在网页中输入数据时,数据会先传给Web服务器,再传给CGI 程序,而Web 服务器将数据传给CGI 程序前,会先通过一种编码程序,这样CGI 程序如果想要得到顾客输入原始数据,就需要对数据进行解码。Web 服务器中对顾客数据进行编码原则是:每个输入字段名称和顾客输入数据会形成一系列键-值对,键和值由“=”分开;每个配好对键-值之间,由“&”分开;对字段中特殊符号,用十六进制ASCII 码方式来编码,空格则以“+”来编码。因而,CGI 程序要想对数据解码,就需要将每个配好对键=值分离出来,去除配对数据间“&”,把“+

29、”置换成空格,将十六进制ASCII 码置换成本来数据。最后,就可以得到顾客输入原始数据。 虽然动态网页解决由CGI完全可以实现,但由于Web 服务器每运营一种CGI程序,就需要fork 一种进程为其服务,这样服务器与浏览器交互越多,对服务器总体性能影响就越大。因而,对于数据后期解决和显示方式等任务,可以采用基于客户端浏览器动态HTML技术来完毕,这里由脚本语言JavaScript来实现,以减轻Web服务器承担。5 实验测试在Web 服务器端生成网页index.html,放置在目录etc/boa/html 下。编写CGI程序,放置在目录etc/boa/cgi-bin 下。将目的板IP 地址设立为

30、210.42.150.225 后,启动Boa 服务器。在任意一种Web 浏览器上输入http:/210.42.150.225,可以看到服务器默认网页。当顾客选取有关信息并提交后,CGI将其接受,并依照提交内容对家居设备进行相应控制,图3(a)就是顾客对空调进行设立测试页面。同步,顾客也可以对家居设备当前状态进行查询,查询成果如图4(b)所示。 图4(a)Web服务器空调控制测试页面 图4(b)Web服务器家居状态查询页面6 结束语 本文从整体上简介了嵌入式Web 服务器体系构造、程序组件视图、嵌入式Web 服务器构成模块以及如何精简TCP/IP合同以减少不必要资源开支和适应嵌入式系统对资源规定

31、。支持Web 浏览功能嵌入式设备不但可以简化设备设计,并且减轻了顾客应用难度,可以通过浏览器以便地设立嵌入式设备参数。通过嵌入式Web 技术实现设备远程监控、管理和维护,将减少系统运营费用、提高管理水平,在工业控制、远程医疗等方面有着十分广泛应用。嵌入式Web 服务器实现,使得顾客通过Internet就可以远程控制和管理嵌入式系统运营。和老式Web 服务器相比,它简化了系统构造,将信息采集和信息发布都集成到现场嵌入式设备中,在很大限度上以便了维护和管理工作。经测试表白,该嵌入式Web 服务器运营正常,可以实现系统所设定智能家居控制,且服务器每秒能解决几百次连接祈求,较之httpd 和thttp

32、d 服务器,其响应速度更快,并且该Web 服务器还具备成本低、可靠性高等长处。但该服务器并没有完整支持CGI规范,如果应用领域有此规定,还需要做相应改进。本文设计这种基于ARM嵌入式Web服务器,响应速度快,运营良好,通过恰当修改和完善,可用于智能家居、数据采集、工业控制等领域,具备一定应用推广价值。参照文献1 胡国珍,严伟.基于AX88796嵌入式WEB服务器构建.国外电子元件11期 2 刘志东,纪金水,杨锋英.嵌入式Web 服务器技术探究.电脑知识与技术27期 3 王莉,周伟.基于ARM嵌入式Web服务器设计.计算机工程与应用14期 4 李荣鑫,喻国平.基于ARM嵌入式WEB 服务器技术研究.J微计算机信息, (8) 5 王庆志.嵌入式Web服务器构造研究与设计.中华人民共和国石油大学

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服