大学毕业设计---基于嵌入式linux的网络视频监控系统的研究.doc
《大学毕业设计---基于嵌入式linux的网络视频监控系统的研究.doc》由会员分享,可在线阅读,更多相关《大学毕业设计---基于嵌入式linux的网络视频监控系统的研究.doc(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要随着电子技术和多媒体及网络技术的快速发展,视频监控系统正向嵌入式,数字化,网络化方向发展。嵌入式视频监控系统利用大规模集成电路和网络的科技成果。实现体积小,性能稳定,通讯便利的监控设备。本项目提出了在ARM微处理器平台上移植嵌入式Linux操作系统,并完成视频采集、压缩、控制等任务。系统硬件设备选择采用实验室配备的ARM9微处理器S3C2410作为主处理器,利用USB接口的摄像头作为视频采集设备。为降低产品成本,在此基础上,借助Linux下的开源软件,构建了整个嵌入式视频监控系统。关键词:视频监控 嵌入式系统 ARM9 Linux V4L视频采集Abstract With the rapi
2、d development of the electronic technology, multimedia technology and network technology, video surveillance system is going to the embedded, digital, networked direction. Taking full advantage of LSI and networks of scientific and technological achievements, the embedded video surveillance system a
3、chieves delicate volume, stable performance, facilitates the communication of the surveillance equipment.The project is in arm microprocessor platform, and porting embedded linux system in it. It completes video capturing, compression, transmission and control tasks. The hard devices select the ARM9
4、 (S3C2410) as the main processor in the system; and the USB camera as the device of video capture. In order to reduce the cost of the product, Based on the architecture and with the open source software in linux, the whole embedded video surveillance system is implemented.Keywords: Video Surveillanc
5、e Embedded system ARM9 Linux video for linux 摘要11绪论41.1项目背景41.2视频监控系统的发展41.3论文的主要研究工作52视频监控系统方案设计52.1系统硬件设计方案52.2软件设计方案63软件开发环境的建立72.1嵌入式LINUX操作系统72.2建立交叉编译环境92.3 BootLoader的移植93.4 Linux内核编译与移植103.5文件系统的移植114设备驱动程序开发简介124.1 Linux的驱动程序层次结构124.2字符型设备驱动程序144.3Linux下驱动程序的实现144.4USB摄像头选择以及驱动设计155 Linux下视
6、频采集165.1视频采集模块的设计165.2 基于v4l的编程175.2.1Video4linux中主要的数据结构175.2.2视频数据的读取185.3在LCD上显示视频图像196 视频网络传输模块研究与实现206.1 TCPIP协议简介206.2基于webserver的视频网络传输模块226.3播放视频流231绪论1.1项目背景随着电子技术和多媒体技术的飞速发展,利用嵌入式设备进行数字处理传送成为可能。嵌入式设备具有体积小、功耗低、数字化、安装方便、价格低廉等优点,因此基于嵌入式的视频采集和监控成为了当前嵌入式应用开发领域的一个热门课题。相比较传统的视频采集监控系统,它具有高可靠性、组网方便
7、、可远程监控等优点,因而更适用于工业控制、银行、政府部门的安防系统中。本文通过建立一个适用于家庭安保、学校等应用场合的嵌入式网络视频监控系统,在实验室环境下针对网络视频监控系统的各项关键技术进行研究,包括嵌入式Linux技术、视频采集、视频图像网络化传输和运动目标检测等。论文工作也将为网络视频监控系统在其它领域的应用起到一定的作用。如环境与安保集中监控系统、移动监控系统等领域以及智能小区、银行、商场等场所。同时为了更好的学习Linux,熟悉Linux移植中的难点、要点。所以选择以Linux作为项目所需的操作系统。通过此项目,可以更深入的了解Linux,熟悉驱动程序的编写等。1.2视频监控系统的
8、发展随着图像(视频)处理、网络通信和微电子技术的快速发展,视频以其直观、方便和内容丰富等特点,日益受到人们的青睐。然而在很多应用领域。智能视频监控是计算机视觉领域一个新兴的应用方向和备受关注的前沿课题。伴随网络技术和数字视频技术的飞速发展,监控技术正向着数字化、智能化、网络化的方向不断前进。智能视频监控系统的需求主要来自那些对安全要求敏感的场合,如银行、停车场、无人值守的变电站等。比如通过传统的多媒体监控系统虽然也可实现变电站的无人值守,但它只能获取变电站的电气参数,并不能反映变电站运行的其它方面的情况,如防火防盗,变压器、开关等设备表面检查等。另外,对于异常入侵及各类故障缺乏足够的事后分析手
9、段,所以要实现变电站综合全面的自动化管理,就需要一个功能完备的远程智能视频监控系统。智能监控技术包括运动目标检测、跟踪、目标分类和行为理解等方面。其中,处于整个视觉系统底层的运动目标检测与跟踪是各种后续高级处理如目标分类、行为理解的基础和关键,在自动导航、机器人目标捕获等研究方向上都具有举足轻重的作用,从而更受到广泛的研究和探讨。视频监控系统大致经历了以下几个阶段,第一代模拟监控系统、第二代数字化视频监控系统、第三代网络视频监控系统三个阶段。其中,第三代视频监控系统以网络为依托,以数字视频的压缩、传输、存储和播放为核心,以智能实用的图像分析为特色,引发了视频监控行业的技术革命,受到了学术界、产
10、业界和使用部门的高度重视。1.3论文的主要研究工作论文基于中国科学技术大学软件学院研究生的工程实践项目,在深入研究了嵌入式Linux操作系统、视频数据的采集、压缩与流媒体实时传输技术的基础上,将上述三者有机结合起来设计了一套基于嵌入式Linux操作系统的网络视频监控系统。论文的研究工作主要集中在以下几个方面:(1) 系统软硬件平台的搭建;(2) Linux系统的裁剪配置以及移植;(3) USB摄像头的选择以及Linux平台上驱动程序的开发;(4) 基于Vidoo4Linux的视频采集程序的研究与实现;(5) 基于webserver的视频网络传输模块研究与实现;(6) 客户端视频接收模块的选择与
11、设计实现;2视频监控系统方案设计2.1系统硬件设计方案系统在总体布置上分为远程视频监测、现场视频采集、本地LCD显示三个部分。远程监测端运行于控制中心,它实时接收和显示图像数据,采用普通PC即可,关键要能连入以太网。现场视频采集采用ov511的网眼摄像头,处理器采用基于三星s3C2410处理器的ARM开发系统,这里我们用了博创UP-NET ARM2410-S试验箱。该试验箱提供了众多的外设接口,特别是开发平台上的10/l00M自适应网络接口和USB接口,特别适合本项目的使用环境。本系统硬件平台集成了ARM CPU、SDRAM以及FLASH,外设接口:RS-232串口 (COM1),USB HO
12、ST接口,自适应以太网接口,TFTLCD接口,一个触摸屏接口。通过RS-232接口连接到宿主机上;通过在USB接口上外接一个USB口的摄像头,将采集到的视频图像数据输入缓冲区中,在本地LCD 上显示,或是通过以太网传到远端。系统硬件平台如图2-1所示用户终端监控终端数据压缩数据传输层USB摄像头S3C2410XSRAM电源及复位电路控制台NAND Flash存储设备SDRAMJtag接口图2-1 系统硬件平台结构图2.2软件设计方案通过对嵌入式操作系统Linux体系结构的分析,结合ARM处理器及其外围设备的的特性,本系统中将软件的体系结构分为两层:内核空间和用户空间。内核空间:Linux内核以
13、及视频采集、以及相关协议栈的移植。操作系统内核的主要功能是管理任务、任务排序、提供中断、系统时钟管理以及实现硬件抽象层和视频编码内核间的通信;为了使系统具有网络传输功能,必须用到嵌入式操作系统中网络协议如TCP/IP协议。应用程序的接口由API来实现,API的实现包括二个部分:一部分API作为库来实现与应用程序间的连接,一部分在SOCKET中实现。用户空间:即应用层软件,当USB摄像头驱动加载之后,视频采集模块采集摄像头的视频数据,然后通过网络传送到远程客户端。如图2-2所示为系统的整体软件设计架构图。视频采集模块USB摄像头驱动程序Bootloader网络视频流服务模块以太网远程网络监控端图
14、2-2 软件系统架构3软件开发环境的建立基于嵌入式Linux开发环境一般由目标系统硬件开发板和装有Linux桌面版的主机平台PC组成。Linux主机上操作系统采用Redhat9.0版本。目标系统硬件开发板用来运行嵌入式Linux操作系统、用户系统应用程序等,而主机平台用来进行嵌入式操作系统内核编译,文件系统的制作和系统应用程序开发和调试等。双方通过串口、并口或者以太网口等建立连接。2.1嵌入式LINUX操作系统Linux类似于UNIX,是免费的,源代码开放的,符合POSIX标准规范的操作系统。近几年Linux在嵌入式领域获得了飞速发展,选择Linux作为嵌入式操作系统的嵌入式系统占很大比例。L
15、inux之所以有能在嵌入式系统市场上取得如此迅速的发展,与自身的优点有着不可分割的关系。Linux作为嵌入式操作系统的优势:Linux正在嵌入式开发领域稳步发展,是由于其自身具有非常适合于作为嵌入式操作系优点,主要表现在:使用成本低几乎所有的商业用操作系统如Microsoft公司的Windows系列,都需要为每一个拷贝支付数量的费用。但是Limix是免费软件,只要遵守GPL的规定,就可以免费获得拷贝。Linux同样遵循GPL规定的C、C+、Java等等一系列的软件工具开发包,同时可以极大的降低开发成本。这点优势是其他商用操作系统无法比拟的。源代码公开Linux可以随意地配置不需要任何的许可证或
16、商家的合作关系,任何人可修改并在Linux下发行。Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都己移植到了Linux上。其强大的语言编译器gcc、g+等也是开源的,可以很容易得到,并在不断完善与成熟。支持多种硬件平台Linux拥有了一个庞大的支持者群体,其中许多人都编写驱动程序和其它的更新程序并且免费的通过Intenet网络进行分发。现在Linux已经被移植到多种硬件平台,支持包括x86、Alpha、Sparc、Mips、powerPC、ARM等现有的绝大部分微处理器体系结构中。这对受开销和时间限制的研究与开发项目是很有吸引力的,原型可以在标准平台上开发然后
17、移植到具体的硬件上,加快了软件与硬件的开发过程。强大的网络功能Linux操作系统最突出的是网络部分,基本上所有的网络协议和网络接口都可以在Linux上找到,Linux内核比标准的UNIX能够更加高效地处理网络协议,系统的网络吞吐性能非常好,这也是为什么Linux在网络服务器市场上占据越来越大市场份额的一个原因。微内核模块化体系结构Linux操作系统本身的微内核体系结构相当简单,网络和文件系统以模块形式置于微内核的上层,驱动程序和其它部件可在运行时作为可加载模块编译到或者是添加到内核,这为构造定制的可嵌入系统提供了高度模块化的构件方法,使添加部件非常容易。系统小巧一个功能完备的Linux内核要求
18、大约IMB内存。而Linux微内核只占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用系统的100K内存。2.2建立交叉编译环境交叉编译是嵌入式开发过程中的一项重要技术,主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成。采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到PC中进行。 当前交叉编译器有多种版本,本设计中使用2.95.3版的arm-linux-gcc。在网上下载该版本的交叉编译器包:arm-linux-gcc2.95.3.tar.gz,将arm-linux-gcc2.95.3.
19、tar.gz拷贝到某个目录下,然后进入该目录,执行解包命令tar zxv arm-linux-gcc2.95.3.tar.gz ,然后编辑/etc/bash.rc文件,修改环境变量。以后编译内核或其他应用程序均可用arm-linux-的前缀来指定交叉编译器。2.3 BootLoader的移植图是一个典型的嵌入式应用系统固态存储设备的空间分配示意图。Bootloader是系统一加电所执行的第一个程序,在操作系统内核或用户应用程序运行之前运行。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核或用户应用程序准备好正确的环境。B
20、ootloader 启动参数 内核 文件系统图2-1bootloader及系统各个部分所处的层次Bootloader是依赖于硬件而实现的,特别是在嵌入式系统中建立一个通用的Bootloader几乎是不可能的,不同的体系结构需求的Bootloader是不同的。除了体系结构,Bootloader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使它们基于相同的CPU构建,运行在其中一块电路板上的Bootloader,未必能够运行在另一块电路开发板上,因此我们必须对其进行移植,这也是我们开发的第一步。通常都是对己有的Bootloader进行移植工作,如Vivi和UBoot等
21、。本系统中,采用VIVi作为ARMg处理器的BootLoader。VIVi是韩国的而mizi公司开发的BootLoader,适用于ARM9处理器。VIVi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动Linux内核,这时VIVi的默认模式。在下载模式下,VIVi为用户提供一个命令行接口,通过接口可以使用VIVi提供的一些命令。在VIVi代码的头文件公共目录 /include中,s3c2440.h文件定义了该处理器的一些寄存器,Platform/smdk2440.h定义了与开发板相关的资源配置参数,我们只需要修改这些文件就可以配置目标板的参数,如波
22、特率、引导参数、物理内存映射等。VIVi的嵌入式移植过程主要有以下六个步骤:(l)从mizi公司网站获得VIVi源文件,进入vivi根目录执行vi命令修改Makefile文件。(2)修改三个宏定义。LINIUXINCLUDEDIR:更改为交叉编译器的include文件夹CROSSCOMPILE:更改为交叉编译器的可执行文件的路径ARMGCCLIBS:更改为交叉编译器的lib库文件的路径(3)修改arch/s3c2440/smdk.c,主要是修改 nandflash的分区信息。(4)修改内核启动时使用的命令行初始参数。(5)#makemenucofig配置VIVi。(6)#make vivi命令
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 毕业设计 基于 嵌入式 linux 网络 视频 监控 系统 研究
限制150内