基于ARM—Linux的网络视频监控系统的设计
2016-11-02邱秀荣王彩峰
邱秀荣 王彩峰
摘要:该文提出了一种基于ARM-Linux的网络视频监控系统,以嵌入式微处理器S3C2440和嵌入式Linux作为控制核心,将摄像头采集的视频信息,经过网络传输,实现对现场的实时监控。实验表明:该系统图像采集稳定,监控效果良好,具有较好的应用前景。
关键词:ARM;Linux;视频监控;图像采集
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)23-0031-03
Abstract: A network video monitor system based on ARM-Linux is proposed in this paper. The S3C2440 processor and Linux operating system was taken as the control core,the video signal captured from camera is transported through the network transmission,achieving real-time monitoring on-site.Experimental results show the stability of image acquisition and the effect is good. It has high practical prospects.
Key words:ARM; Linux ;Video Monitor;Image capture
随着数字图像技术、嵌入式[1]计算机技术和通信技术的快速发展,嵌入式图像监控系统已成为当前监控领域的一个全新的研究热点[2-8]。它所涉及的领域包括工业控制、电子消费、网络通信、科学研究、军事国防、医疗卫生、航天航空等方方面面。嵌入式网络视频监控系统融合传统视频监控技术与现代信息技术为一体,和当前世界信息技术的发展紧密结合,其中核心部分就是一个可以直接连入以太网的视频设备,提供实时的视频数据采集、压缩和传输的功能。嵌入式系统作为日益成熟的平台,在此方面的应用已经非常普遍。本文提出了一种 以 A R M1 1为核心芯片,基于linux的网络视频监控系统,实现无人时待机,有陌生人入侵时开机监控,并将监控视频信息传至服务器,完成对测控现场和测试设备的网络视频监控任务。
1 系统设计
系统总体设计内容有三块:视频及指令无线传输、视频多播及组播、云台设计及控制。该系统采用的是基于ARM9的S3C2440微处理器,通过在微处理器上运行Linux操作系统,构建嵌入式服务器,接受来自前端摄像头的视频流,再进行压缩编码, 通过TCP/IP网络服务器协议传送实现监控图像到主机进行接收,同时进行解码发送到显示设备,最终达到嵌入式网络视频监控的设计。整体结构如图1所示。
2 硬件平台
硬件部分包括外围设备和嵌入式ARM微处理器,此系统主要由CPU芯片、FLASH芯片、SDRAM芯片、中星zc301摄像头等硬件部分组成,其中CPU部分用的是三星公司的ARM9系列微处理器S3C2440芯片,它是整个硬件系统的核心部分。S3C2440微处理器集成了大量的功能,该芯片结构如图2所示。
3 软件平台
3.1嵌入式Linux操作系统
嵌入式Linux是一种自由和开放源码的类Unix操作系统。目前存在着许多不同的Linux系统。Linux可安装在各种各样的计算机硬件设备中,是最先进的操作系统,全球上运算最快的十台超级计算机中采用的都是Linux操作系统 [7]。
Linux系统具有源代码开放、内核可裁减性强、良好的移植性、集成了TCP/IP协议和较好的网络支持等特点,因此本文选用Linux嵌入式系统作为整个系统软件开发的平台。
3.2 Linux平台下内核的移植
本系统采用ARM9开发平台,所以依靠ARM9硬件平台的代码都在arm文件夹内。根目录下面只需要修改Makefile工程文件,对该文件修改的主要目的是产生vmLinux文件的内核模块[3]。
3.3 zImage的编译与移植
1)在网站上下载config-2440.tar.gz 源码包文件复制到某一目录下,然后再将其解压:
3.4 USB摄像头驱动的实现
随着CMOS和CCD图像传感器技术的快速发展,USB摄像头因为它高性价比、接口统一,并且支持多种高质量图像输出等优点,被视频会议、视频传感器和手持设备器等设备采用。
USB摄像头由传感器芯片与图像处理芯片组成。传感器芯片负责采集图像,图像处理芯片负责压缩和主机的通信。本设计使用的芯片为中星公司的微zc301系列芯片。开发平台为Sumsung公司的S3C2440开发板,操作系统为Linux系统,交叉编译环境为arm-none-linux-gnueabi-gcc。
4 系统的测试
4.1 系统的调试
1)将USB 摄像头接入开发板中去,如果驱动正常,将会在/dev目录下生成video0 的设备名字,通过ls命令查看,有这个设备名字的话,就说明USB摄像头驱动正常。否则,需要继续进行调试。
2)将连接好我们开发板PC机的网线口,并把电脑的IP地址设置为:192.168.1.160,使之与开发板构建网络,进行实时传输摄像头所采集到的图像到电脑端。
3)获取开发板本地IP地址,在终端下输入以下命令得到IP地址:
#ifconfig eth0 192.168.1.6 up
4)在开发板打开开关之前,将USB摄像头插在开发板的usb中的host主接口处。
5)打开电脑的终端,同时启动打开开发板的电源,在宿主机下输入启动Linux系统的命令:
#run bootlinux
启动之后后按ENTER键进入到Linux系统的界面,同时通过开发板的LCD屏幕可以看到Linux系统的界面。
6)在开发板的终端上输入以下命令启动采集应用程序uvc_streamer :
4.2 系统的测试
在电脑上浏览摄像头上的图像,在电脑上,打开接收采集视频画面数据的应用程序viewer.exe,并设置软件的IP地址为:192.168.1.6,然后点击connect,如果程序正常启动的话,就可以观看到开发板传回的视频流图像画面,如图所示:
5 结论
本文设计了一种以ARM9为核心芯片的网络视频监控系统,在商丘工学院物联网实验室中进行了实地测试,结果表明,该系统图像采集稳定,监控效果良好,具有较好的应用前景。
参考文献:
[1] 韦东山. 嵌入式Linux应用开发完全手册[J]. 北京:人民邮电出版社,2013.
[2] 赵炯. Linux内核完全剖析[M]. 北京:机械工业出版社,2013.
[3] 杜伟龙,曹江涛. 基于ARM-Linux无线视频监控系统的设计[J].测控技术,2015,34(3):109-112.
[4] 任克强,刘苏,谢斌.基于ARMll和Linux的网络视频监控系统[J].电视技术,2014,38(5):156-159.
[5] 刘堂尘. 基于ARM 的远程视频监控系统设计[J].计算机测量与控制,2012,20(8):2127-2132.
[6] 王宏志,宇皓林. 基于ARM—Linux远程视频监控系统的设计[J].吉林大学学报:理学版,2014,52(1):103-107.
[7] 刘冬.基于Qt4和OpenCV的嵌入式视频监控系统[J].现代电子技术,2013(8):104-108.
[8] 陈玉坤,李波.基于嵌入式Linux的Ad—Hoc网络视频传输研究[J].测控技术,2011,30(1):83-86.