基于ARM的仓库视频监控系统的设计和实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于ARM 的仓库视频监控系统的设计和实现
韩 君
(浙江国际海运职业技术学院 浙江舟山 316021)
摘 要:设计一种基于Intel PXA255的ARM +Linux 组成的仓库视频监控系统,该系统通过以太网实现对仓库现场情景的监控。首先介绍了基于ARM 的仓库视频监控的优势,其次介绍硬件平台,并给出视频监控的具体实现方案,最后重点介绍如何实现在PXA255和PC 监控机间图像的采集和传输。该系统运行稳定,PC 监控机能准确地接收采集到的图像。这里将ARM 与USB 摄像头的视频监控结合起来并应用于仓库的安防中,系统价格便宜,工作稳定。
关键词:ARM PXA255;Linux ;视频监控;图像采集
中图分类号:TP277 文献标识码:B 文章编号:10042373X (2008)242043202
Design and R ealization of Storehouse Video Monitoring System B ased on ARM
HAN J un
(Zhejiang International Maritime College ,Zhoushan ,316021,China )
Abstract :A storehouse video monitoring system composed by ARM +Linux based on the Intel PXA255has been designed.Storehouse scene monitoring is realized through Ethernet.At first ,this paper introduces the superiority of storehouse video monitoring based on ARM.Then ,it introduces the hardware platform ,offers the realization plan of video monitoring in detail.Finally ,this paper emphases on how to realize the gathering and transmission of image between PXA255and PC monitoring machine.This system operates well ,and the PC monitor could receive the image gathered ing ARM and the USB camera video monitoring and applying in the storehouse guards against peacefully ,the price of system is cheap and the work is stable.
K eywords :ARM ;PXA255;Linux ;video monitoring ;image acquisition
收稿日期:2008204218
传统的监控系统是将其前端设备与中心端设备用电缆简单的进行连接,或者利用传统无线通道传输。由于其系统庞大,因此软硬件资源得不到充分利用。随着多媒体技术、计算机和网络技术的发展和网络带宽的迅速扩大,同时人们对于安全、防盗和提高工作效率等方面意识的增强,出现了将数字视频监控技术与网络技术相结合的监控体系。本系统中所使用的摄像头为市面上常见的U SB 摄像头,价格便宜而且性能稳定。同时,这种监控方式传输可靠,使用方便,因此可以大范围使用在仓库等地点[1,2]。
嵌入式Linux 操作系统同目前广泛应用的嵌入式操作系统WinCE ,VxWorks 等相比,具有可移植性好、网络功能强、完全开放源代码等优点。PXA255是因特尔公司开发的一款采用A RM 结构,面向高性能、低功耗设备的嵌入式处理器,它的硬件结构使得其适合做图像采集与运算处理。
综合以上考虑,利用Intel PXA255的ARM +Linux 组成的嵌入式视频监控系统具有现实意义和实用价值。
1 系统硬件平台
整个系统是在以Intel PXA255为核心的开发板上实现的。PXA255是一个32位处理器,它的主频可达400M Hz ,工作电压为1.3V ,功耗小,节约电能,价格
低。它内部集成了多种外设控制模块,在实际使用时可以根据需要进行裁减。开发板配备了丰富的硬件资源,以太网部分采用的是CS8900以太网控制器。U SB 部分采用专为嵌入式领域研制的C Y67300作为U SB 主控制器,该芯片可作为主口控制,也可作为从口控制芯片,内嵌有8051微控制器和RAM ,支持全速和高速两种模式。这样可以方便地使用U SB 摄像头来进行图像的采集。U SB 摄像头选用的是使用了OV511芯片的网眼V2000摄像头,它是Linux 内核公开支持的摄像头芯片。
2 系统总体设计和Linux 内核的配置2.1 系统总体设计
仓库视频监控系统主要分为ARM (PXA255)、U SB 摄像头、远程PC 监控电脑几部分,其结构框图如
图1所示[3]。系统的整个工作流程如下:PXA255是整
《现代电子技术》2008年第24期总第287期 计算机应用技术
个系统的“大脑”,它通过Linux 操作系统的调度,实现对系统的整体管理。远程的PC 监控电脑若发出了启动监控的指令,PXA255通过网口解析收到的指令,并打开摄像头V2000开始进行视频监控,采集的图像通过以太网口传送到远程的PC 监控电脑。PC 监控电脑将图片文件保存起来,这些被保存起来的文件将有2个作用:可以供监控人员通过IE 浏览器观察监控现场的图像;可以作为图像数据保存起来并在必要的时候在进行重新调用
。
图1 系统结构方框图
2.2 Linux 内核的配置
在嵌入式Linux 的版本方面,选用Linux2.4.18。由于Linux2.4.18已经能够很好的支持OV511系列的U SB 摄像头,在使用make menuconfig 配置内核时,一
定要加上内核对U SB 摄像头的支持。具体步骤为:在U SB Support 的U SB Multimedia 中选择U SB OV511Camera Support ,在Multimedia devices 中选择Video for Linux ,内核被配置成支持Video4Linux ,它使得可
以使用Linux 内核为视频采集设备提供的一系列编程接口[4,5]。
3 视频监控中的图像采集软件流程
系统在基于PXA255的ARM 芯片和嵌入式Linux 系统平台上采用Video4Linux 编程来获取图
像[6]。由于在截取到图像后将使用J PEG 软件压缩,因此必须移植一个针对Linux 环境的jpeg 26b 的J PEG 库压缩包,在进行了交叉编译以后,会生成J PEG 库文件libjpeg.so.62,程序将会使用这个J PEG 库文件和相应
的头文件来完成J PEG 压缩。Video4Linux 是Linux 中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供了一系列的接口函数,这些视频设备包括当今市场上流行的U SB 摄像头、TV 卡和视频捕捉卡等。对于U SB 摄像头而言,其驱动程序中需要提供一
些基本的I/O 操作接口函数(如open ,write ,read ,ioctl ,clo se 等)来实现与设备文件的“交流”,它们定义
在st ruct file_operations 中,这样当应用程序对设备文件进行诸如:open ,write 等操作时,Linux 内核将通过file_operations 结构访问驱动程序提供的函数。采集
程序实现过程:调用函数f d =open ()打开视频设备对应设备文件/dev/video0,接着分别调用V IDIOC G 2CA P ,V IDIOC GPICT 来获得设备相关信息、读取图像
信息,然后利用V IDIOCSWIN 和V IDIOCGMBU F 分别设置图片的高、宽和申请后面需要使用的缓冲区,在
完成了设备的初始化和mmap ()设置内存映射区后,就可以进行帧采集[7]。在帧采集环节采用的方法是双帧轮流采集,当处理器对前一帧数据进行处理时,摄像头可以进行下一帧的采集,这样能大大提高采集效率。为了使用这种双帧采集的方法,在程序初始化时,必须设置变量f rame 来对frame_using [frame ]进行前一帧与当前帧的标识,在每帧采集完成后,用buffer [f rame ]=vd.map +vd.mbuf.off set s [frame ]计算帧数据的地址,通过f rame =(f rame +1)%2来控制双帧的顺序。每帧采集完成后调用J PEG 库libjpeg.so.62,开始对其进行J PEG 压缩,这样做的目的是减少图像在以太网的传输时间以及节省监控电脑一侧保存时所占用的空间大小,设置采集到的图片格式为240×320,经过压缩后的大小约为6kB ,采集帧的速度约24f/s 。最后数据被送入以太网,发送到PC 监控电脑。摄像头图像采集流程如图2所示
。
图2 USB 摄像头采集流程图
4 图像的以太网传输流程
图像的以太网传输是采用SOC KET 编程来完成
的。SOC KET 接口是TCP/IP 网络的A PI ,SOC KET 接口定义了许多函数或者例程,它可以被用来开发TCP/IP 网络上的应用程序。传输程序采用的方式是
服务器和客户协同工作模式,它们之间是面向连接的工作方式[8]。
服务器的工作流程[9,10]:首先使用socket 函数创建一个流套接字,该套接字是指定给这个服务进程的一个开放的系统资源。调用bind 函数以及之前创建的套接字使得其与本机地址以及一个本地端口号绑定起来,然后使用listen 函数在之前创建的套接字上进行监听,它
(下转第48页)
嵌入式技术韩 君:基于ARM 的仓库视频监控系统的设计和实现