《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于STM32的海洋浮標無線通信網(wǎng)絡設計
基于STM32的海洋浮標無線通信網(wǎng)絡設計
王 宗,劉敬彪,蔡文郁
(杭州電子科技大學 電子信息學院,浙江 杭州310018)
摘要: 針對在遠海海洋的特殊環(huán)境下,數(shù)據(jù)傳輸能力不能滿足海洋環(huán)境檢測需求的現(xiàn)狀,提出以無線傳感器和銥星模塊構(gòu)建海洋浮標通信網(wǎng)絡的設計方案,并給出具體的組網(wǎng)方法及通信協(xié)議。
中圖分類號: TN929
文獻標識碼: A
文章編號: 0258-7998(2011)07-0042-03
The design of communication wireless network among ocean floats based on STM32
Wang Zong,Liu Jingbiao,Cai Wenyu
Electronic Information College of Hangzhou Dianzi University, Hangzhou 310018,China
Abstract: Due to the status quo that data transmission capacity cannot meet the demand of the marine environment detection in the special marine circumstance far away from the coastal area, the paper puts forward a scheme to design a communication network among ocean floats based on wireless sensors and iridium modules, which also gives a concrete networking method and communication protocols.
Key words : ocean communication;wireless network;Iridium satellite;STM32;protocol


    在世界人口數(shù)量劇增、陸地資源銳減、環(huán)境污染日益嚴重的今天,進軍海洋、開發(fā)海洋已成為世界海洋技術領域的一大主題。發(fā)展海洋科技,尤其是海洋高新技術首先要解決的問題就是海洋環(huán)境監(jiān)測。
    目前,使用較多的是ARGO[1,2](Array for Real-time Geotropic Oceanography)即地轉(zhuǎn)海洋學實時觀測陣,它是全球海洋觀測業(yè)務系統(tǒng)GOOS(Global Ocean Observing System)[3,4]中的針對深海區(qū)溫度鹽度結(jié)構(gòu)觀測的一個子計劃。ARGO節(jié)點借助液壓動力來改變自身體積以便在0~2 000 m深的海水中下沉與上浮,同時,在上浮過程中對海洋環(huán)境進行剖面測量。AGRO采集的數(shù)據(jù)是以10~14天為周期通過衛(wèi)星系統(tǒng)來傳輸?shù)摹?br/>     本系統(tǒng)針對遠海海洋數(shù)據(jù)傳輸不能滿足實時檢測的現(xiàn)狀,以無線傳感器為節(jié)點構(gòu)成數(shù)據(jù)傳輸網(wǎng)絡,采用銥星模塊將采集數(shù)據(jù)發(fā)往陸地基站。
1 系統(tǒng)簡介
    本海洋浮標網(wǎng)絡數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)如圖1所示,主要由海洋浮標節(jié)點、無線網(wǎng)絡、衛(wèi)星通信系統(tǒng)組成。
    海洋浮標節(jié)點通過光纖、電纜或無線方式與其下方的傳感器網(wǎng)絡通信,以實現(xiàn)對一定范圍內(nèi)海洋環(huán)境的檢測,同時每個浮標節(jié)點都攜帶有無線通信模塊和衛(wèi)星通信模塊。無線網(wǎng)絡完成兩個功能:將浮標網(wǎng)絡中各節(jié)點采集的數(shù)據(jù)傳輸?shù)街行墓?jié)點;在中心節(jié)點發(fā)生故障時選擇新的中心節(jié)點,盡量保證系統(tǒng)的正常運行。衛(wèi)星通信系統(tǒng)負責將匯集在中心節(jié)點的數(shù)據(jù)發(fā)送到陸地基站。

    本論文研究無線網(wǎng)絡的數(shù)據(jù)傳輸與網(wǎng)絡維護以及衛(wèi)星通信。
2 系統(tǒng)原理
2.1 無線網(wǎng)絡結(jié)構(gòu)選擇及協(xié)議制定

    無線網(wǎng)絡不同于有線網(wǎng)絡,在有線網(wǎng)絡中,一個節(jié)點發(fā)出的數(shù)據(jù)通過有線鏈路直接抵達目標節(jié)點或中繼節(jié)點,在此過程中,不會對其他節(jié)點造成影響。而無線網(wǎng)絡中,節(jié)點發(fā)出的無線信號會對網(wǎng)絡中所有節(jié)點造成干擾,若不加限制,則無線網(wǎng)絡完全無法運行。
    此外,本無線網(wǎng)絡還具有以下特點:(1)網(wǎng)絡中節(jié)點一般不會超過10個;(2)網(wǎng)絡一旦建立,短期內(nèi)不會加入新的節(jié)點,數(shù)據(jù)傳輸量不大但頻率較快。
    介于以上特點,本網(wǎng)絡設計如下:(1)采用星型結(jié)構(gòu),與此同時,任何通信都由中心節(jié)點發(fā)起,這樣可以避免中心節(jié)點同時收到多條數(shù)據(jù)而造成混亂;(2)網(wǎng)絡分三層:物理層、傳輸層、應用層;(3)網(wǎng)絡內(nèi)節(jié)點擁有唯一的網(wǎng)絡地址(初始設置中心節(jié)點地址為02,外圍節(jié)點依次遞增),以實現(xiàn)數(shù)據(jù)的定點通信。
    圖2所示為網(wǎng)絡協(xié)議幀格式。由于每次通信都是由中心節(jié)點發(fā)起的,所以協(xié)議中不設立源地址。各層功能如下:物理層提供數(shù)據(jù)的實際傳輸,由無線模塊完成,傳輸層只需以字節(jié)為單位發(fā)送數(shù)據(jù)即可;傳輸層負責檢測網(wǎng)絡狀態(tài)以及數(shù)據(jù)幀的提取,并對比目的地址與該節(jié)點地址,若不符合接收條件,則丟棄數(shù)據(jù)包;應用層完成中心節(jié)點指定的任務,如采集數(shù)據(jù)的發(fā)送、節(jié)點地址的設定等。

    應用層標志位意義如下:
    G:中心節(jié)點獲取數(shù)據(jù)標志,此時,外圍節(jié)點以采集數(shù)據(jù)來填充數(shù)據(jù)幀并發(fā)送。
    D:表示采集數(shù)據(jù),此時,中心節(jié)點接收到的數(shù)據(jù)為采集到的數(shù)據(jù)。
    A:重新設定節(jié)點地址標志,此時,數(shù)據(jù)域有三個字節(jié)且每個字節(jié)都為新地址并相等。該功能可在中心節(jié)點檢測到衛(wèi)星通信發(fā)生故障時設定新的中心節(jié)點。
    S:成功標志位,外圍節(jié)點成功設定本節(jié)點新地址后置位該位,否則清零該位,并告知中心節(jié)點。
    W:警告標志位,外圍節(jié)點發(fā)生故障時置位該位,請求將故障信息發(fā)往陸地基站。
    R:授權(quán)標志位,指定新的節(jié)點為中心節(jié)點時置位該位,為了防止誤碼造成的中心節(jié)點轉(zhuǎn)移而造成網(wǎng)絡混亂,此時數(shù)據(jù)域必須是0x5555。
    N:備用中心節(jié)點標志,告知外圍節(jié)點數(shù)據(jù)域指定的為備用中心節(jié)點地址,此時數(shù)據(jù)域由三個字節(jié)組成,且每個字節(jié)都為備用中心節(jié)點地址并相等。
2.2 網(wǎng)絡自我修復
    星型網(wǎng)絡對中心節(jié)點的依賴性很強,一旦中心節(jié)點發(fā)生故障,網(wǎng)絡便會癱瘓。針對這一情況,本論文提出了網(wǎng)絡中心節(jié)點轉(zhuǎn)移的概念??紤]到各節(jié)點都有檢測網(wǎng)絡狀態(tài)的能力(傳輸層完成此功能),同時,任何一個性能良好的節(jié)點都有能力至少完成一次網(wǎng)絡掃描并告知其他節(jié)點備用中心節(jié)點的地址,所以可以很容易地實現(xiàn)中心節(jié)點的轉(zhuǎn)移。
    中心節(jié)點故障[5]包括衛(wèi)星通信故障和無線模塊故障兩種。
    設中心節(jié)點地址為X,當衛(wèi)星通信發(fā)生故障時,中心節(jié)點首先在網(wǎng)絡中查找無故障的目標節(jié)點(W=0),然后將目標節(jié)點地址設置為X-1、將自身地址設置為目標節(jié)點的原始地址,同時向目標節(jié)點發(fā)送中心節(jié)點授權(quán)(R=1,數(shù)據(jù)域為0x5555),最后,目標節(jié)點將自身地址設為X,成為新的中心節(jié)點。
    當無線模塊發(fā)生故障時,所有外圍節(jié)點都不會檢測到任何無線信號,此時,外圍節(jié)點與備用中心節(jié)點地址進行對比,匹配的外圍節(jié)點成為中心節(jié)點,發(fā)起數(shù)據(jù)通信,查找無故障的節(jié)點并將該節(jié)點指定為新的備用中心節(jié)點,同時告知其他外圍節(jié)點。
3 節(jié)點硬件設計
    節(jié)點需具有以下功能:衛(wèi)星通信、無線通信、水下數(shù)據(jù)接收、數(shù)據(jù)存儲,同時盡量降低節(jié)點的功耗及成本。綜合考慮,選用處理能力適中的STM32作為CPU;選用9XTend作為無線收發(fā)模塊,該模塊在使用偶極天線時通信距離可達22 km,在使用高增益天線時最遠可達64 km;選用9601SBD(9601 Short Burst Data Transceiver)銥星收發(fā)模塊通過銥星衛(wèi)星與陸地基站進行通信。由于STM32只有兩個USART資源,而銥星收發(fā)需要實時檢測信號質(zhì)量并盡量保證在較小的延遲下將數(shù)據(jù)發(fā)往陸地基站,所以9601SBD占用一個USART,無線通信及水下數(shù)據(jù)接收共享一個USART。圖3所示為節(jié)點硬件框圖。

4 軟件設計
    系統(tǒng)軟件應完成水下數(shù)據(jù)接收、銥星模塊控制、無線網(wǎng)絡通信與維護、數(shù)據(jù)存儲等功能。開機后,各節(jié)點讀取系統(tǒng)配置對本節(jié)點初始化,包括SPI接口初始化、定時器初始化、水下數(shù)據(jù)接收初始化、9XTend初始化。此外中心節(jié)點需要初始化9601SBD控制模塊,而外圍節(jié)點則將9601SBD控制模塊置于休眠狀態(tài),以降低功耗。之后系統(tǒng)進入工作狀態(tài)。圖4所示為不同節(jié)點工作狀態(tài)下的程序流程圖。

5 實驗結(jié)果
    實驗中設計了4個無線節(jié)點,并以圖5連接方式將這些節(jié)點隨意放置于10 m×8 m的房間中,各節(jié)點供電電壓為9 V,銥星天線置于室外,無線RF模塊的通信速率為19 200 b/s,RF模塊與CPU的通信速率為9 600 b/s。首先將各節(jié)點配置為非網(wǎng)絡運行狀態(tài),此時記錄其中一個節(jié)點接收數(shù)據(jù)情況,如表1所示。由表1可以發(fā)現(xiàn),當各節(jié)點發(fā)送數(shù)據(jù)幀的間隔時間不斷減小時,誤碼率明顯提高,當間隔時間為0.5 s時,9%的誤碼率導致幾乎不能提取出正確的數(shù)據(jù)幀。


    當把各節(jié)點用本論文所述方式進行配置后,查看其中一個節(jié)點接收數(shù)據(jù)情況并記錄如表2所示,此時即使將發(fā)送間隔時間降低到0.3 s也不會出現(xiàn)誤碼,不足之處是有些數(shù)據(jù)幀需要延遲發(fā)送。從協(xié)議上分析,由于通信總是由中心節(jié)點發(fā)起的,所以不應該出現(xiàn)誤碼,但當間隔時間降低到0.1 s時,出現(xiàn)了誤碼,這應該是由于中心節(jié)點分配給外圍節(jié)點的時間片較小而造成的,若增加時間片,則會降低網(wǎng)絡數(shù)據(jù)傳輸?shù)男?,所以可以綜合考慮通信速率和網(wǎng)絡效率并依據(jù)實際需求選擇最佳的時間片值。


    通過電腦查看銥星衛(wèi)星通信狀態(tài),當銥星天線信號良好時,從中心節(jié)點發(fā)送的數(shù)據(jù)僅需20 s即可抵達陸地基站。表3記錄為3 h時間段內(nèi),9601SBD信號質(zhì)量狀況,其中0代表無信號,5代表信號質(zhì)量最好。實驗表明,天氣狀況良好,信號質(zhì)量為“3-5”時可以正常進行銥星衛(wèi)星通信;天氣狀況較差,如陰雨天時,信號質(zhì)量為“4-5”時才能保證銥星衛(wèi)星正常通信。

    針對遠海海洋特殊的應用環(huán)境,本文提出了以9XTend無線模塊及9601SBD銥星模塊構(gòu)建海洋浮標網(wǎng)絡數(shù)據(jù)傳輸系統(tǒng)的設計方案,并給出了無線網(wǎng)絡的架構(gòu)及協(xié)議。實驗證明本設計切實可行并表現(xiàn)出較大的優(yōu)越性,完全可以應用于海洋浮標網(wǎng)絡的數(shù)據(jù)傳輸,對我國海洋環(huán)境檢測技術的發(fā)展有較大的意義。
    本設計目前針對的是網(wǎng)絡中節(jié)點較少的情況,理論上可以支持最多254個節(jié)點(地址0不使用,地址1作為中心節(jié)點轉(zhuǎn)移時的臨時地址),但隨著節(jié)點的增多,就會增加中心節(jié)點的負擔,在后續(xù)改進中,可以將網(wǎng)絡分層或劃分子網(wǎng),從而減輕中心節(jié)點的負擔并實現(xiàn)網(wǎng)絡的更大范圍覆蓋。
參考文獻
[1] 朱伯康,劉仁清,許建平.一種專門用于低緯度洋區(qū)觀測的Argo剖面浮標[J].海洋技術,2009,28(4):123-125.
[2] Deng Ziwang,Tang Youmin,Wang Guihua.Assimilation of argo temperature and salinity profiles using a bias-aware  localized EnKF system for the Pacific Ocean[J].Ocean Modelling,2010,35(3):187-205.
[3] 麻常雷,高艷波.多系統(tǒng)集成的全球地球觀測系統(tǒng)與全球海洋觀測系統(tǒng)[J].海洋技術,2006,25(3):41-44+50.
[4] Farhan A R,Lim S.Integrated coastal zone management towards Indonesia global ocean observing system(INA-GOOS):review and recommendation[J].Ocean and Coastal Manage ment,2010,53(8):421-427.
[5] 劉衛(wèi),徐曉玲,楊楊.淺議無線網(wǎng)故障解決方法[J].甘肅高師學報,2010,15(5):38-40.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。