基于网络视频监控系统的设计说明文档格式.docx
- 文档编号:1299281
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:83
- 大小:2.01MB
基于网络视频监控系统的设计说明文档格式.docx
《基于网络视频监控系统的设计说明文档格式.docx》由会员分享,可在线阅读,更多相关《基于网络视频监控系统的设计说明文档格式.docx(83页珍藏版)》请在冰点文库上搜索。
3.3.3创建WindowsEmbeddedCE6.012
3.3.4编辑和修改WindowsEmbeddedCE6.0工程16
3.3.5生成WindowsEmbeddedCE6.0映像17
3.3.6运行WindowsEmbeddedCE6.017
3.4服务器应用程序设计18
3.4.1服务端视频图像采集模块19
3.4.2服务端视频图像发送模块20
第4章嵌入式网络视频监控系统客户端软件系统设计23
4.1SOCKET编程基础23
4.1.1SOCKET协议23
4.1.2WindowsSocketsAPI23
4.1.3DOTNetframework对Socket功能的实现24
4.2客户端仿真程序设计与实现26
4.2.1仿真程序模块划分27
4.2.2连接服务模块27
4.2.3图像采集模块30
4.2.4视频采集模块34
4.2.5播放视频模块36
4.2.6界面显示模块36
4.2.7信息显示模块40
4.2.8监控效果40
第5章系统调试与性能分析42
第6章结论44
5.1结论44
5.2系统的不足与展望44
参考文献46
附录A网络视频监控服务端主要代码47
附录B网络视频监控客户端部分主要代码52
摘要
为了实现电力设备的远程监控,融合网络技术、通信及计算机技术,采用面向对象的程序设计方法,基于VisualStudio2005程序设计工具,使用C#高级编程语言,设计并开发了基于ARM和WindowsEmbeddedCE6.0的网络视频监控系统的软件系统。
该系统包括了服务端应用程序和客户端应用程序二大部分。
服务端实现了对远程现场的视频数据采与传输,客户端实现了视频数据的接收、存储、处理与显示等功能。
整个系统经过与系统的仿真,性能稳定,界面友好,操作简单。
基本能满足对网络设备的远程监控的要求,具有广泛的应用前景。
关键词:
ARM;
视频监控;
WindowsCE
第1章绪论
1.1视频监控系统的发展概况
近年来,随着现代科学技术的不断发展特别是网络带宽、计算机处理能力和存储容量的迅速提高以及各种实用视频信息处理技术的出现,视频监控技术也有长足的发展,视频监控进入了全数字化的网络时代,日益受到人们的重视和关注。
视频监控系统的发展基本上是从早期的模拟闭路电视监控系统向数模结合的视频监控系统和现在的数字视频监控系统演变的过程,而现在的数字视频监控系统根据技术的发展又分为三个阶段:
数字监控的多媒体阶段、数字监控的DVR阶段和数字监控的网络阶段。
随着多媒体技术、视频压缩编码技术、网络通讯技术的发展、数字视频监控系统迅速崛起,现今市场上有两种数字视频监控系统类型,一种是以数字录像设备为核心的视频监控系统,另一种是以嵌入式视频Web服务器为核心的视频监控系统。
数字视频压缩编码技术日益成熟,计算机的普及化,为基于PC机的多媒体监控创造了条件。
这种新型视频监控系统的迅速崛起,部分地取代了以视频矩阵图像分割器、录像机为核心,辅以其它传送器的模拟视频监控模式,但随着基于PC机的视频监控录像系统的发展,在实际工程使用过程中,也暴露出一些不足,主要是系统工作的不稳定性。
基于PC的视频监控录像系统的组成结构为:
兼容/工控PC机+视频采集卡+普通/较可靠的操作平台+应用软件。
嵌入式系统是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积等综合性严格要求的专用计算机系统,亦即为监控系统量体裁衣的专用计算机系统。
嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的"
器件"
。
嵌入式操作系统是一种实时的,支持嵌入式系统应用的操作系统软件,它是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统核、设备驱动接口、通信协议、图形界面、标准化浏览器等,嵌入式操作系统在系统实时高效性、硬件的相关依靠性、软件固态化及应用的专用性等方面具有较为突出的特点
嵌入式视频Web服务器方式,视频服务器置一个嵌入式Web服务器,采用嵌入式实时多任务操作系统。
摄像机送来的视频信号数字化后由高效压缩芯片压缩,通过部总线送到置的Web服务器,网络上用户可以直接用浏览器观看Web服务器上的摄像机图像,授权用户还可以控制摄像机、云台、镜头的动作或对系统配置进行操作。
由于把视频压缩和Web功能集中到一个体积很小的设备,可以直接连入局域网,达到即插即看,省掉多种复杂的电缆,安装方便(仅需设置一个IP地址),用户也无需安装任何硬件设备,仅用浏览器即可观看。
视频监控发展的最大两个特点就是数字化各网络化。
1)数字化。
数字化是21世纪的特征,是以信息技术为核心的电子技术发展的必然,数字化是迈向成长的通行证,随着时代的发展,生存环境将变得越来越数字化。
视频监控系统的数字化首先应该是系统息流从模拟状态转为数字状态,这将彻底打破"
经典闭路电视系统是以摄像机成像技术为中心"
的结构,根本上改变视频监控系统从信息采集、数据处理、传输、系统控制等的方式和结构形式。
信息流的数字化、编码压缩、开放式的协议,使视频监控系统与安防系统中其它各子系统间实现无缝连接,并在统一的操作平台上实现管理和控制,这也是系统集成化的含义。
2)网络化。
视频监控系统的网络化将意味着系统的结构将由集总式向集散式系统过渡。
集散式系统采用多层分级的结构形式,具有微核技术的实时多任务、多用户、分布式操作系统以实现抢先任务调度算法的快速响应。
组成集散式监控系统的硬件和软件采用标准化、模块化和系列化的设计,系统设备的配置具有通用性强、开放性好、系统组态灵活、控制功能完善、数据处理方便、人机界面友好以及系统安装、调试和维修简单化,系统运行互为热备份,容错可靠等优点。
系统的网络化在某种程度上打破了布控区域和设备扩展的地域和数量界限。
系统网络化将使整个网络系统硬件和软件资源的共享以及任务和负载的共享,这也是系统集成的一个重要概念。
从以上可以看出,视频技术的发展大致经历了模拟视频、PC视频、网络视频三个阶段,并以网络、通信技术为依托和传输平台。
1.2嵌入式WindowsCE操作系统
微软公司从1990年开始准备构建移动设备中的Windows,但先后因为市场和硬件技术问题搁浅了,随着经验的积累和各种条件的成熟,1996年微软发布了WindowsCE1.0,从而使微软公司在嵌入式操作系统中迈出了第一步。
WindowsEmbeddedCE在嵌入式领域算得上是一个后起之秀。
尤其在其WindowsCE.NET发布以后,才真正使得其被应用到嵌入式领域。
而WindowsEmbeddedCE5.0则成为了广大开发人员接触得最多的WindowsEmbeddedCE版本,2006年年底,微软公司推出了WindowsEmbeddedCE6.0,新的版本在集成开发环境,硬件支持,数据库支持等方面更胜一筹,配合VisualStudio2005和MicrosoftSQLServerManagementStudio和开发工具,并支持SQLServerMobile,使其在更广阔的领域被更多的得到应用。
在通用计算机桌面操作系统领域,微软公司有着自己面向不同时期不同应用的产品线。
在时间上,先后发布了Windows95,Windows98,WindowsMe,Windows2000,WindowsXP,WindowsVista等,在嵌入式操作系统领域,微软公司同样有着丰富的产品线,先后有着WindowsCE1.0,WindowsCE2.0,WindowsCE3.0,WindowsCE4.X,WindowsCE5.0及最新的WindowsCE6.0。
1.2.1WindowsCE6.0的体系结构
WindowsCE采用了典型的分层结构。
在WindowsEmbeddedCE6.0中划分为UserMode(用户模式)和KernelMode(核模式)两个“层”,CoreDLL等DLL同时出现在两个层中,驱动程式也能够被加入到核中,以前的.exe可执行模块基本上都变成了.dll。
体系结构的变化相对较大。
WindowsEmbeddedCE6.0的体系结构如图1所示。
图1WindowsEmbeddedCE6.0体系结构
WindowsEmbeddedCE6.0将任何系统需要提供的服务部分“转移”到系统核的虚拟机(Kernel’sVirtualMachine),这样做的好处是当发生系统调用时,已变成了进程的一个调用。
这样做也引入了一些不稳定机制,比如驱动程式被加入到核,WindowsEmbeddedCE6.0默认情况下就是将驱动运行在核模式。
虽然提高了系统的效率,但假如驱动程式不稳定,将对系统的整体稳定性产生很严重的影响,这也是我们所不愿意看到的。
当然,并不是任何的驱动程式都是在核运行的,在WindowsEmbeddedCE6.0安装完成之后的驱动程式是在用户模式下运行的,这样更有利于系统的安全,但以牺牲设备的性能为代价。
WindowsEmbeddedCE6.0里的系统模块如图2所示。
图2WindowsEmbeddedCE6.0系统模块
NK.exe中仅仅包含一些OAL代码和确保兼容性的程式,这样做的好处是使得OEMs和ISVs厂商定制的代码和微软提供的WindowsEmbeddedCE6.0的代码进行了分离,使得核代码的升级更加容易且更加方便。
1)硬件。
硬件是一个嵌入式系统存在的必要条件,也是嵌入式设备的处在体现,是嵌入式操作系统运行的基础,在通用计算机领域,一般都是X86体系结构的IBM-PC及其兼容机,早期IBM和英特尔的压倒性趋势,使得现在的通用计算机领域硬件体系结构基本一致,都有定义良好的接口,而在嵌入式领域,由于设备制造商都是由不同领域不同应用的厂商发展起来的,所以硬件结构相对复杂,公CPU体系结构就有多种,硬件的复杂性会加大程序开发的难度,因此出现了BSP来解决体系结构的差别问题。
PlatformBuilderCE6.0为很多常用的SDB(软件开发板)提供了BSP,这结BSP基本包括了所有WindowsCE6.0所支持的CPU,可有效减少嵌入式设备的开发周期。
2)OAL层。
OAL处在WindowsCE6.0和嵌入式设备的硬件层之间,连接到核的库中便可以创建核可执行程序。
它主根提供中断处理,时钟,电源管理,总线抽象,通用I/0控制等服务。
在建立一个以WindowsCE6.0为操作系统的硬件平台的过程中,创建OAL可能是最复杂的事情之一。
通常情况下,最简便的方法是对已有的OAL进行修改以适应自己的硬件平台。
3)KITL层。
KITL(KernelIndepentTransportLayer)是为了调试工作更加方便而设计的,它削弱了通信协议与通信硬件之间的直接依赖,降低了硬件传输层相关的开发工作量,硬传输层在KITL的下层,使得KITL可以支持不同类型的通信。
4)核层。
核为WindowsCE6.0设备提供最基本的底层功能,这些功能包括进程,线程,存管理,还包括一些文件管理功能,进程和线程的调度,实时支持,系统调用,核电源管理等。
NK.EXE是OAL进程,核KERNEL.DLL是伴随着OALY启动的,NE.EXE是WindowsCE6.0的核心。
5)ExFAT文件系统。
WindowsCE6.0采用了ExFAT(ExtendedFileAllocationTableSystem),ExFAT不仅解决了大容量文件存储的限制问题,还使得WindowsCE6.0设备与桌面PC机之间的文件传输更方便更容易。
而且ExFAT还提供了对以前文件系统的支持。
6)GWES接口。
GWES(Graphic,Windowing,Events,Subsystem)集Win32API,UserInterface,GraphicDeviceInterface于一体,是用户,应用程序和WindowsEmbeddedCE6.0之间的一个共同接口,三者通过GEWS进行通信和相关的操作。
GWES所支持的WindowsCE6.0的用户接口元素非常丰富,几乎可以和桌面Windows相比,包括窗口,对话框,菜单和其它资源。
7)设备管理器。
设备管理器是被核加载的,而且只要WindowsEmbeddedCE6.0还在运行,设备管理器就不会停止工作,当设备管理器被加载时,I/O资源管理器也将被加载,用它从注册表中读取一个有效的可用资源列表。
设备管理器通过GUID(GloballyUniqueIdentifier)来发现和管理设备。
设备管理器通过device.dll来实现的。
设备管理器与注册表的配合非常紧密,它运行和管理的大多数数据都来自注册表。
8)驱动程序。
驱动程序是一种抽象了物理或者虚拟设备功能的软件或者代码,相应设备被其驱动程序管理的操作,物理设备比较常见,像USB存储器,打印机等,虚拟设备如文件系统,虚拟光驱等。
在WindowsCE6.0中,驱动程序有两种模式,一种是核模式另外一种为用户模式,在默认的情况下,驱动程序运行在核模式下,这有利于设备性能的提高,但也增加了影响系统各个方面性能的不确定因素,如果不稳定的驱动程序被加载到核,将会对嵌入式系统的可靠性,稳定性等多方面的性能产生致使的影响。
这使得驱动程序在发布和认证时必须有严格的性能合格证措施。
9).NETCompactFramework平台。
WindowsCE6.0提供了对.NETCompactFramework的支持,使得开发应用程序有了良好的编程接口。
开发CE6.0的应用程序,可以使用现有的开发工具和环境,也可以仅仅使用一些SDK(SoftwareDevelopmentKit)。
WindowsCE6.0支持Unicode超大字符集,NLS(NationalLanguageSupport)的支持使得开发国际化的软件更加方便,对已有的国际化和本地化也更容易实现。
1.3面向对象编程
1.3.1从结构化到面对对象
结构化程序设计方法本质上是面向过程的,它不能直接反映人们解决问题的思路,因此这种模式存在着固有的缺陷,主要体现在如下两个方面。
(1)程序的可重用性差。
目前的应用程序变得越来越大,越来越复杂,但其中有很多重复性的工作,代码重用成为提高编程效率的关键。
采用传统的SP(结构化编程)模式,每开发一个新的应用程序,程序员几乎都要从零开始做起,并且要针对具体问题做大量重复而烦琐的工作。
即使重用代码,也只是进行简单的拷贝,要实现的功能稍有不同,就会导致对代码逐行进行修改,也就是说,这种模式不能对已编好的应用程序的某些部分直接继承引用。
(2)维护程序的一致性差。
应用传统的SP模式开发应用程序时,数据和方法是分开的,这很可能产生问题空间和方法空间在结构上的不一致。
对程序运行起重要作用的数据一般要做全局处理,若为了新的需要改变某一数据结构,则所有的处理数据的过程都要进行重新考虑,做出必要的修改,以保证与数据的一致性。
因此,要花费大量的精力来维护数据和数据处理过程的一致性,而且还可能产生不少错误。
结构化的程序开发已经不能满足软件发展的需求了。
这个时候,出现了面向对象的编程思想,简称为OO(ObjectOriented)。
面向对象的程序开发被称为OOP(ObjectOrientedProgramming)。
在介绍面向对象的思想之前,应该明确指出,面向对象是一种编程的思想,而与具体的语言无关。
比较流行的支持面向对象的语言有C++、C#和Java。
1.3.2面向对象程序设计
采用面向对象模式建立起来的程序由许多不同类型的对象组成,各对象既是独立的实体,又可以通过各自的接口相互作用。
对象中的方法决定要向哪个对象发送消息、发送什么样的消息以及收到消息后如何处理等。
也就是说,OOP模式是以对象为中心的。
由于对象反映了应用领域中具有完整的特征和行为的实体或单元,从程序设计的角度我们可以把它看成模块。
因此,对象具有一定的稳定性,可以被当作一个控件去构成更复杂的应用。
又由于对象一般封装的是某一具体的实际工作的各种成分,因此某一对象改变时,对整个系统几乎没有影响。
为了描述功能相似的对象,OOP中引用了“类”的概念。
类与类之间的关系是层次结构,属于某个类的对象除了具有该类的全部特征外,还具有层次结构中该类上层所有类的全部性质,这种机制称为继承。
面向对象程序设计方法的继承性和模块性,使得新的应用程序可以在原来对象的基础上通过重用和扩展来进行,而不必从头做起或者拷贝原有代码。
这大大提高了程序开发的效率,减少了重新编写代码的工作量,同时降低了程序设计过程中出错的可能性。
面向对象方法的实质是强调从客观世界中的固有规律出发来构造系统,用人类在现实生活中常用的思维方式来认识、理解和描述客观事物。
编写面向对象的程序设计使开发人员能够重复使用工作成果并使程序维护更为容易,并且不易出错。
第2章嵌入式网络视频监控系统总体设计
2.1系统总体框图
本系统主要由操作系统定制、视频图像采集、视频图像传输三部分组成。
系统首先通过USB摄像头采集现场实时视频信息,并对其进行压缩。
然后,使用以太网卡在ARM开发板与客户机之间构建一个网络,从而将压缩的视频图像数据传输到主机端应用程序,终端用户即可在主机端通过客户端软件程序查看远程视频影像。
视频监控系统总体结构如图3所示。
图3系统总体框架
2.2视频图像采集模块
图像采集模块的硬件资源选用了当前市面上应用最广泛的USB接口的中星微摄像头。
该款摄像头造价低廉,成像效果好,用于本系统中体现出了较高的性价比。
在视频图像采集模块中,本系统使用的是中星微ZC030X系列。
中星微摄像头采用了中星微301PLUS快速主控芯片。
该芯片是一款高性能图像压缩芯片,输出MIPEG视频流数据。
MIPEG(MotionJPEG)主要是基于静态视频压缩发展起来的技术,特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩,通常可达到6:
1的压缩率。
它的误差稳定性非常好,可以获取清晰度很高的视频图像,而且还可以灵活设置各路视频清晰度,压缩帧数。
本系统直接从摄像头驱动中获取MJPEG视频流数据。
2.3ARM处理器模块
嵌入式系统开发与其它软件开发最大的区别之一就是需要一个专门的目标设备平台,这个区别的主要原因是一般进行的开发都是在通用计算机上运行的,所以开发和调试工作在一台计算机上完成即可。
但嵌入式开发需要应用在实际的嵌入式设备中的,而且,当今嵌入式设备中的很多结构没有统一,加上嵌入式设备一般都有较高的可靠性要求,因此需要专门的设备进行调试就不足为奇了,虽然有模拟器软件,但这并不能完全展现软件在设备上的表现,所以使用目标设备平台进行测试是必要的。
由于ARM处理器的性能及价格上的优势且支持WindowsCE,所以该系统选用以ARM为核心的三星S3C2410作为开发的硬件平台。
在本软件系统中,使用WindowsEmbeddedCE6.0的模拟器作为硬件平台。
2.4视频图像传输模块
目前采用的最广泛的传输机制是Socket编程,通过Socket我们能对数据流通信进行底层和最高级的控制。
通过视频图像采集模块得到的视频图像存储在缓冲区中,缓冲区由服务端应用程序申请获得,之后等待任何一个客户端连接到服务器,一旦客户连接到服务器,服务端应用程序就为每一个客户端建立一个线程用于传输视频图像数据。
这样不同客户应用程序的通信就不会相互影响,且效率更高,增加了服务器的吞吐量。
通信模块采用WindowsSocket编程机制。
编程语言使用强大的面向对象的C#语言。
2.5客户端接收模块
在客户端连接服务器成功后,服务器为每一个客户生成一个Socket对象。
为了保证数据传输的实时性和视频的连续性,每接受到一帧图像后,隔一段时间就向服务器发出一个确认请求,这样就保证了客户端不会出现拥塞,客户端通过一帧一帧地显示图像来达到实时监控的效果,由于网络中传输的是数据流,为了将其转换为图像,我们需要一个特殊的类Image来进行对字节流到图像流的转换。
并且可以将接收到的视频数据予以保存。
第3章嵌入式网络视频系统服务端软件系统设计
3.1搭建开发环境
作为一个开发人员,必需的开发环境必不可少,进行WindowsCE6.0的开发主要有两用人才大方面:
操作系统和应用程序的开发。
操作系统开发包括操作系统的定制,驱动开发以及其它需要完成的底层工作。
应用程序开发主根是与实际应用结合较紧密的程序开发。
要搭建这样一个开发环境,到少需要两个方面,第一是硬件平台,第二是软件平台。
硬件平台除了我们平常大多数开发需要使用的计算机外,还需要目标设备平台。
目标设备平台最好是专门的开发板或者目标机,也可以使用现有的PC机进行搭建。
软件平台包括操作系统,开发软件和应用程序开发软件。
在WindowsCE6.0开发中,微软公司将这些开发软件都集成到了VisualStudio2005中。
本文的硬件平台为模拟器。
3.1.1软件开发平台
在WindowsCE早版本的操作系统开发中,一般用到一个专门的定制工具:
PlatformBuilder,每个版本的WindowsCE都有与之对应的PlatformBuilder。
到了WindowsCE6.0微软公司通过战略性的调整,把PlatformBuilder做成了VisualStudio2005的插件。
VisualStudio2005是一款集成开发环境,不仅支持一般性的桌面应用程序开发,同时支持嵌入式设备的相关开发,包括针对WindowsCE操作系统的开发,使用VisualStudio2005可以自由地选择自己喜欢的语言。
WindowsCE6.0支持.NETCompactFramework2.0,它是.NETFramework2.0的一个子集,因此只要符合.NETCompactFramework2.0,那么它开发的应用程序就可以在WindowsCE6.0上运行。
3.2PlatformBulider6.0简介
从本质上讲,WindowsCE6.0操作系统的开发就是一个为目标设备定制操作系统的过程。
这一过程包括在已有的操作系统模块中选择需要的模块,专门为目标设备定制模块,编译和调试。
在安装过程中最好将其安装在默认的根目录下。
PlatformBuilderforCE6.0包括如下一些文件夹:
1)CR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 网络 视频 监控 系统 设计 说明