周錦陽,宋 廣
(中國人民解放軍92785部隊,遼寧 葫蘆島 125200)
移動自組織網絡作為一種無中心、分布式和自組織的無線移動通信網絡,源自美國夏威夷大學于1968年構建的無線自組織網絡——ALOHA系統[1]。與傳統的蜂窩通信不同,移動自組織網絡中的所有節點地位均等,每個節點在自身發送和接收數據的同時,需要為其他節點提供數據轉發的路由服務。隨著自組織網絡研究的不斷發展,移動自組織網絡技術可廣泛應用于軍事及民用領域,其應用領域包括傳感器網絡[2]、災后緊急救援[3]、車輛通信和無線局域網等[4-5]。
文獻[6-8]基于Andriod系統平臺,針對自組織網絡的不同TCP/IP協議層次,分別就802. 11DCF協議、路由協議和視頻應用進行了研究和開發應用。文獻[9]基于IOS操作系統,通過改進AODV協議,實現了安卓用戶間的信息傳輸。文獻[10-11]基于數傳電臺,通過對MAC層和網絡層路由協議的研究,設計和實現了平臺間的自組織通信。
本文依托嵌入式Linux操作系統,結合WiFi無線傳輸協議,設計了一種支持視頻圖像采集、傳輸的移動自組織網絡通信平臺。通過平臺測試,驗證了平臺通信的穩定性和連續性,為進一步探索和研究相關內容提供了有益參考。
移動自組織網絡是一種自組織、無中心、自適應、節點對等及拓撲結構動態變化的多跳無線移動網絡[12],其典型網絡架構如圖1所示。移動自組織網絡不依賴于預設基礎設施和網絡,網絡節點能夠以任意可能速度和方向移動。所有節點可以自主進入或退出網絡,網絡拓撲結構靈活多變,具有良好的適應性和抗毀傷能力。本文重點討論自組織路由協議在嵌入式ARM平臺上的開發應用問題。

圖1 移動自組織網絡結構
移動自組織網絡通信平臺包括嵌入式ARM系統、無線通信模塊、視頻采集模塊、LCD和電源模塊,其中嵌入式ARM系統采用深圳天漠科技有限公司的Devkit8500D嵌入式開發系統,負責多節點間的自組織路由;無線通信模塊采用TOTOLINK-N200UP大功率無線網卡,負責實現單跳節點間的無線通信;視頻采集模塊采用CAM8100-U數字攝像頭,負責節點周圍視頻圖像信息采集;LCD采用深圳天漠科技有限公司生產的4. 3寸LCD屏,負責采集視頻圖像信息的顯示;電源模塊采用5~13 V可調移動電源模塊,負責整個通信平臺供電。移動自組織網絡通信平臺結構如圖2所示,移動自組織網絡通信平臺實物如圖3所示。

圖2 移動自組織網絡通信平臺結構圖

圖3 移動自組織網絡通信平臺實物
嵌入式Linux操作系統體系結構如圖4所示,主要包括4層:第1層為Boot Loader,主要負責設備上電或復位后對系統進行引導和加載;第2層為Linux內核及設備驅動,主要用于加載系統內核模塊,用戶可依據硬件需求進行Linux內核裁剪、定制和設備驅動移植;第3層為根文件系統,用于加載系統所需的庫函數和應用程序,通過根文件系統可以實現文件的管理;第4層為應用層,主要包含應用程序和C庫,用戶可依據功能需求設計不同的應用程序。

圖4 嵌入式Linux系統體系結構
3. 1. 1 Boot Loader
Boot Loader為系統啟動后在操作系統內核運行前執行的一小段程序,具有非常嚴格的硬件依賴性,不同硬件的嵌入式平臺采用不同的Boot Loader程序。本文Boot Loader包括1級引導程序(x-loader)和2級引導程序(u-boot),為了實現嵌入式Linux系統在Devkit8500D嵌入式開發系統上的正常運行,進行了x-loader和u-boot的編譯配置。
3. 1. 2 Linux內核及設備驅動
為實現嵌入式Linux系統對外設的支持,進行了Linux內核定制(包括無線通信模塊、視頻采集單元和LCD的內核模塊定制),以及無線通信模塊驅動移植。
(1) 無線通信模塊內核模塊定制
TOTOLINK-N200UP無線網卡符合IEEE 802. 11b/g/n協議標準,為了實現嵌入式Linux系統對IEEE 802. 11協議棧的支持,需定制相關內核模塊。具體定制步驟如下:
Networking support-->Wirless-->Generic IEEE 802. 11 Networking Stack(mac 80211)。
(2) 視頻采集模塊內核模塊定制
為了實現嵌入式Linux系統對CAM8100-U數字攝像頭的支持,需定制USB video class(UVC)內核模塊。具體定制步驟如下:
Device Drivers-->Multimedia devices-->Video capture adapters-->V4L USB devices-->UVC input events device support。
(3) LCD內核模塊定制
為了實現嵌入式Linux系統對LCD模塊的支持,需定制相關內核模塊。具體定制步驟如下:
Device Drivers-->Graphics support-->OMAP2/3 Display Subsystem support(EXPERIMENTAL)(OMAP2_DSS[=y])-->OMAP2/3 Display Device Drivers--> Devkit8500 LCD Panel(PANEL_DEVKIT8500_SHARP_PANEL[=y])-->PANEL_ TYPE(
(4) 無線通信模塊驅動移植
TOTOLINK-N200UP無線網卡采用雷凌RT3070芯片,在Linux內核中添加其驅動[13]支持模塊后,需對其RT3070驅動進行移植。驅動移植方法如下:① 在雷凌官網下載Linux版本的RT3070驅動并解壓;② 修改os/linux/目錄下的conf.mk文件:③ 修改Makefile文件,設置芯片型號,指定Linux內核源碼和交叉編譯工具;④ 執行make命令,編譯通過后會在os/linux/下生成rt3070sta.ko文件。
3. 1. 3 根文件系統
根文件系統是Linux系統啟動后掛載的首個文件系統[14],其他文件系統通過掛載到根文件系統后才能使用,通過文件系統可以實現文件的管理。
移動自組織網絡通信平臺在加電啟動后,需加載無線通信模塊驅動和自組織路由協議、配置無線通信模塊IP地址和網絡模式,所以需修改根文件系統的啟動項。具體操作步驟如下:① 將根文件系統解壓成映像文件;② 掛載映像文件;③ 修改系統啟動項;④ 卸裝鏡像文件;⑤ 將修改后的文件系統制作成壓縮文件。在操作步驟③中,系統啟動項文件為/etc/init.d/目錄下的rc文件,需在文件末尾加入添加如下配置:
insmod rt3070sta.ko ∥加載無線網卡驅動模塊
ifconfig ra0 up ∥啟動無線網卡
ifconfig ra0 192. 168. 0. 1 ∥配置無線網卡IP地址
iwconfig ra0 mode ad-hoc ∥設置無線網卡模式為ad hoc模式
insmod kaodv.ko ∥加載自組織路由協議模塊
3. 1. 4 應用層
應用層程序主要完成了視頻圖像的采集、壓縮、傳輸和顯示功能。嵌入式Linux系統通過設備文件讀寫的方式訪問控制USB攝像頭,通過調用V4L2模塊的API接口,實現視頻圖像的采集;采集后的視頻格式為YUV格式,需要較大傳輸帶寬,不利于無線傳輸,通過對視頻圖像進行壓縮,將YUV格式轉化為JPEG格式;視頻傳輸采用基于UDP的socket通信,UDP傳輸是面向非連接的,無需保證傳輸的可靠性,即使丟幀也不會影響到視頻顯示效果;視頻顯示采用Linux的圖形接口,基于FrameBuffer的圖像顯示,其具有硬件無關性,直接操作顯存,實現視頻圖像信息的顯示。
移動自組織網絡通信平臺采用嵌入式Linux操作系統,利用Linux內核netfilter框架的包過濾功能[ 15],在PRE_ROUTING及LOCAL_OUT兩個HOOK點設置鉤子函數,對流出(發送數據)和流入(接收數據)節點的數據包進行抓包,針對數據包的不同類型,加載不同的報文處理策略,實現移動自組織網絡通信平臺間的自組織路由功能。
3. 2. 1 發送數據處理
發送數據作為平臺自身產生的數據包,其處理流程如圖5所示。依據平臺節點是否存在目的路由,決定是否生成RREQ報文,并啟用RREQ發送策略。

圖5 發送數據處理流程
3. 2. 2 接收數據處理
接收數據作為外部節點流入平臺節點的數據,其處理流程如圖6所示。設計數據包分為2種:數據報文和控制報文,其中控制報文包括:RREQ報文、RREP報文、HELLO報文和RERR報文。依據數據包的不同類型,采用不同的處理策略,從而實現自組織路由協議的路由建立和路由維護。

圖6 接收數據處理流程
在多跳實驗場景下,針對網絡時延和丟包率兩方面進行性能測試,驗證移動自組織網絡通信平臺間的通信穩定性。靜態測試如圖7所示,平臺S,M,D均靜止。通過平臺S發送到平臺D的ping擴展指令,記錄網絡時延和丟包率。

圖7 自組織通信平臺靜態測試示意
經測試及結果統計,多跳時延結果如圖8所示,多跳丟包率如圖9所示。依據統計結果可知,對于2跳S-M1-D鏈路,當發送1 KB大小的數據包時,鏈路平均時延穩定在61 ms左右,上下波動不超過3 ms。隨著測試時間的增加,丟包率從1. 6%逐步趨近于0。由此可見,針對節點靜止的多跳自組織網絡,鏈路時延穩定性良好,數據包丟失僅出現在路由建立的初始階段,隨著測試時間的增長,丟包率趨近于0,鏈路通信狀態良好。

圖8 多跳時延測試結果

圖9 多跳丟包率
在多跳路由切換實驗場景下,針對網絡時延和丟包率進行性能測試,驗證移動自組織網絡通信平臺的通信穩定性和連續性。動態測試如圖10所示,平臺S,M1,M2均靜止,平臺D勻速往返運動。通過源節點S發送到目的節點D的ping擴展指令,記錄網絡時延和丟包率。

圖10 自組織通信平臺動態測試示意
經測試及結果統計,路由切換時延結果如圖11所示,路由切換丟包率如圖12所示。依據統計結果可知,對于多節點路由切換鏈路,當發送1 KB大小的數據包時,鏈路平均時延在61. 5 ms左右,上下波動不超過2 ms,丟包率穩定在4. 7%左右,最大不超過5%。由此可見,針對多節點自組織網絡的路由切換,鏈路時延穩定性良好,數據丟包率較小。

圖11 路由切換時延結果

圖12 路由切換丟包率
綜上分析可知:鏈路平均時延與所經跳數相關,跳數越多,時延越大;丟包率與路由切換頻率相關,路由切換越頻繁,丟包率越大。
采用嵌入式ARM系統,結合WiFi無線通信和數字攝像頭視頻感知,設計并實現了一種支持視頻圖像采集、傳輸的移動自組織網絡通信平臺。測試結果表明,移動自組織通信平臺具有良好的通信穩定性和連續性。隨著嵌入式技術的發展和移動自組織網絡的應用,未來還需要對自組織路由協議和工程應用做進一步研究,使之更廣泛地應用于車聯網、物聯網及無線傳感器網絡等方向。