《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于STM32的海洋浮標(biāo)無線通信網(wǎng)絡(luò)設(shè)計
基于STM32的海洋浮標(biāo)無線通信網(wǎng)絡(luò)設(shè)計
王 宗,劉敬彪,蔡文郁
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江 杭州310018)
摘要: 針對在遠(yuǎn)海海洋的特殊環(huán)境下,數(shù)據(jù)傳輸能力不能滿足海洋環(huán)境檢測需求的現(xiàn)狀,提出以無線傳感器和銥星模塊構(gòu)建海洋浮標(biāo)通信網(wǎng)絡(luò)的設(shè)計方案,并給出具體的組網(wǎng)方法及通信協(xié)議。
中圖分類號: TN929
文獻(xiàn)標(biāo)識碼: 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)境污染日益嚴(yán)重的今天,進(jìn)軍海洋、開發(fā)海洋已成為世界海洋技術(shù)領(lǐng)域的一大主題。發(fā)展海洋科技,尤其是海洋高新技術(shù)首先要解決的問題就是海洋環(huán)境監(jiān)測。
    目前,使用較多的是ARGO[1,2](Array for Real-time Geotropic Oceanography)即地轉(zhuǎn)海洋學(xué)實時觀測陣,它是全球海洋觀測業(yè)務(wù)系統(tǒng)GOOS(Global Ocean Observing System)[3,4]中的針對深海區(qū)溫度鹽度結(jié)構(gòu)觀測的一個子計劃。ARGO節(jié)點借助液壓動力來改變自身體積以便在0~2 000 m深的海水中下沉與上浮,同時,在上浮過程中對海洋環(huán)境進(jìn)行剖面測量。AGRO采集的數(shù)據(jù)是以10~14天為周期通過衛(wèi)星系統(tǒng)來傳輸?shù)摹?br/>     本系統(tǒng)針對遠(yuǎn)海海洋數(shù)據(jù)傳輸不能滿足實時檢測的現(xiàn)狀,以無線傳感器為節(jié)點構(gòu)成數(shù)據(jù)傳輸網(wǎng)絡(luò),采用銥星模塊將采集數(shù)據(jù)發(fā)往陸地基站。
1 系統(tǒng)簡介
    本海洋浮標(biāo)網(wǎng)絡(luò)數(shù)據(jù)傳輸系統(tǒng)結(jié)構(gòu)如圖1所示,主要由海洋浮標(biāo)節(jié)點、無線網(wǎng)絡(luò)、衛(wèi)星通信系統(tǒng)組成。
    海洋浮標(biāo)節(jié)點通過光纖、電纜或無線方式與其下方的傳感器網(wǎng)絡(luò)通信,以實現(xiàn)對一定范圍內(nèi)海洋環(huán)境的檢測,同時每個浮標(biāo)節(jié)點都攜帶有無線通信模塊和衛(wèi)星通信模塊。無線網(wǎng)絡(luò)完成兩個功能:將浮標(biāo)網(wǎng)絡(luò)中各節(jié)點采集的數(shù)據(jù)傳輸?shù)街行墓?jié)點;在中心節(jié)點發(fā)生故障時選擇新的中心節(jié)點,盡量保證系統(tǒng)的正常運行。衛(wèi)星通信系統(tǒng)負(fù)責(zé)將匯集在中心節(jié)點的數(shù)據(jù)發(fā)送到陸地基站。

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

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

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

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

5 實驗結(jié)果
    實驗中設(shè)計了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)絡(luò)運行狀態(tài),此時記錄其中一個節(jié)點接收數(shù)據(jù)情況,如表1所示。由表1可以發(fā)現(xiàn),當(dāng)各節(jié)點發(fā)送數(shù)據(jù)幀的間隔時間不斷減小時,誤碼率明顯提高,當(dāng)間隔時間為0.5 s時,9%的誤碼率導(dǎo)致幾乎不能提取出正確的數(shù)據(jù)幀。


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


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

    針對遠(yuǎn)海海洋特殊的應(yīng)用環(huán)境,本文提出了以9XTend無線模塊及9601SBD銥星模塊構(gòu)建海洋浮標(biāo)網(wǎng)絡(luò)數(shù)據(jù)傳輸系統(tǒng)的設(shè)計方案,并給出了無線網(wǎng)絡(luò)的架構(gòu)及協(xié)議。實驗證明本設(shè)計切實可行并表現(xiàn)出較大的優(yōu)越性,完全可以應(yīng)用于海洋浮標(biāo)網(wǎng)絡(luò)的數(shù)據(jù)傳輸,對我國海洋環(huán)境檢測技術(shù)的發(fā)展有較大的意義。
    本設(shè)計目前針對的是網(wǎng)絡(luò)中節(jié)點較少的情況,理論上可以支持最多254個節(jié)點(地址0不使用,地址1作為中心節(jié)點轉(zhuǎn)移時的臨時地址),但隨著節(jié)點的增多,就會增加中心節(jié)點的負(fù)擔(dān),在后續(xù)改進(jìn)中,可以將網(wǎng)絡(luò)分層或劃分子網(wǎng),從而減輕中心節(jié)點的負(fù)擔(dān)并實現(xiàn)網(wǎng)絡(luò)的更大范圍覆蓋。
參考文獻(xiàn)
[1] 朱伯康,劉仁清,許建平.一種專門用于低緯度洋區(qū)觀測的Argo剖面浮標(biāo)[J].海洋技術(shù),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].海洋技術(shù),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].甘肅高師學(xué)報,2010,15(5):38-40.

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