嵌入式WEB服务器的实现课程设计报告.docx
- 文档编号:24147239
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:12
- 大小:188.33KB
嵌入式WEB服务器的实现课程设计报告.docx
《嵌入式WEB服务器的实现课程设计报告.docx》由会员分享,可在线阅读,更多相关《嵌入式WEB服务器的实现课程设计报告.docx(12页珍藏版)》请在冰豆网上搜索。
嵌入式WEB服务器的实现课程设计报告
一、课程设计的目的与任务……………………………1
二、课程设计的基本要求………………………………1
三、课程设计的地点:
…………………………………1
四、课程设计的容……………………………………1
第一部分:
WEB服务器的简介………………………1
第二部分:
实现AD远程采集…………………………6
五、课程设计的心得会:
………………………………8
六、参考资料……………………………………………9
一、课程设计的目的与任务:
目的:
加强对嵌入式软件设计的进一步认识,在认识的基础上尝试进行一个远程数据采集的设计开发。
任务:
进一步加深学生对嵌入式专业知识的了解,提高学生的专业技能与动手能力。
老师首先进行讲解,讲解完后,学生通过实验箱实现。
加强学生的动手能力,并进一步促进学生对所学容的理解。
二、课程设计的基本要求:
1、学生不得无故缺席、迟到或早退,教师必须每天打考勤;
2、在听课时,学生必须做认真的笔记,教师定时检查;
3、听课完成后,教师安排学生做相关的实验,加深学生对所学知识的理解;
4、教师安排的讲课要有针对性。
三、课程设计的地点:
应用技术学院5楼4机房。
四、课程设计的容:
第一部分:
WEB服务器的简介
嵌入式Web服务器的硬件系统包含了Web通信功能的微处理器或者微控制器系统,它可以和前端的应用系统直接集成在一起,也可以通过现场总线与应用系统相连。
随着计算机、通信、自动控制、微电子等技术的发展。
电器设备上网已经成为现实。
与传统的单片机相比,嵌入式设备重要的突破之一就是解决了设备和internet的互连问题.近年来.嵌入式技术飞速发展.种类繁多、功能强大的CPU和片外连接.为网络应用提供了稳定、可靠的硬件环境:
嵌入式操作系统对这些硬件和以太网也有很好的支持,搡作系统的移植大为简化,这就为嵌入式web服务器的实现提供了方便。
嵌入式web服务器将监控系统中的各种办议的数据转换成统一的TCP/IP协议格式,以便用户通过以太网远程访问web服务器。
该文结合快速发震的嵌入式技术。
给出了一种基于嵌入式网络化远程监控系统的web服务器实现方案。
1、WEB浏览器
浏览器是个显示网页伺服器或档案系统的HTML文件,并让用户与此些文件互动的一种软件。
个人电脑上常见的网页浏览器包括微软的InternetExplorer、Mozilla的Firefox、Opera和Safari。
浏览器是最经常使用到的客户端程序。
2、WEB服务器
通常是在远程机器上,负责对浏览器页面请求作出响应,返回HTML编码或类似的数据流。
通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。
确切一点,你可以说:
Web服务器专门处理请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(businesslogic)。
3、嵌入式WEB服务器的构架
4、常见的嵌入式WEB服务器
典型的嵌入式Web服务器有Boa和d两种,它们和Apache等高性能的Web服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。
Boa是一个非常小巧的Web服务器,可执行代码只有约60KB。
它是一个单任务Web服务器,只能依次完成用户的请求,而不会fork出新的进程来处理并发连接请求。
但Boa支持CGI,能够为CGI程序fork出一个进程来执行。
Boa的设计目标是速度和安全,在其站点公布的性能测验中,Boa的性能要好于Apache服务器。
经过上述的对比和判断,选择Boa作为系统的嵌入式服务器。
综合以上的讨论以与选择,根据系统的实际需求,最终确定了采用S3C2410X为核心处理器,Linux为嵌入式操作系统,boa为服务器以与相应的浏览器的系统设计方案。
典型的嵌入式Web服务器有Boa和d两种比较如下:
Boa
支持和CGI,非常高效的请求速度几效率。
21个源文件,4000多行源代码,编译后400多K,最多可以同时响应50个请求。
d
非常小巧的轻量级webserver,仅仅提供了和cgi的支持。
20个源文件,7000多行代码,编译后30几K,可以同时响应1000个以上的请求。
5、HTML语言简介
HTML(HyperTextMarkupLanguage超文本标记语言)是一种用来制作超文本文档的简单标记语言。
用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX,WINDOWS等)。
HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.html或.htm的文件扩展名。
生成一个HTML文档主要有以下三种途径:
1.手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。
2.通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。
3.由Web服务器(或称服务器)一方实时动态地生成。
6、HTML表单介绍
普通的HTML页面只能提供静态的信息给用户,要实现网页的交互仅依靠HTML是无法实现的。
HTML中的表单(FORM)是用户页面输入的交互方式,FORM中提供了多种输入方式,如文字输入区、下拉菜单、复选框、单选框等等。
7、定义表单FORM标签
method=get/post> ------------------------------------------------------------------------------------ Action表示对表单输入处理的方法(url/cgi) Method表示对表单输入的处理提交方式(get/post) 8、GET/POST方法 method有两个值: get和post get的方式是将表单控件的name/value信息经过编码之后,通过URL发送(你可以在地址栏里看到)。 post则将表单的容通过发送,你在地址栏看不到表单的提交信息。 9、Input标签 Input标签的语法: TYPE的值可选为 buttoncheckboxfilehiddenimagepasswordradioresetsubmittext NAME这个属性为输入类型提供一个名称,表单提交时将与VALUE成对提交 VALUE这个属性值提供了与NAME对应的初始值 10、CGI的概念 概念: CGI(CommonGatewayInterface)通用网关接口是服务器与你的或其它机器上的程序进行交互的一种工具,其程序须运行在网络服务器上。 功能: 绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。 CGI程序使网页具有交互功能。 11、CGI处理过程 CGI处理步骤: ⑴通过Internet把用户请求送到服务器。 ⑵服务器接收用户请求并交给CGI程序处理。 ⑶CGI程序把处理结果传送给服务器。 ⑷服务器把结果送回到用户 12、CGI工作原理 13、CGI编程编程语言选择 常用CGI编程语言有shellscript、C、visualbasic、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是一款单任务的服务器,与其他传统的Web服务器不同的是当有连接请求到来时,它并不为每个连接单独创建进程,也不通过复制自身进程来处理多,而是通过建立请求列表来处理多路连接请求,同时它只为CGI程序创建新的进程,这样就在最大程度上节省了系统资源,这对嵌入式系统来说至关重要。 同时它还具有自动生成目录、自动解压文件等功能,因此Boa具有很高的请求处理速度和效率,在嵌入式系统中具有很高的应用价值。 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.org下载boa-0.94.13.tar.gz源代码,或者使用光盘的boa-0.94.13.tar.gz软件包。 $tarxzvfboa-0.94-13.tar.gz (2)进入src目录,编译源代码。 解压后src目录下有Makefile.in文件,但没有Makefile文件,为了编译源代码,需要先生成Makefile文件,在src目录下运行configure命令$./configure 生成的Makefile文件是针对X86平台的,为了生成能够在ARM上运行的boa,需要修改Makefile文件。 将Makefile如下几行行容: CC=gcc CPP=gcc–E 应用(在交叉编译时使用): 然后输入make命令进行编译,在src目录下就会生成boa文件。 $make然后将该文件添加到文件系统中,重新下载文件系统。 如果不幸出现―ickyLinuxkernelbug! ‖的错误,请将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目录: 解压: tarxzvfboa-0.94.13.tar.gz,进入src目录。 2、进行相关修改: 得到compat.h文件,找到120行将连个“##”去掉;得到boa.c文件,将其225~227进行注释;用命令: ./configure对源文件进行配置;最好用命令make对Makefile文件进行编译。 此后便得到可执行文件boa。 3、编译CGI程序: CGI程序总共有两个与run.c和stop.c两个C文件,进入相关目录,编译命令分别如下: arm-linux-gcc–orun.cgirun.c、arm-linux-gcc–ostop.cgistop.c,此时生成run.cgi、stop.cgi两个应用程序。 4、BOA服务器的配置: 将主机上/etc目录下的mime.types文件拷至开发板上的/etc目录下。 相关说明如下: /var/log/boa/error_log: 表示将错误信息记录到指定文件中 /dev/null: 表示远程请求信息记录到指定文件中 /var/: 表示html文件存放的目录 /var//cgi-bin: 表示CGI程序存放执行的地址 因此,将index.html、adc.html和adc.xml三个文件拷贝到开发板的/var/www目录下;把刚才编译得到的run.cgi、stop.cgi拷贝到/var//cgi-bin目录下;还要在/var/log/boa目录下建一个error_log文件,命令: toucherror_log。 5、实现远程采集: 把刚才编译得到的boa可执行文件拷贝至/var/log/boa目录下,然后启动boa服务器,命令如下: ./boa。 启动boa服务器后,在Ubuntu10.04下启动Firefox(火狐浏览器),输入开发板的IP地址,即: 192.168.4.194,打开的页面如下: 点击上面的“查看”按钮后,出现如下页面: 这时候转动开发板上的AD输入的三个旋钮,查看三个通道的采样值是否变化。 点击“停止采集”按钮后,会跳到第一个页面,再次点击按钮“查看”可以重新开始,再次出现如下页面: AD远程采集实验基本实现预期结果。 五、课程设计的心得体会: 在课程的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但是没有能够进行找到合适的方法进行进一步的实验,设计中对于程序的编写以与目录结构的认知上存在偏差,其主要原因还是基础功不扎实,把握系统的能力不足,这为我们以后的学习和工作提了一个醒。 在问题的解决过程中,也提高了我的动手动脑能力,学到了许多在书本上学不到的知识。 在具体的设计当中解决了诸如boa服务器的搭建和C程序的修改等。 此次课程设计给我最深的体会就是: 理论+细心+实践才能在实际生产中体现所学知识的价值。 在嵌入式行业发展如此快速完善的今天,理论与细心与实际的完美结合才能让自己在专业领域占有一席之地。 在课程设计中,我初步了解了嵌入式处理器S3C2410与相关浏览器的工作原理、也加深了对嵌入式处理器S3C2410的认识;也见识了关于嵌入式处理器的一些工作方式等。 一周的课程设计结束了,然而终究还是学会了很多东西。 在整个课程设计期间,我体会到了自己的进步,并且从中也体会到了它的快乐。 课程设计也让我明白了: 第一,通过实践真正觉得自己可以做些什么了有点存在的小成就感;第二,通过课程设计,加强了我们的动手实践能力和设计创新精神。 作为信息时代的大学生基本的动手能力是一切工作和创造的基础和必要条件。 第三,课程设计的这些日子里,大家的团队精神得到了很大的加强,闭门就会造车那是不可能的事情。 在为期一周的课程设计当中感触最深的便是实践联系理论的重要性,当遇到实际问题时,只要认真思考,运用所学的知识,一步一步的去探索,是完全可以解决遇到的一般问题的。 本次课程设计的目的主要是: 使我们嵌入式操作系统与LINUX相关操作有一定的感性和理性认识,培养和锻炼我们的实际动手能力。 使我们的理论知识与实践充分地结合,作到不仅具有专业知识,而且还具有较强的实践动手能力,能分析问题和解决问题的应用型技术人才,为以后的顺利就业作好准备。 此次课程设计学到了很多课学不到的东西,比如独立思考解决问题,出现差错的随机应变,和与人合作共同提高,都受益非浅,今后的制作应该更轻松,自己也都能扛的起并高质量的完成项目。 在此,感老师与其他老师的细心指导,也同样其他各组同学的无私帮助! 六、参考资料: 1、wenku.baidu./view/14314b3b376baf1ffd4fad04.html 2、wenku.baidu./view/5e78b1ed9f464.html 3、wenku.baidu./view/5b73a47202768e9951e73885.html 4、韦东山著.嵌入式LINUX应用开发完全手册: 人民邮电出版
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 WEB 服务器 实现 课程设计 报告