張法全 王泰麟 葉金才 黃桂強 王國富
摘 要: 微震監測網絡具有節點間距大、分布范圍廣、數據量大的特點,其數據傳輸方式仍以有線傳輸為主,存在線纜鋪設困難和成本高等問題。設計基于Ad Hoc的微震監測數據傳輸系統,利用遠距離無線網絡模塊和Ad Hoc技術,結合AODV無線路由協議,在無需其他基礎設施的情況下即可實現數據的多跳轉發,從而實現整個網絡的數據傳輸。實驗結果表明,該系統布置靈活方便、成本低,同時具有傳輸時延短、數據傳輸速率高的特點。
關鍵詞: 微震監測; 數據傳輸; Ad Hoc; AODV
中圖分類號: TN931+.3?34; TN92 文獻標識碼: A 文章編號: 1004?373X(2016)24?0128?04
Design of microseismic monitoring data transmission system based on Ad Hoc
ZHANG Faquan1, WANG Tailin1, YE Jincai1, HUANG Guiqiang2, WANG Guofu1
(1. School of Information and Communication, Guilin University of Electronic Technology, Guilin 541004, China;
2. Geological Survey Institute of Guangxi Zhuang Autonomous Region, Nanning 530023, China)
Abstract: The microseismic monitoring network has the characteristics of wide node spacing, wide distribution and large volume of data, whose the main way of data transmission is still wire transmission that will result in cable laying difficulty and high cost. Therefore, a microseismic monitoring data transmission system based on Ad Hoc is designed in this paper, in which a remote wireless module, Ad Hoc technology and AODV(Ad hoc on?demand distance vector) wireless routing protocol are used to complete multi?hop data forwarding in the case of no other infrastructure, and achieve the network data transmission. The application result shows that the system can be arranged flexibly and has the characteristics of low cost, short transmission time delay and high transfer rate.
Keywords: microseismic monitoring; data transmission; Ad Hoc; AODV
現有的針對礦區工礦活動的微震監測系統具有網絡節點多、節點分布范圍廣、數據量大的特點,其數據傳輸還主要采用有線的方式[1],但這種方式在礦區往往面臨著布置不方便、成本高的問題。因此本文設計了一種遠距離無線網絡模塊,并在此基礎上設計了基于Ad Hoc的微震監測數據傳輸系統。
1 系統概述
Ad Hoc網絡是一種多跳的、無中心的、自組織無線網絡,整個網絡沒有固定的基礎設施,每個節點都是可以移動的,并且能夠以任意方式動態地與其他節點保持聯系[2?3]。網絡中各節點地位平等,拓撲可變,節點的移動、加入和退出并不會影響整個網絡的正常工作。當節點需要與其通信覆蓋范圍之外的節點進行通信時,將借由中間節點進行多跳轉發,各節點將兼任路由器的角色。因此,本文擬將Ad Hoc網絡應用于數據傳輸系統,其系統模型如圖1所示。
若節點布置區域離服務器較近,則各節點及服務器可通過工作在Ad Hoc模式的無線網卡組成Ad Hoc網絡,網絡內各節點通過中間節點進行數據傳輸;若服務器無法布置到節點附近,數據則可通過一個或者多個邊沿節點的以太網卡將數據轉送到外部網絡,完成數據的傳輸。
此外,為了實現各節點的路由功能,本文采用計算量小,帶寬資源占用少的AODV(Ad Hoc On?Demand Distance Vector)路由協議。其工作流程為:當源節點需要和目的節點進行通信而路由表中無相應表項時,源節點發送RREQ消息,進行路由請求,當RREQ逐跳廣播至目的節點或者到有目的節點路由表項的節點,則沿最先到達的路徑反向應答RREP消息至源節點,從而獲取達到目的節點的路由,使用HELLO及RERR消息來維護鏈路[4]。
2 系統節點硬件設計
微震監測網絡節點硬件主要由數據采集和數據傳輸兩部分構成,數據傳輸系統主要涉及數據傳輸部分。本文中,節點數據傳輸部分由嵌入式平臺和無線網絡模塊兩部分構成。
節點的嵌入式平臺主要為數據讀取、收發提供接口,為操作系統提供硬件環境。其主要包括:ARM11核心板FET6410、數據及地址總線接口、USB接口和以太網接口,框圖如圖2所示。
其中數據及地址總線用作從FIFO中讀取緩存的監測數據,USB接口做為無線網絡模塊接口,以太網部分采用以太網芯片DMP9000AEP和集成網絡變壓器的RJ45接頭,用作整個Ad Hoc網絡接入外部網絡的出口。
在整個數據傳輸系統中,節點網絡模塊性能的優劣將在很大程度上決定了整個系統的穩定性。因此本文針對微震監測網絡節點分布廣、間距遠、數據量大的特點,設計了以RT3070 WIFI芯片為核心的USB接口無線網絡模塊,針對WIFI傳輸距離有限的缺點,模塊在輸出輸入回路上分別增加了功率放大器(PA)和低噪聲放大器(LNA)來提高信號的有效覆蓋距離,整體框圖如圖3所示。
在輸出回路中選用了功率放大芯片RTC6691H,其最大輸出功率可達30 dBm,其輸入端內建立了匹配電路因此可以直接采用50 Ω微帶線和RT3070射頻輸出腳RF_RF2G_OUT相連;此外,在PA輸出端還設有一個Π型匹配網絡電路進行阻抗匹配,以及低通濾器來濾除PA產生的高次諧波。整個輸入回路由帶通濾波器(BPF)、LNA以及巴倫(balun)組成。帶通濾波器采用LFL152G45TC1A219,其最大插入損耗僅為0.45 dB,且尺寸小,便于安裝;LNA采用RTC5602B,其提供13 dB的增益和0.8 dB的低噪聲系數,在2.4 GHz時的一階增益壓縮點(IPldB)是3 dBm , 三階交調截取點(IIP3)是10 dBm。再通過巴倫將接收到的單端信號轉化成RT3070所需要的差分信號。當收發器處于發送狀態時,收發器控制單刀雙擲(SPDT)射頻開關打向PA通路;當處于接收狀態時,開關打向LNA通路。
在IEEE 802.11b 11 Mb/s Infrastructure模式下,模塊整體發射功率可達30 dBm,接收靈敏度達-87 dBm,在戶外實測傳輸距離可達400 m左右,能很好滿足本微震監測網絡的數據傳輸速率和節點布置間距的要求。
3 系統節點軟件設計
本文在嵌入式平臺上采用的操作系統是嵌入式Linux(版本為3.0.1)操作系統,因此所有的軟件設計都是在嵌入式Linux下實現的。
無線網絡模塊驅動采用聯發科提供的RT3070驅動程序有源碼,修改其Makefile:
PLATFORM = SMDK
ifeq($(PLATFORM),SMDK)
LINUX_SRC = /home/6410/linux3.0.1/
CROSS_COMPILE = /usr/local/arm/4.3.2/bin/arm?linux?
針對工作在PC平臺上的模塊,修改Makefile:
PLATFORM = PC
執行make,編譯成內核模塊rt3070sta.ko后,將其復制到平臺的/lib/modules/目錄下,再修改配置文件RT2870STA.dat:
#NetworkType=Infra
NetworkType=Ad Hoc
將其復制到/etc/Wireless/RT2870STA/目錄下,從而使模塊工作在Ad Hoc模式。平臺啟動后,加載驅動模塊和進行網絡配置,各節點即可組成一個Ad Hoc網絡。但此時網絡中各節點僅能與相鄰節點進行通信,要實現多跳通信和完成與服務器之間的數據傳輸,還必須實現分組轉發與分組尋路功能。
分組轉發是指操作系統根據路由表的信息,將數據分組送往相應的網絡接口,在Linux內核中, 分組轉發是基于內核路由表工作的,每次發送數據分組時,都向內核路由表查詢,取得對應的下一跳鄰居節點的地址和對應的網絡接口[5]。分組尋路則通過與其他節點交換信息,根據特定路由協議算法來計算和維護路由表。
本文利用Linux內核的分組轉發功能來實現分組轉發,在用戶空間采用AODV路由算法來實現分組尋路功能。分組尋路實現結構如圖4所示。
本文采用AODV路由協議源碼aodv?uu?0.9.6實現路由算法[6]。路由算法部分在編譯后,以Daemon進程的形式運行在后臺。在內核模塊Kaodv.ko中,將hook函數kaodv_hook寄存在Netfilter的NF_INET_PRE_ROUTING,NF_INET_LOCAL_OUT和NF_INET_POST_ROUTING三個點上,當數據流經這三個點時,內核模塊調用hook函數kaodv_hook。函數根據數據包目的IP查找路由表:若查找到,更新相應路由的最后使用時間,并根據情況將數據轉送到上層協議、轉發或者發送到下一節點;若未發現相應路由,或者相應鏈路斷開,則通過Netlink向用戶空間的AODV Daemon進程發送通知消息,并緩存數據。AODV Daemon根據通知發起路由發現或者路由修復:若發現路由或者修復成功,則通知更新路由表,將緩存的數據重新發送;若不成功,則丟棄緩存數據。
4 測試與結果
選擇校內空曠的馬路一側,各節點以250~300 m的間距進行串聯布置,4個節點和模擬服務器的PC的具體布置如圖5所示。
在PC端加載無線網絡模塊的驅動:
insmod rt3070sta.ko
配置網絡(測試網絡名TX?TEST):
ifconfig ra0 inet 192.168.1.2 up
iwpriv ra0 set NetworkType=mode ad?hoc
iwconfig ra0 essid TX?TEST
insmod kaodv.ko #加載AODV內核模塊
./aodvd #運行AODV進程
在各節點上,將如下配置信息寫入開機啟動文件
/etc/init.d/rcS:
insmod rt3070sta.ko
ifconfig ra0 inet 192.168.1.X up
iwpriv ra0 set NetworkType=mode ad?hoc
iwconfig ra0 essid TX?TEST
insmod kaodv.ko
./aodvd
其中,192.168.1.X對應4個節點的IP地址。各節點在上電后即可自動加入到TX?TEST網絡,待網絡穩定后利用ping先進行網絡時延測試。在192.168.1.6節點端分別向另外3個節點和PC的IP地址ping 200個包,具體測試結果如表1所示。結果表明,4個節點及PC之間的Ad Hoc網絡組網正常,各節點可相互通信,在可直接通信范圍內,時延較小;而直接通信范圍外,由于路由發現和轉發節點增加,時延也會有一定程度的增加。
由4個節點分別向PC端發送一個4 MB大小的文件來進行傳輸速率測試,測量5次,結果如表2所示。
由結果可知,節點直接通信時,數據的傳輸速率在2 Mb/s左右,但數據經中間轉發時,轉發每增加1次,數據傳輸速率降低約[12]。造成此情況的主要原因是IEEE 802.11采用的CSMA/CA(載波偵聽/沖突避免)機制控制傳輸媒質的訪問。
5 結 論
由于采用無線模塊及Ad Hoc技術,本傳輸系統相對傳統的數據傳輸系統具有布置靈活方便、成本低的優點。而微震監測網絡的時延一般要求控制在1 s以內即可,節點若以1 kHz頻率進行三分量24位高精度數據采集,則要求節點至少具有100 Kb/s數據傳輸能力。測試結果表明,與目標節點相距4跳時,時延在40 ms左右,平均速率仍可達300 Kb/s以上,可見本設計在傳輸時延及數據傳輸速率方面能很好地滿足微震監測網絡的要求。
注:本文通訊作者為王泰麟。
參考文獻
[1] 翟宏.微震監測系統中數據傳輸技術研究[D].阜新:遼寧工程技術大學,2009.
[2] 張希婕.Ad Hoc網絡混合路由協議的研究[D].北京:北京郵電大學,2015.
[3] 徐年,沙宏武.Ad Hoc技術在地震監測系統中的應用[J].電腦學習,2010(1):5?6.
[4] 梁紹芳,武穆清.Linux平臺下AODV的實現分析[EB/OL].[2011?06?11].http://www.docin.com/p?218932965.html.
[5] 謝世歡.Linux系統上AODV路由協議的實現[D].成都:電子科技大學,2004.
[6] 李家振.Ad Hoc網絡AODV路由協議在S3C6410中的研究與應用[J].大眾科技,2012,14(4):1?3.
[7] 張少博,王乃世,陳海峰,等.基于聲壓測量的閥門故障檢測方法研究[J].火箭推進,2015(4):100?104.