基于Linux的嵌入式Web服务器Thttpd的应用研究与实现精品资料.doc
《基于Linux的嵌入式Web服务器Thttpd的应用研究与实现精品资料.doc》由会员分享,可在线阅读,更多相关《基于Linux的嵌入式Web服务器Thttpd的应用研究与实现精品资料.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Linux论文设计题目:基于Linux的嵌入式Web服务器Thttpd的应用研究与实现 学院: 软件学院 专业班级:Java08-2班 姓名: 饶本刚 学号:200813100233 姓名: 康英 学号:200813100217 目录 第1章 案例设计引言 1.1案例设计目的和意义 1.2 本案例国内外研究现状 1.3 系统设计的实验环境 1.4 系统设计的技术分析第2章 案例设计内容 2.1案例需求分析 2.2案例可行性分析2.3系统功能描述及功能结构图第3章 案例详细设计 3.1 系统模块功能设计 3.2 实验环境的安装与调试 3.3部分关键配置文件及代码分析第4章 案例总结 4.1 系统
2、测试结果和分析 4.2 系统存在的不足 4.3系统展望第1章 案例设计引言随着计算机科技的快速发展,信息共享程度的不断提高, 嵌入式Web服务器已成为嵌入式技术和网络技术结合的产物,是嵌入式技术网络化的一项重要应用。嵌入式Web服务器主要应用在远程监测和控制方面,将Web服务器移植到接入网络的嵌入式设备后,客户端可借助浏览器对远端的嵌入式设备进行监测和控制。它为我们管理、控制和监测各种各样的设备提供了一个很好的途径。但对于一般的管理信息系统或中小型应用系统, 所需的Web服务功能比较简单, 若仍采用大型的通用Web 服务器, 将是一种资源的浪费,在某些专用嵌入式系统内, 由于内存容量有限, 对
3、实时性要求高, 通用的Web 服务器不能适应市场需求。此时, 使用功能相对简单、体积更小、消耗资源更少、可便携的简单嵌入式Web 服务器将更具优势。目前,嵌入式Linux主要有HTTPD、THTTPD和BOA三种WebRemotemeasuringandcontrolHypertexttransferprotocol(http)服务器。与传统的Web应用相比,嵌入式服务器要求代码小,节约空间和成本、实时性好。本论文中设计了一种全新的基于ARMLinux嵌入式操作系统的嵌入式Web服务器。 1.1案例设计目的和意义为了满足当前工业控制和家用电器远程测控的要求,通过比较常用的嵌入式服务器技术并分析
4、了嵌入式服务器的实现原理,设计了一种全新的Web服务器。详细介绍了这种基于ARMLinux嵌入式Web服务器的设计方案,阐述了系统的软硬件设计。针对嵌入式服务器的实际和应用场合,提出了H1TrP协议与动态链接库相结合的解决方案。该Web服务器支持动态链接库,代码小、实时性好。测试结果表明方案可行、实用。 1.2 本案例国内外研究现状 目前,在世界范围内嵌入式系统带来的工业年产值已超过一万亿美元。据赛迪呼叫中心合作开展的调查显示,目前从事嵌入式开发的软件开发企业已占到百分之三十左右,计划从事开发的企业占到百分之十四。尽管还没有从事该领域开发的公司占到大多数,但我国国内的嵌入式软件市场已处于整体启
5、动阶段,国内嵌入式软件市场未来的发展重点在于对应用范围的拓展,而手持设备、信息家电和工业控制则是近期市场的三大热点。 近年来微电子技术的快速发展,处理器增长速度也随之加快,嵌入式系统领域发生了翻天覆地的变化,特别是网络的普及,嵌入式与互联网成为最热门的技术。现在可以使嵌入式系统具备网络功能,并将它与Internet或企业内联网连接起来,这种特性增长了嵌入式系统多方面的实用性。现在许多嵌入式处理器集成了基本的网络功能,如串行接口必备,还有以太网接口、CAN总线接口等。基于这些趋势,用户开发新嵌入式系统时一般不需要外接网络芯片,而选择具有符合功能要求的嵌入式处理器即可,所需安装的只是物理层的收发器
6、。1.3 系统设计的实验环境 交叉编译器(cross-compiler)是进行交叉平台开发的主要软件工具。它是运行在一种处理器体系结构上,但是可以生成在另一种不同的处理器体系结构上运行的目标代码的编译器。 要建立交叉开发环境,主要需要几个工具包:gcc,glib,binutils,gdb等。一般开发板都提供这些工具,如果不是使用的开发板,在网上也是可以下载到全部软件包的。依次将它们安装在PC上即可。 1.4 系统设计的技术分析嵌入式Web 服务器体系结构:嵌入式Web 服务器为基于3 层B/S结构的瘦Web 服务器。其中,Web 服务器和客户端之间的通信协议采用HTTP1.1,嵌入式实时多任务
7、操作系统提供TCP/IP协议支持, 编程接口为Berkerly Sockets4.3,Web 服务器与数据库服务器间的交互接口为CGI(Common Gateway Interface)。嵌入式Web 服务器实现原理从功能上讲,Web 服务器监听客户端的服务请求, 并根据客户请求的类型提供相应服务。嵌入式Web 服务器是指将Web 服务器引入到现场嵌入式设备中并驻留其中有限的代码空间内。与传统的Web 应用相比简化了系统结构, 在相应的软硬件平台支持下, 利用标准的接口形式和通信协议, 内嵌于嵌入式设备的Web服务器可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面。用
8、户端使用Web 浏览器与Web 服务器进行通信。客户端与服务器交换数据之前, 首先用TCP/IP 建立连接, 客户端向服务器请求数据, 服务器在接收到用户端的请求后, 处理用户请求并返回需要的数据。这些数据可来自静态主页和文件, 也可以根据请求动态产生。它是一种请求/响应协议, 使用可靠的TCP 连接, 通常采用端口80。客户端和服务器间是以HTTP协议进行请求和响应。服务器和客户端只能为一次事务处理建立并维持连接, 完成一次事务处理后便结束连接。由此可见, 接收客户端请求、解析客户端请求、响应客户端请求、向客户端回送请求的结果是Web 服务器所需完成的主要任务。第2章 案例设计内容 2.1案
9、例需求分析 嵌入式Web服务器是嵌入式技术和网络技术结合的产物,是嵌入式技术网络化的一项重要应用。嵌入式Web服务器主要应用在远程监测和控制方面,将Web服务器移植到接入网络的嵌入式设备后,客户端可借助浏览器对远端的嵌入式设备进行监测和控制。它为我们管理、控制和监测各种各样的设备提供了一个很好的途径。由于嵌入式设备处理能力和存储容量都有限,传统的服务器无法在上面运行,必须对软硬件进行裁剪,以适应嵌入式应用环境的要求,所以对嵌入式Web服务器的研究和应用,具有重大其意义。 2.2案例可行性分析 Internet Web技术应用于嵌入式系统领域将导致该领域传统运行维护模式的一场变革,将Web服务器
10、植入嵌入式系统后接入Internet,在世界上任何一个地方即可通过网络浏览器从Internet获取该Web服务器发布的系统实时信息,进而实现远程实时控制、调节与维护,并且,这种基于HTML标准化的Web用户界面降低了为不同操作平台而定制人机界面的开发费用、通信费用、人员培训费用和系统升级维护费用。显然,嵌入式系统这种基于Web的远程监控维护方式将克服传统的本地监控维护方式存在的低效率、高成本的缺陷。但是,传统的Web技术方案不能直接用于构造嵌入式系统中的Web服务器。传统Web服务器已具有高运算处理能力和海量存储容量的工作站或PC机为硬件工作平台,以非实时操作系统为软件工作平台,其上运行的是大
11、型复杂的服务器程序,典型的如基于Windows NT 的IIS(Internet Information Server)、基于Unix的Apache Web Server等,服务器的这种高档配置方案对于大量使用8位、16位或32位单片机的嵌入式系统而言是不现实的要求。 基于嵌入式技术的嵌入式Web服务器的出现为解决以上问题开辟了一条崭新途径。嵌入式Web服务器以8位、16位或32位单片机为硬件工作平台,或有嵌入式实时多任务操作系统(RTOS)支持,其上运行小型精简的服务器程序。嵌入式Web服务器的成功开发案例已经体现于通信领域中的路由器、交换机、网络视频监控等产品。近年来如何使用Web浏览器对
12、嵌入式设备进行监控已越来越引起人们的注意。Web浏览器是用户界面的合理选择,可从技术上来讲,浏览器就是Web客户端,则嵌入式系统必须是Web服务器,由于TCP成了一个传输网页工具,而目前用来生成动态网页的软件都是成为大型多用户操作系统设计,则让嵌入式系统能生成动态实时数据的网页问题是有待解决的另一问题。论文中叙述了以基于ARM-Linux嵌入式系统为平台,构建一种嵌入式Web服务器Thttpd,并成功移植了嵌入式SQLite数据库系统,结合网页表单和CGI开发技术,使用户可以通过浏览器远程访问Web Server,并实现和SQLite数据库的动态数据交互。这种嵌入式Web Server方案易于
13、实现,数据管理也非常高效,并成为未来Internet在嵌入式领域发展中的重要方向之一。2.3系统功能描述及功能结构图 1)Thttpd基本功能的实现首先,确保在编译uCLinux内核的make menuconfig这一步,选中busybox中的Thttpd.然后,根据需要,修改源码/user/thttpd下的config.h:#define DEFAULT_PORT 80 /服务器监听端口#define DEFAULT_DIR /home/httpd /设定服务器根目录#define INDEX_NAME index.html /设定访问服务器时的默认主页#define AUTH_FILE p
14、asswd /授权用户数据库文件#define CGI_PATTERN /cgi-bin/*.cgi /CGI的文件名格式#define CGI_PATH /home/httpd/cgi-bin /CGI的所在目录接下来,建立服务器根目录和文件目录:由于uCLinux的根文件系统为ROM FS, 只读, 因此要在生成文件系统映像之前建立好其中的目录和文件。首先是Web服务器根目录, 再是根目录下的子目录:文件根目录和CGI程序目录。修改/vendor/Samsung/4510B/makefile文件, 在ROMFS_DIRS 列出的目录中增加home/httpd ( 服务器根目录和文件根目录)
15、,home/httpd/cgi-bin(CGI程序目录) .最后,将监控系统相关的网页和CGI程序分别放在/vendor/Generic/httpd和/vendor/Generic/httpd/cgi-bin中,就可以随内核编译过程时自动复制到image的相关目录下。在/vendor/Samsung/4510B/rc中添加thttpd实现上电自动执行。2)嵌入式 WEB服务器由网络模块、接口模块和存储模块三个部分组成。网络模块是整个嵌入式 WEB服务器的核心,负责完成服务器的初始化,并且在 80端口等待用户的连接请求。根据用户请求的类型提供相应的服务。此外还要实现电子邮件功能,用来完成自动报警
16、和数据的保存,此外通过选择以太网或者电话线进入 Internet。硬件设计图如下:3)如下图所示,系统有两种网络接入方式:通过PPPOE自动拨号,动态获取IP联入Internet;自定义静态IP连入局域网。第3章 案例详细设计3.1 系统模块功能设计 WEB服务器软件设计从设计角度,则可将嵌入式软件分为 4个模块:网络通讯模块、接口管理模块、人机交互模块和远程加载模块。 3.1.1 以太网接入 Internet的实现 嵌入式 WEB服务器是沟通客户和控制现场的重要桥梁,客户通过认 Web浏览器来实现远程监控的功能。本 WEB服务是以 TCP/IP协议来传输数据,以 HTTP协议来进行客户端与服
17、务器之间的请求和响应,其体系结构如图 4所示。 当客户在界面上进行操作时,如点击复选框或在文本框中输入数据。 Applet根据用户的操作进行响应,从而构造出新的命令字,向嵌入式 WEB服务器发出请求,服务器根据新的命令字驱动控制系统中相应的执行机构,并将新的状态信息和数据信息返回到客户端,客户端解析返回的数据,并进行实时显示。 3.1.2公用电话网接入 Internet的实现 为保证能在无以太网环境的情况下进行通信,系统还采用了串口外接调制解调器通过电话网来实现与远程客户机的通信。网络建立的实现就要用到 PPP协议(Point to Point Protocol点对点协议)。在程序运行的时候先
18、要读取 PPP通信的控制信息,判断是否使用 PPP进行通信,否则默认使用 Ethernet来进行数据的传输。而不是同时开启这两种模式。 由于 PPP通信并不区分客户端和服务器,把负责认证和 IP分配的端认为是服务器,而不需要认证和使用服务器提供 IP的端认为是客户端。设计了 LinkManger类、PPPDaemon类、PPPModemLink类、ModemCommand类、PPPException类,用来实现 PPP通信。其中 LinkManger类:用于管理 PPP连接,启动经由网络接到远端服务器的出站连接,生成一个 PPPDaemon实例用来设置 IP,验证用户名和密码。并实现接收 PP
19、P事务。 PPPModemLink类首先打开一个串口并进行初始化,初始化完成后,把一个串口的对象传递给 PPP,然后创建 ModemCommand对象来控制与调制解调器的串行通信,并通过 SerialPortEvenlistener接口监视 CD以检测调制解调器是否挂起。其定义了 Modem的初始化和复位方法:initializeLink()和 resetModem()。 ModemCommand类负责和 modem具体的串行通信,其分别定义了 sendcommand()、 waitFoResponse()和 receiveCommand()方法。分别用来发送、等待和接收命令。当操作超时,则抛
20、出 DataLinkException;waitforMatc()主要用来供 sendCommand()和 receiveCommand()进行调用,用来判断接收到的字符串是否和匹配字符串一致。当相应操作超时,则抛出 DataLinkException。 3.1.3 嵌入式 Web服务器接口模块的实现 在本系统中为了满足不同工业控制系统的需要,设计有串口、CAN总线接口、Modem接口和 RS-485接口。系统在启动时,从系统的 FLASH中读取 120个字节的初始化信息,并据此来判断是否开启接口,并对所开启的接口进行初始化。由于各个模块的初始化函数己经存在,因此系统初始化时,只要调用相应的函
21、数就够了。PPP已经在网络模块部分介绍,而 RS-485的使用和普通串口的初始化相似,本部分主要介绍 RS-232和 CAN。 3.1.4 RS-232串口驱动函数设计 系统的开发语言是 Java,但 Java本身不提供对串口操作的类,要实现对串口的读写操作,需要用第三方 API函数完成,实际的开发过程中,使用串口通讯协议开发包 comm.jar,它是 J2SE的标准扩展,支持 RS-231串口,并提供了一种与平台无关的串口通信机制。 串口驱动主要实现对串口的读写操作,给应用程序提供发询接收数据的接口。串口正常工作之前,需要进行初始化设置,因此驱动中还有初始化函数。串口的驱动函数串口的驱动函数
22、主要包括: serialInit()用来初始化 UART、serialRead()用来接收字节组、 serialWrite()用来发送字节组。 3.1.5 CAN总线模块 CAN接口在工业控制系统的运用越来越广泛,操作系统提供了对 CAN进行操作的.CanBus类,如要对 CAN进行操作,首先要建立一个 CAN的对象。 CanBus canTest = new CanBus(CanBus.CANBUS0); 由于 DS80C400只提供一个 CAN控制器,所以只能选用 CANBUS0。一旦对象被初始化,就需要设置 CAN的速率。 CAN速率的设置通过设置 Prescaler,TSEGI,TSE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Linux的嵌入式Web服务器Thttpd的应用研究与实现 精品资料 基于 Linux 嵌入式 Web 服务器 Thttpd 应用 研究 实现 精品 资料
限制150内