凌凱,冷建偉
(天津理工大學 天津300384)
基于WiFi的嵌入式視頻監(jiān)控系統(tǒng)的設計
凌凱,冷建偉
(天津理工大學 天津300384)
為實現(xiàn)對商店、車庫等小范圍區(qū)域的監(jiān)控,設計了一個基于嵌入式Linux的視頻監(jiān)控系統(tǒng),基于ARM+Linux的嵌入式系統(tǒng)作為監(jiān)控系統(tǒng)的服務器,完成視頻數(shù)據(jù)的采集、存儲和傳輸;以PC、手機或者PDA等設備作為客戶端,通過WiFi連接服務器獲取視頻數(shù)據(jù)。本文先簡要介紹了WiFi技術,而后詳細闡述了嵌入式視頻監(jiān)控服務器的搭建,最后給出了用客戶端接收視頻的演示成果。經(jīng)過驗證,系統(tǒng)能夠獲得穩(wěn)定、清晰、流暢的視頻圖像。
嵌入式;Linux;WiFi;視頻監(jiān)控
在現(xiàn)代社會,視頻監(jiān)控的重要性是不言而喻的,它已被廣泛應用于建筑、交通甚至是航天等各個領域。隨著人們安全意識的提高,樓道、家庭、商店等小范圍地區(qū)對視頻監(jiān)控的需求也日益突出。在大型的建筑群中,一般會采用基于DVR 或NVR外加較為復雜的組網(wǎng)技術構成的專用視頻監(jiān)控系統(tǒng),這樣的系統(tǒng)成本高,開發(fā)周期長,不適于用作小范圍區(qū)域的視頻監(jiān)控。
近些年,嵌入式技術發(fā)展浪潮的日益高漲使得嵌入式設備應用的領域也越來越寬,成本也越來越低。因此本設計了一個基于ARM+Linux的嵌入式監(jiān)控系統(tǒng),以搭載了Linux操作系統(tǒng)的 ARM作為核心處理器、SDRAM作為內存、NandFlash作為外存。由于嵌入式設備一般具有小巧、便攜、資源受限等特點,傳統(tǒng)的有線連接通信方式受到嚴重的限制,因此這里采用基于WiFi的無線通信方式。藍牙曾經(jīng)是被業(yè)內廣泛看好的一種無線通訊技術,但是由于成本和傳輸距離等原因,到目前為止并未在生產(chǎn)生活中大規(guī)模使用。新興的WiFi技術以其低成本、信號強、組網(wǎng)方便、傳輸距離較遠等優(yōu)點迅速成為了嵌入式設備通信的一種重要方式。隨著人們對它的研究的日益深入,WiFi用本設計中視頻數(shù)據(jù)的傳輸是完全合理的。
該系統(tǒng)結構圖如圖1所示,核心控制器采用ARM11芯片,操作系統(tǒng)、文件系統(tǒng)和應用程序固化在NandFlash中。UVC攝像頭連接在ARM板的USB口上,并借由操作系統(tǒng)內的攝像頭驅動程序在系統(tǒng)中產(chǎn)生攝像頭設備節(jié)點[1],視頻服務器程序讀取設備節(jié)點,并向外提供視頻服務,PC和手機通過WiFi連接上服務器之后通過訪問視頻服務器程序來獲取視頻流數(shù)據(jù)。系統(tǒng)的總體結構圖如圖1所示。
圖1 系統(tǒng)總體結構圖
WiFi是基于IEEE 802.11標準建立的無線通信技術。近年來移動互聯(lián)網(wǎng)技術的飛速發(fā)展,使得WiFi技術在沉積多年之后于2012年爆發(fā)[2]。它是當今使用最廣的一種無線網(wǎng)絡傳輸技術,特別是在智能手機和PDA等嵌入式設備中有十分卓越的表現(xiàn)。
2.1WiFi的認證和加密
WiFi網(wǎng)絡的安全性是由認證和加密來保證的。二者概念上的區(qū)別如下:認證表示允許只有被許可的用戶才能連接到網(wǎng)絡,通俗地說就是需要輸入密碼才能連接WiFi;加密的目的是保證數(shù)據(jù)的保密性和完整性,以免在數(shù)據(jù)的傳輸過程中被有心人士進行攔截和破解。它的認證/加密方法歷經(jīng)了3個階段,即初級階段、過渡階段、成熟階段。當前最新的認證方式為WPA2,它是WPA的第二個版本,引入了更加安全可靠的加密方式CCMP。
2.2WiFi網(wǎng)卡的兩種工作模式
無線WiFi網(wǎng)卡可以工作于兩種不同的模式:AP模式和STA模式。
AP,即無線接入點,俗稱“WiFi熱點”。工作于此模式的網(wǎng)卡是一個無線WiFi網(wǎng)絡的創(chuàng)建者,可以向別的設備提供無線網(wǎng)絡服務[3]。此模式需要認證服務器,用于認證接入的設備。組網(wǎng)示意圖如圖2所示。
圖2 無線網(wǎng)卡工作于AP模式
STA,即工作站模式。任何連接到無線網(wǎng)絡中的終端都可以視為一個站點,此時終端設備中的無線WiFi網(wǎng)卡用于接收無線信號讓本機能夠連入網(wǎng)絡。網(wǎng)絡連接示意圖如圖3所示。
圖3 無線網(wǎng)卡工作于STA模式
在運行Linux的ARM板上連接好無線網(wǎng)卡和攝像頭,并將網(wǎng)卡置于AP模式。正常工作時,系統(tǒng)中的視頻服務器程序將讀取攝像頭采集到的視頻數(shù)據(jù)并對客戶端程序發(fā)出的請求做出響應。服務器的搭建流程如下:
3.1添加驅動支持
本設計采用的內核版本為Linux-3.4.2,視頻采集模塊為帶有DSP芯片的USB攝像頭,其芯片為0V7740,支持3.3V供電,采用的無線網(wǎng)卡型號為Atheros AR9271,內核中對這個硬件都有驅動支持,簡單地配置后就能夠正常使用。比如配置無線網(wǎng)卡驅動,在內核源碼根目錄下輸入make menuconfig,配置選項為:
配置完成后,啟動系統(tǒng)后輸入ifconfig即可在系統(tǒng)中看到wlan0接口。攝像頭驅動配置完后在Linux系統(tǒng)中可看到/ dev/video0設備節(jié)點,應用程序讀取攝像頭數(shù)據(jù)都是通過操作該文件實現(xiàn)的[4]。
3.2移植Hostapd
依前文所述,網(wǎng)卡需工作于AP,AP模式需要認證服務器的支持,負責對終端設備的接入和認證管理工作。Hostapd的作用就是用軟件模擬AP功能,即我們常說的“軟AP”。交叉編譯完 Hostpad后生成兩個可執(zhí)行文件 hostapd和hostapd_cli,hostapd為服務器程序,hostapd_cli為客戶端程序,hostapd_cli可通過socket連接上hostapd。通過建立配置文件(/etc/hostapd.conf文件)建立“WiFi熱點”,認證和加密選用WPA2方式。其他的參數(shù),如頻率、信號、beacon包時間間隔、是否發(fā)送beacon包、是否響應探針請求、mac地址過濾條件等,也是通過配置文件實現(xiàn)的。根據(jù)hostapd的官方文檔,在系統(tǒng)中建立如下的配置文件。
以上參數(shù)中 ctrl_interface指定了 hostapd_cli連接hostapd需要的 socket文件,interface指定了網(wǎng)絡接口為wlan0,ssid(熱點名稱)為CCTV,wpa_passphrase(熱點密碼)為passwd,認證方式為PSK,加密方式CCMP。
3.3添加DHCP服務
依照上述方法設置之后,設備已經(jīng)可以搜索到建立的熱點CCTV,但是還不能連接上,需要移植DHCP服務,才能給設備分配IP地址。從因特網(wǎng)上下載DHCP的源碼包,交叉編譯安裝之后移植到嵌入式Linux中。同樣,DHCP也需要配置文件(/etc/dhcpd.conf)才能正確工作,該配置文件在源碼中已提供,可以自己添加如下配置段:
以上配置指定wlan0網(wǎng)卡的IP地址、DNS、路由的地址都為 192.168.1.1。分配的 IP地址段從 192.1685.1.10~192.168.1.19,即最多只能連入10個設備。
3.4移植視頻服務程序
Linux系統(tǒng)可運行一些開源免費的視頻服務程序,本設計采用一款功能強大的視頻服務程序—MJPG-streamer。它采用模塊化的設計思路,共有3個輸入組件和3個輸出組件。本設計的輸入組件采用input_uvc,它的主要功能是獲取攝像頭拍攝的視頻數(shù)據(jù)并將其壓縮編碼;輸出組件采用output_http,它負責對客戶端的請求做出響應[5]。MJPG-streamer是服務器端獲取視頻數(shù)據(jù)最重要的應用軟件,它處理視頻數(shù)據(jù)的流程圖如圖4所示。
圖4 MJPG-streamer數(shù)據(jù)處理流程圖
MJPG-streamer默認提供了通過瀏覽器和網(wǎng)絡播放器的訪問的方式,用戶直接在瀏覽器中輸入IP地址和端口即可觀察視頻??紤]到容用性,本設計摒棄了默認的訪問形式,通過自己編寫的客戶端程序來訪問MJPG-streamer??蛻舳顺绦虿捎每缙脚_的Qt庫編寫[6],可編寫能運行于Windows、Linux、Android和IOS的程序。圖5為在客戶端顯示對某實驗室的監(jiān)控畫面。
圖5 客戶端程序接收畫
隨著“互聯(lián)網(wǎng)+”時代的到來,視頻監(jiān)控作為一項重要的工具幾乎會涉及了各行各業(yè)。本文設計了一個基于WiFi傳輸?shù)那度胧揭曨l監(jiān)控系統(tǒng),適用于商店、家庭、車庫等小范圍地區(qū)[7]。硬件結構簡單,易于安裝,且軟件多采用開源免費的程序,降低了成本。并實現(xiàn)了基于Windows、Linux、Android三大系統(tǒng)的客戶端程序,使得對視頻數(shù)據(jù)的訪問變得方便快捷。
[1]張群,楊絮,賈思強等.基于嵌入式VxWorks USB攝像頭驅動的實現(xiàn)[J].信息與電子工程,2012(4):500-504.
[2]劉濰清,方鳴.地鐵中的無線通信系統(tǒng)及其制式[J].現(xiàn)代城市軌道交通,2013(2):16-20.
[3]李媛.基于WIFi無線網(wǎng)絡的煤礦井下膠輪車交通控制系統(tǒng)[D].太原:太原理工大學,2013.
[4]徐向前.基于Linux的USB攝像頭的探索使用和編程實現(xiàn)[J].科技創(chuàng)新導報,2009(36):13-14.
[5]陳書益,黃永慧.開源視頻服務器軟件MJPG-streamer的研究和應用[J].電子設計工程,2012(5):172-176.
[6]韋東山,嵌入式Linux應用開發(fā)完全手冊[M].北京:人民郵電出版社,2009.
[7]溫挺華,林琴,王強,等.基于Wi-Fi的移動視頻監(jiān)控平臺[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系統(tǒng)。