基于嵌入式linux的网络视频监控系统的研究与设计毕业论文Word文件下载.docx
- 文档编号:6107872
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:77
- 大小:1,004.86KB
基于嵌入式linux的网络视频监控系统的研究与设计毕业论文Word文件下载.docx
《基于嵌入式linux的网络视频监控系统的研究与设计毕业论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于嵌入式linux的网络视频监控系统的研究与设计毕业论文Word文件下载.docx(77页珍藏版)》请在冰点文库上搜索。
操作系统在兼容性和扩展性上面有了很大的提高。
但同样存在一些问题,如通用性比较差、用户界面不够友好等。
这一阶段系统主要用来监控应用程序以及控制系统的正常运行。
第三个阶段是以嵌入式操作系统为标志的嵌入式系统。
兼容性比第二阶段有了极大的提高,嵌入式操作系统可以运行于各种不同类型的嵌入式CPU上;
操作系统内核精简高效,并且由于其模块化的设计使扩展性得到很大的提高;
具备文件和目录管理、设备支持、多任务处理、网络以及用户图形界面等功能;
并且提供了大量的应用程序API,使开发应用程序变的简单,丰富了嵌入式应用软件。
目前嵌入式系统正经历一个以Internet为标志的高速发展的阶段。
随着网络技术的发展以及网络技术与信息处理、多媒体技术等日益密切的结合,基于Internet的嵌入式设备将代表着嵌入式技术发展的未来方向。
1.2.2嵌入式系统体系结构
嵌入式系统作为一类特殊的计算机系统,主要由3部分构成:
以嵌入式处理器为核心的硬件平台、嵌入式操作系统和应用软件系统组成[6],如图1.1所示。
图1.1嵌入式系统体系结构
Fig.1.1Theembeddedsystemarchitecture
(1)硬件平台:
核心部件是嵌入式微处理器。
硬件平台的多样性是嵌入式系统的一个重要的特征,目前据统计,全世界嵌入式微处理器的种类已经超过1000多种,流行体系结构有30几个系列。
嵌入式处理器的寻址空间一般从64KB到16MB,处理速度从0.1MIPS到2000MIPS。
嵌入式处理器目前主要有PowerPC、MIPS、ARM系列等。
随着微电子技术、计算机技术和通信技术的发展,以微处理器为核心集成多种功能的SOC系统芯片已经成为嵌入式系统的核心,这些SOC芯片集成了大量外围模块,如USB、AD/DA、LAN、I2S、RART等。
(2)嵌入式操作系统:
一般装在处理器的内存中,是嵌入式系统中极为重要的组成部分,完成嵌入式应用的任务调度和控制等功能,是嵌入式应用软件的基础和开发平台。
嵌入式操作系统一般可分为如下几个层次:
与硬件相关的底层软件、操作系统核心、图形界面、通信协议、标准化浏览器以及应用软件。
对于实时性要求很高的系统,一般都需要实时操作系统。
嵌入式RTOS(实时操作系统)是一段嵌入在目标代码中的软件,用户的其他应用程序都建立在嵌入式RTOS上。
内核中通常必须的基本部件包括进程的管理、内存管理和进程间通信。
嵌入式操作系统将CPU、中断、定时器等资源都封装成一个标准的API,并根据各个任务的优先级,合理的在不同的任务之间分配CPU时间。
目前应用较广泛的实时多任务操作系统有微软公司的WindowsCE、WindRiver公司的VxWorks、以及开源的Linux等[7]。
(3)应用软件系统:
运行于操作系统之上,利用操作系统提供的机制完成特定功能的嵌入式应用。
1.3视频监控的发展现状及趋势
随着社会经济的发展和科技的进步,整个社会安防意识逐步增强。
人们对监控产品的需求加上计算机技术、嵌入式技术、网络技术、多媒体技术的不断发展,使视频监控技术在短短几十年内经历了三个发展阶段[8]:
从上个世纪九十年代初的本地模拟设备为主的闭路电视监控系统;
到九十年代中期基于PC技术的多媒体监控系统;
再到目前以嵌入式技术、数字图像处理技术、网络技术为主的嵌入式网络视频监控系统。
1.3.1模拟视频监控系统
在计算机网络技术未被广泛应用以及数字图像处理等理论研究尚未成熟以前,模拟监控系统占据了监控领域的主要位置。
传统模拟监视系统主要由摄像机、监视器、视频矩阵、录像机等组成,由视频线、控制线缆等连接。
由于其采用模拟方式传输,所以在传输距离上会有所限制,而且可监控范围狭小,只能应用于小范围内的监控,如楼宇电梯监控等;
另外监控视频录像只能在控制中心查看,而且监控视频无法长期保存,查询也很麻烦。
但由于国内技术上的限制,这种模拟视频监控目前还广泛应用于安保、楼宇监控等场合。
1.3.2基于计算机的多媒体监控系统
计算机网络技术、通信技术、数字视频压缩编码技术的日益成熟,使基于计算机的多媒体监控成为可能。
多媒体监控系统一般采用这样的结构,在远端监控现场,由若干个摄像机、各种检测和数据处理设备组成监控终端,通过各自的线路连接到监控客户端上,监控客户端一般为PC机或是工业机箱组成的显示设备。
这种结构的监控系统比传统模拟视频监控系统在性能上有了很大的提高,但同样存在一些问题,如系统安装十分复杂功、功耗和成本较高且系统不是很稳定。
1.3.3基于嵌入式的网络监控
这种监控系统通常以高性能的嵌入式CPU作为核心处理器,集成了数据图像采集和处理技术、网络传输技术、Web技术等,利用现有成熟的计算机网络进行远程视频图像的传输,省去了传统监控系统繁琐的视频布线以及昂贵的中心设备,前端设备具有视频的采集和处理功能,且任何一台连入网络的计算机都可以通过身份验证实现对监控现场的监控,如果监控终端具体有无线发送的功能,甚至手机也可获得监控现场的画面。
因此基于嵌入式技术的网络视频监控系统必将具有良好的应用与发展前景,由它代替当前普遍应用的基于计算机的远程监控系统将成为必然的趋势[9]。
1.4论文主要内容和组织结构
本课题利用MINI2440开发板硬件平台和嵌入式Linux系统软件平台开发了一套远程视频监控系统。
在嵌入式设备终端上实现了视频信号的采集、压缩以及应用TCP/IP协议进行网络传输。
任何一个有权限的客户端通过IE浏览器,就可以查看监控现场的实时视频图像。
本文的主要工作包括:
1.建立基于嵌入式Linux的软件开发平台。
完成U-boot以及Linux2.6.33内核的移植和编译,构建基于busybox1.13.3的根文件系统。
并根据S3C2440A处理器启动后内存映射特性,增加了U-boot对NANDFlash操作的支持,提出了一种能自动识别NORFlash和NANDFlash启动的U-boot的方法。
2.实现视频数据的采集和压缩处理。
在嵌入式Linux平台下,利用V4L2模块以及其提供的API,实现USB摄像头的视频采集,并选择JPEG算法对视频数据进行压缩编码。
3.建立嵌入式Web服务器。
利用Linux下基于TCP/IP的SOCKET网络编程,采用B/S架构建立嵌入式的Web服务器,完成网络传输模块的编写,实现视频数据的传输。
4.针对语义检索和非语义检索的不足,提出了一种利用视频标签技术对监控录像进行检索的方法。
论文的组织结构:
第一章:
绪论。
主要介绍课题的研究背景和意义,概述了嵌入式系统和视频监控系统的发展,论文的主要研究工作和各章节安排。
第二章:
系统硬件开发平台。
介绍了三星公司的S3C2440A处理器以及系统的整体硬件架构。
第三章:
系统软件开发平台的建立。
介绍了Bootloader的基本概念,对U-boot的整体结构和启动过程进行了详细的分析,根据本系统所选择的硬件对U-boot进行了移植,对如何移植、修改和编译Linux内核以及YAFFS文件系统也做了详细的描述。
第四章:
视频监控系统程序设计。
实现嵌入式Linux环境下视频数据采集、压缩和网络传输模块的编写;
针对语义检索和非语义检索的不足,提出了一种利用视频标签技术对监控录像进行检索的方法。
第五章:
系统的整合和测试。
完成系统各模块的整合,分析了系统的输入/输出模块,最后对系统进行了测试。
第六章:
总结与展望。
指出论文研究的成果,总结所做工作的不足和对以后改进的展望。
第2章系统硬件体系结构
硬件是整个监控系统的基础,后期的软件开发都是建立在成功的硬件设计基础之上,如果前期的硬件设计存在缺陷,将对后期的软件设计和调试工作带来极大的麻烦。
嵌入式系统作为一类特殊的计算机系统,同样具有CPU、内存、外存以及外部接口等。
硬件设计的目的就是根据系统的总体需求,合理的将各种元器件和功能芯片集成到一个电路板上去工作。
2.1嵌入式处理器
嵌入式处理器是嵌入式系统的核心,一般具有如下几个特点[10]:
支持实时多任务的操作系统,较短的中断响应时间;
对存储区具有很强的保护功能;
可扩展行较强;
低功耗。
2.1.1ARM处理器介绍
ARM是AdvancedRISCMachines(高级精简指令系统处理器)的缩写,它既是一种微处理器知识产权(IP)核,也是一个公司的名称,还可以认为是一种技术的名字。
据统计,在32位RISC微处理器市场基于ARM技术的微处理器应用占据了75%以上的份额,ARM技术正在逐步渗入到我们生活的各个方面[11]。
采用RISC架构的ARM微处理器一般具有如下特点[12]:
●具有大量寄存器,指令执行速度更快;
●保证高性能的同时,减小体积、降低功耗和成本;
●大多数数据操作都在寄存器中完成;
●寻址方式灵活简单,执行效率高;
●采用固定长度的指令格式。
ARM处理器共有7种不同的运行模式[13],如表2.1所示。
在ARM运行的7种模式中,除了用户模式以外,其他的模式称为特权模式(PrivilegedModes),在特权模式下,程序可以访问所有的系统资源,也可以在几个运行模式之间转换。
在特权模式中,除了系统模式,其他的5种模式又称为异常模式(ExceptionModes)。
表2.1ARM处理器的7种不同运行模式
Tab.2.1SevendifferentoperatingmodesofARMprocessor
处理器模式
描述
用户模式(usr)
一般的程序执行在此模式下
外部中断模式(irq)
一般用于中断的处理
快速中断模式(fiq)
高速数据传输和通道的处理
数据访问中止模式(abt)
用于保护存储和虚拟存储
管理模式(svc)
供操作系统使用的特权模式
未定义指令中止模式(und)
主要用于支持协处理器
系统模式(sys)
用于管理模式下的操作系统任务
ARM处理器共37个寄存器:
31个通用寄存器和6个状态寄存器[14]。
期中包括程序计数器(PC)在内的31个通用寄存器都是32位的。
用以标识CPU工作状态及程序运行状态的6个32位状态寄存器目前只使用了其中的一部分。
在7种不同的处理器模式下,ARM处理器在每一种处理器模式中有一组相应的寄存器组。
在任意的处理器模式下,可见的寄存器包括R0~R14这15个通用寄存器以及一个或两个状态寄存器及程序计数器(PC)。
在所有的寄存器中,有些是各模式共用同一个物理寄存器;
有一些寄存器是各模式拥有自己独立的物理寄存器。
2.1.2S3C2440A
S3C2440A是三星公司生产的16/32位RISC微处理器。
该芯片是专门为手持设备和一般类型应用所提供的一款低功耗、低价格、高性能的微处理器[15],主频400M,最高533Mhz。
它采用一种被称作AMBA(AdvancedMicrocontrollerBusArchitecture)的新的总线架构。
S3C2440A基于ARM920T的内核,0.13μm的CMOS标准宏单元和存储器单元。
由于其采用全静态设计,并且具有低功耗、简单等特点,因此特别适合于对成本和功率敏感型的应用。
ARM920T实现了MMU,AMBABUS和Harvard高速缓冲体系结构。
这一结构分别具有独立的16KB指令Cache和数据Cache。
每个都是由具有8字长的行组成。
通过提供一套完整的通用系统外设,S3C2440A无需配置额外的组件,减少整体系统成本。
ARM920T的结构如图2.1所示。
图2.1ARM920T的结构图
Fig.2.1ThestructureofARM920T
S3C2440A有如下一些特性[16]:
(1)强大的片上外围电路。
S3C2440A提供了全面的、通用的片上外设,可极大的减小系统的成本:
1.2V工作电压,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电,同时带有16KB的指令Cache和16KB的数据Cache/MMU;
外部存储控制器(SDRAM控制和片选逻辑);
提供3个UART通道(支持IrDA1.0,64字节发送FIFO及64字节接收FIFO);
IIC-BUS总线接口(支持多master);
1通道IIS-BUS音频编解码器接口;
具有片内PLL时钟发生器;
两路USBHost控制器和一路USBDevice控制器(1.1版本);
130个通用I/O端口和24通道外部中断源。
(2)强大的数据处理能力。
S3C2440A采用的是ARM920T内核,因此具有5级整数流水线,指令执行效率非常高;
ARM920T在ARM9TDMI的基础之上增加了全性能的MMU、16K的数据Cache和16K的指令Cache、写缓冲区(writebuffer)、WritePATagRAM、32位的高速AMBA总线等构件;
提供1.1MIPS/MHz的结构,支持32位ARM指令集和16位Thumb指令集,支持32位的高速AMBA(AdvancedMicrocontrollerBusArchitecture)总线接口。
2.2系统硬件总体构架
设计一种应用系统,一般要满足以下两个原则[17]:
一是设计的系统要满足最初的设计要求;
另外一方面要降低系统成本且开发周期要尽可能的短。
本文选用三星公司的S3C2440处理器,由于其采用FBGA封装,因此为了提高系统的稳定性一般需要设计六层的PCB板。
六层板的开工费用较高且设计难度较大,为了提高系统的开发周期降低开发成本,本文的核心电路模块采用现成的开发板——广州友善之臂的MINI2440。
其主要硬件设备[18]如下表2.2所示:
表2.2系统主要硬件列表
Tab.2.2Listofmajorhardware
硬件
CPU处理器
SamsungS3C2440A
SDRAM内存
64MSDRAM
FLASH存储
256MNandFlash2MNorFlash
接口和资源
一个以太网接口三个串口两个USB口一个TJAG接口
系统晶振
12M无源晶振
开发板实物图如图2.2所示:
图2.2Mini2440开发板布局图
Fig.2.2Themini440boardlayoutdiagram
系统硬件的总体结构如图2.3所示。
开发板通过USB接口和摄像头连接,通过摄像头采集视频数据然后回传到系统中,对视频数据进行相关处理后通过网络传送给监控客户端。
本文所选的摄像头为支持UVC驱动的USB摄像头,网卡接口为采用DM9000网络芯片的100M以太网RJ-45接口。
图2.3硬件的总体结构
Fig.2.3Theoverallstructureofhardware
2.3本章小结
本章的主要内容是对系统的整体硬件结构作简单的介绍。
分析了ARM技术和本文所选取的芯片S3C2440A,然后给出了视频采集系统的整体硬件构架。
第3章系统软件开发平台的建立
开发嵌入式Linux系统有三种不同的主机/目标板架构:
连接式设置、可抽换存储装置设置、独立式设置[19]。
根据现有的实验环境,本文选用连接式设置,在这种设置下所有数据都是通过连接来传送的。
如图3.1:
图3.1主机/目标板架构
Fig.3.1Host/targetarchitecture
在本课题中,目标板和主机是通过串口线和网线进行通信的,即以远程组件来简化目标板的开发工作。
例如,可以通过TFTP下载Linux内核,通过NFS安装根文件系统等,而不需要直接写到目标板的存储介质中。
这种设置在开发调试阶段能让开发者在主机和目标板直接快速共享数据,而不必每次都直接操作目标板。
构建基于Linux系统的目标板一般分三个步骤[20]:
●在主机上移植Bootloader,编译后下载到目标板。
●在主机上配置编译Linux内核,通过网络挂载或下载到目标板。
●在主机上建立根文件系统,编译后通过网络挂载或下载到目标板。
3.1Bootloader的设计
3.1.1Bootloader的基本概念
嵌入式Linux系统上电后,需要一段程序来进行相关硬件的初始化工作,如:
改变系统的时钟、关闭开门狗、初始化存储设备、将操作系统内核复制到内存中运行等,这样的一段程序就叫做Bootloader。
嵌入式系统中,通常并没有像PC机的BIOS那样的固件程序,因此整个系统的加载启动任务就完全由Bootloader来完成。
在以ARM920T为核心的开发板中,系统在上电或复位后通常都从地址0x00000000处开始执行,通常在这个地址存放一开机就要执行的Bootloader。
BootLoader的实现通常严重地依赖于具体的硬件,由于嵌入式系统中硬件的差别很大,所以不可能有一个Bootloader支持所有的电路硬件。
因此对于构建嵌入式Linux,编写移植BootLoader是开发阶段必不可少的工作。
图3.2就是一个嵌入式Linux系统的典型空间分配结构图,其中包含四部分内容:
Bootloader、内核的启动参数、内核映像和根文件系统映像。
图3.2嵌入式Linux系统的典型分区结构
Fig.3.2TypicalpartitionstructureofembeddedLinuxsystem
在开发时,一般需要通过各种命令操作Bootloader,通常是PC机通过串口和开发板连接,可以在超级终端上输入各种命令观察运行结果。
这只对开发人员有意义,用户使用产品时是不用连接串口来控制Bootloader的。
从这个角度来说,Bootloader可以分为以下两种操作模式(OperationMode)。
(1)启动加载(Bootloading)模式:
这种模式也称为“自主”(Autonomous)模式。
也即Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程不需要用户的介入。
这种模式是Bootloader的正常工作模式,因此在产品推出到市场上的时候,Bootloader必须工作在这种模式下。
(2)下载(Downloading)模式:
在这种模式下,开发人员可以使用各种命令通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:
下载内核映像和根文件系统映像等,将它们直接放在内存中运行或是写到目标机上的FLASH类固态存储设备中。
目标机与主机之间传送文件时,可以使用串口xmodem/ymodem/zmodem协议,它们使用简单,但传输速度较慢;
或者是用网络通过TFTP/NFS协议来传送,此时主机上要开启TFTP、NFS服务。
BootLoader的启动过程分为单阶段(Single-Stage)和多阶段(Multi-Stage)两种。
通常多阶段的BootLoader能提供更为复杂的过程,并且有更好的可移植性。
目前最常用的启动过程可以分为stage1和stage2两大阶段[21]。
stage1中一般执行CPU体系结构方面的的代码,如设备初始化代码等操作,并且为了提高执行的效率,这部分代码需要用汇编语言来实现。
而stage2则是一些用C语言写的功能实现代码,如下载程序与控制台程序等,由于C语言具有语法简单、处理能力强、效率高、可移植性好等特点,因此既实现复杂的功能,又使代码具有更好的可读性和可移植性。
3.1.2U-boot的移植
U-boot,全称为universalbootloader,即通用bootloader,是遵循GPL条款的开放源代码项目。
其前身是由德国DENX软件工程中心的WolfgangDenk基于8xxROM的源码创建的PPCBOOT工程。
后来整理代码结构使得非常容易增加其它类型的开发板、其他架构的CPU(原来支持PPC);
增加了更多的功能,比如启动Linux、下载S-Record格式的文件、通过网络启动、通过PCMCIA、SD等方式启动[22]。
增加了ARM架构的CPU后改名为U-boot。
U-boot的版本有很多,本文使用的是U-boot-2009.11。
3.1.2.1U-boot的源码结构
本课题在U-boot-2009.1的基础上进行移植和开发,从DENX上下载tar.bz2类型的源码包,U-boot的源码目录结构比较简单。
U-boot-2009.11根目录下共有30个子目录,可以分为4类。
(1)平台相关的或开发板相关;
(2)通用的函数;
(3)通用的设备驱动函数;
(4)U-boot工具、示例程序、文档。
这30个目录的功能作用如表3.1所示。
表3.1U-boot顶层目录说明
Table3.1U-boottop-leveldirectoryDescription
特性
解释说明
board
开发板相关
对应不同配置的电路板(即使CPU相同)
cpu
平台相关
对应不同的CPU,比如arm920t、arm925t等;
在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 linux 网络 视频 监控 系统 研究 设计 毕业论文