仰恩大学工程技术学院课题设计报告-1-《嵌入式系统应用》课程设计报告课题名称:基于嵌入式的web服务器的远程控制程序设计专业:电子信息工程班级:121801姓名:沈荣彬郑彦勋颜丁炜赖佛金郭晓婷蒋钧任学号:121820120026121820120019121820120016121820120033121820120003121820120007指导老师:刘莎日期:2015.12.30仰恩大学电子系仰恩大学工程技术学院课题设计报告-1-基于嵌入式的web服务器的远程控制程序设计一、设计目的嵌入式系统课程设计是本专业在学习完C语言、LINUX操作系统、嵌入式系统原理与接口设计、嵌入式操作系统原理之后的专业课程设计,属于专业课内容。通过课程设计建立嵌入式系统主体环节,嵌入式系统的最小结构和系统应用设计基本技能,培养分析和解决一些简单的实际问题的能力,为今后毕业设计奠定基础。随着嵌入式技术的发展和高速宽带网络的普及,利用网络实现远程监控已为人们广泛接受,嵌入式网络监控技术正是在此条件下逐步发展成熟起来的。用户使用Web浏览器,通过以太网远程访问内置Web服务器的监控摄像机,不但可以实现对现场的远程视频监控,而且可以向监控现场发送指令。在整个系统的实现过程中,嵌入式Web服务器起着十分重要的作用。二、设计内容及要求1.web服务程序,并修改相对应程序,通过web服务程序来实现打开网页的功能1、编写web服务程序index.html,利用下载功能将文件下载到目标机的/usr/myfiles的文件夹下2、修改led驱动程序,并重新编译下载驱动程序,注册。3、编写用户程序2.将编译好的程序下载,并运行。在浏览器中输入192.168.0.50/index.html.通过点击浏览器来打开百度网页。三、实现过程3.1、课题总体设计硬件平台选择:基于嵌入式Web服务器的远程控制系统主要由嵌入式Web服务器以及被控制的现场设备组成。服务器通过交换机或调制解调器与Internet互联网连接,用户端只需在已联网的计算机上通过网页浏览器访问该远程服务器的IP地址,即可使用该服务器并实现对设备的远程控制。软件总体设计(驱仰恩大学工程技术学院课题设计报告-2-动程序模块,web服务器程序模块,用户程序模块)服务器与客户端动态交互的实现在动态网页交互设计中,主要有CGI(CommonGatewayInterface),PHP(PersonalHomePage),ASP(ActiveServerPage)和JSP(JavaServerPage)4种技术。在Linux下实现动态网页通常选择CGI技术。CGI称为公共网关接口,是一段运行于服务器上的程序,可以将客户端浏览器递交的信息传递给服务器,服务器则会启动对应CGI程序去执行,最终可将结果再反馈给客户端。3.2、课题详细设计3.2.1、加载程序1.先将u盘中的程序加载进来,使用fdisk–l进行查看硬盘分区情况。下图是实验操作的截图:3.2.2驱动程序设计利用cp–rweb/rootcp–rClient-Server/root复制文件程序。利用mount–tvfat/dev/hdal/mnt/win/c进行文件挂载。仰恩大学工程技术学院课题设计报告-3-四、课题测试与分析(一)嵌入式Linux开发环境建立1、连接实验开发板,对虚拟机进行设置2、工具链的配置3、进入minicom软件,配置串口通信参数有关串口通信选项的含义:Filenamesandpaths:选择需要传输的文件和路径Filetransferprotocols:选择传输文件的通信协议Serialportsetup:设置串口通信参数Savesetupasdfl:将设置好的各项参数保存为dfl仰恩大学工程技术学院课题设计报告-4-Savesetupas:将设置好的各项参数保存为自定义的文件名Exit:退出返回到minicom设置好后的终端ExitfromMinicom:从minicom命令中退出返回Linux终端将光标移到Serialportsetup,按回车键会弹出串口通信参数的配置菜单。实验开发板的启动下面是实验结果的截图:仰恩大学工程技术学院课题设计报告-5-(四)实现I/O多路复用方式的Web服务器1)用arm-linux-gcc命令编译源程序,得到可执行程序web_server_select。2)在目标机中运行web_server_select。仰恩大学工程技术学院课题设计报告-6-3)在宿主机的浏览器中输入,查看执行结果4)在宿主机的浏览器中输入,查看执行结果。在web服务器的远程控制下,进入文件系统后,执行命令:5)insmodled_dev.ko6)此命令是将led_dev.ko模块文件进行加载7)模块加载完成之后,就可以使用我们编写的LED驱动测试程序来进行LED驱动程序的测试了,在我的程序中,可以使用如下命令来进行LED灯的控制:8)./testmn仰恩大学工程技术学院课题设计报告-7-9)此命令中,./test表示执行可执行文件test,m、n分别表示两个参数,其中m∈{1,2,3,4},n∈{ON,OFF}五、课题总结1陈述遇到的问题及解决办法对以前所学过的知识理解得不够深刻,掌握得不够牢固遇到问题不知道该如何解决。后面的参考书上的例子所以每次动手前一定要多查询资料,做到谋而后动这可以减少实践过程中的无用功。而且做事一定要认真,否则一点小小的错误都会让整个程序错误。(1)挂载挂不上:可能是没连接开发板,也可能是本地网络连接禁用错误的原因。(2)压缩包的解压缩:解压缩时我们不能像平常一样直接右击解压缩到当前文件,而是应该将压缩包拷到自己文件下,用[root@localhostwebserver]#tar–zxvfboa-0.94.13.tar.gz。(3)Boa执行后打不开网页或者打开网页错误:可能是网页出现了错误,也许是cgi自身出了问题,或是配置文件的路径发生了错误,这些问题可以通过检查路径和文件解决。(4)无法控制Led灯:最可能的原因是未添加Led灯的驱动,异是Led灯的驱动程序出现错误。(5)开发板ping出错:1.自动桥接2.换个IP地址再激活。(6)源文件的拷贝:实验过程中,一些源文件在虚拟机上修改以后,应该重新将其加载到开发板上,并将原来的文件覆盖掉。2有何收获本次实训,收获真的很大,一次实践所学,上课再多也学不来。通过自己实际动手,感受到了嵌入式软件开发的魅力,同样也感受到嵌入式开发并不是想象中那么简单,光是驱动程序开发,就需要做大量工作。嵌入式驱动程序开发是一项复杂的工程,是一项严格的工程,从环境搭建,到文件系统制作,到最后的驱动程序开发,都有一套严格的流程,但也正因如此,使得我们通过此次实训,能够从中学到许多东西,既学习到了嵌入式软件开发的技巧和知识,也锻炼了自己的实践动手能力。在自己实践动手操作的过程中,虽然遇到了大量的问题,但通过与组员相互交流,以及翻阅相关书籍,上网查找相关资料,许多问题都能解决,这样的过程不仅锻炼了我们的自学能力和团队合作能力,也是对我们课堂知识的一个补充,从中又能学到大量嵌入式软件开发技巧。仰恩大学工程技术学院课题设计报告-8-六、教师评阅