凌凱,冷建偉
(天津理工大學 天津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系統。