一種用于水聲傳感器網(wǎng)絡(luò)的多路徑協(xié)作通信方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明水聲通信網(wǎng)絡(luò),具體涉及一種用于水聲傳感器網(wǎng)絡(luò)的多路徑協(xié)作通信方 法。
【背景技術(shù)】
[0002] 隨著海洋科學(xué)和海洋開發(fā)的發(fā)展,水聲通信技術(shù)的研宄越來越受到重視,其中水 聲傳感器網(wǎng)絡(luò)的研宄也成為前沿?zé)狳c(diǎn)。
[0003] 水聲傳感器網(wǎng)絡(luò)是指在一定水下區(qū)域內(nèi),通過傳感器節(jié)點(diǎn)獲取水下信息,并對(duì)水 下節(jié)點(diǎn)進(jìn)行聲學(xué)通信和組網(wǎng),最終通過水面浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)以無線的形式把在覆蓋區(qū)域中所 獲取的信息納入岸上常規(guī)網(wǎng)絡(luò),并發(fā)送給觀察者的水下子網(wǎng)。
[0004] 水聲傳感器網(wǎng)絡(luò)在應(yīng)用時(shí),往往具有稀疏拓?fù)浜投ㄏ騻鬏數(shù)奶攸c(diǎn):①由于要在海 水中長(zhǎng)期工作,水下傳感器節(jié)點(diǎn)都必須能夠抗壓、防滲漏與防腐蝕,節(jié)點(diǎn)的制造成本偏高, 因此,在節(jié)點(diǎn)數(shù)量有限的情況下,為了監(jiān)視盡可能大的區(qū)域,水下傳感器的布置比較稀疏, 即節(jié)點(diǎn)的鄰節(jié)點(diǎn)數(shù)較少。②水聲傳感器網(wǎng)絡(luò)是由水下傳感器節(jié)點(diǎn)和水面浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)組 成,水下傳感器節(jié)點(diǎn)的信息流主要是定向匯聚到浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn),再由浮標(biāo)無線電轉(zhuǎn)發(fā)到岸 基或船基控制中心。
[0005] 可靠的點(diǎn)對(duì)點(diǎn)水聲通信是水聲傳感器網(wǎng)絡(luò)的物理層基礎(chǔ),然而水聲信道遠(yuǎn)不是理 想信道,是一個(gè)時(shí)變的時(shí)頻雙擴(kuò)散信道,點(diǎn)對(duì)點(diǎn)通信性能并不穩(wěn)定,在網(wǎng)絡(luò)節(jié)點(diǎn)稀疏布放的 情況下,一旦某兩個(gè)節(jié)點(diǎn)之間通信鏈路不穩(wěn)定,就會(huì)造成整個(gè)水聲網(wǎng)絡(luò)的時(shí)延增大甚至網(wǎng) 絡(luò)癱瘓。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明目的在于,為了解決因?yàn)辄c(diǎn)對(duì)點(diǎn)水聲通信不穩(wěn)定而引起的水聲傳感器網(wǎng)絡(luò) 時(shí)延增大甚至網(wǎng)絡(luò)癱瘓這一問題,而提供一種用于水聲傳感器網(wǎng)絡(luò)的多路徑協(xié)作通信方 法,將點(diǎn)對(duì)點(diǎn)通信與路由選擇結(jié)合起來,將物理層技術(shù)與網(wǎng)絡(luò)路由協(xié)議聯(lián)合優(yōu)化,采用多路 徑協(xié)作的方法,獲取節(jié)點(diǎn)接收信息時(shí)的空間分集增益,在網(wǎng)絡(luò)環(huán)境下提高水聲通信的可靠 性,保證水聲傳感器網(wǎng)絡(luò)的穩(wěn)健。
[0007] 本發(fā)明的目的是通過如下技術(shù)方案來完成的。這種用于水聲傳感器網(wǎng)絡(luò)的多路徑 協(xié)作通信方法,包括如下步驟:
[0008] 步驟A,網(wǎng)絡(luò)進(jìn)行初始化,浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)廣播HELLO幀,HELLO幀含有字段:〈源 節(jié)點(diǎn)地址,距離網(wǎng)關(guān)節(jié)點(diǎn)的跳數(shù),初始化序列號(hào)〉,各個(gè)節(jié)點(diǎn)通過接收、解析、再生和轉(zhuǎn)發(fā) HELLO幀,更新本地跳數(shù)、鄰節(jié)點(diǎn)地址及其跳數(shù);
[0009] 步驟B,當(dāng)網(wǎng)絡(luò)中某節(jié)點(diǎn)S有數(shù)據(jù)需要發(fā)送給浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)時(shí),先發(fā)送PING幀, PING幀含有字段:〈源節(jié)點(diǎn)地址,備選下一跳節(jié)點(diǎn)數(shù)量,備選下一跳節(jié)點(diǎn)列表NHListD;
[0010] 步驟C,當(dāng)任意節(jié)點(diǎn)收到PING幀后,如果該節(jié)點(diǎn)在PING幀的備選下一跳節(jié)點(diǎn)列表 NHListl中,則返回ECHO幀,否則丟棄該P(yáng)ING幀,ECHO幀含有字段:〈源節(jié)點(diǎn)地址,接收信 噪比SNR,備選下一跳節(jié)點(diǎn)數(shù)量,備選下一跳節(jié)點(diǎn)列表NHList2,通信成功率列表SRList〉;
[0011] 步驟D,當(dāng)節(jié)點(diǎn)S收到所有返回的ECHO幀后,對(duì)NHList2的內(nèi)容進(jìn)行判斷:如果各 個(gè)NHList2之間存在交集U,則通過計(jì)算得到1個(gè)匯聚節(jié)點(diǎn)和n個(gè)中繼節(jié)點(diǎn),節(jié)點(diǎn)S在發(fā)送 DATA幀之前,先發(fā)送WAKEl幀,用于通知中繼節(jié)點(diǎn)準(zhǔn)備接收后續(xù)的DATA幀,WAKEl含有字 段:〈匯聚節(jié)點(diǎn)地址,中繼節(jié)點(diǎn)數(shù)量n,中繼節(jié)點(diǎn)列表RelayList,DATA幀源地址,DATA幀序 列號(hào)〉,如果各個(gè)NHList2之間不存在交集U,則通過計(jì)算得到唯一傳輸路徑,發(fā)送DATA幀;
[0012] 步驟E,當(dāng)節(jié)點(diǎn)收到WAKEl后,如果該節(jié)點(diǎn)在中繼節(jié)點(diǎn)列表RelayList中,則接收 后續(xù)的DATA幀,對(duì)DATA進(jìn)行解碼:如果不能正確解碼DATA幀,并且接收信噪比超過轉(zhuǎn)發(fā) 門限,則先發(fā)送一個(gè)短幀WAKE2,用于通知匯聚節(jié)點(diǎn)準(zhǔn)備接收后續(xù)的DATA幀,再將接收到 的DATA幀信號(hào)放大后轉(zhuǎn)發(fā),WAKE2含有字段:〈匯聚節(jié)點(diǎn)地址,中繼節(jié)點(diǎn)數(shù)量n,DATA幀源 地址,DATA幀序列號(hào)〉,如果DATA幀信噪比小于轉(zhuǎn)發(fā)門限,則放棄,如果能夠正確解碼DATA 幀,則返回ACKl幀,ACKl幀含有字段:〈匯聚節(jié)點(diǎn)地址,本地節(jié)點(diǎn)地址,DATA幀源地址,DATA 幀序列號(hào),ACK類別〉,當(dāng)匯聚節(jié)點(diǎn)收到ACKl幀后,放棄接收其它中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)的相同DATA 幀,當(dāng)其它中繼節(jié)點(diǎn)收到ACKl幀后,放棄轉(zhuǎn)發(fā)相同DATA幀,當(dāng)源節(jié)點(diǎn)收到ACKl幀后,統(tǒng)計(jì) 歷史通信成功率;
[0013] 步驟F,當(dāng)節(jié)點(diǎn)收到WAKE2后,如果該節(jié)點(diǎn)是匯聚節(jié)點(diǎn),則等待接收所有轉(zhuǎn)發(fā)的 DATA幀,通過對(duì)多個(gè)DATA幀接收信號(hào)進(jìn)行合并處理以提高解碼成功率,如果能夠正確解 碼,則返回ACK2幀,ACK2幀含有字段:〈匯聚節(jié)點(diǎn)地址,本地節(jié)點(diǎn)地址,DATA幀源地址,DATA 幀序列號(hào),ACK類別〉,然后匯聚節(jié)點(diǎn)繼續(xù)轉(zhuǎn)發(fā)DATA幀,重復(fù)步驟B到步驟F,直到DATA幀 到達(dá)浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn),如果不能正確解碼,則返回NACK幀,NACK幀含有字段:〈匯聚節(jié)點(diǎn)地址, 本地節(jié)點(diǎn)地址,DATA幀源地址,DATA幀序列號(hào)〉,中繼節(jié)點(diǎn)收到ACK2或NACK后轉(zhuǎn)發(fā),當(dāng)節(jié) 點(diǎn)S收到NACK幀后,重發(fā)計(jì)數(shù)器加1,重復(fù)步驟B到步驟F,直到重發(fā)計(jì)數(shù)器達(dá)到最大值,或 收到ACKl幀,或收到ACK2幀。
[0014] 更進(jìn)一步的,該方法具體步驟如下:
[0015] 步驟1 :在網(wǎng)絡(luò)初始化時(shí),浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)廣播HELLO幀,HELLO幀含有字段:〈源節(jié) 點(diǎn)地址,距離網(wǎng)關(guān)節(jié)點(diǎn)的跳數(shù)HopCount,初始化序列號(hào)〉;浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)的跳數(shù)HopCount等 于0,每次網(wǎng)絡(luò)初始化均有唯一的序列號(hào);在網(wǎng)絡(luò)初始化時(shí),節(jié)點(diǎn)收到HELLO幀后,將HELLO 幀的源節(jié)點(diǎn)地址添加在鄰節(jié)點(diǎn)表中,并記錄HopCount作為新添加的鄰節(jié)點(diǎn)的跳數(shù),然后更 新源節(jié)點(diǎn)地址;判斷接收到的初始化序列號(hào)是否與本地存儲(chǔ)的初始化序列號(hào)相同:
[0016] 如果不同,更新本地初始化序列號(hào),并且將本地跳數(shù)設(shè)置為HopCount加1,然后將 HopCount加1后繼續(xù)廣播HELLO幀;
[0017] 如果相同,記錄相應(yīng)的跳數(shù)HopCount,如果HopCount小于本地跳數(shù),就將本地跳 數(shù)設(shè)置為HopCount加1,并將HopCount加1后繼續(xù)廣播HELLO幀,否則,丟棄該HELLO包, 這樣每個(gè)節(jié)點(diǎn)就獲得了本地跳數(shù)、鄰節(jié)點(diǎn)地址及其跳數(shù);
[0018] 步驟2:當(dāng)網(wǎng)絡(luò)中某個(gè)節(jié)點(diǎn)S有數(shù)據(jù)需要發(fā)送給浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)時(shí),先發(fā)送PING幀, PING幀含有字段:〈源節(jié)點(diǎn)地址,備選下一跳節(jié)點(diǎn)數(shù)量,備選下一跳節(jié)點(diǎn)列表NHListl〉,備 選下一跳節(jié)點(diǎn)是節(jié)點(diǎn)S的鄰節(jié)點(diǎn)表中跳數(shù)等于HC(S)減1的節(jié)點(diǎn),HC(S)是節(jié)點(diǎn)S的跳數(shù);
[0019] 步驟3 :當(dāng)節(jié)點(diǎn)Y收到PING幀后,如果節(jié)點(diǎn)Y在PING幀的備選下一跳節(jié)點(diǎn)列表 NHListl中,則返回ECHO幀,否則丟棄該P(yáng)ING幀;ECHO幀含有字段:〈源節(jié)點(diǎn)地址,接收信噪 比SNR,備選下一跳節(jié)點(diǎn)數(shù)量,備選下一跳節(jié)點(diǎn)列表NHList2,通信成功率列表SRList〉,接 收信噪比SNR是由Y接收PING幀時(shí)計(jì)算得到的,備選下一跳節(jié)點(diǎn)是節(jié)點(diǎn)Y的鄰節(jié)點(diǎn)表中跳 數(shù)等于HC(Y)減1的節(jié)點(diǎn),HC(Y)是節(jié)點(diǎn)Y的跳數(shù),通信成功率列表SRList是Y與NHList2 中各節(jié)點(diǎn)對(duì)應(yīng)的歷史成功通信率;
[0020] 步驟4 :當(dāng)節(jié)點(diǎn)S收到所有返回的ECHO幀后,對(duì)NHList2的內(nèi)容進(jìn)行判斷:
[0021] 如果各個(gè)NHList2之間存在交集U,計(jì)算權(quán)重因子:
【主權(quán)項(xiàng)】
1. 一種用于水聲傳感器網(wǎng)絡(luò)的多路徑協(xié)作通信方法,其特征在于,包括如下步驟: 步驟A,網(wǎng)絡(luò)進(jìn)行初始化,浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)廣播肥LLO帖,肥LLO帖含有字段;< 源節(jié)點(diǎn)地 址,距離網(wǎng)關(guān)節(jié)點(diǎn)的跳數(shù),初始化序列號(hào)〉,各個(gè)節(jié)點(diǎn)通過接收、解析、再生和轉(zhuǎn)發(fā)肥LLO帖, 更新本地跳數(shù)、鄰節(jié)點(diǎn)地址及其跳數(shù); 步驟B,當(dāng)網(wǎng)絡(luò)中某節(jié)點(diǎn)S有數(shù)據(jù)需要發(fā)送給浮標(biāo)網(wǎng)關(guān)節(jié)點(diǎn)時(shí),先發(fā)送PING帖,PING帖 含有字段;< 源節(jié)點(diǎn)地址,備選下一跳節(jié)點(diǎn)數(shù)量,備選下一跳節(jié)點(diǎn)列表NHListl〉; 步驟C,當(dāng)任意節(jié)點(diǎn)收到PING帖后,如果