【推薦給海洋局】基于STM32的海洋浮標(biāo)無線通信網(wǎng)絡(luò)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘 要: 針對在遠(yuǎn)海海洋的特殊環(huán)境下,數(shù)據(jù)傳輸能力不能滿足海洋環(huán)境檢測需求的現(xiàn)狀,提出以無線傳感器和銥星模塊構(gòu)建海洋浮標(biāo)通信網(wǎng)絡(luò)的設(shè)計(jì)方案,并給出具體的組網(wǎng)方法及通信協(xié)議。
關(guān)鍵詞: 海洋通信;無線網(wǎng);銥星;STM32;協(xié)議
在世界人口數(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é)實(shí)時(shí)觀測陣,它是全球海洋觀測業(yè)務(wù)系統(tǒng)GOOS(Global Ocean Observing System)[3,4]中的針對深海區(qū)溫度鹽度結(jié)構(gòu)觀測的一個(gè)子計(jì)劃。ARGO節(jié)點(diǎn)借助液壓動(dòng)力來改變自身體積以便在0~2 000 m深的海水中下沉與上浮,同時(shí),在上浮過程中對海洋環(huán)境進(jìn)行剖面測量。AGRO采集的數(shù)據(jù)是以10~14天為周期通過衛(wèi)星系統(tǒng)來傳輸?shù)摹?br /> 本系統(tǒng)針對遠(yuǎn)海海洋數(shù)據(jù)傳輸不能滿足實(shí)時(shí)檢測的現(xiàn)狀,以無線傳感器為節(jié)點(diǎn)構(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é)點(diǎn)、無線網(wǎng)絡(luò)、衛(wèi)星通信系統(tǒng)組成。
海洋浮標(biāo)節(jié)點(diǎn)通過光纖、電纜或無線方式與其下方的傳感器網(wǎng)絡(luò)通信,以實(shí)現(xiàn)對一定范圍內(nèi)海洋環(huán)境的檢測,同時(shí)每個(gè)浮標(biāo)節(jié)點(diǎn)都攜帶有無線通信模塊和衛(wèi)星通信模塊。無線網(wǎng)絡(luò)完成兩個(gè)功能:將浮標(biāo)網(wǎng)絡(luò)中各節(jié)點(diǎn)采集的數(shù)據(jù)傳輸?shù)街行墓?jié)點(diǎn);在中心節(jié)點(diǎn)發(fā)生故障時(shí)選擇新的中心節(jié)點(diǎn),盡量保證系統(tǒng)的正常運(yùn)行。衛(wèi)星通信系統(tǒng)負(fù)責(zé)將匯集在中心節(jié)點(diǎn)的數(shù)據(jù)發(fā)送到陸地基站。
本論文研究無線網(wǎng)絡(luò)的數(shù)據(jù)傳輸與網(wǎng)絡(luò)維護(hù)以及衛(wèi)星通信。
2 系統(tǒng)原理
2.1 無線網(wǎng)絡(luò)結(jié)構(gòu)選擇及協(xié)議制定
無線網(wǎng)絡(luò)不同于有線網(wǎng)絡(luò),在有線網(wǎng)絡(luò)中,一個(gè)節(jié)點(diǎn)發(fā)出的數(shù)據(jù)通過有線鏈路直接抵達(dá)目標(biāo)節(jié)點(diǎn)或中繼節(jié)點(diǎn),在此過程中,不會(huì)對其他節(jié)點(diǎn)造成影響。而無線網(wǎng)絡(luò)中,節(jié)點(diǎn)發(fā)出的無線信號會(huì)對網(wǎng)絡(luò)中所有節(jié)點(diǎn)造成干擾,若不加限制,則無線網(wǎng)絡(luò)完全無法運(yùn)行。
此外,本無線網(wǎng)絡(luò)還具有以下特點(diǎn):(1)網(wǎng)絡(luò)中節(jié)點(diǎn)一般不會(huì)超過10個(gè);(2)網(wǎng)絡(luò)一旦建立,短期內(nèi)不會(huì)加入新的節(jié)點(diǎn),數(shù)據(jù)傳輸量不大但頻率較快。
介于以上特點(diǎn),本網(wǎng)絡(luò)設(shè)計(jì)如下:(1)采用星型結(jié)構(gòu),與此同時(shí),任何通信都由中心節(jié)點(diǎn)發(fā)起,這樣可以避免中心節(jié)點(diǎn)同時(shí)收到多條數(shù)據(jù)而造成混亂;(2)網(wǎng)絡(luò)分三層:物理層、傳輸層、應(yīng)用層;(3)網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)擁有唯一的網(wǎng)絡(luò)地址(初始設(shè)置中心節(jié)點(diǎn)地址為02,外圍節(jié)點(diǎn)依次遞增),以實(shí)現(xiàn)數(shù)據(jù)的定點(diǎn)通信。
圖2所示為網(wǎng)絡(luò)協(xié)議幀格式。由于每次通信都是由中心節(jié)點(diǎn)發(fā)起的,所以協(xié)議中不設(shè)立源地址。各層功能如下:物理層提供數(shù)據(jù)的實(shí)際傳輸,由無線模塊完成,傳輸層只需以字節(jié)為單位發(fā)送數(shù)據(jù)即可;傳輸層負(fù)責(zé)檢測網(wǎng)絡(luò)狀態(tài)以及數(shù)據(jù)幀的提取,并對比目的地址與該節(jié)點(diǎn)地址,若不符合接收條件,則丟棄數(shù)據(jù)包;應(yīng)用層完成中心節(jié)點(diǎn)指定的任務(wù),如采集數(shù)據(jù)的發(fā)送、節(jié)點(diǎn)地址的設(shè)定等。
應(yīng)用層標(biāo)志位意義如下:
G:中心節(jié)點(diǎn)獲取數(shù)據(jù)標(biāo)志,此時(shí),外圍節(jié)點(diǎn)以采集數(shù)據(jù)來填充數(shù)據(jù)幀并發(fā)送。
D:表示采集數(shù)據(jù),此時(shí),中心節(jié)點(diǎn)接收到的數(shù)據(jù)為采集到的數(shù)據(jù)。
A:重新設(shè)定節(jié)點(diǎn)地址標(biāo)志,此時(shí),數(shù)據(jù)域有三個(gè)字節(jié)且每個(gè)字節(jié)都為新地址并相等。該功能可在中心節(jié)點(diǎn)檢測到衛(wèi)星通信發(fā)生故障時(shí)設(shè)定新的中心節(jié)點(diǎn)。
S:成功標(biāo)志位,外圍節(jié)點(diǎn)成功設(shè)定本節(jié)點(diǎn)新地址后置位該位,否則清零該位,并告知中心節(jié)點(diǎn)。
W:警告標(biāo)志位,外圍節(jié)點(diǎn)發(fā)生故障時(shí)置位該位,請求將故障信息發(fā)往陸地基站。
R:授權(quán)標(biāo)志位,指定新的節(jié)點(diǎn)為中心節(jié)點(diǎn)時(shí)置位該位,為了防止誤碼造成的中心節(jié)點(diǎn)轉(zhuǎn)移而造成網(wǎng)絡(luò)混亂,此時(shí)數(shù)據(jù)域必須是0x5555。
N:備用中心節(jié)點(diǎn)標(biāo)志,告知外圍節(jié)點(diǎn)數(shù)據(jù)域指定的為備用中心節(jié)點(diǎn)地址,此時(shí)數(shù)據(jù)域由三個(gè)字節(jié)組成,且每個(gè)字節(jié)都為備用中心節(jié)點(diǎn)地址并相等。
2.2 網(wǎng)絡(luò)自我修復(fù)
星型網(wǎng)絡(luò)對中心節(jié)點(diǎn)的依賴性很強(qiáng),一旦中心節(jié)點(diǎn)發(fā)生故障,網(wǎng)絡(luò)便會(huì)癱瘓。針對這一情況,本論文提出了網(wǎng)絡(luò)中心節(jié)點(diǎn)轉(zhuǎn)移的概念??紤]到各節(jié)點(diǎn)都有檢測網(wǎng)絡(luò)狀態(tài)的能力(傳輸層完成此功能),同時(shí),任何一個(gè)性能良好的節(jié)點(diǎn)都有能力至少完成一次網(wǎng)絡(luò)掃描并告知其他節(jié)點(diǎn)備用中心節(jié)點(diǎn)的地址,所以可以很容易地實(shí)現(xiàn)中心節(jié)點(diǎn)的轉(zhuǎn)移。
中心節(jié)點(diǎn)故障[5]包括衛(wèi)星通信故障和無線模塊故障兩種。
設(shè)中心節(jié)點(diǎn)地址為X,當(dāng)衛(wèi)星通信發(fā)生故障時(shí),中心節(jié)點(diǎn)首先在網(wǎng)絡(luò)中查找無故障的目標(biāo)節(jié)點(diǎn)(W=0),然后將目標(biāo)節(jié)點(diǎn)地址設(shè)置為X-1、將自身地址設(shè)置為目標(biāo)節(jié)點(diǎn)的原始地址,同時(shí)向目標(biāo)節(jié)點(diǎn)發(fā)送中心節(jié)點(diǎn)授權(quán)(R=1,數(shù)據(jù)域?yàn)?x5555),最后,目標(biāo)節(jié)點(diǎn)將自身地址設(shè)為X,成為新的中心節(jié)點(diǎn)。
當(dāng)無線模塊發(fā)生故障時(shí),所有外圍節(jié)點(diǎn)都不會(huì)檢測到任何無線信號,此時(shí),外圍節(jié)點(diǎn)與備用中心節(jié)點(diǎn)地址進(jìn)行對比,匹配的外圍節(jié)點(diǎn)成為中心節(jié)點(diǎn),發(fā)起數(shù)據(jù)通信,查找無故障的節(jié)點(diǎn)并將該節(jié)點(diǎn)指定為新的備用中心節(jié)點(diǎn),同時(shí)告知其他外圍節(jié)點(diǎn)。
3 節(jié)點(diǎn)硬件設(shè)計(jì)
節(jié)點(diǎn)需具有以下功能:衛(wèi)星通信、無線通信、水下數(shù)據(jù)接收、數(shù)據(jù)存儲(chǔ),同時(shí)盡量降低節(jié)點(diǎn)的功耗及成本。綜合考慮,選用處理能力適中的STM32作為CPU;選用9XTend作為無線收發(fā)模塊,該模塊在使用偶極天線時(shí)通信距離可達(dá)22 km,在使用高增益天線時(shí)最遠(yuǎn)可達(dá)64 km;選用9601SBD(9601 Short Burst Data Transceiver)銥星收發(fā)模塊通過銥星衛(wèi)星與陸地基站進(jìn)行通信。由于STM32只有兩個(gè)USART資源,而銥星收發(fā)需要實(shí)時(shí)檢測信號質(zhì)量并盡量保證在較小的延遲下將數(shù)據(jù)發(fā)往陸地基站,所以9601SBD占用一個(gè)USART,無線通信及水下數(shù)據(jù)接收共享一個(gè)USART。圖3所示為節(jié)點(diǎn)硬件框圖。
4 軟件設(shè)計(jì)
系統(tǒng)軟件應(yīng)完成水下數(shù)據(jù)接收、銥星模塊控制、無線網(wǎng)絡(luò)通信與維護(hù)、數(shù)據(jù)存儲(chǔ)等功能。開機(jī)后,各節(jié)點(diǎn)讀取系統(tǒng)配置對本節(jié)點(diǎn)初始化,包括SPI接口初始化、定時(shí)器初始化、水下數(shù)據(jù)接收初始化、9XTend初始化。此外中心節(jié)點(diǎn)需要初始化9601SBD控制模塊,而外圍節(jié)點(diǎn)則將9601SBD控制模塊置于休眠狀態(tài),以降低功耗。之后系統(tǒng)進(jìn)入工作狀態(tài)。圖4所示為不同節(jié)點(diǎn)工作狀態(tài)下的程序流程圖。
5 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)中設(shè)計(jì)了4個(gè)無線節(jié)點(diǎn),并以圖5連接方式將這些節(jié)點(diǎn)隨意放置于10 m×8 m的房間中,各節(jié)點(diǎn)供電電壓為9 V,銥星天線置于室外,無線RF模塊的通信速率為19 200 b/s,RF模塊與CPU的通信速率為9 600 b/s。首先將各節(jié)點(diǎn)配置為非網(wǎng)絡(luò)運(yùn)行狀態(tài),此時(shí)記錄其中一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)情況,如表1所示。由表1可以發(fā)現(xiàn),當(dāng)各節(jié)點(diǎn)發(fā)送數(shù)據(jù)幀的間隔時(shí)間不斷減小時(shí),誤碼率明顯提高,當(dāng)間隔時(shí)間為0.5 s時(shí),9%的誤碼率導(dǎo)致幾乎不能提取出正確的數(shù)據(jù)幀。
當(dāng)把各節(jié)點(diǎn)用本論文所述方式進(jìn)行配置后,查看其中一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)情況并記錄如表2所示,此時(shí)即使將發(fā)送間隔時(shí)間降低到0.3 s也不會(huì)出現(xiàn)誤碼,不足之處是有些數(shù)據(jù)幀需要延遲發(fā)送。從協(xié)議上分析,由于通信總是由中心節(jié)點(diǎn)發(fā)起的,所以不應(yīng)該出現(xiàn)誤碼,但當(dāng)間隔時(shí)間降低到0.1 s時(shí),出現(xiàn)了誤碼,這應(yīng)該是由于中心節(jié)點(diǎn)分配給外圍節(jié)點(diǎn)的時(shí)間片較小而造成的,若增加時(shí)間片,則會(huì)降低網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)男?,所以可以綜合考慮通信速率和網(wǎng)絡(luò)效率并依據(jù)實(shí)際需求選擇最佳的時(shí)間片值。
通過電腦查看銥星衛(wèi)星通信狀態(tài),當(dāng)銥星天線信號良好時(shí),從中心節(jié)點(diǎn)發(fā)送的數(shù)據(jù)僅需20 s即可抵達(dá)陸地基站。表3記錄為3 h時(shí)間段內(nèi),9601SBD信號質(zhì)量狀況,其中0代表無信號,5代表信號質(zhì)量最好。實(shí)驗(yàn)表明,天氣狀況良好,信號質(zhì)量為“3-5”時(shí)可以正常進(jìn)行銥星衛(wèi)星通信;天氣狀況較差,如陰雨天時(shí),信號質(zhì)量為“4-5”時(shí)才能保證銥星衛(wèi)星正常通信。
針對遠(yuǎn)海海洋特殊的應(yīng)用環(huán)境,本文提出了以9XTend無線模塊及9601SBD銥星模塊構(gòu)建海洋浮標(biāo)網(wǎng)絡(luò)數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)方案,并給出了無線網(wǎng)絡(luò)的架構(gòu)及協(xié)議。實(shí)驗(yàn)證明本設(shè)計(jì)切實(shí)可行并表現(xiàn)出較大的優(yōu)越性,完全可以應(yīng)用于海洋浮標(biāo)網(wǎng)絡(luò)的數(shù)據(jù)傳輸,對我國海洋環(huán)境檢測技術(shù)的發(fā)展有較大的意義。
本設(shè)計(jì)目前針對的是網(wǎng)絡(luò)中節(jié)點(diǎn)較少的情況,理論上可以支持最多254個(gè)節(jié)點(diǎn)(地址0不使用,地址1作為中心節(jié)點(diǎn)轉(zhuǎn)移時(shí)的臨時(shí)地址),但隨著節(jié)點(diǎn)的增多,就會(huì)增加中心節(jié)點(diǎn)的負(fù)擔(dān),在后續(xù)改進(jìn)中,可以將網(wǎng)絡(luò)分層或劃分子網(wǎng),從而減輕中心節(jié)點(diǎn)的負(fù)擔(dān)并實(shí)現(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é)報(bào),2010,15(5):38-40.