文獻標識碼: A
文章編號: 0258-7998(2014)06-0020-03
無線多媒體傳感器網絡(WMSN)現在已經被廣泛應用到各監控領域。WMSN具有自組織能力,不需要提前為其建立基礎網絡設施,可以根據實際應用的需要建立相應的通信系統,具有較高的靈活性,這對煤礦井下應急通信系統的建立意義重大[1-2]。由于煤礦環境復雜,在生產過程中存在多種安全隱患,多數煤礦事故的發生都是由于操作不規范、缺乏有效的監控措施而導致的;井下的有線攝像機體積笨重,一次布置后很難再次移動;受井下條件限制,會存在許多檢測盲點,而且在災害方發生時,有線網絡較為脆弱,容易遭受破壞,在實際救災中,能為搜求人員提供的有效信息有限。為此本文設計了應用DVC方案的傳感器節點,結合煤礦物聯網應用背景,完成了節點的軟硬件整體設計,并在井下進行了實測。將該WMSN應用到煤礦應急救援通信系統中,將為災后救援工作帶來很大的幫助。
1 礦山物聯網的介紹
礦山物聯網基于WiFi的感知層無線Mesh網絡的設計,為井上與井下人員、井下與井下人員之間的溝通(語音、視頻、位置、環境參數等)搭建了一個寬廣、快速的網絡平臺,為煤礦安全生產綜合調度提供了新的指揮手段,也為煤礦的救援提供了快捷通信手段,可在災變期間快速地恢復和投入運行,大大提高救援效率[3]。煤礦井下無線傳輸網絡主要由交換機、AP控制器AC、接入點AP組成。無線網絡最終要接入井下以太環網,通過井下以太環網與井上服務器進行通信。井下各種無線數據終端采集的各種數據通過井下無線網絡和以太環網傳到井上服務器,以供服務器進行后續處理以及供工作人員查看。應用場景如圖1所示。
節點能夠實時采集圖像數據并對數據進行處理,用無線的方式將處理后的數據通過無線接入點傳入現有工業以太環網,進而傳到井上數據服務器,再由數據服務器將數據轉發到各應用服務終端。
2 節點的硬件結構設計
2.1 硬件系統框圖
節點硬件平臺主要由主處理器、CMOS攝像頭模塊、存儲器、WiFi無線模塊、供電部分等模塊構成。硬件系統的整體架構如圖2所示。主處理器通過CMOS攝像頭模塊進行數字圖像數據的采集,對采集到的數字圖像數據進行編碼處理,利用自身的硬件編碼模塊完成關鍵幀的編碼,然后通過軟件方式完成對Wyner-Ziv[4]的編碼。編碼后的數據通過WiFi無線模塊轉發到路由節點,最后傳到井上服務器進行解碼。
2.2 S3C6410核心模塊設計
S3C6410核心模塊主要包括S3C6410芯片、2片16 bit的128 MB DDR內存芯片、MLC型NandFlash芯片K9G8G08、電源管理單元、DIVACOM的100M以態網芯片DM9000等,配合供電電路及晶振、復位電路等外圍電路組成。
2.3 攝像頭模塊設計
攝像頭模塊的組成部分有:感光芯片、數字信號處理器、鏡頭以及電源。其中最重要的部分是感光芯片,本設計選用MICRON公司的MT9P031(CMOS)傳感器。MT9V031是支持較低照度的低功耗COMS圖像傳感器,寄存器配置接口是Serial Camera Control Bus(SCCB),它的總線時序與I2C兼容,可以利用S3C6410的I2C控制器配置MT9P031的寄存器,也可以使用I/O口模擬SCCB協議來完成配置工作。利用S3C6410的Camera接口控制器來獲取MT9P031的原始圖像數據。
2.4 WiFi無線模塊設計
節點采用WiFi技術作為無線通信方案。WiFi能夠提供WMSN需要的帶寬量,并且可以通過休眠機制實現自身的低功耗,同時能夠滿足煤礦井下的安全要求。美國GainSpan的GS1011芯片具有集成度高、處理速度快、功耗低等優點,能夠滿足井下多媒體傳感器節點的需求。可以利用S3C6410的SPI控制器與GS1011之間進行通信,將需要發送的數據通過SPI接口傳遞給GS1011,再利用GS1011將數據轉發出去,在不需要進行數據發送時,可以控制GS1011進入低功耗的模式,降低節點的能耗。
3 節點軟件設計
圖像傳感器節點選擇了基于ARM的32位處理器平臺,選擇嵌入式Linux作為系統軟件平臺。首先進行系統軟件平臺的搭建,需要根據節點的硬件平臺情況完成Linux操作系統的裁剪和移植,根據所選用的設備完成驅動程序的移植工作。在系統軟件的基礎之上,基于分布式視頻編碼算法完成應用軟件設計,實現圖像數據的采集,節點系統軟件架構如圖3所示。
3.1 嵌入式系統移植
首先搭建嵌入式Linux開發環境[5]。本文選擇Red Hat企業版6.0作為宿主機。為了降低Linux操作系統的操作難度,在PC端的Windows系統中安裝VMWare虛擬機,將Red Hat安裝在虛擬機,以配合Windows下的一些工具完成系統的開發。接著進行Bootloader移植,選擇U-Boot作為系統的引導程序,U-Boot是開放源碼的引導程序,其大部分源碼是參考Linux內核源碼來實現的,所以在硬件和可移植性方面表現出很多優勢[6]。最后進行Linux內核移植。圖4是對Camera接口的驅動配置。
3.2 視頻采集編碼程序設計
視頻的采集使用了Linux專門設計的視頻層驅動V4L2,V4L2設計了統一接口標準的統一函數接口,只需要按照V4L2的標準定義V4L2的操作接口函數,應用平臺就可以不考慮具體攝像頭型號,直接調用V4L2提供的操作函數來換取攝像頭數據[7]。利用Linux的V4L2層進行圖像數據采集的流程如圖5所示。
在煤礦井下的實際應用中,能量和帶寬都相對有限,對圖像的質量要求不會太高,幀率的設置也不會太高,這樣圖像幀之間的相關度不會很高,默認選擇關鍵幀比較多的GOP2幀分類模式(IWIWIWIW模式,奇數幀為關鍵幀K幀,偶數幀為WZ幀W幀),也可以根據需求修改關鍵幀的密度。編碼器首先根據需求對采集到的原始視頻信號進行幀分類,對不同類型的幀信息進行獨立編碼,利用S3C6410內部的多媒體控制器對K幀進行H.264幀內編碼,利用Wyner-Ziv編碼器對W幀進行編碼。W幀的編碼過程不參考關鍵幀。首先對原始圖像數據的矩陣按照宏塊進行劃分,對每一個宏塊進行DCT變換,然后對DCT變換后的系數進行系數帶的劃分,提取系數帶的每一個比特平面,送入LDPCA編碼器進行編碼。編碼后的數據存入緩存器,根據解碼端的反饋,將緩存器中的數據發送給解碼端。編碼端工作流程如圖6所示。
3.3 視頻傳輸模塊設計
采集編碼后的視頻數據可以通過SPI接口傳給GS1011模塊,GS1011負責將數據轉發到AP。由于WiFi射頻部分即使在空閑模式下也會消耗大量的能量,因此,為了降低節點的整體能耗,GS1011模塊沒必要一直保持在工作狀態,可以在適當的時間進入休眠模式,關閉射頻部分,在長時間沒有數據收發任務的情況下還可以進入待機模式,當需要輸出時通過控制芯片進行喚醒。GS1011模塊的工作流程如圖7所示。
4 實驗效果及結論
(1)實驗地點:為了達到實際的應用效果,研究人員選擇在徐州家河煤礦進行測試。
(2)實驗室平臺:分布式視頻解碼端在Windows的Visual Studio平臺下開發,利用開源媒體庫ffmpeg進行解碼端的設計。ffmpeg具有先進的音/視頻編解碼庫libavcodec,具有高可移植性和較高的編解碼質量。
(3)實驗結果:對井下的視頻進行采集編碼、解碼顯示實驗的結果表明,視頻畫面流暢,畫質較為清晰,可以滿足井下監測的實際需求。
本文結合對煤礦井下應用場景的分析,完成了視頻傳感器節點的軟硬件設計。井下實測結果表明,節點運行穩定,圖像效果良好,基本能滿足井下的視頻監控要求,具有廣闊的應用前景。
參考文獻
[1] AKYILDIZ I F,MELODIA T,CHOWDHURY K R.A survey on wireless multimedia sensor networks[J].Computer Networks,2007,51(4):921-960.
[2] AKYILDIZ I F,MELODIA T,CHOWDHURY K R.Wireless multimedia sensor network: a survey[J].IEEE Transaction on Wireless Communication,2007,14(6):32-39.
[3] 張申.物聯網與感知礦山專題講座之一——物聯網基本概念及典型應用[J].工礦自動化,2010(10):104-108.
[4] 賀紅.基于Wyner-Ziv視頻編碼的高效編碼算法研究[D].西安:西安電子科技大學,2010.
[5] 孫天澤,袁文菊.嵌入式設計及Linux驅動開發指南[M].北京:電子工業出版社,2009.
[6] 周書林.基于S3C2440A的bootloader設計與實現[D].鎮江:江蘇科技大學,2009.
[7] 王飛,孫聰.基于V4L2的Linux攝像頭驅動的實現[J].電子技術,2012,25(2):86-92.