江苏科技大学 嵌入式课程设计基于WEB的视频远程监控设计.docx
《江苏科技大学 嵌入式课程设计基于WEB的视频远程监控设计.docx》由会员分享,可在线阅读,更多相关《江苏科技大学 嵌入式课程设计基于WEB的视频远程监控设计.docx(14页珍藏版)》请在冰豆网上搜索。
江苏科技大学嵌入式课程设计基于WEB的视频远程监控设计
嵌入式课程设计实验报告书
设计题目:
远程网络视频监控系统设计
专业通信工程
成员梅发同0942826124
黄小青0942826120
刘阳0942826122
远程网络视频监控
1引言
嵌入式系统课程设计是本专业在学习完C语言、LINUX操作系统、嵌入式系统原理与接口设计、嵌入式操作系统原理之后的专业课程设计,属于专业课内容。
通过课程设计建立嵌入式系统主体环节,嵌入式系统的最小结构和系统应用设计基本技能,培养分析和解决一些简单的实际问题的能力,为今后毕业设计奠定基础。
随着嵌入式技术的发展和高速宽带网络的普及,利用网络实现远程监控已为人们广泛接受,嵌入式网络监控技术正是在此条件下逐步发展成熟起来的。
用户使用Web浏览器,通过以太网远程访问内置Web服务器的监控摄像机,不但可以实现对现场的远程视频监控,而且可以向监控现场发送指令。
在整个系统的实现过程中,嵌入式Web服务器起着十分重要的作用。
本课题就是基于该项技术,最终编程实现通过网络控制下位机嵌入式控制器的电机启动和停止。
1.1研究目的和意义
1、通过嵌入式课程设计,熟练掌握C语言的编程方法。
基于WEB的远程监控的实现,CGI的编写和使用,将理论联系到实践中去,提高我们的动脑和动手的能力。
2、通过基于WEB的嵌入式远程监控系统的设计,掌握S3C2410实验箱,直流电机的工作原理,BOA服务器的使用,CGI的使用和简单程序的编写及调试方法,最终提高我们的动手实践能力。
3、本课题的研究目的是用BOA服务器、CGI、IE浏览器设计一个通过IE浏览器监控电机的系统,能够通过两个简单的按键对电机进行启动和停止的控制,并能够在IE浏览器上看到电机的当前状态。
4、由于基于WEB的嵌入式远程监控系统将成为今后远程监控技术发展的主流方向,所以需要设计出简单实用,让人们更满意的产品。
1.2本设计任务和主要内容
1.基本要求
本课题主要设计和研究基于WEB的嵌入式远程监控系统,要求在远程WEB上能看到本地监控摄像头所采集的实时图像。
2.应解决的问题
1)设计系统网络方案
2)分析网络程序结构和应用程序的使用方法
3)编程实现嵌入式系统服务器功能
4)编程实现嵌入式系统联网功能
2实验设备及工具:
硬件:
UP-NETARM2410-S嵌入式实验仪、PC机pentumn500以上、硬盘40G以上、内存大于256M,130万高清摄像头.。
软件:
PC机操作系统REDHATLINUX9.0、MINICOM、AMRLINUX开发环境。
UP-NETARM2410-S嵌入式实验仪
嵌入式Linux开发平台简介
Linux价格低廉、功能强大,可以运行在X86,Alpha,Sparc,MIPS,PPC,MOTOROLA,NEC,ARM等硬件平台上,而且开放源代码,可以定制。
我们所介绍的硬件平台是基于ARM体系结构,由北京博创兴业科技有限公司开发的UP-NetARM3000、UP-NetARM2410系列以及UP-TECHPXA270系列实验仪器。
UP-NetARM3000的CPU为ARM7TDMI内核的三星S3C44B0X01芯片,由于没有MMU(内存管理单元)只能运行uClinux,UP-NetARM2410系列的CPU为ARM920T内核的三星S3c2410芯片,由于有MMU可以运行标准的ARM-LINUX内核。
UP-TECHPXA270系列实验仪器为IntelPXAARM10系列CPU。
通过这些硬件平台,我们可以学习嵌入式LINUX中的针对有MMU和无MMU的不同开发过程。
UP-NetARM3000和UP-TECHPXA270系列产品及其相关资料可以访问博创公司的网站www.up-获得。
本书以UP-NetARM2410系列中的经典版UP-TECHS2410/P270DVP为例,详细介绍嵌入式Linux的开发过程
3实验内容:
基于UP-NETARM2410-S嵌入式实验仪平台,在ARM-Linux系统下,实现嵌入式WEB服务器BOA和视频服务器SPCASERV搭建视频监控系统。
4实验步骤:
4.1、移植BOA服务器
打开虚拟机,启动linux。
新建终端,输入minicom启动实验箱
Minicom启动图
设置ip并且在minicom下ping通主机
实验用主机IP:
192.168.0.100
开发板IP:
192.168.0.122
手动创建本实验目录hxq(创建在Linux系统的/mnt/yaffs/目录下)
[/mnt/yaffs/]#mkdirhxq
我们的光盘中提供了boa的源代码,叫做boa-0.94.13.tar.gz。
首先解压该文件至实验目录下:
#tarxzvfboa-0.94.13.tar.gz
然后进入源代码目录:
#cdboa-0.94.13/src
修改文件compat.h的第120行:
#vicompat.h
修改后,第120行的内容如下:
#defineTIMEZONE_OFFSET(foo)foo->tm_gmtoff
即只是去掉了该行的两个’##’字符。
然后修改boa.c:
#viboa.c
找到该文件的225~227行,注释掉这几行,不然运行的时候会出错。
源文件的修改就完成了,现在开始编译。
首先,运行configure程序对源文件进行配置:
#./configure
配置完成后,修改Makefile:
#viMakefile
修改第31行和32行如下:
CC=arm-linux-gcc
CPP=arm-linux-gcc-E
修改完成后,保存文件,运行Make进行编译:
#make
编译完成后,会在该目录下生成我们需要的可执行文件boa。
4.2、配置BOA服务器
Boa运行时需要在文件系统的/etc/boa目录下有一个boa.conf文件,该文件的全部内容如下:
Port80
#Listen192.68.0.5
Userroot
Group0
ErrorLog/var/log/boa/error_log
AccessLog/dev/null
ServerNamewww.your.org.here
DocumentRoot/var/www
DirectoryIndexindex.html
KeepAliveMax1000
KeepAliveTimeout10
MimeTypes/etc/mime.types
DefaultTypetext/plain
CGIPath/bin:
/usr/bin:
/usr/local/bin
AddTypeapplication/x-httpd-cgicgi
ScriptAlias/cgi-bin//var/www/cgi-bin/
另外,在/etc目录下还需要一个mime.types文件,可以直接从宿主机上的/etc目录拷贝过来到ARM系统的根文件系统的/etc目录下。
此步骤需要ARM系统配套的根文件系统的源码。
运行时需要的目录如下:
/var/www这个是我们的html文件存放的目录
/var/www/cgi-bin这个是CGI程序存放的目录
/var/log/boa/error_log这个是boa服务器存放错误日志的地方
实际UP-NETARM2410-S嵌入式实验仪的根文件系统中已经将boa服务器和该服务器运行需要的文件和目录设置好,以上步骤仅供用户参考,可以略过。
烧写有boa配置文件的根文件系统
制作根文件系统:
mkcramfsrootroot.cramfs
烧写根文件系统用超级终端,进入vivi
vivi>loadflashrootx回车
当出现Readyfordownloadingusingxmodem...
Waiting...
...
点击超级终端任务栏上“传送”下拉菜单中的“发送文件”,选择好镜像文件root.cramfs,协议为Xmodem,点击“发送",等待root.cramfs烧写完毕;
Root烧写示例图1
Root烧写示例图1
4.3、移植视频服务器SPCASERV
1)从http:
//mxhaard.free.fr/spca50x/Download下载spcaview源码,或直接使用本实验提供源码,将其解
压并进入源码目录。
[root@vm-devwebcam]#tar-vxzfspcaview-20061208.tar.gz
2)进入解压后源文件目录,修改Makefile文件
[root@vm-devwebcam]#cdspcaview-20061208
修改CC、CPP编译器宏指定为自己的交叉编译器,并将大约62行处
gcc$(SERVFLAGS)–Ospcaserv$(OBJSERVER)$(SERVLIBS)
修改改为
$(CC)$(SERVFLAGS)–Ospcaserv$(OBJSERVER)$(SERVLIBS)
如下所示:
注意$(CC)前面边距为TAB制表符间距。
[root@vm-devspcaview-20061208]#viMakefile
CC=arm-linux-gcc
CPP=arm-linux-g++
Spcaserv:
$(OBJSERVER)
$(CC)$(SERVFLAGS)–Ospcaserv$(OBJSERVER)$(SERVLIBS)
3)保存并退出,编译程序
[root@vm-devspcaview-20061208]#makespcaserv
编译成功,会在当前目录下生成视频服务器spcaserv
4)将spcaview-20061208文件夹中的http-java-applet文件夹的内容(不是目录)拷贝到ARM系统端的/var/www/目录下,将生成的spcaserv下载到开发板上。
4.4、挂载boa和servfox
设置网络服务
取消防火墙
选中NFS
NFS配置图
设置共享文件夹
挂载命令:
mount–tnfs–ointr,nolock,rsize=1024,wsize=1024虚拟机IP:
/arm2410cl/mnt/nfs
在var下创建boa的目录文件
将spcaview-20061208文件夹中的http-java-applet文件夹的内容(不是目录)拷贝到ARM系统端的/var/www
/var/www/目录下,将生成的servfox下载到开发板上
/var/www这个是我们的html文件存放的目录
/var/www/cgi-bin这个是CGI程序存放的目录
/var/log/boa/error_log这个是boa服务器存放错误日志的地方
实验截图:
4.5挂载摄像头驱动
此时便可以在试验箱触摸屏上看到摄像头所采集的实时图像
实时图像1
4.6、建立设备节点
输入命令:
mknod/dev/video0c810
4.7、运行boa
输入命令:
./boa,输入ps查看boa是否运行成功
4.8、运行servfox
输入命令:
./servfox–g–d/dev/video0–s640x480–w7070
到此开发板上所需服务器建立运行完毕,下面进行浏览器端测试。
5、WEB客户端测试
打开浏览器192.168.0.121(主机上必须安装java运行环境才能运行,实验用电脑已安装Java环境,这里就不再累述,没有的话请自主下载安装。
)
测试结果:
实时图像2
实时图像3
6、设计总结
经过一周的学习与努力,经过系统分析、方案论证、查找资料,进行设计、调试等阶段完成了基于web的嵌入式远程监控系统课程设计的制作。
在这一个周的课程设计中,我们这一组得到了老师和同学很大的帮助,有时候觉得进行不下去了,老师或同学一句话就能让我茅塞顿开。
即使听不懂,他们也会耐心的讲解。
在系统的设计制作过程中,确实遇到了各种各样的问题,如调试思路正确但是没有能够进行找到合适的方法进行进一步的实验,设计中对于程序的编写以及目录结构的认知上存在偏差,其主要原因还是基础功不扎实,把握系统的能力不足,这为我们以后的学习和工作提了一个醒。
在问题的解决过程中,也提高了组员的动手动脑能力,学到了许多在书本上学不到的知识。
在具体的设计当中解决了诸如熟悉了UP-NETARM2410-S嵌入式实验仪平台和Linux系统下的命令,C程序的修改及boaservfox服务器的搭建、配置,程序的调试和系统的整体认识等问题,小组成员收获很大。
在整个课程设计过程中,张明老师时时督促和引导,并在设计过程中进行了方向指导,在总体方向不出错的基础上,施展自己的所学,发挥个人的所长。
他不仅在学习上和生活上给予了我们多方面的指导和无微不至的关怀,而且他渊博的学识、严谨的治学态度、孜孜不倦的工作作风和宽以待人的处事风格使我终身受益,并且还从中学会了分析问题和解决问题的方法此外,在本次设计过程中,还得到了其他老师的热情关心和帮助,在此仅代表我们全组向张明老师表示崇高的敬意和最诚挚的谢意。
7、参考文献
[1]郑灵翔编著《嵌入式LINUX系统设计》北京航空航天大学2008年
[2]孙纪坤、张小全编著《嵌入式LINUX系统开发技术详解-基于ARM》人民邮电出版社2007.9、
[3]王进德编著《嵌入式LINUX程序设计与应用案例》中国电力出版社2007.5
[4]魏洪兴等编著《嵌入式系统设计与实例开发II-基于ARM9微处理器与LINUX操作系统》清华大学出版社2005.12
[5]魏洪兴等编著《嵌入式系统设计与实例开发实验教材II-基于ARM9微处理器与LINUX操作系统》清华大学出版社2005.12