嵌入式WEB服务器的实现课程设计报告.doc_第1页
嵌入式WEB服务器的实现课程设计报告.doc_第2页
嵌入式WEB服务器的实现课程设计报告.doc_第3页
嵌入式WEB服务器的实现课程设计报告.doc_第4页
嵌入式WEB服务器的实现课程设计报告.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录一、 课程设计的目的与任务1二、课程设计的基本要求1三、课程设计的地点:1四、课程设计的内容1第一部分:WEB服务器的简介1第二部分:实现AD远程采集6五、课程设计的心得会:8六、参考资料9一、课程设计的目的与任务:目的:加强对嵌入式软件设计的进一步认识,在认识的基础上尝试进行一个远程数据采集的设计开发。任务:进一步加深学生对嵌入式专业知识的了解,提高学生的专业技能及动手能力。老师首先进行讲解,讲解完后,学生通过实验箱实现。加强学生的动手能力,并进一步促进学生对所学内容的理解。二、课程设计的基本要求:1、学生不得无故缺席、迟到或早退,教师必须每天打考勤;2、在听课时,学生必须做认真的笔记,教师定时检查;3、听课完成后,教师安排学生做相关的实验,加深学生对所学知识的理解;4、教师安排的讲课要有针对性。三、课程设计的地点:应用技术学院5楼4机房。四、课程设计的内容:第一部分:WEB服务器的简介嵌入式Web服务器的硬件系统包含了Web通信功能的微处理器或者微控制器系统,它可以和前端的应用系统直接集成在一起,也可以通过现场总线与应用系统相连。随着计算机、通信、自动控制、微电子等技术的发展。电器设备上网已经成为现实。与传统的单片机相比,嵌入式设备重要的突破之一就是解决了设备和internet的互连问题近年来嵌入式技术飞速发展种类繁多、功能强大的CPU和片外连接为网络应用提供了稳定、可靠的硬件环境:嵌入式操作系统对这些硬件和以太网也有很好的支持,搡作系统的移植大为简化,这就为嵌入式web服务器的实现提供了方便。嵌入式web服务器将监控系统中的各种办议的数据转换成统一的TCPIP协议格式,以便用户通过以太网远程访问web服务器。该文结合快速发震的嵌入式技术。给出了一种基于嵌入式网络化远程监控系统的web服务器实现方案。1、WEB浏览器浏览器是个显示网页伺服器或档案系统内的HTML文件,并让用户与此些文件互动的一种软件。个人电脑上常见的网页浏览器包括微软的Internet Explorer、Mozilla的Firefox、Opera和Safari。浏览器是最经常使用到的客户端程序。2、WEB服务器通常是在远程机器上,负责对浏览器页面请求作出响应,返回HTML编码或类似的数据流。通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。3、嵌入式WEB服务器的构架4、常见的嵌入式WEB服务器典型的嵌入式 Web 服务器有 Boa 和Httpd 两种,它们和 Apache 等高性能的 Web 服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。Boa 是一个非常小巧的 Web 服务器,可执行代码只有约 60KB。它是一个单任务 Web服务器,只能依次完成用户的请求,而不会 fork 出新的进程来处理并发连接请求。但 Boa支持 CGI,能够为 CGI 程序 fork 出一个进程来执行。Boa 的设计目标是速度和安全,在其站点公布的性能测验中,Boa 的性能要好于 Apache 服务器。经过上述的对比和判断,选择Boa 作为系统的嵌 入式服务器。综合以上的讨论以及选择,根据系统的实际需求,最终确定了采用 S3C2410X 为核心处理器,Linux 为嵌入式操作系统,boa 为服务器以及相应的 http 浏览器的系统设计方案。典型的嵌入式 Web 服务器有 Boa 和 Httpd 两种比较如下:Boa支持HTTP和CGI,非常高效的请求速度几效率。21个源文件,4000多行源代码,编译后400多K,最多可以同时响应50个请求。Httpd非常小巧的轻量级webserver,仅仅提供了http和cgi的支持。20个源文件,7000多行代码,编译后30几K,可以同时响应1000个以上的请求。5、HTML语言简介HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,WINDOWS等)。HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。生成一个HTML文档主要有以下三种途径:1.手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。2.通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。3.由Web服务器(或称HTTP 服务器)一方实时动态地生成。6、HTML表单介绍普通的HTML页面只能提供静态的信息给用户,要实现网页的交互仅依靠HTML是无法实现的。HTML中的表单(FORM)是用户页面输入的交互方式,FORM中提供了多种输入方式,如文字输入区、下拉菜单、复选框、单选框等等。7、定义表单FORM标签 - Action表示对表单输入处理的方法(url/cgi)Method表示对表单输入的处理提交方式(get/post)8、GET/POST方法method有两个值:get和postget的方式是将表单控件的name/value信息经过编码之后,通过URL发送(你可以在地址栏里看到)。post则将表单的内容通过http发送,你在地址栏看不到表单的提交信息。9、Input标签Input标签的语法:TYPE的值可选为buttoncheckboxfilehiddenimagepasswordradioresetsubmittextNAME这个属性为输入类型提供一个名称,表单提交时将与VALUE成对提交VALUE这个属性值提供了与NAME对应的初始值10、CGI的概念概念:CGI(Common Gateway Interface)通用网关接口是HTTP服务器与你的或其它机器上的程序进行交互的一种工具,其程序须运行在网络服务器上。功能:绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能。11、CGI处理过程CGI处理步骤:通过Internet把用户请求送到服务器。服务器接收用户请求并交给CGI程序处理。CGI程序把处理结果传送给服务器。服务器把结果送回到用户12、CGI工作原理13、CGI编程编程语言选择常用CGI编程语言有shellscript、C、visual basic、perl等等。在嵌入式中由于完成的任务不是很复杂,一般选择C语言。C的主要的缺点就是对字符的处理功能不够强大,而CGI往往要涉及到字符的处理。然而用C语言开发也有好处,比如代码的保密性好,执行效率高。14、CGI的输入与输出WEB服务器同CGI程序之间通过四种方式进行交换信息:环境变量、命令行、标准输入与标准输出/环境变量。操作系统提供了许多环境变量,它们定义了程序的执行环境,应用程序可以存取它们。Web服务器和CGI接口又另外设置了自己的一些环境变量,用来向CGI程序传递一些重要的参数。CGI的GET方法通过环境变量QUERY-STRING向CGI程序传递Form中的数据。它们是Web服务器传递数据给CGI程序的简单手段。15、CGI的输入与输出标准输入:CGI程序像其他可执行程序一样,可通过标准输入(stdin)从Web服务器得到输入信息,如Form中的数据,这就是所谓的向CGI程序传递数据的方法。标准输出:CGI程序通过标准输出(stdout)将输出信息传送给Web服务器。传送给Web服务器的信息可以用各种格式,通常是以纯文本或者HTML文本的形式,这样我们就可以在命令行状态调试CGI程序,并且得到它们的输出。16、BOA服务器简介:嵌入式 Web 服务器 Boa 的特点:Boa 是一款单任务的 HTTP 服务器, 与其他传统的 Web 服务器不同的是当有连接请求到来时, 它并不为每个连接单独创建进程, 也不通过复制自身进程来处理多链接, 而是通过建立 HTTP 请求列表来处理多路 HTTP 连接请求, 同时它只为 CGI 程序创建新的进程,这样就在最大程度上节省了系统资源, 这对嵌入式系统来说至关重要。同时它还具有自动生成目录、自动解压文件等功能, 因此 Boa 具有很高的 HTTP 请求处理速度和效率, 在嵌入式系统中具有很高的应用价值。Boa 的功能实现:嵌入式 Web 服务器 Boa 和普通 Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客 户端返回请求结果等任务。 它的工作过程主要包括:( a) 完成 Web 服务器的初始化工作, 如创建环境变量、创建 TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等待接收客户浏览器的连接请求;( b) 当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;( c) 在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;( d)Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。嵌入式 Web 服务器 Boa 根据请求方法的不同,做出不同的响应。如果请求方法为HEAD, 则直接向浏览器返回响应首部;如果请求方法为 GET, 则在返回响应首部的同时, 将客户端请求的 URL 目标文件从服务器上读出, 并且发送给客户端浏览器;如果请求方法为 POST, 则将客户发送过来的表单信息传送给相应的 CGI 程序, 作为 CGI 的参数来执行 CGI 程序, 并将执行结果发送给客户端浏览器。 Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。17、Boa 的搭建与移植(1)准备源代码、解压软件包,安装源代码到 boa 网站 下载 boa-0.94.13.tar.gz 源代码,或者使用光盘的boa-0.94.13.tar.gz 软件包。$ tar xzvf boa-0.94-13.tar.gz(2)进入 src 目录,编译源代码。解压后 src 目录下有 Makefile.in 文件,但没有 Makefile 文件,为了编译源代码,需要先生成 Makefile 文件,在 src 目录下运行 configure 命令$ ./configure生成的 Makefile 文件是针对 X86 平台的,为了生成能够在 ARM 上运行的 boa,需要修改 Makefile 文件。将 Makefile 如下几行行内容:CC = gccCPP = gcc E应用(在交叉编译时使用):然后输入 make 命令进行编译,在 src 目录下就会生成 boa 文件。$ make然后将该文件添加到文件系统中,重新下载文件系统。如果不幸出现icky Linux kernelbug!的错误,请将 src 下 boa.c 的第 226 行注释掉,重新编译下载即可。 (3)安装 boa 服务器主要是配置 boa 服务器。boa 启动时需要一个配置文件 boa.conf,该文件的缺省目录由src/defines.h 文件的 SERVER_ROOT 定义,或者在启动 boa 的时候通过参数-c指定。其中指定的默认目录是:/etc/boa/。(4)登录 boa 服务器在 PC 机浏览器地址栏输入目标系统的 IP 地址,访问存在于目标系统中的网页。第二部分:实现AD远程采集1、 解压boa-0.94.13.tar.gz:进入web目录:解压:tar xzvf boa-0.94.13.tar.gz,进入src目录。2、进行相关修改:得到compat.h文件,找到120行将连个“#”去掉;得到boa.c文件,将其225227进行注释;用命令:./configure对源文件进行配置;最好用命令make对Makefile文件进行编译。此后便得到可执行文件boa。3、编译CGI程序:CGI程序总共有两个及run.c和stop.c两个C文件,进入相关目录,编译命令分别如下:arm-linux-gcc o run.cgi run.c、arm-linux-gcc o stop.cgi stop.c,此时生成run.cgi、stop.cgi两个应用程序。4、BOA服务器的配置:将主机上/etc目录下的mime.types文件拷至开发板上的/etc目录下。相关说明如下:/var/log/boa/error_log:表示将错误信息记录到指定文件中 /dev/null:表示远程请求信息记录到指定文件中/var/www:表示html文件存放的目录/var/www/cgi-bin:表示CGI程序存放执行的地址因此,将index.html、adc.html和adc.xml三个文件拷贝到开发板的/var/www目录下;把刚才编译得到的run.cgi、stop.cgi拷贝到/var/www/cgi-bin目录下;还要在/var/log/boa目录下建一个error_log文件,命令:touch error_log。5、实现远程采集:把刚才编译得到的boa可执行文件拷贝至/var/log/boa目录下,然后启动boa服务器,命令如下:./boa。启动boa服务器后,在Ubuntu 10.04下启动Firefox(火狐浏览器),输入开发板的IP地址,即:94,打开的页面如下:点击上面的“查看”按钮后,出现如下页面:这时候转动开发板上的AD输入的三个旋钮,查看三个通道的采样值是否变化。点击“停止采集”按钮后,会跳到第一个页面,再次点击按钮“查看”可以重新开始,再次出现如下页面:AD远程采集实验基本实现预期结果。五、课程设计的心得体会:在课程的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但是没有能够进行找到合适的方法进行进一步的实验,设计中对于程序的编写以及目录结构的认知上存在偏差,其主要原因还是基础功不扎实,把握系统的能力不足,这为我们以后的学习和工作提了一个醒。在问题的解决过程中,也提高了我的动手动脑能力,学到了许多在书本上学不到的知识。在具体的设计当中解决了诸如 boa 服务器的搭建和C 程序的修改等。 此次课程设计给我最深的体会就是:理论+细心+实践才能在实际生产中体现所学知识的价值。在嵌入式行业发展如此快速完善的今天,理论与细心与实际的完美结合才能让自己在专业领域占有一席之地。在课程设计中,我初步了解了嵌入式处理器S3C2410及相关浏览器的工作原理、也加深了对嵌入式处理器S3C2410的认识;也见识了关于嵌入式处理器的一些工作方式等。 一周的课程设计结束了,然而终究还是学会了很多东西。在整个课程设计期间,我体会到了自己的进步,并且从中也体会到了它的快乐。课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论