嵌入式远程视频监控系统的研究
2014-02-27万丛王帮奇
万丛, 王帮奇
嵌入式远程视频监控系统的研究
万丛, 王帮奇
(武汉船用电力推进研究所,武汉 430064)
视频监控系统是安防系统的重要组成部分,是一种防范能力较强的综合系统。本设计在视频监控系统软硬件平台、视频的采集、数据的传输以及终端的显示等方面作了深入的研究,重点讨论了视频信息的采集、视频信息的解编码技术和视频数据的网络传输及客户终端的设计和实现。最后对本系统进行了整体测试,研究结果基本实现了设计所要求的功能,对基于嵌入式的网络视频监控系统的研究具有一定的借鉴参考作用。
嵌入式系统 视频采集 数据传输 视频监控
0 引言
视频监控系统已广泛应用到工业生产、银行、交通等领域。现阶段的视频监控系统主要是基于嵌入式的网络视频监控系统,它的优点是前端一体化,视频信息数字化,信息传输的网络化[1]。
本设计是一个成本低、可靠性高、通用性强的嵌入式网络视频监控系统。研究包括利用USB摄像头采集视频信息,然后经过基于S3C2440的视频信号处理传输模块对视频信息编解码处理,进行传输的准备,最后通过网络编程,压缩的视频信息在IP网络中使用流媒体技术传输,客户端则在PC上通过Web浏览器监控从Web服务器上传来的视频信息[2]。在软件设计上完成了软件系统平台的搭建、USB摄像头驱动开发和视频采集模块的编程、网络通信及客户端设计。这些工作对嵌入式网络视频监控系统的设计与实现有一定的应用价值和参考借鉴意义。
1 视频监控系统总体设计
图1为系统总体功能构架示意图。系统中摄像头采用的是中芯微ZC301USB摄像头芯片。主控芯片采用的是三星的S3C2440A,扩展了RS232串口通信电路,JTAG接口电路,以太网网卡接口电路。摄像头先采集视频信息再通过处理器进行信息编解码处理,由构建的嵌入式服务器与客户端的PC机上的浏览器进行数据传输通信,实现远程视频监控。系统的总体设计分为两大部分,系统的硬件平台的设计和软件环境的搭建及驱动程序的开发设计。
2 硬件平台设计
系统硬件设计采用基于ARM9的嵌入式模块作为系统的中心处理模块[3]。中心处理模块通过USB接口连接摄像装置,并驱动摄像装置采集视频信号,经过相应的处理后通过以太网进行传输。系统的硬件架构以及信号流向如图2所示:
本设计主要由USB摄像头,ARM9芯片及其外围接口电路,终端视频信号接收、显示终端构成。首先USB摄像头采集视频信息,通过USB接口将数据传输到由ARM芯片及其外围电路组成的核心模块进行处理,将原始的视频信息处理成可传输、储存、再处理或显示的视频信号,再通过以太网传输到终端PC上直接显示或是储存,完成实现实时监控的功能。
2.1 主控模块设计
该系统中,需要5 V和3.3 V对芯片、外设及元器件供电,要得到3.3 V电压,可以采用DC-DC转换器来将5 V转换成3.3 V。系统的电源电路原理图见图3。
系统中复位电路主要作用有两个:系统完成上电后复位,还有就是系统在运行时用户通过按键复位功能,由简单的RC电路构成就可构成复位电路,而要实现功能更完善的复位电路,就必须使用较复杂的复位电路,如下图所示:
图3 电源电路原理图
图4 复位电路原理图
2.2 USB摄像头接口设计
本设计中采用的摄像头装置是中芯微ZC301芯片的摄像头。S3C2440A芯片内部提供了USB接口,只要在芯片外部扩展USB接口电路,再与USB摄像头相接就可实现USB摄像装置的硬件连接。
ZC301图像处理芯片像素可达130W,可实现VGA级别(640×480)的压缩视频信号输出。而且USB2.0接口传输速度较快,可达480Mbp/s,完全能够满足分辨率为640×480,15 fps/s的VGA级别压缩视频数据传输。
图5 USB接口电路原理图
2.3 以太网网卡接口设计
本文设计网卡控制器采用的是DM9000,它是集成度较高的以太网MAC控制器,具有超低功耗、功率降低和电源故障模式,兼容3.3 V和5 V的输入输出电压。DM9000是一款非常简单的网卡控制器芯片,在嵌入式操作系统中可以比较容易的移植到该系统下的接口驱动程序。M9000的网卡接口电路图如图6所示。
3 软件程序设计
3.1 视频采集功能的设计与实现
视频的采集与传输显示是通过视频采集的各个功能模块相互通信来实现的,各个功能模块的工作流程是首先将视频模块的信息采集过来,然后再通过压缩模块将视频信息压缩,放入视频图像缓冲区,等待Web服务器的响应,然后再根据客户端的Web浏览器提出请求,建立服务器与客户端的连接后就在网页上显示视频信息给客户,整个视频采集系统系统分为五大模块,分别是视频采集模块、视频压缩模块、视频图像缓冲模块、网络服务器模块和视频图像显示模块[4]。各个功能模块的逻辑如图7所示。
视频采集模块是通过v4l编程来对视频信息采集、然后通过软件技术对视频信息编解码,这个功能是视频压缩模块来完成的,将压缩的数据发送放入视频图像缓冲模块中,等待网络服务器的提取,最后作为视频图像显示模块的Web浏览器来提取并显示信息。
由于视频监控要不断的获取视频信息,这个信息量是相当庞大的,因此对于视频信息的压缩编码处理是非常必要的。H.264是常用的视频编码标准,有很高的压缩性能和很好的网络适应性。因此设计中选择了基于H.264的编码技术来进行视频的压缩编码。本文采用Linux下开源高效的基于FFmpeg的H.264作为本系统的视频编码器,对USB采集的视频数据进行编码。
3.2 视频传输功能的实现
USB摄像头输出的数据流被成功接收后,要做的工作就是让摄像头采集的视频信号能够在网络上传输并最终显示在监控客户端上,这就需要设计一个网络视频服务器来负责接收监控终端的视频信号传输请求,然后读取视频信号并通过特定的网络协议来传输视频信号。
根据本设计的要求和软硬件环境,视频服务器与客户端之间采用TCP/IP协议进行通讯,使用C语言编写Socket套接字程序来实现视频数据的传输。在Linux中的网络编程是通过Socket接口来进行的。可以把Socket接口是一种特殊的I/O,也是一种文件描述符。每一个socket的表示是用一个半相关描述{协议,本地地址,本地端口},而一个完整的表示则是用一个相关描述{协议,本地地址、本地端口、远程地址、远程端口}。使用Socket调用后,只是产生了一个可以使用的Socket描述,但此时还不能进行通信,还需要调用其他的函数,直到Socket中所指的结构需要的信息都得到时,才能建立起连接。Socket网络编程的基本流程如图8所示。
4 系统测试及总结
本系统测试的主要工作是摄像头采集视频信息经过ARM目标板处理信息之后,发送到网络服务器,再在Web浏览器中显示出监控画面。整个系统测试步骤如下:1)连接USB摄像头,以及目标板上的网线;2)给系统上电,启动ARM操作系统;3)通过Web浏览器登录用户网页,进入视频监控页面;4)读取监控画面。
在系统测试开始时,点击左侧的监控按钮,就开始获取视频信息。视频信息在客户端网页显示出来了,实现了视频监控的目的,达到了本设计的预期目标,具有一定的实际应用价值。
[1] 刘富强. 数字视频监控系统开发及应用[M]. 北京:机械工业出版社,2003,(3):15-17.
[2] 陈绩. ARM9嵌入式技术及Linux高级实践教程[M]. 第l版. 北京:北京航空航大学出版社,2005.
[3] 杜春雷. ARM体系结构与编程[M]. 北京:清华大学出版社, 2003.
[4] 谭云福, 张建忠. 基于s3c2410微控制器的视频采集系统设计[J]. 电子器件, 2008, 31(4):1237-1240.
[5] 郑伟, 徐荣华, 王钦若. 嵌入式Linux系统CGI程序设计技术[J]. 单片机与嵌入式系统应用, 2004, (10):21-23.
[6] 袁宇丽. 基于HTML网页的Web信息提取研究[D].电子科技大学, 2006.
Research on Embedded Remote Video Monitoring System
Wan Cong,Wang Bangqi
(Wuhan Institute of Marine Electric Propulsion, Wuhan 430064, China)
TH311
A
1003-4862(2014)07-0010-04
2014-03-31
万丛(1988-),男,硕士。研究方向:控制工程。