您好,欢迎访问三七文档
Goahead网络远程设备控制程序设计小组成员:周凯亮查伟王俊杰赵震玺张慧成一.课程设计目的和意义1.1课程设计目的课程设计的主要目的是通过实际的嵌入式应用系统开发实例掌握嵌入式系统设计和开发的技能和专门知识,积累实践和工程经验。本课题设计尝试移植嵌入式服务器上广泛使用的网络服务器中称为“GoAhead”的网络服务器。并且,利用CGI程序,尝试在网络上控制HBE-EMPOSIII-SV210的LED,7-Segment,TextLCD。1.2课程设计要求本课题所设计的系统要求实现以下功能。1.将“GoAhead”网络服务器移植到实验箱目标板Linux系统上;2.创建作为网络服务器的索引文件使用的index.html文件;3.完成编写利用Web的LED,7-Segment,TextLCD的控制程序。二.课程设计的需求与方法2.2需求分析2.2.1功能需求分析远程控制是当前信息技术领域的热点,使用远程控制技术,我们可以克服因地域差异而造成的操作不便,让网络的效率得到更大的发挥。随着技术的发展与网络的普及,目前远程控制技术的应用领域已经相当广泛。我们不仅可以通过远程控制技术管理远端电脑,解决远端电脑的故障,与其他同事通过网络实现远程协作,一起编辑一份文档或者与其他团队成员交流信息,还可以在家里或旅途中使用公司内部网络的数据与办公设备,实现远程办公。2.2.2性能需求分析(1)准确性与及时性(2)灵活性(3)响应速度2.2.3课题任务目标(1)将“GoAhead”网络服务器移植到实验箱目标板Linux系统上;(2)创建作为网络服务器的索引文件使用的index.html文件;(3)完成编写利用Web的LED,7-Segment,TextLCD的控制程序。2.2.4输入输出的要求(1)鼠标点击WEB输入,通过键盘输入两个16进制的数,通过CGI程序将其转换成8位二进制数来控制开发板中的LED0~8的暗灭。(1为亮0为灭)(2)鼠标点击WEB输入,通过键盘输入6位16进制的数,在开发板的七段码中显示出来。(3)鼠标点击WEB输入,通过键盘在网页的Line1和Line2中输入一串字母或数字,在开发板的TextLCD中将输入的这些字符对应的显示出来。2.2.5系统运行环境硬件环境:pc机、HBE-EMPOSIII-SV210hardware、串口线、网线等软件环境:windows、ubuntu等一些应用软件宿主机开发环境:交叉编译环境、调试环境2.3软硬件平台设计2.3.1硬件平台设计以太网接口S5PV210(ARMCortexTM-A8Core)SDRAMNANDFLASHNORFLASHSD卡接口系统电源嵌入式网络控制系统通过串行接口直接传送到S5PV210微处理器上的Web服务器,之后通过浏览器,用户可以方便的监测控制。硬件平台设计框图如图所示:2.3.2软件平台设计嵌入式网络控制系统通过RS-232串行接口直接传送到SamsungS5PV210微处理器上的WEB服务器,之后通过浏览器,用户可以方便的监测控制。因此系统软件部分主要由数据采集、数据传输、服务器数据处理和CGI程序访问等几大部分。系统工作流程如下图所示:PCIECGI应用程序驱动程序HTML网页数据采集程序2.3.3Goahead服务器的特点以及使用方式Goahead服务器是一款主要面向嵌入式系统的Web服务器。GoAheadWebserver是跨平台的服务器软件它的特点是:1、很小的内存消耗2、支持认证功能DigestAccessAuthentication(DAA)3、支持安全的通信,例如SSL(安全的套接字层)4、支持动态Web页面,如ASP页面5、可以使用传统的C语言编程定制Web页面里的HTML标签6、支持CGI(公共网关编程接口)7、嵌入式的JavaScript脚本翻译器8、独特的URL分析器三.课程设计的步骤与实现3.1GoAhead网络服务器移植1.下载Goahead源码2.GoAhead源码复制及解压缩3.为了GoAhead编译的源码修改对“Makefile”进行修改main.c和misc.c文件4.GoAhead编译生成了“webs”网络服务器执行文件和“libwebs.a”库5.创建作为网络服务器的索引文件使用的index.html文件6.创建在目标板上连接网络服务器时出现的网页目录(/web),创建包含cgi的目录(/web/cgi-bin)。7.向目标板下载GoAhead执行文件及main.html8.在目标板上运行GoAhead9.通过主机PC的网页浏览器连接网络服务器3.2通过HTML中的CGI接口完成对开发板的链接开始编译HTML文件(如:first.html)编译.c文件(如:first.c)通过gcc.将c文件生成CGI文件将HTML.cgi文件用TFTP指令下载到开发板并运行结束CGI(公用网关接口)规定了Web服务器调用其他可执行程序(CGI程序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互,也就是CGI程序接受Web浏览器发送给Web服务器的信息,进行处理,将响应结果再回送给Web服务器及Web浏览器。CGI程序一般完成Web网页中表单(Form)数据的处理、数据库查询和实现与传统应用系统的集成等工作。CGI接口标准包括:1标准输入可通过标准输入(stdin)从Web服务器得到输入信息2环境变量Web服务器和CGI接口设置了自己的一些环境变量,用来向CGI程序传递一些重要的参数3标准输出通过标准输出(stdout)将输出信息传送给Web服务器(html形式),就在命令行状态调试CGI程序,并且得到它们的输出。虚拟机及超级终端截图:通过HTML中的CGI接口完成对开发板的链接实验截图:3.3嵌入式Web服务器的实现3.3.1利用Web的LED控制程序•创建8bitled.html;8bitled.c文件LED控制程序创建•8bitled.html和8bitled.cgi复制到/tftpboot目录中LED控制程序编译•通过tftp下载8bitled.html和8bitled.cgi,并复制到/web和/web/cgi-bin向目标板下载LED控制程序接下来,通过主机PC的网页浏览器连接网络服务器并向地址栏中输入“”并连接,则8bitled.html网页运行。向地址栏中输入“。在这里,输入“1a”后,单击“input”按钮。LED控制页面运行确认及测试实验截图:3.3.27-Segment设备驱动程序•vi7segment.html•vi7segment.c7Segment控制程序创建•将7segment.html和7segment.cgi文件复制到/tftpboot目录中。7Segment控制程序编译•通过tftp下载7segment.html和7segment.cgi文件,向/web和/web/cgi-bin目录中复制文件。向目标板下载7Segment控制程序接下来,通过主机PC的网页浏览器连接网络服务器。如果运行网页浏览器并向地址栏中输入“”并连接,则7segment.html网页运行。向地址栏中输入“”。向文本框中输入六位十进制数并单击input按钮。在这里,输入”123456”后单击“input”按钮。7segment控制页面运行确认及测试实验截图:3.3.3利用Web的textlcd控制程序•创建textlcd.html•创建textlcd.cTextlcd控制程序创建•将textlcd.html和textlcd.cgi文件复制到/tftpboot目录中。编译textlcd控制程序•下载textlcd.html和textlcd.cgi文件,向/web和/web/cgi-bin目录中复制文件。向目标板下载textlcd控制程序接下来,通过主机PC的网页浏览器连接网络服务器。如果运行网页浏览器并向地址栏中输入“”并连接,则textlcd.html网页运行。向地址输入栏输入“”。输入文本框的Line1和Line2文字并单击“input”按钮。如果画面上出现“LCDDone”消息窗,则可以清楚/web/cgi-bin中的textlcd.cgi程序顺利运行。textlcd控制页面运行确认实验截图:textlcd控制页面运行确认实验截图:赵震玺周凯亮*查伟王俊杰四总结4.1实验认知与发现的问题本次课程设计是嵌入式开发与应用,虽然只有短短的两个星期,但在这两个星期里我们学到了很多。首先,我们对计嵌入式开发有了进一步的掌握。基本掌握了Goahead网络远程设备控制并在网络上控制HBE-EMPOSIII-SV210的LED,7-Segment,TextLCD。但在完成这些题目的同时,我们也发现了自己的很多问题:第一,比如很多的专业术语都没有听说过,只好在同学的帮助和网络的帮助下,勉勉强强完成了任务,我们也知道了自己的很多不足,在往后的时间中还要继续研究。第二,在我们使用tftp传送文件的时候忘记修改虚拟机IP地址导致没有传送文件成功。第三,在我们将文件传送成功的时候,网页文件已经能在goahead中显示出来,但是输入数据的时候,开发板并没有显示出来,后面才发现是传送文件时,忘记用chomd命令给CGI文件加上权限,我们通过分析及时的解决了这个问题。第四,我们在完成实验后的第二天再次开启虚拟机并不能将这些网页文件打开,原来是每次启动虚拟机它的IP地址都是原地址,要将它改成192.168.0.100并通过超级终端运行网页文件。第五,在运行网页文件的时候,首先要查看进程,要将进程中bin目录下的webs进程杀除再运行网页文件才能将它打开。最后,通过本次实验我们知道了团队力量的重要性,有的题目单靠单人的力量是很难完成的,但是经过大家的合作,相比一个人来说完成的容易了点。4.2实验效果分析本次实验虽然能将开发板中的LED,7-Segment,TextLCD成功显示出来。但是本次实验的效果仍有几点不足。第一:通过goahead网页服务器编写LED,7-Segment,TextLCD的网页较为简单。第二:控制开发板中7-Segment的显示时间没有进行精确的控制。4.3课程设计心得体会本次课程设计也获得一个经验:在写一个程序的时候,一定要事先把程序原理方框图化出来。以前总觉得这样做没必要,很浪费时间。但是,这次课程设计完全改变了我以前的那种错误的认识。这次课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的,因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。经过本次试验我们这次做的实验还算是比较成功的,因为我们同时也在不知不觉中提高了动手能力和独立分析思考问题、解决问题的能力。这两个星期的嵌入式应用的课程设计,使我们更加系统的认识和了解Goahead网络远程设备控制的工作原理,更深层次的认识了嵌入式开发,相信在今后的学习以及相关工作上会有很大帮助。致谢感谢孙老师和范老师在课设中给予的指导和鼓励。感谢学校提供机会,能够让我们在实践中培养动手能力,将理论与实际结合再一起。五.代码附录参考资料5.17segment实验代码附录/***********************************************************************7-SegmentCGIProgram*************************
本文标题:Oracle University Mini Lesson_501_508_cn_final
链接地址:https://www.777doc.com/doc-9139 .html