凌凯,冷建伟
(天津理工大学 天津300384)
基于WiFi的嵌入式视频监控系统的设计
凌凯,冷建伟
(天津理工大学 天津300384)
为实现对商店、车库等小范围区域的监控,设计了一个基于嵌入式Linux的视频监控系统,基于ARM+Linux的嵌入式系统作为监控系统的服务器,完成视频数据的采集、存储和传输;以PC、手机或者PDA等设备作为客户端,通过WiFi连接服务器获取视频数据。本文先简要介绍了WiFi技术,而后详细阐述了嵌入式视频监控服务器的搭建,最后给出了用客户端接收视频的演示成果。经过验证,系统能够获得稳定、清晰、流畅的视频图像。
嵌入式;Linux;WiFi;视频监控
在现代社会,视频监控的重要性是不言而喻的,它已被广泛应用于建筑、交通甚至是航天等各个领域。随着人们安全意识的提高,楼道、家庭、商店等小范围地区对视频监控的需求也日益突出。在大型的建筑群中,一般会采用基于DVR 或NVR外加较为复杂的组网技术构成的专用视频监控系统,这样的系统成本高,开发周期长,不适于用作小范围区域的视频监控。
近些年,嵌入式技术发展浪潮的日益高涨使得嵌入式设备应用的领域也越来越宽,成本也越来越低。因此本设计了一个基于ARM+Linux的嵌入式监控系统,以搭载了Linux操作系统的 ARM作为核心处理器、SDRAM作为内存、NandFlash作为外存。由于嵌入式设备一般具有小巧、便携、资源受限等特点,传统的有线连接通信方式受到严重的限制,因此这里采用基于WiFi的无线通信方式。蓝牙曾经是被业内广泛看好的一种无线通讯技术,但是由于成本和传输距离等原因,到目前为止并未在生产生活中大规模使用。新兴的WiFi技术以其低成本、信号强、组网方便、传输距离较远等优点迅速成为了嵌入式设备通信的一种重要方式。随着人们对它的研究的日益深入,WiFi用本设计中视频数据的传输是完全合理的。
该系统结构图如图1所示,核心控制器采用ARM11芯片,操作系统、文件系统和应用程序固化在NandFlash中。UVC摄像头连接在ARM板的USB口上,并借由操作系统内的摄像头驱动程序在系统中产生摄像头设备节点[1],视频服务器程序读取设备节点,并向外提供视频服务,PC和手机通过WiFi连接上服务器之后通过访问视频服务器程序来获取视频流数据。系统的总体结构图如图1所示。
图1 系统总体结构图
WiFi是基于IEEE 802.11标准建立的无线通信技术。近年来移动互联网技术的飞速发展,使得WiFi技术在沉积多年之后于2012年爆发[2]。它是当今使用最广的一种无线网络传输技术,特别是在智能手机和PDA等嵌入式设备中有十分卓越的表现。
2.1WiFi的认证和加密
WiFi网络的安全性是由认证和加密来保证的。二者概念上的区别如下:认证表示允许只有被许可的用户才能连接到网络,通俗地说就是需要输入密码才能连接WiFi;加密的目的是保证数据的保密性和完整性,以免在数据的传输过程中被有心人士进行拦截和破解。它的认证/加密方法历经了3个阶段,即初级阶段、过渡阶段、成熟阶段。当前最新的认证方式为WPA2,它是WPA的第二个版本,引入了更加安全可靠的加密方式CCMP。
2.2WiFi网卡的两种工作模式
无线WiFi网卡可以工作于两种不同的模式:AP模式和STA模式。
AP,即无线接入点,俗称“WiFi热点”。工作于此模式的网卡是一个无线WiFi网络的创建者,可以向别的设备提供无线网络服务[3]。此模式需要认证服务器,用于认证接入的设备。组网示意图如图2所示。
图2 无线网卡工作于AP模式
STA,即工作站模式。任何连接到无线网络中的终端都可以视为一个站点,此时终端设备中的无线WiFi网卡用于接收无线信号让本机能够连入网络。网络连接示意图如图3所示。
图3 无线网卡工作于STA模式
在运行Linux的ARM板上连接好无线网卡和摄像头,并将网卡置于AP模式。正常工作时,系统中的视频服务器程序将读取摄像头采集到的视频数据并对客户端程序发出的请求做出响应。服务器的搭建流程如下:
3.1添加驱动支持
本设计采用的内核版本为Linux-3.4.2,视频采集模块为带有DSP芯片的USB摄像头,其芯片为0V7740,支持3.3V供电,采用的无线网卡型号为Atheros AR9271,内核中对这个硬件都有驱动支持,简单地配置后就能够正常使用。比如配置无线网卡驱动,在内核源码根目录下输入make menuconfig,配置选项为:
配置完成后,启动系统后输入ifconfig即可在系统中看到wlan0接口。摄像头驱动配置完后在Linux系统中可看到/ dev/video0设备节点,应用程序读取摄像头数据都是通过操作该文件实现的[4]。
3.2移植Hostapd
依前文所述,网卡需工作于AP,AP模式需要认证服务器的支持,负责对终端设备的接入和认证管理工作。Hostapd的作用就是用软件模拟AP功能,即我们常说的“软AP”。交叉编译完 Hostpad后生成两个可执行文件 hostapd和hostapd_cli,hostapd为服务器程序,hostapd_cli为客户端程序,hostapd_cli可通过socket连接上hostapd。通过建立配置文件(/etc/hostapd.conf文件)建立“WiFi热点”,认证和加密选用WPA2方式。其他的参数,如频率、信号、beacon包时间间隔、是否发送beacon包、是否响应探针请求、mac地址过滤条件等,也是通过配置文件实现的。根据hostapd的官方文档,在系统中建立如下的配置文件。
以上参数中 ctrl_interface指定了 hostapd_cli连接hostapd需要的 socket文件,interface指定了网络接口为wlan0,ssid(热点名称)为CCTV,wpa_passphrase(热点密码)为passwd,认证方式为PSK,加密方式CCMP。
3.3添加DHCP服务
依照上述方法设置之后,设备已经可以搜索到建立的热点CCTV,但是还不能连接上,需要移植DHCP服务,才能给设备分配IP地址。从因特网上下载DHCP的源码包,交叉编译安装之后移植到嵌入式Linux中。同样,DHCP也需要配置文件(/etc/dhcpd.conf)才能正确工作,该配置文件在源码中已提供,可以自己添加如下配置段:
以上配置指定wlan0网卡的IP地址、DNS、路由的地址都为 192.168.1.1。分配的 IP地址段从 192.1685.1.10~192.168.1.19,即最多只能连入10个设备。
3.4移植视频服务程序
Linux系统可运行一些开源免费的视频服务程序,本设计采用一款功能强大的视频服务程序—MJPG-streamer。它采用模块化的设计思路,共有3个输入组件和3个输出组件。本设计的输入组件采用input_uvc,它的主要功能是获取摄像头拍摄的视频数据并将其压缩编码;输出组件采用output_http,它负责对客户端的请求做出响应[5]。MJPG-streamer是服务器端获取视频数据最重要的应用软件,它处理视频数据的流程图如图4所示。
图4 MJPG-streamer数据处理流程图
MJPG-streamer默认提供了通过浏览器和网络播放器的访问的方式,用户直接在浏览器中输入IP地址和端口即可观察视频。考虑到容用性,本设计摒弃了默认的访问形式,通过自己编写的客户端程序来访问MJPG-streamer。客户端程序采用跨平台的Qt库编写[6],可编写能运行于Windows、Linux、Android和IOS的程序。图5为在客户端显示对某实验室的监控画面。
图5 客户端程序接收画
随着“互联网+”时代的到来,视频监控作为一项重要的工具几乎会涉及了各行各业。本文设计了一个基于WiFi传输的嵌入式视频监控系统,适用于商店、家庭、车库等小范围地区[7]。硬件结构简单,易于安装,且软件多采用开源免费的程序,降低了成本。并实现了基于Windows、Linux、Android三大系统的客户端程序,使得对视频数据的访问变得方便快捷。
[1]张群,杨絮,贾思强等.基于嵌入式VxWorks USB摄像头驱动的实现[J].信息与电子工程,2012(4):500-504.
[2]刘潍清,方鸣.地铁中的无线通信系统及其制式[J].现代城市轨道交通,2013(2):16-20.
[3]李媛.基于WIFi无线网络的煤矿井下胶轮车交通控制系统[D].太原:太原理工大学,2013.
[4]徐向前.基于Linux的USB摄像头的探索使用和编程实现[J].科技创新导报,2009(36):13-14.
[5]陈书益,黄永慧.开源视频服务器软件MJPG-streamer的研究和应用[J].电子设计工程,2012(5):172-176.
[6]韦东山,嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2009.
[7]温挺华,林琴,王强,等.基于Wi-Fi的移动视频监控平台[J].电子设计工程,2015,23(4):130-132.
Design of video monitoring system based on embedded system with WiFi
LING Kai,LENG Jian-wei
(Tianjin University of Technology,Tianjin 300384,China)
In order to provide the video monitoring of small-range areas like stores and garages,the design of video monitoring system based on embedded system with WiFi is expounded.The video server,which realizes the collection and transmission of the video data,mainly consists of ARM and Linux.PCs or smartphones can either be adopted to connect to the server via WiFi and show the videos.In this paper,WiFi was firstly introduced;then the construction of the embedded video monitoring server was stated and a demonstration of video data receiving by the client was attached in the end.after verification,the videos can be played with good stability,clarity and fluency.
embedded;Linux;WiFi;video monitoring
TN911.73
A
1674-6236(2016)16-0177-03
2015-08-13稿件编号:201508063
凌 凯(1990—),男,安徽黄山人,硕士研究生。研究方向:嵌入式Linux系统。