基于嵌入式Linux的视频监控系统设计.pdf_第1页
基于嵌入式Linux的视频监控系统设计.pdf_第2页
基于嵌入式Linux的视频监控系统设计.pdf_第3页
基于嵌入式Linux的视频监控系统设计.pdf_第4页
基于嵌入式Linux的视频监控系统设计.pdf_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第25卷第3期 2006年9月 武 汉 工 业 学 院 学 报 Journal of Wuhan Polytechnic University Vol125No13 Sep12006 收稿日期 2006202227 作者简介 孙江波 19742 男 湖北省武汉市人 讲师 文章编号 1009 4881 2006 03 0031 06 基于嵌入式L i nux的视频监控系统设计 孙江波 武汉工业学院 电气信息工程系 湖北 武汉430023 摘 要 设计了以ARM2Linux为核心的网络视频监控系统 采用价格低廉的JPEG压缩芯片 ZC0302 配以高性能的ARM9 CPU 具有极高的性价比 在S3C2410上运行ARM2Linux 使得系 统稳定可靠 应用程序的编制得到极大的简化 关键词 网络视频监控 嵌入式系统 视频采集 USB驱动程序 中图分类号 TP 277 文献标识码 A 0 引言 视频监控系统是安全防范系统的重要组成部 分 是一种防范能力较强的综合系统 视频监控 以其直观 方便 信息内容丰富而广泛应用于许多 场合 随着现代科学技术的不断发展特别是网络 带宽 计算机处理能力和存储容量的迅速提高以 及各种实用视频信息处理技术的出现 视频监控 技术也有长足的发展 视频监控进入了全数字化 的网络时代 日益受到人们的重视和关注 但基 于PC机的视频监控录像系统 在实际工程使用过 程中 也暴露出一些不足 主要是系统工作的不稳 定性 近年来 嵌入式技术的发展 基于嵌入式技 术的远程网络视频监控 开始逐渐取代传统的视 频监控系统 无论从可靠性还是功耗上 都超过以 往的视频监控系统 其主要原理是 视频服务器 内置一个嵌入式Web服务器 采用嵌入式实时操 作系统 摄像机等传感器传送来的视频信息 由 高效压缩芯片压缩 通过内部总线传送到内置的 Web服务器 网络上用户可以直接用浏览器观看 Web服务器上的图像信息 授权用户还可以控制 传感器的图像获取方式 这类系统可以直接连入 以太网 省掉了各种复杂的电缆 具有方便灵活 即插即看等特点 同时 用户也无需使用专用软 件 仅用浏览器即可 1 系统概述 整个系统由前端网络摄像机 视频服务器 监 控中心服务器 远程监控客户端三部分构成 其 中监控中心服务器的主要功能为 接收多路前端 机的视频编码数据 保存在本地硬盘上 同时进行 解码 并显示多路解码图像 点播保存视频数据 供客户端查询 控制前端机的各项参数等 远程 监控客户端的主要功能有 通过客户端工具对采 集的图像进行实时监控 查询和检索分析 本文 主要讨论该系统的前端网络摄像机 视频服务器 部分 嵌入式视频监控系统示意图如图1所示 1994 2006 China Academic Journal Electronic Publishing House All rights reserved 武 汉 工 业 学 院 学 报2006年 图1 嵌入式视频监控系统示意图 2 系统的硬件设计 前端网络摄像机的硬件结构如图2所示 其主 图2 嵌入式WEB服务器的硬件结构 要由CPU芯片 音视频编码芯片 Flash芯片 SDRAM内存 以太网络接口组成 1 其中 CPU采 用Samsung公司的S3C2410A嵌入式处理器 音 视频编码芯片完成对从摄像头传送过来的视频数据 的压缩和编码 为了降低嵌入式网络摄像机的成 本 本方案没有采用高端的压缩芯片 如MPEG24 H1264等 而是采用了最简单的MJPEG压缩 压 缩后 的 视 频 数 据 通 过 以 太 网 进 行 网 络 传 输 ZC0302是中星微电子有限公司的一款JPEG压缩 芯片 性价比极高 它在一块单芯片上实现了JPEG 压缩 USB1 1设备端接口 以及CMOS图像传感芯 片接口 无须外接SDRAM 它支持VGA和CIF标准 的CMOS图像芯片 VGA图像的处理速度可到15 fps CIF图像的处理速度可达45 fps 支持对CIS芯 片的22wire控制 支持对图像进行自动增益控制和 自动白平衡 支持4种图像质量 支持2 AC和2DC Huffman码表 支持标准的JPEG数据流输出 ZC0302的结构图如图3所示 图3 ZC302结构 在本方案中 CMOS图像传感器 CIS 选择美光 的M I360 这是一片VGA标准 30 万像素 的感光 芯片 感光面积为1 4英寸 有效像素为649H 489 V 它采用低噪声技术 噪声等级达到CCD标准 它 同样是一颗价格非常低廉的芯片 能与ZC0302压 缩芯片实现无缝连接 由于中星微电子并未对外公 开ZC0302的详细技术资料 这对本方案的实施带 来很 大 困 难 使 我 们 无 法 正 确 使 用M I360与 ZC0302 通过笔者的多次实验 终于成功的实现了 M I360与ZC0302的连 接 摄像头电路原理 图 23 1994 2006 China Academic Journal Electronic Publishing House All rights reserved 3期孙江波 基于嵌入式Linux的视频监控系统设计 如图4所示 图4 摄像头电路原理图 CPU单元的S3C2410A是一款常见的ARM9处 理器 价格便宜 主频在200M左右 由于ARM9有 极高的性能 完全能够胜任JPEG的压缩编码工作 因此 直接把CPU与CIS相连 然后进行软件JPEG 编码 也未尝不是一种方案 但势必大大增加软件的 开发难度 权衡利弊 本方案舍去了这种做法 系 统扩展了一片64M SDRAM和 一片8M FLASH 10 M 100 M以太网接口用的是DM9000 使网络的传 输速度大大提高 3 系统软件设计 本视频监控系统的软件是以嵌入式Linux为基 础的 本方案中的嵌入式Linux采用的是Samsung 公司提供的MiziLinux 内核的版本是kernel22 4 18 监控系统的软件大致分为 图像采集驱动程序 WEB服务器程序 图像数据发送的CGI程序 以及 客户端的网页 包括图像显示的ActiveX控件和 Java Applet 这四大部分 3 1 图像采集驱动程序 图像的采集工作是由M I360和ZC0302完成 的 ZC0302与ARM9的连接是通过USB口实现的 所以 驱动程序的主要工作实际上就是实现ZC0302 USB接口的linux驱动 按照Linux的驱动设计 2 的标准 填写USB驱动框架 不难构造出相应的驱 动程序 但最大的困难如前所述 厂家未给出 ZC0302详细的技术规范 而且从未提供过Linux平 台下的驱动 甚至连For X86的也没有 相关芯片的 控制字无法获得 为了解决之一问题 笔者只好在 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 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 武 汉 工 业 学 院 学 报2006年 inline const char3zc030 x v4l 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 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 2 W EB服务器程序和图像数据的发送程序 为了简化程序设计 WEB服务器在本方案中采 用了Linux系统中常用的BOA BOA是一种功能强 大的web服务器 支持CGI 支持SSL和认证 使用 时只需交叉编译一下 基本上不会出什么问题 一般 只需修改配置文件boa conf和mime types即可 笔者的交叉编译环境用的是arm2linux2gcc23 3 2 图像数据的发送程序是本监控系统的核心 这部分 代码实际上就是一个扩展的V4L程序 因为linux 的标准V4L并不支持JPEG数据流 所以 本程序基 本的思想遵循V4L标准 并加以扩展 对于数据流 的发送 有几种方案选择 最基本的思路是 客户端 的浏览器发送一次请求 web端回应一帧数据 如图 5所示 这样的方式被称为Client Pull 这样做的效 率会很低 另外一种做法是 客户端与web端建立 连接后 发出一次请求 而后web端源源不断的往客 户端发送图像数据 直到客户端断开连接为止 这种 做法被称为Server PUSH Server PUSH势必大大提 高网络的使用效率 3 如图6所示 但由于Server PUSH技术是网景 NetScape 公司提出 微软的IE 并不支持 所幸还有两种方法实现Server PUSH 即 Java Applet和ActiveX 笔者实现了这两种方法 下面给出基于ServerPUSH方式的发送端程序 片断 3GetData cgi 3 include include include include include include define FIRSTCHAR 1 define LASTCHAR 3 define HEADER 43 1994 2006 China Academic Journal Electronic Publishing House All rights reserved 3期孙江波 基于嵌入式Linux的视频监控系统设计 Content2type multipart x2mixed2replace boundary W I NBONDBOUDARY r n define RANDOMSTR I NG W I NBONDBOUDARY r n define ENDSTR I NG W I NBONDBOUDARY r n define CTSTR I NG Content2type image jpeg r n r n define STATUS HEAD Content2Type text plain r n r n intmain int argc char3argv struct stat fi char fn 32 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 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 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 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 if x LASTCHAR x FIRSTCHAR else x 3 3 客户端网页的编写 客户端的Java Applet和Active X程序主要的 内容就是接受网络数据 并对JPEG数据解码 已 经有很多相关讨论 在嵌入式应用中不过是要求 把程序写得更优化 更精简一些罢了 在此不赘 述了 4 监控端浏览 本系统在监控端使用浏览器对监控现场进行监 控 浏览器所运行的平台与嵌入式WEB服务器所 运行的平台独立 浏览远程视频时不需要任何第三 方软件 从而实现了跨平台 使用本系统在监控端 浏览视频的界面如图7所示 图7 监控界面 5 结束语 基于嵌入式WEB技术的网络视频监控系统的 53 1994 2006 China Academic Journal Electronic Publishing House All rights reserved 武 汉 工 业 学 院 学 报2006年 设计与实现 与传统的网络视频监控系统相比 本系 统的主要特点在于 服务器的设计基于嵌入式WEB 技术 支持动态IP 可以直接连入以太网 能够即插 即看 用户无需使用专用软件 仅用浏览器即可观 看 更具有广阔的市场前景 参考文献 1 邹思轶 嵌入式Linux设计与应用 M 北京 清华大学出版社 2002 65285 2 AlessandroRubini JonathanCorbet Linux Device Drivers Second Edition M O Reilly 2004 3 黃文增 嵌入式DHCP网路监视系统研究与 实作 EB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论