基于ARM11嵌入式远程监控系统的分析与设计
摘要:为了更好的降低监控成本,提高系统布防的简易性;同时提高传输速度,达到更好的监控效果。采用三星公司S3C6410开发板,及其自带功能强大的ARM11处理器来设计监控系统,利用开源软件mjpg_stream,GCC编译工具,搭建windows和linux下的网络监控系统。实验结果表明,该系统采集图像清晰,达到预期的设计目标。
本文引用地址:http://www.amcfsurvey.com/article/201609/304490.htm嵌入式远程监控系统简介及应用前景:嵌入式远程监控就是本地PC机,通过访问http开头的网络地址,对远程终端监控设备进行控制,监控人员不用亲临被监控区域的一类视频监控系统设备。嵌入式监控设备避免了恶劣环境对人的影响和监控的不利因素,同时也可以做到据点监控,参数修改,达到各种灾害的提前控制。可广泛用于军事监控,道路监控,学校宿舍监控等。传统的监控设备有以下一些不足之处:1)普遍采用拨号方式进行数据传输,占用大量网络资源,使用成本较高,工作效率低,可靠性不高和传输速率低,不适合更广泛的推广。2)硬件的要求较高,更新换代周期较长,体积庞大,不适合长久的发展线路。3)系统的针对性也较强,产品的各种技术手段,参数都处于半封闭或封闭状态,可移植性较差。
嵌入式远程视频监控系统的优点:1)嵌入式视频监控系统易于移植,能够在linux系统和windows下同时开发;2)对监控设备要求较低,只需要能够联网,并且只需要安装IE等浏览器;3)各种不同版本的监控设备设备和软件层出不穷,跟新较快,能够实时的满足监控要求;4)丰富的人机交换界面。除了以上几点外,还有包括能够克服恶劣环境,加上红外模块能够实现夜晚的监控,监控设备图形界面的丰富,达到控制的多样化等不同优点。
1 嵌入式远程监控系统的硬件组成
任何系统设备,都是由硬件和软件组成。本文审计使用的嵌入式系统是由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视频格式的摄像头,并非任何一种都可以的,否则将会出现错误,本文后面就遇到过,本文采用的是炫魔摄像头。
2 系统的总体设计
2.1 整体的框图设计
如图1所示,该监控系统前端采用中星微电子芯片的摄像头,给开发板加上红外模块可以采用专用的红外摄像头,采集得到红外图像;核心设备:采用较先进的以ARM11为核心处理器的S3C6410开发板,ARM11微处理器具有处理数据频率高,传输速度快——64位的数据通道,可选的浮点运算,支持各种不同的计算机语言(C,C++等)等特点。
2.2 ping通开发板和PC机
保证开发板和PC机处于同一个网段,只有在同一个网段的情况下,双方才能够很好的数据互通,在这里我们采用开发板和PC在一个路由器下,运用ping这个命令来实现(ping不仅仅是windows下的命令,在unix和linux下也有这个命令,它是一个通信协议,是ip协议的一部分,也是tcp协议的一部分,Ping在Windows下是自带的一个可执行命令。利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。应用格式:Ping+IP地址),最终ping通的结果如图所示,如果没有ping通的话,开发板和PC将不能够实现互通,图2是ping通的图像显示。
2.3 交叉编译环境的搭建
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.
2.4 mjpg—stream库的移植
根据mjpg_stream源代码,默认的网络输出端口:output[0]=“output_http.so—port 8080”;默认的输入端口:char*input=“in put_uvc.so--resolution 640x480--fps 5--device/dev/video0”;而不是每一个开发板的活动端口都是video0,因此我们需要重新进行编译。采用之前的编译工具GCC编译器,利用make和makefile(make和makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作)命令进行编译,形成可执行文件也就是如图所示的mjpg_streamer文件格式,即是开发板当中的可执行文件。前面我们已经提到,所采用的摄像头一定要支持UVC格式的摄像头,图3就是不支持UVC和活动端口不连接的时候的错误提示,图4就是正确的提示信息。
评论