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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

河南工业大学嵌入式系统课程设计题目:基于ARM的嵌入式Web服务器设计与实现

专业课程设计任务书

说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页

目录

摘要 (4)

1 嵌入式Web服务器的软件构成 (5)

1.1 CGI技术 (5)

1.1.1 CGI概述 (5)

1.1.2CGI工作原理 (5)

2 嵌入式Web 服务器简述 (7)

2.1 嵌入式Web 服务器的主要应用 (8)

2.2 嵌入式Web 服务器的优点 (8)

2.3 嵌入式Web 服务器实现原理 (8)

3 嵌入式Web 服务器硬件整体结构 (9)

(10)

(10)

3.1 嵌入式Web 服务器软件构成 (10)

3.2 精简TCP/IP 协议及实现 (11)

3.2.1 ARP 协议及其实现 (11)

3.2.2 ICMP 协议及其实现 (11)

3.2.3 IP 协议及其实现 (11)

3.2.4 TCP 协议及实现 (12)

3.3 HTTP 协议 (12)

3.4 CGI 接口 (13)

4 系统软件设计 (13)

4.1 嵌入式操作系统 (13)

4.2 Boa的移植 (13)

4.3 软件实现 (14)

5 实验测试 (16)

6 结束语 (17)

参考文献 (18)

摘要

随着计算机、网络通信和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

相关文档
最新文档