基于ARM简单嵌入式WEB服务器系统的设计
基于ARM11的嵌入式Web服务器设计与应用
成 都 大 学 学 报( 自然科 学 版)
J o u r n a l o f C h e n g d u U n i v e r s i t y ( N a t u r a l S c i e n c e )
V_ o 1 . 3 5 NO. 4 De c .2 0l 6
好的 We b 文件打包放到开发板上的特定文件夹下 ,
然后 在 开发板 上运 行 可 执 行 文件 , 并 查 询相 关 文 件
收 稿 日期 : 2 0 1 6 —0 8 —0 8 .
多种高端接 口, 如复 合视 频信号、 摄像 头、 U S B 、 S D 卡、 液晶屏、 以太网 , 并配备温度传感器和红外接收 头等 . 而且 0 K 6 4 1 0 在音频/ 视频处理 、 2 D / 3 D图形加
文章编号: 1 0 0 4 —5 4 2 2 ( 2 0 1 6 ) 0 4— 0 3 6 8 —0 4
基于 A R M 1 1的嵌 入 式 We b服 务器 设 计 与应 用
黄建 刚 , 周墨霖 ,罗正华 , 李 想
( 成都 大学 信 息科 学与 工程 学院,四川 成都
摘
6 1 0 1 0 6 )
0 引 言
嵌入式设备凭借其体积小巧、 高性能、 稳定性强 等特点, 应用范 围不断扩大 , 同时伴随着 I n t e m e t 的 快速发展 , 嵌入式 系统与网络技术 的结合 已成为一 种必然 的趋势n 』 . 当嵌入式设备 与网络实现互连 , 同
证 明服务 器 已正常 启 动 . 最 后用 户 通 过 终 端 上 的 浏
开发板作为硬件平台. 0 K 6 4 1 0 开发板拥有强大的视 频处 理 能力 , 可稳定运行在 6 6 7 MH z主频 上 , 支 持
ARM嵌入式Web服务器Boa的软、硬件设计 毕业设计
摘要论文主要介绍了基于ARM9的嵌入式Web服务器Boa的软、硬件设计及其实现,其中硬件部分的核心是三星的S3C2410X为处理器。
最后成果形式为可以远程访问的WebServer嵌入式服务器。
Boa是一款单任务的HTTP服务器。
与其他传统的Web服务器不同的是当有连接请求到来时,它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接。
而是通过建立HTTP请求列表来处理多路HTTP连接请求。
同时它只为CGI程序创建新的进程,这样就在最大程度上节省了系统资源,这对嵌入式系统来说至关重要。
同时它还具有自动生成目录、自动解压文件等功能。
因此, Boa在嵌入式系统中具有很高的应用价值。
关键词:ARM;Linux;嵌入式Web服务器;CGIThis paper has mainly developed the software hardware design and realization of the embedded Web server Boa based on ARM. And the core of the hardware part is S3C2410X microprocessor produced by Samsung . The final achievement is the embedded webserver which can remote visit. Boa is a single-tasking HTTP server. That means that unlike traditional webservers, it does not fork for each incoming connection, nor does it fork many copies of itself to handle multiple connections. It internally multiplexes all of the ongoing HTTP connections. And forks only for CGI programs, this is very important to embedded system. At the same time, it also has the function of automatic directory generation、automatic file gunzipping and so on. So Boa is of highly value in the embedded system application.Keywords: ARM;Linux;Embedded Web server;CGI摘要 (1)Abstract (2)目录 (3)第一章引言 (5)第二章课题背景 (6)2.1 嵌入式系统简介 (6)2.2 嵌入式系统和Linux (6)2.3 ARM9硬件平台 (7)2.3.1 ARM简介 (7)2.3.2 JXARM9-2410 ARM嵌入式教学实验系统 (8)第三章嵌入式Web服务器 (9)3.1 概述 (9)3.2 Web服务器原理 (9)3.3 嵌入式Web服务器实现原理 (9)3.3.1 TCP/IP协议 (9)3.4 嵌入式Web服务器Boa (10)3.4.1 Boa概述 (10)3.4.2 Boa的功能实现 (11)第四章CGI技术 (12)4.1 CGI概述 (12)4.2 CGI工作原理 (12)第五章建立嵌入式系统开发环境 (14)5.1 在Vmware下安装Redhat 9.0 (14)5.2 编译配置主机开发环境 (18)5.2.1 配置以太网 (18)5.2.2 安装配置tftp服务器 (19)5.2.3 配置防火墙 (21)5.2.4 配置NFS服务器 (22)5.3 JXARM9-2410中U-boot烧写 (22)5.3.1 u-boot的功能 (22)5.3.2 使用ADT IDE烧写u-boot (23)第六章系统功能的实现 (25)6.1 GCC简介 (25)6.1.1 GCC概述 (25)6.1.2 GCC基本用法 (25)6.2 Linux内核移植 (26)6.2.1 Linux内核源代码的安装 (26)6.2.2 Linux交叉编译环境的建立和使用 (27)6.2.3 Linux内核的配置和编译 (27)6.3 加载Linux内核映像 (30)6.4 Boa Web服务器的移植 (31)6.4.1 Boa Web服务器的建立 (31)6.5 Linux下动态Web页面的实现 (32)6.5.1 CGI程序分析 (32)6.5.2 Form输入的分析和解码 (34)第七章系统功能的测试 (36)7.1 测试Web服务器 (36)7.2 动态Web页面测试 (37)结束语 (40)致谢 (41)参考文献 (42)附录 (43)第一章引言随着计算机技术的发展,嵌入式系统已成为计算机领域的一格重要组成部分。
基于ARM-Linux的嵌入式Web服务器的研究的开题报告
基于ARM-Linux的嵌入式Web服务器的研究的开题报告开题报告题目:基于ARM-Linux的嵌入式Web服务器的研究申请人:XXX指导教师:XXX一、选题的背景和意义嵌入式系统在各种领域得到了广泛应用,尤其是物联网、智能家居等领域,使得嵌入式设备的功能需求越来越复杂。
同时,将嵌入式设备与互联网接入,通过Web服务器进行远程访问已成为一种必备的技术手段。
ARM是一种十分广泛应用于嵌入式系统中的处理器,而Linux则是一款开放源代码、社区驱动的操作系统。
将他们结合起来开发并实现一款ARM-Linux的嵌入式Web服务器有其研究和实现的意义和必要性。
本论文旨在研究基于ARM-Linux的嵌入式Web服务器,主要包括以下几个方面:1. 分析并比较当前常用的嵌入式Web服务器的主要特点和性能,并综合评估其应用场景和限制。
2. 研究ARM-Linux的基础知识,包括ARM体系结构、Linux的基本架构和开发环境,并掌握在ARM-Linux平台下进行嵌入式系统开发的基本技能。
3. 研究如何基于ARM-Linux实现嵌入式Web服务器,包括Web服务器的框架、实现原理和常见的架构模式等,并尝试在ARM-Linux平台下实现一个简单的Web服务器。
二、研究内容和技术路线1. 研究基于ARM-Linux的嵌入式Web服务器的现状和发展趋势,对比已经应用的主流技术和实现方案,对其性能、稳定性和应用场景进行分析和总结。
2. 学习ARM-Linux系统的基础知识,包括ARM处理器架构、Linux操作系统原理。
熟悉ARM架构下编译、调试和交叉编译工具的使用方法,了解文件系统的搭建、网络连接的配置等技术点。
3. 实现基于ARM-Linux的嵌入式Web服务器,主要包括以下几个方面:(1)框架的搭建:选择并学习常用Web服务器框架,在基础框架上进行二次开发,实现功能增强,满足嵌入式Web服务器的应用需求。
(2)应用服务和文件系统的搭建:实现HTTP协议,处理HTTP请求,完成相应的响应;实现文件系统,对系统的数据进行读写操作。
基于ARM和eCos的 嵌入式WEB服务器设计.
基于ARM和eCos的嵌入式WEB服务器设计引言随着现代通信技术和网络技术的迅猛发展,以太网技术也越来越成熟,特别是基于TCP/IP通信协议的Web技术得到了广泛应用。
我们可以用微控制器加以太网接口芯片,取代PC机进行现场控制,组成嵌入式Web Serv-er系统。
现场传感器自动跟踪各监测点的信息,把检测到的数据存储在非易失性存储器中,并及时发布到互联网上;相关的工作人员就可以通过Web技术对设备进行远程控制、管理和维护,从浏览器上直接监控现场设备的运行,这样就大大提高了生产效率和管理水平。
为了实现Web服务器的功能,嵌入式操作系统和一个可实现的TCP/IP 协议栈是必需的,因此对嵌入式处理器提出了更高的要求。
与传统的8/16位单片机相比,ARM核处理器在运算速度、功耗和存储容量方面都有很大的优势,而且ARM核处理器可以很方便地实现嵌入式TCP/IP协议栈,所以ARM核处理器成为嵌入式Web服务器设备的首选处理器。
系统的设计模型如图1所示。
1 系统硬件设计ARM核处理器LPC2210基于支持实时仿真和嵌入跟踪的32/16位ARM7TDMI—S CPU。
片内有16 KBSRAM,通过外部存储器接口配置成4组,每组的容量达16 MB。
LPC2210采用144脚封装,功耗极低,具有多个32位定时器、8路10位ADC、PWM输出,最多可提供76个GPIO以及多达9个外部中断引脚;采用3级流水线技术,极大地提高了指令执行效率,通过可编程的片内锁相环(PLL)可实现最大60 MHz的CPU操作频率。
LPC2210的EMC组合符合ARM公司的PL090标准,总线宽度可设置为8位、16位或32位,通常16位总线宽度的存储器具有较高的性价比。
以Philips公司的ARM核处理器LPC2210为核心来实现嵌入式Web服务器;网络接口芯片采用Realtek公司的NE2000兼容芯片RTL8019AS,它内置了10BASE—T收发器,通过HR901170A器件接入以太网。
微型嵌入式Web服务器的设计与实现.
微型嵌入式Web服务器的设计与实现微型嵌入式Web服务器的设计与实现类别:嵌入式系统1引言随着计算机、网络通信和Internet技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用广泛。
如何将嵌入式系统和工业控制系统接人Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。
以太网以其成本低、速度快、应用普遍、有广泛的硬件和软件支持等优点为实现管理控制网络一体化提供可能,在现场设备内置WEB服务器,使现场设备具有网页发布功能,将Internet技术直接引入现场设备。
本设计是基于ARM7的微型嵌入式Web服务器。
目前市场上大部分以太网控制器的封装均超过80引脚,而ENC28J60是业界最小的以太网控制器,只有28引脚,这样既能提供相应功能,又大大简化相关设计,减小空间,其标准的SPI串行接口只需4条总线即可实现与单片机连接,有利于在小型系统上实现以太网功能。
在研究和分析TCP/IP协议的基础上,合理简化TCP/IP协议,选择实现ARP、IP、ICMP、TCP和HTTP协议。
2系统硬件设计ENC28J60的硬件连接如图1所示。
ENC28J60的硬件设计包括复位电路、时钟振荡器、网络变压器和其他外部元件以及LED配置单元模块。
2.1复位电路当ENC28J60的RESET引脚为低电平时ENC28J60工作在复位模式。
RESET引脚内部有弱上拉电阻,应外接一只10kΩ的上拉电阻。
2.2时钟振荡器ENC28J60工作频率为25MHz。
在OSC1和OSC2引脚之间连接无源晶体振荡器。
ENC28J60要求使用平行切割的晶体。
本设计采用连接至OSC1引脚的外部25MHz有源晶体振荡器驱动,此时3.3V的外部时钟连接OSC1引脚,OSC2引脚可使用一只接地电阻或断开OSC2引脚以减少系统噪声。
2.3网络变压器和其他外部元件实现以太网接口控制,还需多个标准外部元件:网络变压器、偏置电阻、储能电容和去耦电容。
ARM7的嵌入式Web服务器设计技术
ARM7的嵌入式Web服务器设计技术摘要:主要介绍嵌入式Web 服务器技术的设计思想和软件设计流程,以及应用程序文件系统的构造,将网页文件转化为可编译的数据结构;并以32 位ARM7 微处理器LPC2210 为硬件平台,在源码公开的ZLG/IP 软件包的支持下,给出了一个嵌入式Web 服务器的应用实例。
关键词:Web 服务器;应用程序文件系统;LPC2210;ZLG/IP 软件包1 概述随着嵌入式技术和网络技术的发展,嵌入式设备通过网络接入局域网或者Internet 逐步成为一种发展趋势。
嵌入式Web 服务器技术以其良好的通用性和交互性为嵌入式设备提供网络接口,对嵌入式设备实现远程管理和控制,是实现嵌入式设备网络化的重要技术。
本设计提出的基于ARM7 的嵌入式Web 服务器设计有三大技术亮点:①采用浏览器/服务器(B/S)通信架构。
与客户机/服务器通信架构相比,B/S 架构无需在客户端上开发专门的应用软件,只需从浏览器上输入IP 地址,直接对设备进行远程监控。
②传统的Web 服务器需要一个数据库系统的支持用来保存内容,因而对用于存储的硬件设备要求更高,增加了成本。
本设计只需构建一个简单的文件系统对网页文件进行管理,通过网页转换程序将网页文件转换为十六进制的可编译的数据结构,是一种直接绑定在一个应用程序上面的文件系统。
③本设计构造的Web 服务器提供动态内容和动态表单的支持,能满足一般嵌入式设备的应用要求。
2 HTTP 协议讨论HTTP(超文本传输协议)是一种应用层协议。
Web 服务器是基于HTTP 协议运行的,Web 服务器和Web 客户机之间通过HTTP 协议来进行通信。
在进行通信前,先要建立客户机与服务器之间的连接:启动Web 服务器,启动后服务器将监听80 端口号,Web 客户机发送一个动态随机产生的连接端口号连上服务器,从而建立一个通信通道。
HTTP 协议基于请求/响应模。
基于ARM的嵌入式Web服务器的研究与实现的开题报告
基于ARM的嵌入式Web服务器的研究与实现的开题报告一、研究背景和意义嵌入式Web服务器在现代智能设备中发挥着越来越重要的作用。
在物联网和智能家居等领域,人们需要不断地对设备进行远程控制和监测,而嵌入式Web服务器正是实现这些功能的关键技术之一。
此外,在工业自动化等领域也有广泛应用。
嵌入式Web服务器具有体积小、功耗低、易于集成等优势,因此成为了嵌入式设备中广泛使用的一种技术。
基于ARM架构的嵌入式Web服务器,具有更小的功耗、更高的性能和更好的可扩展性。
为了更好地满足现代嵌入式设备的需求,在嵌入式Web服务器的研究与实现方面,基于ARM架构的方案已经成为主流选择。
本论文通过对嵌入式Web服务器的研究和分析,基于ARM架构设计和实现一种高效、稳定、安全的嵌入式Web服务器,提供一种新的解决方案,为嵌入式设备和智能家居等应用领域的发展提供技术支持。
二、研究内容本论文将以ARM Cortex-M系列处理器为基础,研究基于ARM的嵌入式Web服务器。
具体内容如下:1.研究嵌入式Web服务器的基本原理、结构和工作流程。
2.设计基于ARM Cortex-M系列处理器的嵌入式Web服务器。
3.实现基于ARM Cortex-M系列处理器的嵌入式Web服务器,包括网络通信模块、Web应用程序、数据存储模块等。
4.对嵌入式Web服务器进行测试和验证,评估其性能和稳定性。
5.对嵌入式Web服务器进行安全性分析和加固。
6.提供嵌入式Web服务器的使用文档和相关技术支持。
三、研究方法和技术路线本论文使用文献研究、实验分析、系统设计和实现等方法,研究基于ARM Cortex-M系列处理器的嵌入式Web服务器。
具体技术路线如下:1.分析现有的嵌入式Web服务器技术和发展趋势,了解ARM Cortex-M系列处理器的特点和优势。
2.设计满足嵌入式设备需求的嵌入式Web服务器系统框架和网络通信模块。
3.设计Web应用程序和数据存储模块,实现基本的Web服务器功能。
基于ARMLinux新型嵌入式Web服务器设计
量的10 LD / 口, 控制器等丰富接口, C 能运行w / I C O -, S
A M i x W N E 人 式 操 作 系 统, M 00是 R L u 和 IC 嵌 n D 90
1 1 Mp以太网 控制芯片. 0 0 bs / 0 接口 本硬件系统结构
简单 , 成本低, 不需要P 机就可直接接人Ie e 在 C nr t tn .
0 引言 Wb e 服务器的功能是监听客户端的服务请求, 并 根据客户请求的类型提供相应服务.嵌人式 W b e服 务器是指将 W b e 服务器引入到现场嵌人式设备中, 并
驻留在有限的代码空间内.在 当前的嵌人式应用领
服务器.与传统的W b e 应用相比, 嵌人式服务器要求 代码小, 节约空间和成本, 实时性好, 本论文中设计了 一种全新的基于 S C40 U 和 A M i x 3 1(P ) R L u 嵌人式 2 C n 操作系统的嵌入式 We 服务器, b 特点是支持动态链接 库, 代码小( 编译的b 文件只有3 多)实时性好, i n k B ,
基于 A MLn x R iu 新型嵌入式 We 服务器设计 李军民 b
基于 A M i x R L u 新型嵌入式 We 服务器设计 , n b
D s n a w edd b r r e o A ML u ei o N E de We S v Bsd R i x g f e mb ee a n n
稳定性高 , 安全性好.
域, 多数嵌人式系统转变为嵌人式 W be e, eSr r v 基于嵌 人式设备的 W b e 服务器可以向任何接人它所在网络 的合法用户提供统一的基于浏览器方式的操作和控制 界面, 此时浏览器成了设备的前端控制板.据网络专 家预测, 一代网络设备中嵌人式设备将大大增加, F 将 来在互联网上传输的信息中, %左右将来自 7 0 嵌人式 系统.这些设备, 终端接人互联网的主流解决方案 ( 包括公司)一般有如下两种: , ①片内集成方式和片 外集成方式; ②以太网卡 十 专用接口 + C机方式. 卡 P 但这两种方法都具有成本过高, 灵活性比较差, 随着设 备, 终端的提供厂商的变化而需要改变整个系统等多 种弊端, 前一种还存在开发周期较长的缺点.目 嵌 前, 人式 L u 主要有 H TD T TP ix n TP ,H TD和 B A三种 W b O e
基于ARM平台的嵌入式WEB服务器的设计与实现.
电子科技大学硕士学位论文基于ARM平台的嵌入式WEB服务器的设计与实现姓名:刘鑫申请学位级别:硕士专业:通信与信息系统指导教师:林水生20100501摘要摘要嵌入式设备凭借其体积小巧、高性能、低功耗等特点遍布生活中的每一个角落。
嵌入式设备的应用范围不断扩大,伴随着Intemet的快速发展,嵌入式设备在远程管理、监控方面的应用成为可能。
嵌入式Web服务器正是嵌入式技术与网络技术的一个完美结合。
传统Web服务器主要用于处理大量客户端的并发访问,对处理器能力和内存空间有很高的要求,而嵌入式设备往往处理能力、内存容量等硬件资源有限,故传统Web服务器通常无法运行在嵌入式平台上。
鉴于此,本课题详细研究了嵌入式Web服务器的设计方法,并搭建软硬件平台,在此基础上实现一个嵌入式Web服务器。
嵌入式Web服务器的实质是由一系列软件功能模块搭建而成,其作用的发挥需要相应的软硬件平台。
ARM内核处理器以其高性能、低功耗享誉全球市场。
而嵌入式Linux内核凭借源码开放、可移植性好、免费等特点成为一种广泛应用的嵌入式操作系统。
本设计使用ARM+L1NUX的模式搭建软硬件平台,为嵌入式Web服务器的实现奠定软硬件基础。
本课题首先研究了嵌入式系统和嵌入式Web服务器技术当前的发展现状,接着完成嵌入式Web服务器的基本架构设计,然后以ATMEL公司的ARM9芯片AT91SAM9263为核心搭建嵌入式Web服务器硬件平台,在此基础上进行嵌入式Linux内核的移植和相关外设的驱动开发,完成嵌入式Web服务器的软硬件环境搭建。
最后在该环境下自行实现嵌入式Web服务器MyWebServer,经过测试,客户端可以访问MyWebServer内嵌的静态网页,同时也可以与MyWebServer之间的动态交互,达到设计目标。
关键字:嵌入式Web,ARM,嵌入式Linux,MyWebServer服务器ABSTRACTABSTRACTEmbeddeddevicesextendeverywhereinhumanlifebyvirtualofitscompactsize,highperformanceandlowpowerconsumption.Thescopeofembeddeddeviceapplicationsisexpandingeverywhere.AccompaniedbyusedwebintherapiddevelopmentofInteract,embeddeddevicesbecomepossible.Embeddedtechnologyremoteisamanagement,monitoringperfectcombinationoftheapplicationserverembeddedconcurrenttheandnetworktechnology.aTraditionalwebserverismainlyusedforprocessingclientaccesseslargenumberofwhichrequireshi曲processorpowerandmemorycapacity.Whileprocessingpower,memorynotrunallcapacityofembeddeddevicesislimited,traditionalWebserverusuallyCanin也eembeddedplatform.Inonviewofthis,thisissuedescribesathewayofdesigningembeddedwebserverdesign,buildinganembeddedwebserverhardware・softwareplatform,andplatformTheatachievingthebasisofsoftware-hardwarethelast.embeddedwebserverisbuiltonacorrespondinghardwareandsoftwarethroughtheworldplatforms.ARMcoreprocessorsarelowpowerrenownedmarketforitsahigh-performanceandwidelyconsumption,whileembeddedLinuxkernelbecomesystemsasausesusedembeddedandoperatingwithcharacteristicsofopensource,goodthemodelARM+LINUXtobuildportability,fleeofchargeandothers.ThisdesignahardwaresoftwareplatformgoodfoundationfortherealizationoftheernbeddedWebserver.Firstofall,thebasicarchitectureoftheembeddedwebserverdesignisintroduced.ThenATMEL'sARM9platformtobuildehipAT91SAM9263chipisusedtoconsititutethehardwareanembeddedWebserver.Onthisbasis,embeddedtheaLinuxkemelandserverrelatedperipheraldriversaredeveloppedaleormigrated.NowembeddedembeddedWebhardwareandsoftwareenvironmentcompleted.Finallyachieved.webserverSelWeI"“MyWebServer'’isrealizeddynamicallyaftertestwhichonthisplatform.TheguestCaninteractwiththesignifiesthatourgoalisKeywords:EmbeddedWeb,ARM,EmbededLinux,MyWebServerⅡ图目录图目录图1.1嵌入式系统的一般架构………………………………………………………….3图1.2嵌入式硬件平台基本组成结构…………………………………………………3图2.1嵌入式Web服务器功能模块图………………………………………………..13图2.2浏览器与Web服务器的工作方式……………………………………………14图2.3TCP/P协议栈模型…………………………………………………………….17图2_4TCP/口协议栈协议依赖关系…………………………………………………18图2.5TCP“三次握手"建立连接……………………………………………………l9图2.6IP数据报收发流程……………………………………………………………..21图2.7HTTP协议的发展………………………………………………………………22图2-8HTTP通信模型………………………………………………………………..22图2-9客户端通过CGI程序与服务器端交互………………………………………23图2.10CGI程序开发一般流程……………………………………………………….25图2.11嵌入式Web服务器设计框架………………………………………………..26图3.1嵌入式Web服务器系统框图…………………………………………………28图3.2AT91S』州9263结构框图……………………………………………………..291图3.3CS8900A架构图…………………………………………………………………3图3_4系统平面布局图……………………………………………………………….33图3.5核心板实物图………………………………………………………………….33图3-6核心板与母板连接示意图…………………………………………………….34图3.7系统实物图……………………………………………………………………..34图3.8SDRAM存储系统电路图………………………………………………………35图3-9NANDFlash存储系统电路图…………………………………………………36图3.10电压转换电路5V一3.3V………………………………………………………36图3.11电压转换电路3.3V一1.2V……………………………………………………37图3.12复位电路………………………………………………………………………37图3.13RS232串行接口电路………………………………………………………….38图3.14网络接口电路…………………………………………………………………..38图3.15正确检测芯片………………………………………………………………….4l图3.16未检测出芯片…………………………………………………………………41图3.17串口调试结果…………………………………………………………………43图4.1典型嵌入式系统软件image的逻辑布局…………………………………….45图4.2ARMLinux的开发流程………………………………………………………。
基于ARM_Linux的嵌入式WEB服务器
TOPICAL DISCUSS 专题论述
2. 3 软件设计
嵌入式 WEB 服务器的软件开发主要包括以下几项 内容 : ① 完成嵌入式操作系统 ARM - Linux 的移植和 TCP/ IP 协议族的裁剪 ; ② 编写 H T TP WEB Server ; ③ 编写 CGI 应用程序 ,包括 U RL 解码程序 、各功能模块子 程序以及输出浏览器显示页面程序等 ; ④ 移 植 嵌入 式 SQLite 数据库 ; ⑤编写 RS232C 串口通信程序 ,完成整个 系统的软件调试与测试 。下面重点讲述内容 ①、②、③。
CGI 应用程序读取从 H T TP WEB Server 传递来的 各种信息 ,并对客户端的请求进行解释和处理 ,例如使用 SQL 语句来检索 ,更新数据库 ,或者启动串口数据通信进 程 ,将从客户端获得的数据按 RS232C 通信协议重新组帧 , 从 UART 口发送到现场被控对象 。最后 CGI 应用程序会 将处理结果按照 CGI 规范返回给 HTTP WEB Server , H T2 TP WEB Server 会对 CGI 应用程序的处理结果进行解析 , 并在此基础上生成 HTTP 响应信息返回给客户端。
专题论述 TOPICAL DISCUSS 基 于 AR M
Li n u x 的 嵌 入 式
W EB 服 务 器
■冶金自动化研究设计院 刘银水 肖正宇 孙伟
摘 要 关键词
针对目前现场设备远程监控的需要 ,在分析嵌入式 WEB 服务器原理的基础上 ,讨论并提出一种实现远程 设备监控的方法 ,设计出一种基于“ARM + ARM - Linux”操作系统的嵌入式 WEB 服务器系统 ,给出其软硬 件设计和一些关键的实现细节 。同时 ,针对嵌入式设备的特点对 TCP/ IP 协议族进行了裁剪 ,并依照裁剪 后的协议 ,利用 Socket 编程和编写 CGI 程序最终完成了 B/ S 模式下嵌入式 WEB 服务器的设计 。最后将所 设计的嵌入式 WEB 服务器应用到现场交流伺服远程监控系统中 ,实现了其远程监控与故障诊断。
基于ARM_LINUX的嵌入式Web服务器设计
文章编号:167121742(2008)0520481204基于ARM 2L INUX 的嵌入式Web 服务器设计梁银会, 杨家仕, 王天宝(成都信息工程学院电子工程系,四川成都610225) 摘要:基于三星公司的ARM9芯片S3C2410和Linux 操作系统构建嵌入式Web 服务器。
首先介绍了嵌入式Web 服务器的硬件结构,接着介绍了Linux 操作系统的移植,Boa 服务器在嵌入式Linux 平台的实现以及动态Web页面的设计。
关 键 词:嵌入式系统;Linux ;Web 服务器;CGI ;SQLite中图分类号:TP316 文献标识码:A收稿日期:20082032111 引言随着网络信息技术的飞速发展,Web 技术越来越多的用在控制领域,客户端只需连接以太网,取得访问权限,就可以访问服务器,查阅现场有关信息,并可以对服务器的操作进行控制,给维护和管理工作带来方便。
同时,嵌入式系统以其实时性强,可靠性高,结构小巧等优点,在各个领域都得到了广泛应用;在嵌入式操作系统方面,Linux 以其源码公开,无版权开支,性能稳定可靠,可移植性强等优点吸引了众多嵌入式开发者的目光,嵌入式Linux 开发已经渗透到工业自动化、数据通信、消费电子、汽车工业、军事航空等众多领域。
Web 技术和嵌入式系统的结合,充分发挥了两者各自的优势,从而为远端数据监控的发展开辟了一片天空。
构建基于ARM 2L IN 2UX 的嵌入式Web 服务器,为嵌入式系统的Internet 接入提供了一种方便快捷的实现方法。
2 系统硬件框架2.1 S 3C 2410介绍S3C2410是三星公司推出的16/32位RISC 处理器,采用ARM920T 内核,提供了一系列完整的系统外围设备,消除了为系统配置额外器件的需要,其主要特征如下:203MHz 的ARM920T 内核,支持J TA G 仿真调试;具有MMU ,支持Linux 、WinCE 等操作系统;外部存储器控制器,共分8个Bank ,每个Bank 可访问128MB 空间;片内4K B SRAM ,可用作NAND FLASH 系统引导的缓冲区;4通道DMA ,有外部请求引脚;8通道10位ADC 和触摸屏接口;3个UAR T 接口;具有片内PLL 时钟发生器等等。
基于ARM的嵌入式WEB服务器设计与应用
A . 17 DO2 P . 2
P .8 12
S3 A
S A4
I RB O
T 1
上
息, 监测 数 据存 储 在 非 易 失 性 存 储 器 被测信 号
A o3 D.
P1 9 . 2 T 2
I
T
l
P - 13 O P .1 13
I B OW RS DR T V
图 1 嵌 入 式 we 服 务 器 硬件 结 构 图 b
S0 r.
Ke r : y wo ds ARM ; mb d e y tm ; EB s r e TCP/ P p oo o e e d d s se W e v r; I rtc l
0 引言
随着 网络 技 术 的发 展 , 以太 网技
0
十 J V V
^ oo ⅡS
器 。给 出 了硬 件设 计原 理及 结构框 图 , 阐述 了嵌 入 式 T P I C /P协 议栈 的体 系结 构 和相 关接 口, 绍 介 了该协 议栈在 A M 核 处理 器 L C 1 8上 实现 的基 本原 理和 方 法。 R P 24 关 键词 : R 嵌入 式 系统 ; b服务 器 ; C /P协 议 A M; We T PI
中图分类 号 :P9 T33
文 献标 识码 : A
文章 编号 :O0— 62 20 )4— 09— 3 l0 0 8 (0 7 0 0 3 0
Th e i n a d a plc to fa m b d d W EB e v r ba e o t e ARM o e s r e d sg n p i a i n o n e e de s r e s d n h pr c s o
基于ARM简单嵌入式WEB服务器系统的设计
基于ARM简单嵌入式WEB服务器系统的设计摘要工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我们以ARM体系结构与编程课程中所学知识为基础,对基于ARM的简单嵌入式WEB 服务器系统进行了简单设计。
本设计利用ARM 自带的WEB服务器技术,来实现对嵌入式WEB 服务器系统的控制设计。
该技术基于WEB服务器之上,且用嵌入式WEB服务器来实现对于网络的访问。
本设计说明重点介绍了如下几方面的内容:1)基于嵌入式WEB服务器的HTTP协议;1 2)Linux 下的signal()函数的使用;3)嵌入式WEB服务器的工作原理;4)ARM开发板上的SOCKET网络编程。
关键词:ARM体系;嵌入式WEB服务器;HTTP 协议;SOCKET网络编程。
目录第一章绪论 (3)1.1课题简介 (3)1.2设计目的 (3)1.3设计内容 (3)1.4设计用途 (3)第二章嵌入式WEB服务器设计原理简介 (4)2.1需求说明 (4)2.2功能需求详细说明 (4)2.3数据流图(DFD) (6)2.4数据需求 (6)第三章嵌入式WEB服务器设计流程 (7)3.1系统结构图 (7)3.2整体结构图说明 (7)3.3连接处理模块 (8)I3.4功能分配 (8)第四章嵌入式WEB服务器设计程序分析及实践 (10)4.1程序设计 (10)4.2程序分析 (11)4.3实验步骤 (15)参考文献 (17)I第一章绪论1.1课题简介随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。
目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。
巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。
ARM单片机技术由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。
ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统的主控制器,由linux下的vi编程,来实现对于嵌入式WEB服务器的访问。
基于ARM和Linux的嵌入式WebServer的构建及应用的开题报告
基于ARM和Linux的嵌入式WebServer的构建及应用的开题报告一、选题背景随着物联网技术的快速发展,越来越多的物联网设备得以连接互联网。
而WebServer作为物联网设备连接互联网的技术基础之一,其重要性也越来越突出。
特别是在嵌入式领域,基于ARM和Linux的嵌入式WebServer越来越受到人们的关注和研究。
在这种背景下,本课题选取基于ARM和Linux的嵌入式WebServer的构建及应用为研究方向,旨在研究如何利用嵌入式硬件和Linux系统搭建高性能的WebServer,并将其应用到实际物联网设备中去。
二、研究内容1.嵌入式系统硬件平台的选取和配置。
嵌入式WebServer需要一个高性能的硬件平台来支撑,本研究将选取ARM架构的嵌入式系统作为硬件平台,并对其进行适当配置。
2.Linux系统的安装和配置。
Linux系统是嵌入式WebServer的关键技术之一,本研究将学习如何安装和配置Linux系统,包括网络配置、硬件驱动配置等方面。
3.WebServer的搭建和配置。
WebServer是嵌入式WebServer的核心技术,本研究将介绍如何搭建高性能的WebServer,并进行适当的配置。
4.WebServer的应用。
本研究将以实际物联网设备为研究对象,将搭建的WebServer应用到实际物联网设备中,并进行性能测试和应用验证。
三、研究意义1.促进基于嵌入式系统和Linux系统的WebServer技术的研究和发展。
2.提高物联网设备的性能和安全性。
3.为WebServer技术在物联网领域的应用探索提供参考。
四、研究方法本研究将采用文献调研、实验研究和案例实践相结合的方法进行研究。
具体包括:1.文献调研:通过相关论文、书籍、网络资源等进行文献调研,并对相关技术进行概述和分析。
2.实验研究:在实验室环境下,应用所学技术信息对嵌入式WebServer 进行搭建和性能测试。
3.案例实践:将搭建的WebServer应用到实际物联网设备中,并进行性能测试和应用验证。
ARM简单嵌入式WEB服务器系统设计
封面作者:PanHongliang仅供个人学习摘要工程实践教案环节是为了学生能够更好地巩固和实践所学专业知识而设置地,在本次工程实践中,我们以ARM体系结构与编程课程中所学知识为基础,对基于ARM地简单嵌入式WEB服务器系统进行了简单设计.本设计利用ARM 自带地WEB服务器技术,来实现对嵌入式WEB服务器系统地控制设计.该技术基于WEB服务器之上,且用嵌入式WEB服务器来实现对于网络地访问.本设计说明重点介绍了如下几方面地内容:1)基于嵌入式WEB服务器地HTTP协议;12)Linux 下地signal()函数地使用;3)嵌入式WEB服务器地工作原理;4)ARM开发板上地SOCKET网络编程.关键词:ARM体系;嵌入式WEB服务器;HTTP协议;SOCKET网络编程.目录第一章绪论 (3)1.1课题简介 (3)1.2设计目地31.3设计内容 (3)1.4设计用途 (3)第二章嵌入式WEB服务器设计原理简介 (4)2.1需求说明 (4)2.2功能需求详细说明 (4)2.3数据流图(DFD) (6)2.4数据需求 (6)第三章嵌入式WEB服务器设计流程 (7)3.1系统结构图 (7)3.2整体结构图说明 (7)3.3连接处理模块 (8)3.4功能分配 (8)第四章嵌入式WEB服务器设计程序分析及实践 (10)4.1程序设计 (10)4.2程序分析 (11)4.3实验步骤 (15)参考文献 (17)第一章绪论1.1课题简介随着后PC时代地到来,嵌入式系统技术已经成为了一个万众瞩目地焦点.目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域.巨大地市场潜力,无穷地商机,吸引了各路英豪纷踵沓来.ARM单片机技术由于其微小地体积和极低地成本,广泛地应用于家用电器、工业控制等领域中.在工业生产中,电流、电压、温度、压力和流量也都是常用地被控参数.ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统地主控制器,由linux下地vi编程,来实现对于嵌入式WEB服务器地访问.本设计采用ARM技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉地特点,适宜于绝大多数地控制过程.鉴于这样地重要性,我们打算设计一种基于ARM地嵌入式服务器系统.1.2设计目地通过本次工程实践,运用ARM体系结构与编程所学知识及查阅相关资料,完成嵌入式WEB服务器地设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力地目地.通过本次设计训练,可以使我们在基本思路和基本方法上对基于ARM地设计有一个比较感性地认识,并具备一定程度地设计能力.1.3设计内容熟知嵌入式WEB服务器地工作原理、SOCKET网络编程.使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译WEB服务器地驱动模块和应用程序,实现嵌入式WEB服务器地设计.1.4 设计用途学习使用SOCKET进行通讯编程地过程,了解一个实际地网络通讯应用程序整体设计, 读懂HTTPD.C 源代码.在此基础上增加一些其他功能.在PC计算机上使用浏览器测试嵌入式WEB服务器地功能.第二章嵌入式WEB服务器设计原理简介2.1需求说明图2.1 嵌入式WEB服务器需求说明2.2 功能需求详细说明1)获取服务器当前目录文件列表将服务器当前目录下所有文件地信息发送给客户端,信息包括:文件名、大小、日期.2)获取指定文件将客户请求地文件发送给客户.3)获取HTML 类型文件将客户请求地HTML 类型文件发送给客户.4)获取纯文本文件将客户请求地纯文本发送给客户.5)获取JPG 图像文件将客户请求地JPG 图像文件发送给客户.6)获取GIF 图像文件将客户请求地GIF 图像文件发送给客户.7)解读用户请求分析客户地请求,将请求信息解读为几个变量,包括:请求地命令、请求地文件名、请求地文件类型.2.3 数据流图(DFD)图2.2 数据流图(DFD)2.4 数据需求回应HTTP协议数据头格式要求,如表2.1 所示:表2.1 HTTP 协议数据头格式第三章嵌入式WEB服务器设计流程3.1 系统结构图图3.1 系统结构图3.2 整体结构图说明主程序:建立TCP 类型SOCKET 在80 端口进行监听连接请求.接收到连接请求,将请求传送给连接处理模块处理.并继续进行监听.3.3 连接处理模块图3.2 连接处理模块3.4功能分配1)发送当前目录文件列表信息将服务器当前目录下所有文件地信息发送给客户端,信息包括:文件名、大小、日期.2)发送HTML 类型文件将客户请求地HTML 类型文件发送给客户.3)发送纯文本文件将客户请求地纯文本发送给客户.4)发送JPG 图像文件将客户请求地JPG 图像文件发送给客户.5)发送GIF 图像文件将客户请求地GIF 图像文件发送给客户.6)解读客户请求HTTP 协议头分析客户地请求,包括:1. 空格处理2. 解读客户请求命令3. 解读客户请求地资源名4. 解读客户请求地资源类型.7)客户连接处理解读Referrer 和content_length 字段值并调用客户请求解读函数. 8)发送HTTP 协议数据头根据发送文件类型发送相应地HTTP 协议头信息.第四章嵌入式WEB服务器设计程序分析及实践4.1 程序设计4.1.1、接口设计客户连接处理函数名:int HandleConnect(int fd)参数:客户连接文件描述字4.1.2、解读客户请求函数名:int ParseReq(FILE *f, char *r)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.参数2:字符串指针,待解读地字符串.4.1.3、发送HTTP协议数据头函数名:int PrintHeader(FILE *f, int content_type)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.用于写入HTTP 协议数据头信息.参数2:信息类型,用于确定发送地HTTP 协议数据头信息.4.1.4、发送当前目录文件列表信息函数名:int DoDir(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.用于写入目录文件信息数据.参数2:目录名,表示客户请求地目录信息.4.1.5、发送HTML文件内容函数名:int DoHTML(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.用于写入文件信息数据.参数2:客户请求地文件名.4.1.6、发送纯文本(TXT)文件内容函数名:int DoText(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.用于写入文件信息数据.参数2:客户请求地文件名.4.1.7、发送JPEG图像文件内容函数名:int DoJpeg(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.用于写入文件信息数据.参数2:客户请求地文件名.4.1.8、发送GIF图像文件内容函数名:int DoGif(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接地文件流指针.用于写入文件信息数据.参数2:客户请求地文件名.4.2程序分析4.2.1、主程序设计1)功能说明系统地总入口,也是系统地主要控制函数.分别完成如下功能:建立环境设置.设置信号处理方式.建立侦听TCP 流方式SOCKET 并绑定80 端口.建立连接侦听及客户连接处理调用主循环.2)算法流程图算法流程图如图4.1所示:图4.1 主程序数据流程图3)命令行输入处理用户在命令行输入参数 -i ,则将客户输入文件描述字设为0,即标准输入.用于在本机进行测试.其他输入全部忽略.4.2.2、客户连接处理模块设计1)功能说明用于初步处理客户地连接请求,并将请求信息传递给客户请求解读函数处理.2)算法算法流程图如图2.2所示:图4.2 客户连接处理模块数据流程图4.2.3、客户请求解读处理模块设计1)功能说明用于解读客户地请求,并根据请求信息调用相应地函数进行请求处理. 2)算法算法流程图如图2.3所示:图4.3 客户请求解读处理模块数据流程图4.2.4、发送HTTP协议数据头模块设计1)功能说明根据参数地不同,发送不同地HTTP 协议头信息.2)算法函数定义为:int PrintHeader(FILE *f, int content_type)发送请求成功信息:HTTP/1.0 200 OK.根据文档类型发送相应地信息:fprintf(),函数中地第一个参数f 为客户连接文件流句柄.switch (content_type){case 't':fprintf(f,"Content-type: text/plain\n")。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摘要工程实践教学环节是为了学生能够更好地巩固和实践所学专业知识而设置的,在本次工程实践中,我们以ARM体系结构与编程课程中所学知识为基础,对基于ARM的简单嵌入式WEB服务器系统进行了简单设计。
本设计利用ARM 自带的WEB服务器技术,来实现对嵌入式WEB服务器系统的控制设计。
该技术基于WEB服务器之上,且用嵌入式WEB服务器来实现对于网络的访问。
本设计说明重点介绍了如下几方面的内容:1)基于嵌入式WEB服务器的HTTP协议;12)Linux 下的signal()函数的使用;3)嵌入式WEB服务器的工作原理;4)ARM开发板上的SOCKET网络编程。
关键词:ARM体系;嵌入式WEB服务器;HTTP协议;SOCKET网络编程。
目录第一章绪论 (3)1.1课题简介 (3)1.2设计目的 (3)1.3设计内容 (3)1.4设计用途 (3)第二章嵌入式WEB服务器设计原理简介................................................ 错误!未定义书签。
2.1需求说明.............................................................................................. 错误!未定义书签。
2.2功能需求详细说明.............................................................................. 错误!未定义书签。
2.3数据流图(DFD) (5)2.4数据需求 (6)第三章嵌入式WEB服务器设计流程 (7)3.1系统结构图 (7)3.2整体结构图说明 (7)3.3连接处理模块 (8)3.4功能分配 (8)第四章嵌入式WEB服务器设计程序分析及实践 (10)4.1程序设计 (10)4.2程序分析 (11)4.3实验步骤 (15)参考文献 (17)第一章绪论1.1课题简介随着后PC时代的到来,嵌入式系统技术已经成为了一个万众瞩目的焦点。
目前已广泛应用于信息家电、数据网络、工业控制、医疗卫生、航空航天等众多领域。
巨大的市场潜力,无穷的商机,吸引了各路英豪纷踵沓来。
ARM单片机技术由于其微小的体积和极低的成本,广泛的应用于家用电器、工业控制等领域中。
在工业生产中,电流、电压、温度、压力和流量也都是常用的被控参数。
ARM单片机控制嵌入式WEB服务器系统,是利用ARM作为系统的主控制器,由linux 下的vi编程,来实现对于嵌入式WEB服务器的访问。
本设计采用ARM技术,其具有集成度高,运算快速快,体积小、运行可靠,价值低廉的特点,适宜于绝大多数的控制过程。
鉴于这样的重要性,我们打算设计一种基于ARM的嵌入式服务器系统。
1.2设计目的通过本次工程实践,运用ARM体系结构与编程所学知识及查阅相关资料,完成嵌入式WEB服务器的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。
通过本次设计训练,可以使我们在基本思路和基本方法上对基于ARM的设计有一个比较感性的认识,并具备一定程度的设计能力。
1.3设计内容熟知嵌入式WEB服务器的工作原理、SOCKET网络编程。
使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译WEB服务器的驱动模块和应用程序,实现嵌入式WEB服务器的设计。
1.4 设计用途学习使用SOCKET进行通讯编程的过程,了解一个实际的网络通讯应用程序整体设计,读懂HTTPD.C 源代码。
在此基础上增加一些其他功能。
在PC计算机上使用浏览器测试嵌入式WEB服务器的功能。
32)获取指定文件将客户请求的文件发送给客户。
3)获取HTML 类型文件将客户请求的HTML 类型文件发送给客户。
4)获取纯文本文件将客户请求的纯文本发送给客户。
5)获取JPG 图像文件将客户请求的JPG 图像文件发送给客户。
6)获取GIF 图像文件将客户请求的GIF 图像文件发送给客户。
7)解析用户请求分析客户的请求,将请求信息解析为几个变量,包括:请求的命令、请求的文件名、请求的文件类型。
2.3 数据流图(DFD)图2.2 数据流图(DFD)52.4 数据需求回应HTTP协议数据头格式要求,如表2.1 所示:表2.1 HTTP 协议数据头格式第三章嵌入式WEB服务器设计流程3.1 系统结构图图3.1 系统结构图3.2 整体结构图说明主程序:建立TCP 类型SOCKET 在80 端口进行监听连接请求。
接收到连接请求,将请求传送给连接处理模块处理。
并继续进行监听。
73.3 连接处理模块图3.2 连接处理模块3.4功能分配1)发送当前目录文件列表信息将服务器当前目录下所有文件的信息发送给客户端,信息包括:文件名、大小、日期。
2)发送HTML 类型文件将客户请求的HTML 类型文件发送给客户。
3)发送纯文本文件将客户请求的纯文本发送给客户。
4)发送JPG 图像文件将客户请求的JPG 图像文件发送给客户。
5)发送GIF 图像文件将客户请求的GIF 图像文件发送给客户。
6)解析客户请求HTTP 协议头分析客户的请求,包括:1. 空格处理2. 解析客户请求命令3. 解析客户请求的资源名4. 解析客户请求的资源类型。
7)客户连接处理解析Referrer 和content_length 字段值并调用客户请求解析函数。
8)发送HTTP 协议数据头根据发送文件类型发送相应的HTTP 协议头信息。
9第四章嵌入式WEB服务器设计程序分析及实践4.1 程序设计4.1.1、接口设计客户连接处理函数名:int HandleConnect(int fd)参数:客户连接文件描述字4.1.2、解析客户请求函数名:int ParseReq(FILE *f, char *r)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
参数2:字符串指针,待解析的字符串。
4.1.3、发送HTTP协议数据头函数名:int PrintHeader(FILE *f, int content_type)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
用于写入HTTP 协议数据头信息。
参数2:信息类型,用于确定发送的HTTP 协议数据头信息。
4.1.4、发送当前目录文件列表信息函数名:int DoDir(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
用于写入目录文件信息数据。
参数2:目录名,表示客户请求的目录信息。
4.1.5、发送HTML文件内容函数名:int DoHTML(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
用于写入文件信息数据。
参数2:客户请求的文件名。
4.1.6、发送纯文本(TXT)文件内容函数名:int DoText(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
用于写入文件信息数据。
参数2:客户请求的文件名。
4.1.7、发送JPEG图像文件内容函数名:int DoJpeg(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
用于写入文件信息数据。
参数2:客户请求的文件名。
4.1.8、发送GIF图像文件内容函数名:int DoGif(FILE *f, char *name)参数:参数1:文件流FILE 结构指针,用于表示客户连接的文件流指针。
用于写入文件信息数据。
参数2:客户请求的文件名。
4.2程序分析4.2.1、主程序设计1)功能说明系统的总入口,也是系统的主要控制函数。
分别完成如下功能:建立环境设置。
设置信号处理方式。
建立侦听TCP 流方式SOCKET 并绑定80 端口。
建立连接侦听及客户连接处理调用主循环。
2)算法流程图算法流程图如图4.1所示:11图4.1 主程序数据流程图3)命令行输入处理用户在命令行输入参数 -i ,则将客户输入文件描述字设为0,即标准输入。
用于在本机进行测试。
其他输入全部忽略。
4.2.2、客户连接处理模块设计1)功能说明用于初步处理客户的连接请求,并将请求信息传递给客户请求解析函数处理。
2)算法算法流程图如图2.2所示:图4.2 客户连接处理模块数据流程图4.2.3、客户请求解析处理模块设计1)功能说明用于解析客户的请求,并根据请求信息调用相应的函数进行请求处理。
2)算法算法流程图如图2.3所示:13图4.3 客户请求解析处理模块数据流程图4.2.4、发送HTTP协议数据头模块设计1)功能说明根据参数的不同,发送不同的HTTP 协议头信息。
2)算法函数定义为:int PrintHeader(FILE *f, int content_type) 发送请求成功信息:HTTP/1.0 200 OK。
根据文档类型发送相应的信息:fprintf(),函数中的第一个参数f 为客户连接文件流句柄。
switch (content_type){case 't':fprintf(f,"Content-type: text/plain\n");break;case 'g':fprintf(f,"Content-type: image/gif\n");break;case 'j':fprintf(f,"Content-type: image/jpeg\n");break;case 'h':fprintf(f,"Content-type: text/html\n");break;}发送服务器信息:fprintf(f,"Server: AMRLinux-httpd 0.2.4\n");发送文件过期为永不过期:fprintf(f,"Expires: 0\n");4.3 实验步骤4.3.1、阅读理解源码进入/arm2410s/exp/basic/09_httpd 目录,使用vi 编辑器或其他编辑器阅读理解源代码4.3.2、编译应用程序运行make 产生可执行文件httpd[root@zxt /]# cd /arm2410s/exp/basic/09_httpd/[root@zxt 09_httpd]# makearmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT=\"/mnt/yaffs\" -c -o httpd.o httpd.carmv4l-unknown-linux-gcc -DHTTPD_DOCUMENT_ROOT=\"/mnt/yaffs\" -c -o copy.c15armv4l-unknown-linux-gcc -o ../bin/httpd httpd.o copy.o -lpthreadarmv4l-unknown-linux-gcc -o httpd httpd.o copy.o -lpthread[root@zxt 09_httpd]# lscopy.c doc httpd httpd.o Makefilecopy.o Google httpd.c index.html Makefile.bak4.3.3、下载调试使用NFS 服务方式将HTTPD 下载到开发板上,并拷贝测试用的网页进行调试,本例中用的是index 测试网页。