基于嵌入式Linux的视频监控系统设计.pdf

上传人:qwe****56 文档编号:74674449 上传时间:2023-02-27 格式:PDF 页数:6 大小:550.97KB
返回 下载 相关 举报
基于嵌入式Linux的视频监控系统设计.pdf_第1页
第1页 / 共6页
基于嵌入式Linux的视频监控系统设计.pdf_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《基于嵌入式Linux的视频监控系统设计.pdf》由会员分享,可在线阅读,更多相关《基于嵌入式Linux的视频监控系统设计.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第25卷第3期2006年9月武 汉 工 业 学 院 学 报JournalofWuhanPolytechnicUniversityVol125No13Sep12006 收稿日期:2006202227作者简介:孙江波(19742),男,湖北省武汉市人,讲师。文章编号:1009-4881(2006)03-0031-06基于嵌入式L i nux的视频监控系统设计孙江波(武汉工业学院 电气信息工程系,湖北 武汉430023)摘 要:设计了以ARM2Linux为核心的网络视频监控系统,采用价格低廉的JPEG压缩芯片ZC0302,配以高性能的ARM9 CPU,具有极高的性价比。在S3C2410上运行ARM2

2、Linux,使得系统稳定可靠,应用程序的编制得到极大的简化。关键词:网络视频监控;嵌入式系统;视频采集;USB驱动程序中图分类号:TP 277 文献标识码:A0 引言视频监控系统是安全防范系统的重要组成部分,是一种防范能力较强的综合系统。视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。随着现代科学技术的不断发展特别是网络带宽、计算机处理能力和存储容量的迅速提高以及各种实用视频信息处理技术的出现,视频监控技术也有长足的发展,视频监控进入了全数字化的网络时代,日益受到人们的重视和关注。但基于PC机的视频监控录像系统,在实际工程使用过程中,也暴露出一些不足,主要是系统工作的不稳定性。近年来

3、,嵌入式技术的发展,基于嵌入式技术的远程网络视频监控,开始逐渐取代传统的视频监控系统,无论从可靠性还是功耗上,都超过以往的视频监控系统。其主要原理是:视频服务器内置一个嵌入式Web服务器,采用嵌入式实时操作系统。摄像机等传感器传送来的视频信息,由高效压缩芯片压缩,通过内部总线传送到内置的Web服务器。网络上用户可以直接用浏览器观看Web服务器上的图像信息,授权用户还可以控制传感器的图像获取方式。这类系统可以直接连入以太网,省掉了各种复杂的电缆,具有方便灵活、即插即看等特点,同时,用户也无需使用专用软件,仅用浏览器即可。1 系统概述整个系统由前端网络摄像机/视频服务器、监控中心服务器、远程监控客

4、户端三部分构成。其中监控中心服务器的主要功能为:接收多路前端机的视频编码数据,保存在本地硬盘上,同时进行解码,并显示多路解码图像;点播保存视频数据,供客户端查询;控制前端机的各项参数等。远程监控客户端的主要功能有:通过客户端工具对采集的图像进行实时监控、查询和检索分析。本文主要讨论该系统的前端网络摄像机/视频服务器部分。嵌入式视频监控系统示意图如图1所示。1994-2006 China Academic Journal Electronic Publishing House.All rights reserved.http:/武 汉 工 业 学 院 学 报2006年图1 嵌入式视频监控系统示意

5、图2 系统的硬件设计前端网络摄像机的硬件结构如图2所示。其主图2 嵌入式WEB服务器的硬件结构要由CPU芯片、音视频编码芯片、Flash芯片、SDRAM内存、以太网络接口组成1。其中CPU采用Samsung公司的S3C2410A嵌入式处理器。音视频编码芯片完成对从摄像头传送过来的视频数据的压缩和编码。为了降低嵌入式网络摄像机的成本,本方案没有采用高端的压缩芯片,如MPEG24,H1264等,而是采用了最简单的MJPEG压缩。压缩后 的 视 频 数 据 通 过 以 太 网 进 行 网 络 传 输。ZC0302是中星微电子有限公司的一款JPEG压缩芯片,性价比极高,它在一块单芯片上实现了JPEG压

6、缩,USB1.1设备端接口,以及CMOS图像传感芯片接口,无须外接SDRAM,它支持VGA和CIF标准的CMOS图像芯片,VGA图像的处理速度可到15fps,CIF图像的处理速度可达45 fps,支持对CIS芯片的22wire控制,支持对图像进行自动增益控制和自动白平衡,支持4种图像质量,支持2 AC和2DCHuffman码表,支持标准的JPEG数据流输出。ZC0302的结构图如图3所示。图3ZC302结构 在本方案中,CMOS图像传感器(CIS)选择美光的M I360,这是一片VGA标准(30万像素)的感光芯片,感光面积为1/4英寸,有效像素为649H489V,它采用低噪声技术,噪声等级达到

7、CCD标准。它同样是一颗价格非常低廉的芯片。能与ZC0302压缩芯片实现无缝连接。由于中星微电子并未对外公开ZC0302的详细技术资料,这对本方案的实施带来很 大 困 难,使 我 们 无 法 正 确 使 用M I360与ZC0302。通过笔者的多次实验,终于成功的实现了M I360与ZC0302的连 接。摄像头电路原理 图23 1994-2006 China Academic Journal Electronic Publishing House.All rights reserved.http:/3期孙江波:基于嵌入式Linux的视频监控系统设计如图4所示。图4 摄像头电路原理图CPU单元的

8、S3C2410A是一款常见的ARM9处理器,价格便宜,主频在200M左右。由于ARM9有极高的性能,完全能够胜任JPEG的压缩编码工作,因此,直接把CPU与CIS相连,然后进行软件JPEG编码,也未尝不是一种方案,但势必大大增加软件的开发难度。权衡利弊,本方案舍去了这种做法。系统扩展了一片64M SDRAM和 一片8M FLASH。10M/100 M以太网接口用的是DM9000,使网络的传输速度大大提高。3 系统软件设计本视频监控系统的软件是以嵌入式Linux为基础的。本方案中的嵌入式Linux采用的是Samsung公司提供的MiziLinux,内核的版本是kernel22.4.18。监控系统

9、的软件大致分为:图像采集驱动程序,WEB服务器程序,图像数据发送的CGI程序,以及客户端的网页(包括图像显示的ActiveX控件和Java Applet)这四大部分。3.1 图像采集驱动程序图像的采集工作是由M I360和ZC0302完成的,ZC0302与ARM9的连接是通过USB口实现的,所以,驱动程序的主要工作实际上就是实现ZC0302USB接口的linux驱动。按照Linux的驱动设计2 的标准,填写USB驱动框架,不难构造出相应的驱动程序,但最大的困难如前所述,厂家未给出ZC0302详细的技术规范,而且从未提供过Linux平台下的驱动,甚至连For X86的也没有,相关芯片的控制字无法

10、获得。为了解决之一问题,笔者只好在W indows平台下,用USB Sniffer对ZC0302进行USB总线的协议分析,从而获得相关的信息。不过最近在互联网上,已经有人在发布这款ZC0302的linux驱动,可以看出程序的作者采用与笔者相同的协议分析方法,来获取相关信息。现给出程序片断如下。/3Include headers3/#include/3Include declarations3/#include zc030 x_v4l.h#include zc030 x_cameras.h/3Include camera3/#include zc030 x_reg.h/3Check if the

11、 palette is valid3/inline int zc030 x_v4l_checkpalette(int Palette)return(Palette=V I DEO_PALETTE_RGB24)|(Palette=V I DEO_PALETTE_RGB32)|0;/3Get the palette name3/33 1994-2006 China Academic Journal Electronic Publishing House.All rights reserved.http:/武 汉 工 业 学 院 学 报2006年inline const char3zc030 x_v

12、4l_getpalettename(int Palette)if(Palette=V I DEO_PALETTE_RGB24)return V I DEO_PALETTE_RGB24;if(Palette=V I DEO_PALETTE_RGB32)return V I DEO_PALETTE_RGB32;if(Palette=V I DEO_PALETTE_UYVY)return V I DEO_PALETTE_UYVY;if(Palette=V I DEO _PALETTE_YUV422)return V I DEO_PALETTE_YUV422;return internal error

13、!;/3Get the depth of the pixel3/int zc030 x_v4l_getdepth(int Palette)if(Palette=V I DEO_PALETTE_RGB24)return 24;if(Palette=V I DEO_PALETTE_RGB32)return 32;if(Palette=V I DEO_PALETTE_UYVY)return 16;if(Palette=V I DEO _PALETTE_YUV422)return 16;return 0;3.2W EB服务器程序和图像数据的发送程序为了简化程序设计,WEB服务器在本方案中采用了Linu

14、x系统中常用的BOA,BOA是一种功能强大的web服务器,支持CGI,支持SSL和认证。使用时只需交叉编译一下,基本上不会出什么问题,一般只需修改配置文件boa.conf和mime.types即可。笔者的交叉编译环境用的是arm2linux2gcc23.3.2。图像数据的发送程序是本监控系统的核心,这部分代码实际上就是一个扩展的V4L程序,因为linux的标准V4L并不支持JPEG数据流,所以,本程序基本的思想遵循V4L标准,并加以扩展。对于数据流的发送,有几种方案选择,最基本的思路是,客户端的浏览器发送一次请求,web端回应一帧数据,如图5所示,这样的方式被称为Client Pull,这样做

15、的效率会很低。另外一种做法是,客户端与web端建立连接后,发出一次请求,而后web端源源不断的往客户端发送图像数据,直到客户端断开连接为止,这种做法被称为Server PUSH,Server PUSH势必大大提高网络的使用效率3,如图6所示。但由于ServerPUSH技术是网景(NetScape)公司提出,微软的IE并不支持,所幸还有两种方法实现Server PUSH,即Java Applet和ActiveX。笔者实现了这两种方法。下面给出基于ServerPUSH方式的发送端程序片断。/3GetData.cgi3/#include#include#include#include#include

16、#include#define FIRSTCHAR 1#define LASTCHAR 3#define HEADER 43 1994-2006 China Academic Journal Electronic Publishing House.All rights reserved.http:/3期孙江波:基于嵌入式Linux的视频监控系统设计Content2type:multipart/x2mixed2replace;boundary=W I NBONDBOUDARYrn#define RANDOMSTR I NGW I NBONDBOUDARYrn#define ENDSTR I NG

17、W I NBONDBOUDARYrn#define CTSTR I NG Content2type:image/jpeg rnrn#define STATUS_HEAD Content2Type:text/plainrnrnintmain(int argc,char3argv)struct stat fi;char fn32;caddr_t fp;unsigned char x;int fd;if(write(STDOUT_ FI LENO,HEADER,strlen(HEADER)=-1)exit(0);x=FIRSTCHAR;while(1)if(write(STDOUT_FI LENO,

18、RANDOMSTR I NG,strlen(RANDOMSTR I NG)=-1)exit(0);if(write(STDOUT_FI LENO,CTSTR I NG,strlen(CTSTR I NG)=-1)exit(0);sprintf(fn,Cam I mgC%c.jpg,(char)x);if(fd=open(fn,O_RDONLY)=-1)continue;fstat(fd,&fi);fp=mmap(NULL,fi.st_ size,PROT_READ,MAP_PR I VATE,fd,0);if(fp=(caddr_t)-1)exit(0);if(write(STDOUT_FI

19、LENO,(void3)fp,fi.st_size)=-1)exit(0);munmap(fp,fi.st_size);close(fd);if(write(STDOUT_FI LENO,RANDOMSTR I NG,strlen(RANDOMSTR I NG)=-1)exit(0);if(write(STDOUT_FI LENO,STATUS_HEAD,strlen(STATUS_HEAD)=-1)exit(0);if(write(STDOUT _ FI LENO,STATUS,strlen(STATUS)=-1)exit(0);/3if(x=LASTCHAR)goto thats_it;3

20、/if(x=LASTCHAR)x=FIRSTCHAR;else+x;3.3 客户端网页的编写客户端的Java Applet和Active X程序主要的内容就是接受网络数据,并对JPEG数据解码,已经有很多相关讨论,在嵌入式应用中不过是要求把程序写得更优化、更精简一些罢了,在此不赘述了。4 监控端浏览本系统在监控端使用浏览器对监控现场进行监控,浏览器所运行的平台与嵌入式WEB服务器所运行的平台独立,浏览远程视频时不需要任何第三方软件,从而实现了跨平台。使用本系统在监控端浏览视频的界面如图7所示。图7 监控界面5 结束语基于嵌入式WEB技术的网络视频监控系统的53 1994-2006 China

21、Academic Journal Electronic Publishing House.All rights reserved.http:/武 汉 工 业 学 院 学 报2006年设计与实现,与传统的网络视频监控系统相比,本系统的主要特点在于:服务器的设计基于嵌入式WEB技术;支持动态IP,可以直接连入以太网,能够即插即看;用户无需使用专用软件,仅用浏览器即可观看,更具有广阔的市场前景。参考文献:1 邹思轶.嵌入式Linux设计与应用M.北京:清华大学出版社,2002.65285.2 AlessandroRubini,JonathanCorbet.LinuxDevice Drivers,Se

22、cond Edition M.OReilly,2004.3 黃文增.嵌入式DHCP网路监视系统研究与实作 EB/OL.http:/www.ntut.edu.tw/wwwoaa/journal/3821/382126.pdf,2006202220.DES IGN OF A CCTV SECUR ITY SYSTEM BASED ON ARM2LI NUXSUN Jiang2bo(Department of Electrical and Infor mation Engineering,Wuhan Polytechnic University,Wuhan 430023,China)Abstract

23、:This paper brings for ward a design project about network video security system based on ARM2Linux.Ituses cheap ZC0302 JPEG encoder and high performance ARM9 processor,so it has very high cost/perfor manceratio.ARM2Linux is a stability and reliable OS running on S3C2410.It is esasy to write application programme.Key words:network video;M I360;embeded system;video capture;USB driver63 1994-2006 China Academic Journal Electronic Publishing House.All rights reserved.http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 施工组织

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁