無線Mesh網(wǎng)視頻監(jiān)控系統(tǒng)的研究與開發(fā)
摘 要 結(jié)合無線網(wǎng)絡(luò)視頻監(jiān)控的新要求,深入分析了無線網(wǎng)狀網(wǎng)的網(wǎng)狀拓撲、多跳鏈路、動態(tài)路由協(xié)議等關(guān)鍵技術(shù)和發(fā)展現(xiàn)狀。將無線自組織網(wǎng)絡(luò)按需距離矢量路由協(xié)議(AODV)應(yīng)用到嵌入式Linux平臺上,并在該平臺上提出了利用多個單獨視頻終端節(jié)點構(gòu)建基于無線Mesh網(wǎng)絡(luò)技術(shù)的視頻監(jiān)控網(wǎng)絡(luò)應(yīng)用方案。實驗證明這種方案是可行的。
關(guān)鍵詞 無線Mesh網(wǎng)絡(luò) AODV 視頻監(jiān)控 Linux
引 言
近年來,一種新一代無線通信網(wǎng)——無線Mesh網(wǎng)(Wireless Mesh Network,WMN)技術(shù)引發(fā)業(yè)界的重視和研究。由于它具備組網(wǎng)迅速、結(jié)構(gòu)靈活、傳輸速率大、可靠性強、成本低等突出的優(yōu)點,適應(yīng)了市場對網(wǎng)絡(luò)視頻監(jiān)控的新需求,勢必拓寬視頻監(jiān)控的應(yīng)用范圍。本文結(jié)合對網(wǎng)絡(luò)視頻監(jiān)控的需求,深入分析了無線Mesh網(wǎng)絡(luò)的技術(shù)特點,提出了一種利用多個單獨視頻終端節(jié)點構(gòu)建基于無線Mesh技術(shù)的視頻監(jiān)控系統(tǒng)。
1 無線Mesh網(wǎng)絡(luò)的關(guān)鍵技術(shù)
WMN作為移動Ad Hoc網(wǎng)絡(luò)(MANET)的一種特殊形態(tài),融合了WLAN和Ad Hoc網(wǎng)絡(luò)優(yōu)點,成為一種新型寬帶無線網(wǎng)絡(luò)。與傳統(tǒng)無線網(wǎng)絡(luò)技術(shù)相比,WMN的以下幾大關(guān)鍵技術(shù)更加適應(yīng)網(wǎng)絡(luò)視頻監(jiān)控的發(fā)展需要。
(1)網(wǎng)狀拓撲
WMN采用類似Internet的網(wǎng)狀拓撲,包含了無線Mesh路由器和無線Mesh客戶端兩類基本設(shè)備,即骨干網(wǎng)Mesh結(jié)構(gòu)和客戶端Mesh結(jié)構(gòu)。前者由無線路由器構(gòu)成Mesh骨干網(wǎng),提供一個大面積、高可靠性的覆蓋區(qū)域,無線客戶端通過路由器接入骨干網(wǎng)實現(xiàn)業(yè)務(wù)功能。后者通過在無線客戶端集成路由和配置功能,由多個客戶端直接構(gòu)成WMN。無論采用哪種結(jié)構(gòu),一個節(jié)點的數(shù)據(jù)都可通過相鄰多個具有路由功能的節(jié)點到達目標(biāo)節(jié)點,局部網(wǎng)絡(luò)的可靠性不受單一節(jié)點制約。網(wǎng)絡(luò)負載分散在多個節(jié)點實現(xiàn),有效減少了節(jié)點的功耗,使采用便攜式電源成為可能。上述特點使得WMN的骨干網(wǎng)和客戶端同時具備了良好的移動性,成為真正意義上的無線網(wǎng)絡(luò)。本文采用多個Mesh終端節(jié)點來組建無線Mesh網(wǎng)絡(luò),無需其他路由器。
(2)多跳鏈路
WMN的每個節(jié)點和鄰近節(jié)點互聯(lián),形成多跳鏈路(multi—hop),通過增加源節(jié)點和目標(biāo)節(jié)點間的路徑數(shù)量來提高網(wǎng)絡(luò)帶寬。多跳鏈路縮短了每個單跳的距離,一方面降低了信號衰減及外界干擾導(dǎo)致的誤碼和丟包;另一方面用低功率信號傳輸,減小不同路徑之間的信號互擾,提高了帶寬利用率和信道質(zhì)量。不同路徑間的信號互擾較小,當(dāng)使用定向天線時,同一頻段幾乎可在WMN中無限制復(fù)用,提高了頻譜利用率。因此,WMN與WLAN等單跳網(wǎng)絡(luò)相比,更易于實現(xiàn)寬帶視頻監(jiān)控等應(yīng)用。
(3)動態(tài)路由協(xié)議
網(wǎng)絡(luò)節(jié)點的移動性使WMN的拓撲結(jié)構(gòu)處于動態(tài)變化中,使有線網(wǎng)上的距離矢量協(xié)議和鏈路狀態(tài)協(xié)議無法應(yīng)用,只能用Ad Hoc網(wǎng)絡(luò)的協(xié)議。其驅(qū)動方式分表驅(qū)動路由協(xié)議和源啟動按需路由協(xié)議。前者在網(wǎng)絡(luò)中每個節(jié)點都維持一個到其他節(jié)點的相對穩(wěn)定的最新路由表,通過在網(wǎng)絡(luò)內(nèi)廣播路由更新信息反映網(wǎng)絡(luò)拓撲的變化,包括DSDV(目的序列距離矢量路由協(xié)議)和WRP(無線路由協(xié)議);后者只有當(dāng)節(jié)點需要時才建立并僅在通信過程中維持路由,通信完畢后路由自動拆除,通過不斷地發(fā)現(xiàn)路由、維持路由和拆除路由來適應(yīng)拓撲的動態(tài)變化,主要包括DSR(動態(tài)源路由協(xié)議)和AODV(Ad Hoc按需距離矢量路由協(xié)議)。已有仿真表明,基于DSR路由協(xié)議的WMN在相同負載條件下,與PMP星形網(wǎng)絡(luò)相比具有更大的吞吐量和更小的延時,能適應(yīng)傳輸監(jiān)控視頻的需求。AODV協(xié)議以DSDV為基礎(chǔ),采用DSR中的按需路由思想進行改進。
(4)雙工多址接入和分組交換技術(shù)
WMN的多跳鏈路要求節(jié)點應(yīng)具有中繼和轉(zhuǎn)發(fā)功能,要采用雙工通信實現(xiàn)數(shù)據(jù)的雙向傳輸。此外,考慮到WMN中的非對稱業(yè)務(wù)傳輸占主流,采用TDD(時分雙工)方式和基于OFDM的多址技術(shù)OFDMA,能夠充分利用WMN的特點。WMN承載了包括寬帶IP接入、視頻點播、網(wǎng)絡(luò)會議在內(nèi)的多種具有較高QoS要求的業(yè)務(wù),通常在網(wǎng)絡(luò)層使用分組交換實現(xiàn)。
2 基于WMN的嵌入式視頻監(jiān)控系統(tǒng)
考慮到業(yè)務(wù)功能的靈活性,本文實現(xiàn)一種較為通用的視頻監(jiān)控網(wǎng)絡(luò)平臺,采用圖1所示的由單個Mesh終端節(jié)點結(jié)構(gòu)搭建WMN。它由多個具有路由功能的無線終端節(jié)點互聯(lián)構(gòu)成Mesh網(wǎng),在各點接人范圍內(nèi)分布有多個視頻監(jiān)控終端,完成現(xiàn)場視頻采集和壓縮,并將視頻流經(jīng)最近的AP傳輸?shù)脚c監(jiān)控主機相連的目標(biāo)節(jié)點;監(jiān)控主機匯集了所有監(jiān)控終端的視頻流,進行解壓、處理和同步播放,同時實現(xiàn)本地存儲或通過Internet完成視頻轉(zhuǎn)發(fā)。[!--empirenews.page--]
2.1 硬件結(jié)構(gòu)
視頻監(jiān)控終端(客戶端)硬件結(jié)構(gòu)如圖2所示??紤]到監(jiān)控終端對視頻壓縮能力、無線移動特性和低功耗的要求,采用華恒公司的專用Freescale處理器iMx21作為主控芯片。它集成了支持H.264標(biāo)準(zhǔn)的硬件編解碼器和ARM9核,功耗僅為200 mW。復(fù)合視頻信號經(jīng)SAA7113的模擬端子輸入,經(jīng)過模數(shù)轉(zhuǎn)換、濾波和縮放后,生成BT.656格式的視頻,輸出到iMx21。它對視頻進行H.264格式的壓縮編碼,將數(shù)據(jù)流經(jīng)USB控制器擴展的USB2.O接口輸出到VT6656模塊。VT6656模塊包含一個集成了MAC和基帶處理器的芯片和一個集成了功率放大器和天線的芯片,支持IEEE 802.11b/g無線傳輸。
2.2 軟件結(jié)構(gòu)
視頻監(jiān)控終端軟件框圖如圖3所示。
(1)Linux操作系統(tǒng)
Linux操作系統(tǒng)采用成熟穩(wěn)定的2.6.23內(nèi)核。配置時根據(jù)硬件資源選擇Flash和SRAM的大小,在網(wǎng)絡(luò)子項中選擇對TCP/IP和IEEE 802.1l協(xié)議的支持,同時去除不支持的選項以縮減內(nèi)核體積,執(zhí)行編譯后得到Linux的內(nèi)核映像文件。
(2)底層設(shè)備驅(qū)動
Linux操作系統(tǒng)通過調(diào)用驅(qū)動程序的接口函數(shù)實現(xiàn)硬件訪問請求。SAA7113和VT6656的驅(qū)動程序分別控制相應(yīng)芯片完成視頻采集,USB接口控制和網(wǎng)絡(luò)傳輸控制功能,采用中斷觸發(fā)/響應(yīng)機制協(xié)調(diào)工作。
(3)上層應(yīng)用程序
應(yīng)用程序包括視頻采集、視頻壓縮、網(wǎng)絡(luò)傳輸和網(wǎng)絡(luò)訪問控制模塊。監(jiān)控終端通過網(wǎng)絡(luò)訪問控制程序接收來自主機的控制命令,并同步更新至配置文件保存。為保證指令的可靠傳輸,采用面向連接的TCP/IP協(xié)議在主機和終端間建立一個端到端的虛擬連接,并通過套接字編程實現(xiàn)。視頻采集程序負責(zé)啟動SAA7113的視頻采集和模數(shù)轉(zhuǎn)換,產(chǎn)生BT.656格式的視頻數(shù)據(jù)。視頻壓縮程序根據(jù)配置文件設(shè)定視頻壓縮格式(D1/VGA/CIF/QVGA/QCIF)、編碼方式(CAVLC/CABAC)、碼流(CBR/VBR)和碼率(最大10 Mb/s),以此為參數(shù)調(diào)用QPixe|提供的API,完成H.264視頻壓縮。網(wǎng)絡(luò)傳輸程序完成數(shù)據(jù)包的封裝,再經(jīng)AR5005傳送到鄰近的無線AP。為保證視頻流的實時性,采用UDP/IP和RTP/RTCP協(xié)議對壓縮數(shù)據(jù)進行封裝,使用IEEE 802.11b標(biāo)準(zhǔn)(最大ll Mb/s的數(shù)據(jù)傳輸率,室外500 m的通信距離)完成數(shù)據(jù)包的無線傳輸。[!--empirenews.page--]
(4)AODV在嵌入式Linux下的設(shè)計
AODV程序從邏輯上可分為兩個部分:系統(tǒng)接口和AODV算法模塊。
系統(tǒng)接口部分的主要功能是用Linux系統(tǒng)提供的各種接口,為實現(xiàn)AODV路由協(xié)議,提供所需的各種信息和服務(wù)。本文AODV程序用到的系統(tǒng)接口主要包括可加載模塊的管理、網(wǎng)絡(luò)過濾器Netfilter的使用、路由線程的產(chǎn)生、內(nèi)核路由表的修改,及定時器機制等。這部分是AODV程序與Linux系統(tǒng)交互的主要途徑。
如圖4所示,網(wǎng)絡(luò)過濾器由處于Linux協(xié)議棧不同點上的5個鉤子(hook)組成。它允許用戶定義內(nèi)核可加載模塊,來寄存回調(diào)函數(shù)在hook點上?;卣{(diào)函數(shù)屬于內(nèi)核可加載模塊的一部分,流經(jīng)hook點的數(shù)據(jù)分組將執(zhí)行回調(diào)函數(shù)定義的操作。在AODV協(xié)議的實現(xiàn)方案中,利用了3個hook點,分另0是NF_IP_LOCAL_OUT、NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING。在hook點NF_IP_LOCAL_OUT上,可以對所有本地輸出的數(shù)據(jù)分組進行處理;在hook點NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING上,分別對從其他節(jié)點來、到其他節(jié)點去的數(shù)據(jù)分組進行處理。
AODV算法模塊主要是執(zhí)行AODV協(xié)議邏輯。該算法模塊的目標(biāo)是根據(jù)通信的需求建立正確的路由,通過接收和處理AODV控制分組,來建立或改變路由。總的來說包括以下幾個模塊:路由建立、路由表記錄、鏈路檢測和路由維護。
如圖5所示,后臺進程aodvd實現(xiàn)的是路由功能模塊,即路由算法。它作為后臺進程在用戶空間執(zhí)行,負責(zé)與其他節(jié)點進行信息交互,建立并維護路由。kaodv.ko是一個內(nèi)核可加載模塊。在kaodv.ko中定義回調(diào)函數(shù),并將回調(diào)函數(shù)分別寄存在網(wǎng)絡(luò)過濾器的NF_IP_LOCAL_0UT、NF_IP_PRE_ROUTING和NF_IP_POST_ROUTING三個hook點上。本地輸出的數(shù)據(jù)分組發(fā)往網(wǎng)絡(luò)接口前,在決定其路由時,如果內(nèi)核路由表中存在與數(shù)據(jù)分組目的地址匹配的路由,數(shù)據(jù)分組就被投遞到相應(yīng)的網(wǎng)絡(luò)接口;若不存在,就會被寄存在hook點NF_IP_LOCAL_OUT上的回調(diào)函數(shù)處理,通過raw socket將數(shù)據(jù)分組送往用戶空間的數(shù)據(jù)分組緩沖區(qū)進行排隊。同時,后臺進程aodvd啟動路由查找功能。若查找到與被緩存的數(shù)據(jù)分組報頭目的地址匹配的路由,就將緩存在用戶空間的數(shù)據(jù)分組通過raw socket重新注入內(nèi)核;如果路由未被發(fā)現(xiàn),則緩存的數(shù)據(jù)分組將被丟棄,并釋放它使用的內(nèi)存空間。每個進入和離開本地節(jié)點的數(shù)據(jù)分組在流經(jīng)hook點NF_IP_PRE_ROUTING、NF_IP_POST_ROUTING時,將被相應(yīng)的回調(diào)函數(shù)檢查,記錄每條路由的使用時間,并通過netlink socket將路由表的使用狀況發(fā)往用戶空間,告知后臺進程aodvd內(nèi)核路由表的使用狀況。后臺進程aodvd據(jù)此重置路由緩沖表的定時器。同時,后臺進程aodvd通過netlink socket刪除內(nèi)核路由表中過時的路由條目,或添加新的路由。在后臺進程建立路由時,通過654號端口、UDPsocket.發(fā)送RREQ、RREP等控制分組。
2.3 系統(tǒng)測試
監(jiān)控主機通過IEEE 802.11h/g標(biāo)準(zhǔn)的無線網(wǎng)卡接入Mesh骨干網(wǎng),從具有固定IP的監(jiān)控終端獲取H.264格式的視頻流,采用筆者開發(fā)的客戶端解碼播放軟件完成終端設(shè)置、視頻解碼和實時播放,借助壓縮效率極高的H.264編碼,系統(tǒng)在主機端支持最大720×480(D1)、30幀/s(NTSC)的視頻格式。
結(jié) 語
新一代的無線Mesh網(wǎng)絡(luò)利用網(wǎng)狀拓撲,多跳鏈路和先進的路由協(xié)議,通過融合IEEE 802.11a/b/g等無線通信技術(shù),可實現(xiàn)組網(wǎng)。其優(yōu)點是:組網(wǎng)迅速,結(jié)構(gòu)靈活,傳輸率高,移動性好,可靠性強,成本低,可極大拓寬網(wǎng)絡(luò)視頻監(jiān)控的應(yīng)用范圍。隨著無線Mesh技術(shù)的發(fā)展和國際標(biāo)準(zhǔn)的建立,其獨特的優(yōu)勢必將在包括視頻監(jiān)控在內(nèi)的多種領(lǐng)域發(fā)揮重要作用。
無線Mesh網(wǎng)絡(luò)下的視頻監(jiān)控系統(tǒng),目前除了幾個國外廠家做出產(chǎn)品外,國內(nèi)在這方面還處于起步研發(fā)階段。筆者在標(biāo)準(zhǔn)尚未制定的情況下,根據(jù)無線Ad Hoc網(wǎng)絡(luò)的路由協(xié)議特點,在嵌入式平臺下實現(xiàn)了一個簡單實用的無線網(wǎng)狀網(wǎng)絡(luò)下的視頻監(jiān)控系統(tǒng)。該視頻監(jiān)控系統(tǒng)可以和外網(wǎng)連接,實現(xiàn)真正意義上的無縫連接。實驗系統(tǒng)傳輸距離在無線網(wǎng)狀網(wǎng)內(nèi)室外條件下可以達到500 m左右。