基于嵌入式Linux的图像监控系统毕业论文.docx
- 文档编号:9396595
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:28
- 大小:162.21KB
基于嵌入式Linux的图像监控系统毕业论文.docx
《基于嵌入式Linux的图像监控系统毕业论文.docx》由会员分享,可在线阅读,更多相关《基于嵌入式Linux的图像监控系统毕业论文.docx(28页珍藏版)》请在冰豆网上搜索。
基于嵌入式Linux的图像监控系统毕业论文
莫炳全
基于嵌入式Linux的图像监控系统
曾繁政
讲师
131********
0920618101
2007级
通信工程
物理与电子信息工程系
2011
27
3
2010
27
5
独创性声明
独创性声明
本人重声明:
所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。
除了文中特别加以注释和致的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。
与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了意。
签名:
年月日
授权声明
本人完全理解贺州学院有关保留、使用本科生毕业论文(设计)的规定,即:
学院有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。
本人授权贺州学院可以将毕业论文(设计)的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。
本人论文(设计)中有原创性数据需要的部分为(无):
签名:
年月日
指导教师签名:
年月日
基于嵌入式Linux的图像监控系统
摘要
图像监控系统是一门集计算机技术、通信技术和多媒体技术于一体的综合系统。
它以直观、方便、信息容丰富等特性被广泛地应用于各个方面。
随着嵌入式技术和图像处理技术的发展,使得监控图像和视频的网络实时传输和控制成为现实。
本系统是基于嵌入式Linux的图像监控系统。
本系统采用Linux系统作为服务器端平台,以ARM9核的S3C2440作为服务器平台处理器,以USB摄像头作为图像采集设备,用开源软件mjpg-streamer对图像视屏数据流进行MJPG压缩处理,并且通过以太网传输。
着重于实现一个易搭建,易配置,通用性好,能用于临时性监控的网络图像视频监控服务器,可让客户机通过浏览器实时监控远程目标摄像头,并实现远程共享摄像头的图像监控系统。
论文首先简要介绍了图像监控系统的国外现状和本系统的课题背景和意义所在,分析了以s3c2440微处理器为核心的图像监控系统的硬件方案的设计,然后详细描述基于linux系统平台的构建,再者重点分析应用软件的程序和设计流程,并深入分析图像采集过程和网络传输图片视频的技术以与算法,以求达到处理监控图像视屏的作用。
关鍵词:
图像监控;linux系统;S3c2440;mjpg-streamer;网络远程监控。
ABSTRACT
Imagemonitoringsystemisanintegratedsystemcombinedwithcomputertechnology,communticationtechnologyandmultimediatechnology.Ittakesintuitive,easyandabundantinformationandotherfeaturestobewidelyusedinvariousaspects.Withthedevelopmentofembeddedtechnologyandimageprocessingtechnology,makingnetworkmonitoringreal-timeimageandvideotransmissionandcontrolbecomeareality.
ThesystemisbasedonembeddedLinuximagemonitoringsystem.ThesystemusestheLinuxsystemasaserver-sideplatform,andS3C2440ARM9coreprocessorasaserverplatform,usingUSBcameraasimageacquisitiondevices,usingopensourcesoftwareMjpg-streamer,todealwiththeimagescreenMJPGcompresseddatastream,andtransmittedviaEthernet.Focusedondeliveringaneasytobuild,easyconfiguration,commongood,canbeusedfortemporarymonitoringnetworkimagevideosurveillanceserver,Allowingclientsreal-timemonitorbyabrowserremotetargetcamera,andshareremotevideosurveillancecamerasystem.
ThepaperintroductbrieflyFirstlyandImageMonitoringSystemCurrentStatusandthesystembackgroundandsignificanceofthesubject,analyzedtos3c2440microprocessorcoreimagemonitoringsystemhardwareinthedesign.Thendetaileddescriptionoftheconstructionbasedonlinuxplatform,alsoanalysisapplicationsoftwarekeyproceduresandprocesses,andin-depthanalysisalgorithmforimageprocessingandnetworktransmissiontechnologyinordertoachieveimagescreendealwiththeroleofmonitorscreenimage.
Keywords:
Imagemonitoring;linuxsystem;S3c2440;mjpg-streamer;RemoteMonitoringNetwork.
1绪论
1.1课题背景和意义
嵌入式技术是计算机技术、半导体技术和微电子技术等多种先进技术的融合,在后PC时代,网络技术和通信技术的飞速发展,使得嵌入式技术也得到了飞速的发展和广泛应用。
随着计算机应用的不断深入以与芯片技术和计算机技术的发展,嵌入式系统已经发展到以芯片技术和Internet技术为标志的嵌入式片上系统,即嵌入式技术与Internet技术的结合正推动嵌入式技术的快速发展。
随着嵌入式技术的快速发展,产生了基于嵌入式系统的远程图像视频监控系统,为信息产业,管理行业、监控行业提供了快捷、高效、廉价的服务。
丰富的网络功能为我们提供了实现这些应用的可能性,各种视频传输编码技术的发展使我们的视频传输效率越来越高,未来的监控可以通过移动通信设备手机、PDA随时随地随心所欲的对交通、公共建筑、私人住宅等进行远程监控。
但是就目前状况而言,虽然拥有了搭建这些应用服务的基本技术支持,但是目前国网络视频还存在应用不够广泛,形式单一,功能简单,应用软件普与率低等特点。
还有以下几个方面成为阻碍:
一是服务商不提供相应支持,应为服务器负荷大,成本居高不下,回报不乐观;二是可用软件不多,有效搭建服务器的难度大方法少;三是系统扩展性差,不能支持不同型号的摄像头。
再加上在很多实际应用中并不一定需要进行实时活动的图像传输,只要在相隔一定时间传输一幅静止的图片或者有意义有必要的时刻传输静止图像在来供监控人员分析即可。
因此本文将设计一种基于嵌入式Linux的图像监控系统,即在嵌入式设备端上完成图像和视频的采集、并通过网络传输,能用于临时性监控的网络图像视频监控服务器,可让客户机通过浏览器实时监控远程目标摄像头,适用各种USB接口的摄像头,并实现远程共享摄像头的图像监控系统。
1.2监控系统国外现状
监控系统发展从技术角度出发大概划分为三个阶段:
第一代模拟视频监控系统(CCTV),到第二代基于“PC+多媒体卡”数字视频监控系统(DVR),到第三代完全基于IP网络视频监控系统(IPVS)[1]。
1.2.1传统模拟闭路视监控系统(CCTV)
传统模拟闭路视监控系统,依赖摄像机、缆、录像机和监视器等专用设备。
例如,摄像机通过专用同轴缆输出视频信号[2]。
缆连接到专用模拟视频设备,系统中的信号采集、传输、存储均为模拟形式。
虽然具有良好的实时性和图像质量。
但是有以下几个局限性:
(1)有限监控能力,只支持本地监控,受到模拟视频缆传输长度和缆放大器限制。
因此模拟监控只适合小围的监控使用,使用的围在一两千米围。
(2)录像负载重,用户必须从录像机中取出或更换新录像带保存,且录像带易于丢失、被盗或无意中被擦除。
录像质量随拷贝数量增加而降低。
(3)系统扩展性差,对于已经建好的监控系统,增加或者修改新的监控点,整个系统都需要进行改动。
(4)形成不了有效的联动报警,由于模拟监控系统的各部分是独立动作,彼此间的协议和动作难以实现联动。
1.2.2基于“PC+多媒体卡”数字视频监控系统(DVR)
现今用的较多的“模拟-数字”监控系统(DVR):
以数字硬盘录像机DVR为核心半模拟-半数字方案,从摄像机到DVR仍采用同轴缆输出视频信号,通过DVR同时支持录像和回放,并可支持有限IP网络访问[3]。
这类监控系统功能较强,便于现场操作。
但由于DVR产品五花八门,没有标准,所以这一代系统是非标准封闭系统,DVR系统仍存在大量局限:
(1)复杂布线,“模拟-数字”方案仍需要在每个摄像机上安装单独视频缆,导致布线复杂性。
(2)有限可扩展性,DVR典型限制是一次最多只能扩展16个摄像机。
(3)功耗和成本较高,视频前端较为复杂,并且需要独立服务器、独立管理软件和多人值守来控制多个DVR或监控点。
(4)有限远程监视/控制能力,您不能从任意客户机访问任意摄像机。
您只能通过DVR间接访问摄像机。
1.2.3基于IP网络视频监控系统(IPVS)
基于IP网络视频监控系统,这是未来的监控系统潮流。
与前面两种方案相比存在显著区别。
该系统优势是摄像机置Web服务器,采用嵌入式实时操作系统,并直接提供以太网端口。
这些摄像机生成JPEG或MPEG4数据文件,可供任何经授权客户机从网络中任何位置访问、监视、记录并打印,而不是生成连续模拟视频信号形式图像。
网络上用户可以直接使用浏览器观看Web服务器上的图像信息,还可以通过授权的方式控制远程目标摄像头。
基于IP网络视频监控系统具有视频编码处理、网络传输通信、支持远程网络控制,因此使得监控系统上升了一个新的台阶。
基于IP网络视频监控系统克服了上述两种监控系统的局限性,拥有下述优点:
(1)不受距离限制,利用网络传输数据,距离不受限制,网络覆盖的地方即可。
信号不易受干扰,提高了图像的质量和稳定性。
(2)易于升级与全面可扩展性,能够利用现有局域网基础设施,轻松添加更多摄像机,网络带宽可复用,避免重新布线。
(3)全面远程监视,任何经授权客户机都可直接访问任意摄像机。
(4)成本和功耗低,服务器采用低廉的嵌入式处理器,客户端只需通过浏览器即可进行监控。
目前,国外的监控系统技术正朝着网络数字化方向快速发展。
由于在集成电路、图像压缩技术与数字通信的发展,欧美国家在这行业领域中占有比较明显的领先优势。
例如,瑞典的Axis,澳大利亚的Digiguard。
他们的监控系统智能程度很高,医疗精密监控,车牌与特征识别,运动轨迹判断,人脸体态识别等。
国外的这些产品功能强大,但价格昂贵,在我国普遍推广不开。
而国在网络视频监控方面相对落后,在高端摄像机等核心技术较薄弱,科技含量较高的产品以进口为主,国代表性的公司中兴,丰林等研发的系统可靠性差,网络传输实时性差。
国图像视频监控市场充满了机会,2010年,国图像视频监控市场的总体市场规模为110亿美金,年增长率为31%,其中基于IP网络视频监控系统的占有率越来越大,越来越受用户青睐[4]。
1.3本文的研究容和主要工作
1.3.1本文的主要工作
本文在设计基于嵌入式Linux的图像监控系统过程中,主要做了以下几个工作:
(1)交叉编译环境的建立和Bootloader的移植。
(2)linux核的移植。
(3)linux网络设备驱动程序的编写和USB驱动程序的移植。
(4)实现USB摄像头的采集图像程序的编写。
(5)实现TCP/IP网络协议传输模块的移植。
(6)通过分析采集到的图片进行环境监控。
1.3.2本文的拟解决的主要问题
(1)通用USB摄像头的驱动程序的编写和移植。
(2)实现网络传输和远程控制和MJPG协议算法传输。
(3)通过分析采集到的图片进行环境监控。
1.3.3本系统方案的优点
本文设计的基于嵌入式Linux的图像监控系统与其他远程监控系统相比,有以下几个优点:
(1)搭建系统难度小,不需要专门的大型服务器,只需使用嵌入式微处理器ARM9组成的轻量级流服务器。
(2)扩展性强,可适用市场上的通用USB摄像头,可适用通用的浏览器实现网络传输和远程控制。
(3)通过分析采集到的视频进行图片环境监控,只需进行有意义的图片的分析,不需要存储大量视频信息。
(4)成本和功耗低,采用开源的linux系统,使用功耗极低但性能优越的ARM9处理器,使系统的成本和功耗降到了最低。
2系统设计和硬件平台的建立
2.1系统总体设计
错误!
无效。
图2-1系统总体设计
整个系统总体设计如图2-1所示,整体分为两大部分:
系统前台和系统后台。
系统前台包括用户、客户端主机(浏览器)、服务器网页这三部分;剩下的都划分为系统后台。
服务器以Linux核2.6.32.2作为视频服务器核心,有三个主要服务组件,其中APACHE服务器负责与用户通过通信,用户要使用浏览器处理视频,只需要登录浏览器便可,在这里最好是使用FIRFOX,因为它对视频流支持最好。
MJPG-STREAMER视频服务器主要负责架设服务,进行配置(端口,各种显示参数等),而摄像头的识别则由相应的驱动程序完成。
2.2硬件选型
2.2.1系统硬件整体设计
本系统选择三星公司的S3C2440作为核心处理器,负责整个系统的运行,采用USB摄像头实现数据采集,通过网络进行图像的实时传输,系统硬件整体结构如图2-2所示。
错误!
无效。
图2-2系统硬件整体结构图
2.2.2硬件模块选型
微处理器采用三星公司的S3C2440,S3C2440是一款部集成了ARM公司ARM920T核的16/32位RISC嵌入式处理器,主要面向高性能、低功耗的应用。
带有存管理单元(MMU),采用0.13微米工艺和AMBA新型总线结构。
为了处理图像数据,CPU工作频率可达400MHz。
有完善的网络功能。
2.3硬件接口设计
2.3.1SDRAM和FLASH接口设计
(1)SDRAM:
系统外接了两片64Mbytes的SDRAM芯片(型号为HY57V561620FTP),一般称之为存,并接在一起形成32bit的总线宽度,其物理启始地址为0x30000000。
其接口电路如图2-3所示。
图2-3SDRAM接口图
(2)FLASH:
系统采用NANDFlash,型号为K9F1G08,大小为128M。
NANDFlash不具有地址线,它有专门的控制接口与CPU相连,数据总线为8-bit。
其接口电路如图2-4所示。
图2-4NANDFlash接口图
2.3.2网络模块接口设计
系统采用DM9000网卡芯片,它可以自适应10/100M网络,使用部包含耦合线圈的RJ45连接头,不必另接网络变压器,使用普通网线连接即可。
100M网络接口如图2-5所示。
图2-5DM9000的100M网络接口图
2.3.3USB模块接口设计
系统采用USBHost接口,使用USB2.0协议,与普通USB接口一致。
USBHost接口如图2-6所示。
图2-6USBHost接口图
2.3.4电源模块和RS232模块接口设计
(1)电源模块:
本系统电源系统设计简单,直接使用外接5V电源,分别通过降压芯片LM1117-33、LM1117-1.8、MAX8860EUA18产生整个系统所需的三种电压:
3.3V、1.8V、1.25V。
(2)RS232模块:
直接从CPU引出后,使用RS232进行电平转换,使用直连线与PC机相互通信,用于下载调试程序使用。
2.4本章小结
在本章中,首先从总体上架构了整个监控系统的框架图,并针对系统硬件做出了整体设计以与各个外围模块之间的联系,最后一一介绍了系统外围六个模块的接口电路设计。
3嵌入式LINUX系统平台的搭建
3.1交叉编译环境的建立和Bootloader的移植
3.1.1交叉编译环境的建立
由于嵌入式系统不是通用的计算机系统,硬件资源受到很大的限制,因此运行于嵌入式系统裁剪和定制之前,需要在强大的宿主机上建立一个交叉编译环境,用于目标机[5]。
本系统采用的交叉编译环境为arm-linux-gcc-4.4.3。
下载源代码并解压到根目录下,运行gedit/root/.bashrc,然后把编译器路径加入系统环境变量中。
3.1.2Bootloader的移植
BootLoader就是在操作系统核运行之前运行的一段小程序。
通过这段小程序,我们可以初始化硬件设备、建立存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统核准备好正确的环境。
由于BootLoader的实现依赖于CPU的体系结构,因此Bootloader在stage1和stage2需要做的工作如下。
(1)stage1通常包括以下步骤(以执行的先后顺序):
1硬件设备初始化。
2为加载BootLoader的stage2准备RAM空间。
3拷贝BootLoader的stage2到RAM空间中。
4设置好堆栈。
5跳转到stage2的C入口点。
(2)stage2通常包括以下步骤(以执行的先后顺序):
1初始化本阶段要使用到的硬件设备。
2检测系统存映射(memorymap)。
3将kernel映像和根文件系统映像从flash上读到RAM空间中。
4为核设置启动参数。
5调用核。
本系统采用的BIOS是基于三星公司原来的bootloder修改而来的Supervivi。
3.2linux-2.6.32.2核的移植
本系统采用linux-2.6.32.2核。
本系统的核心电路和SMDK2440基本一样,而Linux-2.6.32.2核对SMDK2440的支持已经十分丰富,所以只需根据我们的目标平台做细微的差别调整即可。
以下是移植核的步骤
(1)获取linux核源代码,解压核源代码。
(2)指定交叉编译变量:
修改总目录下的Makefile
原来为:
exportKBUILD_BUILDHOST:
=$(SUBARCH)
ARCH?
=$(SUBARCH)
CROSS_COMPILE?
=
修改为:
exportKBUILD_BUILDHOST:
=$(SUBARCH)
ARCH?
=arm
CROSS_COMPILE?
=arm-linux-
其中,ARCH是指目标平台为arm,CROSS_COMPILE是指交叉编译器。
然后执行:
#makes3c2410_defconfig
#make
(3)克隆建立自己的目标平台:
①修改机器码:
进入linux-2.6.32.2/arch/arm/tools/mach_types文件中把机器码修改为1999。
②修改时钟源频率:
进入linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c文件中的原SMDK2440目标版上的晶振从原来的16.9344MHz改为12MHz。
③修改NandFlash分区:
#geditarch/arm/plat-s3c24xx/common-smdk.c
staticstructmtd_partitionsmdk_default_nand_part[]={ [0]={ .name="supervivi",;这里是bootloder所在分区 .size=0x00040000, .offset=0, },
[1]={ .name="param",;这里是supervivi参数区 .size=0x00040000, .offset=0x00020000, }, [2]={ .name="Kernel", .offset=0x00060000,;核所在分区,大小为5M .size=0x00500000, }, [3]={ .name="root",;文件系统分区,本系统用来存放yaffs2文件系统容 .offset=0x00560000, .size=1024*1024*1024, }
[4]={ .name="nand",;此区域代表整片nandflash,做预留使用 .offset=0x00000000, .size=1024*1024*1024, }};
④从SMDK2440到MINI2440:
使用批处理命令修改mach-mini2440.c中的字样为mini2440。
⑤编译测试:
在根目录下执行:
#makemini2440_defconfig
#makezImage;编译核,最后生成zImage。
(4)配置核:
针对配置核做主要的作为介绍。
执行#makemenuconfig
Generalsetup--->;配置目标版体系
S3C2440Machines--->
MINI2440developmentboard
DeviceDrivers--->;配置DM9000网卡驱动
Networkdevicesupport--->
Ethernet(10or100Mbit)--->
DM9000
DeviceDrivers--->;配置USB摄像头
Multimediadevices--->
Multimediasupport--->
Videocaptureadapters(NEW)--->
V4LUSBdevices(NEW)--->
GSPCAbasedwebcams--->
选择所有的摄像头类型--->
把所有结构设备添加到目标平台设备集中:
Staticstructplatform_device*mini2440_devices[]_initdata=
{&s3c_device_usb,
&s3c_device_rtc,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 Linux 图像 监控 系统 毕业论文