收藏 分享(赏)

基于嵌入式linux的网络视频监控系统的研究学士学位毕业论文.doc

上传人:无敌 文档编号:637711 上传时间:2018-04-16 格式:DOC 页数:26 大小:842KB
下载 相关 举报
基于嵌入式linux的网络视频监控系统的研究学士学位毕业论文.doc_第1页
第1页 / 共26页
基于嵌入式linux的网络视频监控系统的研究学士学位毕业论文.doc_第2页
第2页 / 共26页
基于嵌入式linux的网络视频监控系统的研究学士学位毕业论文.doc_第3页
第3页 / 共26页
基于嵌入式linux的网络视频监控系统的研究学士学位毕业论文.doc_第4页
第4页 / 共26页
基于嵌入式linux的网络视频监控系统的研究学士学位毕业论文.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、1摘要随着电子技术和多媒体及网络技术的快速发展,视频监控系统正向嵌入式,数字化,网络化方向发展。嵌入式视频监控系统利用大规模集成电路和网络的科技成果。实现体积小,性能稳定,通讯便利的监控设备。本项目提出了在 ARM 微处理器平台上移植嵌入式 Linux 操作系统,并完成视频采集、压缩、控制等任务。系统硬件设备选择采用实验室配备的 ARM9 微处理器 S3C2410 作为主处理器,利用 USB 接口的摄像头作为视频采集设备。为降低产品成本,在此基础上,借助Linux 下的开源软件,构建了整个嵌入式视频监控系统。关键词:视频监控 嵌入式系统 ARM9 Linux V4L 视频采集2Abstract

2、With the rapid 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 surveill

3、ance system achieves 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 se

4、lect the ARM9 (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: Vide

5、o Surveillance Embedded system ARM9 Linux video for linux 3摘要 .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 的驱动程序层次结构

6、.124.2 字符型设备驱动程序 .144.3Linux 下驱动程序的实现 .144.4USB 摄像头选择以及驱动设计 .155 Linux 下视频采集 .165.1 视频采集模块的设计 .165.2 基于 v4l 的编程 .175.2.1Video4linux 中主要的数据结构 .175.2.2 视频数据的读取 .185.3 在 LCD 上显示视频图像 .196 视频网络传输模块研究与实现 .206.1 TCPIP 协议简介 .206.2 基于 webserver 的视频网络传输模块 .226.3 播放视频流 .2341 绪论1.1 项目背景随着电子技术和多媒体技术的飞速发展,利用嵌入式设备

7、进行数字处理传送成为可能。嵌入式设备具有体积小、功耗低、数字化、安装方便、价格低廉等优点,因此基于嵌入式的视频采集和监控成为了当前嵌入式应用开发领域的一个热门课题。相比较传统的视频采集监控系统,它具有高可靠性、组网方便、可远程监控等优点,因而更适用于工业控制、银行、政府部门的安防系统中。本文通过建立一个适用于家庭安保、学校等应用场合的嵌入式网络视频监控系统,在实验室环境下针对网络视频监控系统的各项关键技术进行研究,包括嵌入式 Linux 技术、视频采集、视频图像网络化传输和运动目标检测等。论文工作也将为网络视频监控系统在其它领域的应用起到一定的作用。如环境与安保集中监控系统、移动监控系统等领域

8、以及智能小区、银行、商场等场所。同时为了更好的学习 Linux,熟悉 Linux 移植中的难点、要点。所以选择以 Linux 作为项目所需的操作系统。通过此项目,可以更深入的了解 Linux,熟悉驱动程序的编写等。1.2 视频监控系统的发展随着图像(视频)处理、网络通信和微电子技术的快速发展,视频以其直观、方便和内容丰富等特点,日益受到人们的青睐。然而在很多应用领域。智能视频监控是计算机视觉领域一个新兴的应用方向和备受关注的前沿课题。伴随网络技术和数字视频技术的飞速发展,监控技术正向着数字化、智能化、网络化的方向不断前进。智能视频监控系统的需求主要来自那些对安全要求敏感的场合,如银行、停车场、

9、无人值守的变电站等。比如通过传统的多媒体监控系统虽然也可实现变电站的无人值守,但它只能获取变电站的电气参数,并不能反映变电站运行的其它方面的情况,如防火防盗,变压器、开关等设备表面检查等。另外,对于异常入侵及各类故障缺乏足够的事后分析手段,所以要实现变电站综合全面的自动化管理,就需要一个功能完备的远程智能视频监控系统。智能监控技术包括运动目标检测、跟踪、目标分类和行为理解等方面。其中,处于整5个视觉系统底层的运动目标检测与跟踪是各种后续高级处理如目标分类、行为理解的基础和关键,在自动导航、机器人目标捕获等研究方向上都具有举足轻重的作用,从而更受到广泛的研究和探讨。视频监控系统大致经历了以下几个

10、阶段,第一代模拟监控系统、第二代数字化视频监控系统、第三代网络视频监控系统三个阶段。其中,第三代视频监控系统以网络为依托,以数字视频的压缩、传输、存储和播放为核心,以智能实用的图像分析为特色,引发了视频监控行业的技术革命,受到了学术界、产业界和使用部门的高度重视。1.3 论文的主要研究工作论文基于中国科学技术大学软件学院研究生的工程实践项目,在深入研究了嵌入式Linux 操作系统、视频数据的采集、压缩与流媒体实时传输技术的基础上,将上述三者有机结合起来设计了一套基于嵌入式 Linux 操作系统的网络视频监控系统。论文的研究工作主要集中在以下几个方面:(1) 系统软硬件平台的搭建;(2) Lin

11、ux 系统的裁剪配置以及移植;(3) USB 摄像头的选择以及 Linux 平台上驱动程序的开发 ;(4) 基于 Vidoo4Linux 的视频采集程序的研究与实现;(5) 基于 webserver 的视频网络传输模块研究与实现;(6) 客户端视频接收模块的选择与设计实现;2 视频监控系统方案设计2.1 系统硬件设计方案系统在总体布置上分为远程视频监测、现场视频采集、本地 LCD 显示三个部分。远程监测端运行于控制中心,它实时接收和显示图像数据,采用普通 PC 即可,关键要能连入以太网。现场视频采集采用 ov511 的网眼摄像头,处理器采用基于三星 s3C2410 处理器的ARM 开发系统 ,

12、这里我们用了博创 UP-NET ARM2410-S 试验箱。该试验箱提供了众多的外6设接口,特别是开发平台上的 10/l00M 自适应网络接口和 USB 接口,特别适合本项目的使用环境。本系统硬件平台集成了 ARM CPU、SDRAM 以及 FLASH,外设接口:RS-232 串口 (COM1),USB HOST 接口,自适应以太网接口,TFTLCD 接口,一个触摸屏接口。通过 RS-232 接口连接到宿主机上;通过在 USB 接口上外接一个 USB 口的摄像头,将采集到的视频图像数据输入缓冲区中,在本地 LCD 上显示,或是通过以太网传到远端。系统硬件平台如图 2-1 所示用户终端监控终端数

13、据压缩数据传输层USB摄像头S3C2410XSRAM电源及复位电路控制台NAND Flash存储设备SDRAMJtag接口图 2-1 系统硬件平台结构图2.2 软件设计方案通过对嵌入式操作系统 Linux 体系结构的分析,结合 ARM 处理器及其外围设备的的特性,本系统中将软件的体系结构分为两层:内核空间和用户空间。内核空间:Linux 内核以及视频采集、以及相关协议栈的移植。操作系统内核的主要功能是管理任务、任务排序、提供中断、系统时钟管理以及实现硬件抽象层和视频编码内核间的通信;为了使系统具有网络传输功能,必须用到嵌入式操作系统中网络协议如 TCP/IP 协议。应用程序的接口由 API来实

14、现,API 的实现包括二个部分: 一部分 API 作为库来实现与应用程序间的连接,一部分在 SOCKET 中实现。7用户空间:即应用层软件,当 USB 摄像头驱动加载之后,视频采集模块采集摄像头的视频数据,然后通过网络传送到远程客户端。如图 2-2 所示为系统的整体软件设计架构图。视频采集模块USB 摄像头驱动程序Bootloader网络视频流服务模块以太网远程网络监控端图 2-2 软件系统架构3 软件开发环境的建立基于嵌入式 Linux 开发环境一般由目标系统硬件开发板和装有 Linux 桌面版的主机平台 PC 组成。 Linux 主机上操作系统采用 Redhat9.0 版本。目标系统硬件开

15、发板用来运行嵌入式 Linux 操作系统、用户系统应用程序等,而主机平台用来进行嵌入式操作系统内核编译,文件系统的制作和系统应用程序开发和调试等。双方通过串口、并口或者以太网口等建立连接。2.1 嵌入式 LINUX 操作系统Linux 类似于 UNIX,是免费的,源代码开放的,符合 POSIX 标准规范的操作系统。近几年 Linux 在嵌入式领域获得了飞速发展,选择 Linux 作为嵌入式操作系统的嵌入式系8统占很大比例。Linux 之所以有能在嵌入式系统市场上取得如此迅速的发展,与自身的优点有着不可分割的关系。Linux 作为嵌入式操作系统的优势:Linux 正在嵌入式开发领域稳步发展,是由

16、于其自身具有非常适合于作为嵌入式操作系优点,主要表现在:使用成本低几乎所有的商业用操作系统如 Microsoft 公司的 Windows 系列,都需要为每一个拷贝支付数量的费用。但是 Limix 是免费软件,只要遵守 GPL 的规定,就可以免费获得拷贝。Linux 同样遵循 GPL 规定的 C、C+、Java 等等一系列的软件工具开发包,同时可以极大的降低开发成本。这点优势是其他商用操作系统无法比拟的。源代码公开Linux 可以随意地配置不需要任何的许可证或商家的合作关系,任何人可修改并在Linux 下发行。Linux 带有 Unix 用户熟悉的完善的开发工具,几乎所有的 Unix 系统的应用

17、软件都己移植到了 Linux 上。其强大的语言编译器 gcc、 g+等也是开源的,可以很容易得到,并在不断完善与成熟。支持多种硬件平台Linux 拥有了一个庞大的支持者群体,其中许多人都编写驱动程序和其它的更新程序并且免费的通过 Intenet 网络进行分发。现在 Linux 已经被移植到多种硬件平台,支持包括x86、Alpha、Sparc、Mips、powerPC 、ARM 等现有的绝大部分微处理器体系结构中。这对受开销和时间限制的研究与开发项目是很有吸引力的,原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与硬件的开发过程。强大的网络功能Linux 操作系统最突出的是网络部分,基

18、本上所有的网络协议和网络接口都可以在Linux 上找到,Linux 内核比标准的 UNIX 能够更加高效地处理网络协议,系统的网络吞吐性能非常好,这也是为什么 Linux 在网络服务器市场上占据越来越大市场份额的一个原因。微内核模块化体系结构Linux 操作系统本身的微内核体系结构相当简单,网络和文件系统以模块形式置于微内核的上层,驱动程序和其它部件可在运行时作为可加载模块编译到或者是添加到内核,这为构造定制的可嵌入系统提供了高度模块化的构件方法,使添加部件非常容易。9系统小巧一个功能完备的 Linux 内核要求大约 IMB 内存。而 Linux 微内核只占用其中很小一部分内存,包括虚拟内存和

19、所有核心的操作系统功能在内,只需占用系统的 100K 内存。2.2 建立交叉编译环境交叉编译是嵌入式开发过程中的一项重要技术,主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成。采用交叉编译的主要原因在于,多数嵌入式目标系统不能提供足够的资源供编译过程使用,因而只好将编译工程转移到 PC 中进行。当前交叉编译器有多种版本,本设计中使用 2.95.3 版的 arm-linux-gcc。在网上下载该版本的交叉编译器包:arm-linux-gcc2.95.3.tar.gz, ,将 arm-linux-gcc2.95.3.tar.gz 拷贝到某个目录下,然后进入该目录,执行解

20、包命令 tar zxv arm-linux-gcc2.95.3.tar.gz ,然后编辑/etc/bash.rc 文件,修改环境变量。以后编译内核或其他应用程序均可用 arm-linux-的前缀来指定交叉编译器。2.3 BootLoader 的移植图是一个典型的嵌入式应用系统固态存储设备的空间分配示意图。Bootloader 是系统一加电所执行的第一个程序,在操作系统内核或用户应用程序运行之前运行。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,为最终调用操作系统内核或用户应用程序准备好正确的环境。Bootloader 启动参数 内核 文件系

21、统图 2-1bootloader 及系统各个部分所处的层次Bootloader 是依赖于硬件而实现的,特别是在嵌入式系统中建立一个通用的 Bootloader几乎是不可能的,不同的体系结构需求的 Bootloader 是不同的。除了体系结构,Bootloader还依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板而言,即使10它们基于相同的 CPU 构建,运行在其中一块电路板上的 Bootloader,未必能够运行在另一块电路开发板上,因此我们必须对其进行移植,这也是我们开发的第一步。通常都是对己有的 Bootloader 进行移植工作,如 Vivi 和 UBoot 等。本系统

22、中,采用 VIVi 作为 ARMg 处理器的 BootLoader。VIVi 是韩国的而 mizi 公司开发的 BootLoader,适用于 ARM9 处理器。VIVi 有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改) 自行启动 Linux 内核,这时 VIVi 的默认模式。在下载模式下,VIVi 为用户提供一个命令行接口,通过接口可以使用 VIVi 提供的一些命令。在 VIVi 代码的头文件公共目录 /include 中,s3c2440.h 文件定义了该处理器的一些寄存器,Platform/smdk2440.h 定义了与开发板相关的资源配置参数,我们只需

23、要修改这些文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。VIVi 的嵌入式移植过程主要有以下六个步骤:(l)从 mizi 公司网站获得 VIVi 源文件,进入 vivi 根目录执行 vi 命令修改 Makefile 文件。(2)修改三个宏定义。LINIUXINCLUDEDIR:更改为交叉编译器的 include 文件夹CROSSCOMPILE:更改为交叉编译器的可执行文件的路径ARMGCCLIBS:更改为交叉编译器的 lib 库文件的路径(3)修改 arch/s3c2440/smdk.c,主要是修改 nandflash 的分区信息。(4)修改内核启动时使用的命令行初始参数。(

24、5)#makemenucofig 配置 VIVi。(6)#make vivi 命令编译 VIVi 源文件。可以获得编译成功的 VIVi 二进制代码。 我们这里采用的是博创公司提供的已经编译好的适合于博创试验箱的 vivi 的二进制文件。将 Vivi 通过 JTAG 烧写在 Nandflash 的地址 Ox00 处,即完成了 Vivi 的编译和移植。3.4 Linux 内核编译与移植在对内核移植前,需要根据系统硬件资源对 Linux 内核进行配置和裁剪,以便在实现功能的前提下尽量减小内核,充分利用嵌入式系统有限的资源。在宿主机 Linux 系统终端下,进入内核源代码的目录,输入 makemenucoonfig 可以对内核进行配置,如图所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报