刘海桥,刘 林,张志勇,张筱松,杨 晨,丁 召
(贵州大学 电子信息学院,贵州 贵阳 550025)
基于ARM11嵌入式远程监控系统的分析与设计
刘海桥,刘 林,张志勇,张筱松,杨 晨,丁 召
(贵州大学 电子信息学院,贵州 贵阳 550025)
为了更好的降低监控成本,提高系统布防的简易性;同时提高传输速度,达到更好的监控效果。采用三星公司S3C6410开发板,及其自带功能强大的ARM11处理器来设计监控系统,利用开源软件mjpg_stream,GCC编译工具,搭建windows和linux下的网络监控系统。实验结果表明,该系统采集图像清晰,达到预期的设计目标。
嵌入式系统;ARM;网络监控;GCC
嵌入式远程监控系统简介及应用前景:嵌入式远程监控就是本地PC机,通过访问http开头的网络地址,对远程终端监控设备进行控制,监控人员不用亲临被监控区域的一类视频监控系统设备[1]。嵌入式监控设备避免了恶劣环境对人的影响和监控的不利因素,同时也可以做到据点监控,参数修改,达到各种灾害的提前控制。可广泛用于军事监控,道路监控,学校宿舍监控等。传统的监控设备有以下一些不足之处:1)普遍采用拨号方式进行数据传输,占用大量网络资源,使用成本较高,工作效率低,可靠性不高和传输速率低,不适合更广泛的推广[2]。2)硬件的要求较高,更新换代周期较长,体积庞大,不适合长久的发展线路[3]。3)系统的针对性也较强,产品的各种技术手段,参数都处于半封闭或封闭状态,可移植性较差[4]。
嵌入式远程视频监控系统的优点:1)嵌入式视频监控系统易于移植,能够在linux系统和windows下同时开发;2)对监控设备要求较低,只需要能够联网,并且只需要安装IE等浏览器;3)各种不同版本的监控设备设备和软件层出不穷,跟新较快,能够实时的满足监控要求;4)丰富的人机交换界面。除了以上几点外,还有包括能够克服恶劣环境,加上红外模块能够实现夜晚的监控,监控设备图形界面的丰富,达到控制的多样化等不同优点。
任何系统设备,都是由硬件和软件组成。本文审计使用的嵌入式系统是由ARM11开发板,摄像头,开源软件以及PC机所构成。
1)S3C6420开发板:ARM是一款低功耗、高性价比的RSIC处理器,可广泛应用于移动电话和通用处理等领域;S3C6410为2.5 G和3 G通信服务提供了优化的硬件性能,内置强大的硬件加速器:包括运动视频处理、音频处理、2D加速、显示处理和缩放等;S3C6410集成了一个MFC(Multi-Format video Codec)支持MPEG4/H.263/H.264编解码和VC1的解码,能够提供实时的视频会议以及NTSC和PAL制式的CVBS输出;S3C6410处理器内置一个采用先进技术的3D加速器,支持OpenGL ES 1.1/2.0和D3DM API,能实现4M triangles/s的3D加速;S3C6410包含了优化的外部存储器接口,该接口能满足在高端通信服务中的数据带宽要求。且具有性能优越的处理器——ARM11,性能高,处理频率快,具有强大的ARM指令集体系结构,对视频监控的速度和画面质量有着很大的提高。
2)PC机:文中采用的是联想G470笔记本电脑,安装了IE浏览器。主要是作为显示设备。
3)摄像头:摄像头的选取一定是要摄像头支持UVC视频格式的摄像头,并非任何一种都可以的,否则将会出现错误,本文后面就遇到过,本文采用的是炫魔摄像头。
如图1所示,该监控系统前端采用中星微电子芯片的摄像头,给开发板加上红外模块可以采用专用的红外摄像头,采集得到红外图像;核心设备:采用较先进的以ARM11为核心处理器的S3C6410开发板,ARM11微处理器具有处理数据频率高,传输速度快——64位的数据通道,可选的浮点运算,支持各种不同的计算机语言(C,C++等)等特点。
图1 监控系统的总体框图Fig.1 Structure diagram of the monitoring system
保证开发板和PC机处于同一个网段,只有在同一个网段的情况下,双方才能够很好的数据互通,在这里我们采用开发板和PC在一个路由器下,运用ping这个命令来实现(ping不仅仅是windows下的命令,在unix和linux下也有这个命令,它是一个通信协议,是ip协议的一部分,也是tcp协议的一部分,Ping在Windows下是自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping+IP地址),最终ping通的结果如图所示,如果没有ping通的话,开发板和PC将不能够实现互通,图2是ping通的图像显示。
图2 开发板和PC机联通Fig.2 Comunicate ARM and PC
GCC编译器:即不同处理器之间的交叉编译工具,Linux系统下的 GCC(GNU C Compiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。GCC是可以在多种硬体平台上编译出可执行程序的超级编译器,其执行效率与一般的编译器相比平均效率要高20%~30%。GCC编译器能将C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文件,如果没有给出可执行文件的名字,GCC将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而GCC则通过后缀来区别输入文件的类别,一般情况下windows下编译出来的后缀名为.c文件。
宿主机上安装的fedora发行版的Linux内核,这里使用的是ARM-linux-gcc 4.3.0.
根据mjpg_stream源代码,默认的网络输出端口:output[0]="output_http.so--port 8080";默认的输入端口:char*input="input_uvc.so--resolution 640x480--fps 5--device/dev/video0";而不是每一个开发板的活动端口都是video0,因此我们需要重新进行编译。采用之前的编译工具GCC编译器,利用make和makefile(make和makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作)命令进行编译,形成可执行文件也就是如图所示的mjpg_streamer文件格式,即是开发板当中的可执行文件。前面我们已经提到,所采用的摄像头一定要支持UVC格式的摄像头,图3就是不支持UVC和活动端口不连接的时候的错误提示,图4就是正确的提示信息。
图3 摄像头启动失败Fig.3 Camera boot failure
在mgpg—stream库移植完成以后,在终端中输入./mjpg_streamer-i"./input_uvc.so-d/dev/video2-y"-i"./input_uvc.so-d/dev/video2-y"-o "./output_http.so-w./www",并执行,用以开启摄像头和网络协议,同时执行输入输出。此处必须指出,采集设备一定是在检测之后,确定是哪一个设备的基础上选择修改的,执行,开发板将进入等待时间[5]。如图4所示。
图4 摄像头正常开启准备采集图像Fig.4 Cameras started to normal and ready to capture image
在确定摄像头正常开启,输入输出端口正常工作之后,看到开发板处于等待状态,在PC机输入http:192.168.1.20:8080/?action=stream&,可以浏览到正常画面,如图5所示。
图5 正常采集视频图像Fig.5 Normal to collect video image
Linux内置了标准的视频接口VideoForLinux(简称V4L),V4L支持数字摄像头的各种操作,应用程序只要遵循这个接口标准就可以使视频设备正常工作。本系统的软件设计遵循了结构化的编程思想,对重要的操作和数据进行了编译,形成可执行文件。重要的数据结构定义如下:
采集函数涵盖了设备采集图像的各种属性以及实际的数据帧缓冲区。在嵌入式Linux中,USB数字摄像头设备映射为设备文件/dev/video,在对其进行任何操作与对普通文件操作类似[6]。
要对设备进行操作,首先要对摄像头设备进行开启,"input_uvc.so--resolution640x480--fps5--device/dev/video2",然后就是对图形的格式大小,分辨率,颜色等就行设置,最后通过映射,发送采集命令,采集图像数据,采集的图像如上图5。
采用ARM11高速微处理器为核心,S3C6410开发板进行视频监控,移植mjpg-stream库到linux系统开发板中[7],构成了视频监控系统,较传统监控设备无论是在数据传输还是数据采集方面都有了很大的提高。能工作于各种艰苦的环境,处理速度较快,画面清晰,符合现代视频监控的要求,达到了实验目的,在此基础上做一些补充,将会具有广阔的工业应用空间。
[1]王建峰,刘红旗,李杰.一种基于Internet的远程监控系统[J].机电产品开发与创新,2002(3):7-9.
WANG Jian-feng,LIU Hong-qi,LI Jie.Internet-based remote monitoring system[J].Electromechanical Product Development and Innovation,2002(3):7-9.
[2]胡俊.工业以太网和基于Internet的远程视频监控[J].世界仪表与自动化,2002,6(2):43-45.
HU Jun.Industrial Ethernet and Internet-based remote video monitoring[J].World Instrumentation&Automation,2002,6(2):43-45.
[3]黄英,肖旭,魏急波.基于嵌入式Linux的远程监控系统的设计[J].电子工程师,2002,28(4):11-13.
HUANG Ying,XIAO Xu,WEI Ji-bo.Embedded Linux-based remote monitoring system design[J].Electronics Engineer,2002,28(4):11-13.
[4]孙文波,卢建军.基于Web的远程监控技术及比较[J].西安科技学院学报,2002,22(2):205-207.
SUN Wen-bo,LU Jian-jun.Web-based remote monitoring technology and comparative[J].Xi’an Technology Institute,2002,22(2):205-207.
[5]周强,闫大顺,许世范.基于Web技术的分布式监测系统设计与实现[J].仪器仪表学报,2001,22(3):278-279.
ZHOU Qian,YAN Da-shun,XU Shi-fan.Web-based technologies for distributed monitoring system design and implementation[J].Journal of Scientific Instrument,2001,22(3):278-279.
[6]叶俊华.基于ARM11的嵌入式视频处理终端设计[D].长沙:中南大学,2010.
[7]黄婷,黄伟.基于不同算法求解子问题的Benders分解法在无功规划中的应用[J].陕西电力,2013(3):23-26.
HUANG Ting,HUANG Wei.Application ofBenders decomposition based on different method to solve subproblems in reactive power planning[J].Shaanxi Electric Power,2013(3):23-26.
Design and analyse for embedded monitoring system based on ARM11
LIU Hai-qiao, LIU Lin, ZHANG Zhi-yong, ZHANG Xiao-song,YANG Chen, DING Zhao
(College of Electronic Information Engineering,Guizhou University, Guiyang 550025, China)
In order to reduce monitoring costs, and improve the simplicity of the system protection, while improving the transmission speed and achieve better control effect.An embedded monitoring system is designed based on Samsung S3C6410 development board, comes with a powerful ARM11 processor, using open source software mjpg-stream, GCC compiler tools,the system is built under windows and linux network monitoring system.The experimental results show that the system can collect the clearer image,and achieve the expected design goal.
embedded system;ARM;Network monitoring;GCC
10.14022/j.cnki.dzsjgc.2014.16.053
TN919.85
A
1674-6236(2014)16-0181-03
2013-11-02 稿件编号:201311015
贵州省科学技术基金(黔科合J字[2013]2129号)
刘海桥(1989—),男,江西九江人,硕士研究生。研究方向:集成电路设计,嵌入式软件开发。