




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北汽车工业学院 Hubei Automotive Industrise Institute课程设计说明书 课程名称 设计题目 班号 专业 学号 学生姓名 指导教师(签字) 起至日期 年 月 日 年 月 日 目 录一 目的与要求 11.1课程设计的目的 11.2课程设计的要求 1二课程设计的内容 12.1课程设计的内容 12.2原理和说明 22.2.1 boa简介32.2.2 cgi简介42.3 课程设计的功能分析 4三 总体设计方案 53.1系统运行环境 53.2选用工具 53.3工作原理图 53.4具体设计过程 5四 调试与测试 10五 课设总结与体会 11六 参考文献 12一 目的与要求1.1课程设计的目的开设本课程设计的目的是,通过本课程设计,提高学生的分析问题、解决问题的能力,巩固嵌入式系统的基本理论知识,进一步了解和掌握课程中所讲授的概念,方法。同时通过本课程设计,全面综合应用所学过的基础知识,建立一个完整的嵌入式系统的开发过程的概念,并掌握其中的主要原理和方法。(1)提高分析问题、解决问题的能力,进一步巩固嵌入式系统中的基本原理与方法。(2)熟悉Linux数据库编程,可以进行嵌入式web服务器的建立与程序设计。1.2课程设计的要求本次课设的要求如下:1、理解Linux下的网络编程的实际意义。2、独立进行方案的制定,系统结构设计要合理。3、在程序开发时,则必须清楚主要实现函数的目的和作用,需要在程序书写时说明做适当的注释。要理解每个函数的具体意义和适用范围,在写课设报告时,必须要将主要函数的功能和参数做详细的说明。4、通过网络来检测该系统的稳定性和正确性。二 课程设计的内容2.1 整个系统要完成的基本内容大致如下:1、 熟悉开发环境的网络特性,熟悉Linux下的网络编程;2、 通过CGI实现一个嵌入式web服务器;3、 阅读WEB服务器HTTP协议的基本内容,学会几个重要的网络函数的使用方法;4、 在PC计算机上使用浏览器测试嵌入式WEB服务器的功能;5、服务器可支持动态配置,可解释静态网页和动态网页;在实现整个系统的时候,必须有1、2、3、4及5中的这些基本内容,可以根据兴趣所在增加其他的内容。2.2课程设计的原理和说明随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。首先需要在嵌入式设备上成功移植支持脚本或CGI功能的Web服务器,然后才能进行应用程序的开发。由于嵌入式设备资源一般都比较有限,并且也不需要能同时处理很多用户的请求,因此不会使用Linux下最常用的如Apache 等服务器,而需要使用一些专门为嵌入式设备设计的Web服务器,这些Web服务器在存贮空间和运行时所占有的内存空间上都会非常适合于嵌入式应用场合。嵌入式WEB服务器常见的有lighttpd、shttpd、thttpd、boa、mathopd、minihttpd、appweb和goahead。典型的嵌入式Web服务器有Boa ()和thttpd (/software/thttpd/)等,它们和Apache等高性能的Web服务器主要的区别在于它们一般是单进程服务器,只有在完成一个用户请求后才能响应另一个用户的请求,而无法并发响应,但这在嵌入式设备的应用场合里已经足够了。嵌入式web服务器移植配置好后,接着进行GCI程序设计。CGI(Common Gateway Interface)是外部应用扩展应用程序与WWW服务器交互的一个标准接口。按照CGI标准编写的外部扩展应用程序可以处理客户端浏览器输入的数据,从而完成客户端与服务器的交互操作。而CGI规范就定义了Web服务器如何向扩展应用程序发送消息,在收到扩展应用程序的信息后又如何进行处理等内容。通过CGI可以提供许多静态的HTML网页无法实现的功能,比如搜索引擎、基于Web的数据库访问等等。HTTP协议是WWW的基础,它基于客户/服务器模型,一个服务器可以为分布在网络中处的客户提供服务;它是建立在TCP/IP协议之上的“无连接”协议,每次连接只处理一个请求。在服务器上,运行产着一个守护进程对端口进行监听,等待来自客户的请求。当一个请求到来时,将创建一个子进程为用户的连接服务。根据请求的不同,服务器返回HTML文件或者通过CGI调用外部应用程序,返回处理结果。服务器通过CGI与外部程序和脚本之间进行交互,根据客户端在进行请求时所采取的方法,服务器会收集客户所提供的信息,并将该部分信息发送给指定的CGI扩展程序。CGI扩展程序进行信息处理并将结果返回服务器,然后服务器对信息进行分析,并将结果发送回客户端。外部CGI程序与WWW服务器进行通信、传递有关参数和处理结果是通过环境变量、命令行参数和标准输入来进行的。服务器提供了客户端(浏览器)与CGI扩展程序之间的信息交换的通道。CGI的标准输入是服务器的标准输出,而CGI的标准输出是服务器的标准输入。客户的请求通过服务器的标准输出传送给CGI的标准输入,CGI对信息进行处理后,将结果发送到它的标准输入,然后由服务器将处理结果发送给客户端。2.2.1 boa简介Boa 的功能实现:嵌入式 Web 服务器 Boa 和普通 Web 服务器一样, 能够完成接收客户端请求、分析请求、响应请求、向客 户端返回请求结果等任务。 它的工作过程主要包括:(1) 完成 Web 服务器的初始化工作, 如创建环境变量、创建 TCP 套接字、绑定端口、开始侦听、进入循环结构, 以及等待接收客户浏览器的连接请求;(2) 当有客户端连接请求时,Web 服务器负责接收客户端请求, 并保存相关请求信息;(3) 在接收到客户端的连接请求之后,分析客户端请求, 解析出请求的方法、URL 目标、可选的查询信息及表单信息, 同时根据请求做出相应的处理;(4)Web 服务器完成相应处理后, 向客户端浏览器发送响应信息, 关闭与客户机的TCP 连接。嵌入式 Web 服务器 Boa 根据请求方法的不同,做出不同的响应。如果请求方法为HEAD, 则直接向浏览器返回响应首部;如果请求方法为 GET, 则在返回响应首部的同时, 将客户端请求的 URL 目标文件从服务器上读出, 并且发送给客户端浏览器;如果请求方法为 POST, 则将客户发送过来的表单信息传送给相应的 CGI 程序, 作为 CGI 的参数来执行 CGI 程序, 并将执行结果发送给客户端浏览器。 Boa 的功能实现也是通过建立连接、绑定端口、进行侦听、请求处理等来实现的。2.2.2 cgi简介概念:CGI(Common Gateway Interface)通用网关接口是HTTP服务器与你的或其它机器上的程序进行交互的一种工具,其程序须运行在网络服务器上。功能:绝大多数的CGI程序被用来解释处理来自表单的输入信息,并在服务器产生相应的处理,或将相应的信息反馈给浏览器。CGI程序使网页具有交互功能,其工作原理图如下2.3课程设计所设计的的功能 经过近两个星期的课程设计,通过查找有关资料,进行课设的基本要求和需求分析另外还有程序编写调试,所实现的基本功能如下:1、 可以通过PC机使用浏览器测试嵌入式WEB服务器的功能;2、服务器可支持动态配置,可解释静态网页和动态网页;三 课程设计的总体方案3.1系统运行环境Linux vi 编辑环境 UP-TECHPXA270-S嵌入式实验平台3.2选用工具PC机windows平台虚拟机REDHAT LINUX 9.0boaARM-LINUX开发环境3.3 工作原理图 试验的工作原理图如下:运行结果POST用STDIN输入数据GET用QUERY-STRING输入数据用STDOUT输出数据Web浏览器Web服务器CGI脚本启动CGIC语言脚本启动CGI3.4 试验的具体过程首先在redhat9.0 linux上进行web服务器的开发,当编译运行成功后将其全部的配置文件和程序移到开发板上并对配置文件做相应的修改进行交叉编译,具体实现过程如下:第一步 在RedHat9.0 linux上配置和使用BOA服务器1、解压Boa源码解压:# tar zxvf boa-0.94.13.tar.gz2、编译 # ./configure # make 3、配置# mkdir /etc/boa# cp / boa-0.94.13/boa.conf /etc/boa/修改boa.conf:(1)Group的修改:修改 Group nogroup 为Group 0 由于在/etc/group文件中没有nogroup组,所以设成0。另外在/etc/passwd中有nobody用户,所以User nobody不用修改。(2)scriptAlias的修改:修改 scriptAlias /cgi-bin/usr/lib/cgi-bin/为 scriptAlias /cgi-bin/ /var/www/cgi-bin/(3)ServerName的设置:修改 #ServerName .here/为 ServerName .here/注意:该项默认为未打开,执行Boa会异常退出,提示“gethostbyname:No such file or directory”,所以必须打开。其它默认设置即可。# mkdir /var/log (注:redhat上已经存在,此步骤省略)# mkdir /var/log/boa(创建日志文件目录)# mkdir /var/www (创建HTML文档的主目录)(注:redhat上已经存在,此步骤省略)可以将主机 /usr/share/doc/HTML/目录下的index.html文件和img目录复制到/var/www目录下;将主机/etc目录下的mime.types文件放置到制作的根文件夹的/etc下;(注:redhat上已经存在,此步骤省略)最后将boa-0.94.13下的boa可执行文件拷贝到/usr/local/bin下面。(4)执行运行boa命令#boa在浏览器中输入本机的ip地址。这时浏览器中就会出现/usr/share/doc/HTML/index.html的内容了。第二步,当在redhat9.0上配置好web服务器boa后就可以编写相应的代码进行服务器建立的程序设计了。(1) 主页html源代码如下: 输入输入两个数 * (2)本次利用c语言代码,编译生成cgi文件c语言源代码如下:#include #include int main (void) char *date; long m,n; printf(Content-Type:text/html;charset=gb2312nn); printf(Hello World!); /*printf(乘法结果); printf(乘法结果); date = getenv(QUERY_STRING); if (date = NULL) printf(未输入参数或参数输入错误或数据传输出错!); else if(sscanf(date,%c%c,&m,&n) != 2) printf(输入参数错误或参数输入不全(输入参数必需为数字类型); else printf(The %ld 乘以 %ld 的值为: %ld, m,n,m * n); */ return 0;第三步,将目标文件夹挂载到开发板上。设置开发板的地址Ifconfig eth0 挂载Mnt t nfs o nolock 05:/mnt /mnt/nfs(这是已经把做好的全部的相关文件放在redhat9.0 的/mnt中) 通过ping redhat9.0挂载目录的地址(ping 34)若ping通则挂载成功。第四步,进行交叉编译以上通过编译生成的文件都是在redhat9.0环境下运行的,若要使之能够在开发板上运行则必须通过arm-linux-gcc编译才可以,同时web服务器boa的配置文件也必须做出相应的改变,具体操作过程如下:(1) 将boa-0.94-13.tar.gz解压,并将解压的文件夹移到/mnt目录下(2) 进入src目录运行 configure 命令$ ./configure生成makefile文件,再将CC=gcc改成CC=arm-linux-gccCPP=gcc-E改成CPP=arm-linux-gcc-E(3) 在mnt下建立文件夹boa 将boa.conf放在该文件夹下,对boa.conf做出修改的说明如下:Mnt/nfs/var/log/boa/error_log:表示将错误信息记录到指定文件中 Mnt/nfs/dev/null:表示远程请求信息记录到指定文件中Mnt/nfs/var/www:表示html文件存放的目录Mnt/nfs/var/www/cgi-bin:表示CGI程序存放执行的地址(4)这是就可以进行交叉编译了 Arm-linux-gcc hello.c o hello.cgi(4) 这时若已经将各种相关的网络配置好后,可以在试验中配置好的局域网中任意一台主机中输入地址访问试验中设置的主页,输入数据后就可返回一个网页。四 测试与调试在ie浏览器上输入地址http:/显示一下页面输入1和2将会显示一下页面五 课设总结与体会 通过本次课设我学到了很多嵌入式web服务器的相关知识。在看到这些课设题目的时候我几乎毫无头绪,不过通过几天时间在网上查阅资料,是我对嵌入式web服务器的设计有了一个大体的思路,对其中涉及到的知识也进行了学习和模仿。在之后的课程的设计制作过程中,仍然遇到了各种各样的问题,如试验环境的配置,交叉
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工程概述试题及答案
- 2025年甘肃省嘉峪关市事业单位工勤技能考试考试题库及参考答案
- 2025年纪委招聘笔试高频考点复习资料
- 2025年应急通信笔试高频考点速记
- 2025年安全员考试通关宝典与模拟题
- 深圳警察安全知识培训班课件
- 2025年彩票系统运维招聘笔试题集
- 2025年度生态餐饮环保项目投资及设备租赁合同
- 2025年跨境电商集装箱材料运输与清关服务合同
- 2025智慧养老设备研发与市场推广服务合同
- 安宁疗护国内外发展现状及改进策略
- (高清版)DG∕TJ 08-2310-2019 外墙外保温系统修复技术标准
- 平安银行 校招笔试题目及答案
- 白酒手续转让协议书
- 病区安全质量管理
- 广东省2025届高三年级下册模拟测试(一)英语试卷(含答案)
- GA/T 2161-2024法庭科学非法集资类案件资金数据分析规程
- 贵州省建筑工程施工资料管理导则
- 无损探伤工技师技能考试题库(附答案)
- 2025年军队文职人员(司机岗)历年考试真题库及答案(重点300题)
- 部编教科书语文一年级上册教师教学用书
评论
0/150
提交评论