本發(fā)明涉及無線傳感器網(wǎng)絡(luò)中時(shí)間同步領(lǐng)域,具體的說是一種基于TDMA的無線傳感器網(wǎng)絡(luò)時(shí)間同步時(shí)間源維護(hù)方法。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)是由大量形體較小、能源受限并且配置有計(jì)算能力和無線通信能力的傳感器節(jié)點(diǎn)以Mesh方式組成,其目的是協(xié)作的感知、采集和處理網(wǎng)絡(luò)覆蓋的地理區(qū)域中感知對(duì)象的信息,并發(fā)布給觀察者。
無線傳感器網(wǎng)絡(luò)是一個(gè)分布式系統(tǒng),而時(shí)間同步是所有分布式系統(tǒng)都需要解決的一個(gè)重要問題。在分布式系統(tǒng)中,由于物理上的分散性,系統(tǒng)無法為彼此間相互獨(dú)立的模塊提供一個(gè)統(tǒng)一的全局時(shí)鐘,必須由各個(gè)模塊各自維護(hù)它們的本地時(shí)鐘。由于這些本地時(shí)鐘的計(jì)時(shí)速率、運(yùn)行環(huán)境存在不一致性,因此即使所有的本地時(shí)鐘在某一時(shí)刻都被校準(zhǔn),一段時(shí)間后,這些本地時(shí)鐘也會(huì)出現(xiàn)失步。時(shí)間同步就是通過對(duì)本地時(shí)鐘的某些操作,達(dá)到為分布式系統(tǒng)提供一個(gè)統(tǒng)一時(shí)間標(biāo)度的過程。
無線傳感器網(wǎng)絡(luò)根據(jù)MAC協(xié)議,大體可以分為載波偵聽/多路訪問(Carrier Sense Multiple Access/Collision Detection,CSMA/CD)和時(shí)分復(fù)用(time division multiple access,TDMA)兩種類型。而時(shí)間同步又是基于時(shí)分復(fù)用需要協(xié)同工作的無線傳感器網(wǎng)絡(luò)的一個(gè)關(guān)鍵機(jī)制。時(shí)間同步共分為時(shí)間同步算法和時(shí)間同步時(shí)間源維護(hù)機(jī)制兩部分,良好的時(shí)間同步時(shí)間源維護(hù)機(jī)制能夠增加無線傳感器網(wǎng)絡(luò)的覆蓋范圍、網(wǎng)絡(luò)生存時(shí)間,提高無線傳感器網(wǎng)絡(luò)的健壯性,易于無線傳感器網(wǎng)絡(luò)的擴(kuò)展。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于TDMA的無線傳感器網(wǎng)絡(luò)時(shí)間同步時(shí)間源維護(hù)方法。
本發(fā)明為實(shí)現(xiàn)上述目的所采用的技術(shù)方案是:
一種基于TDMA的無線傳感器網(wǎng)絡(luò)時(shí)間同步時(shí)間源維護(hù)方法,包括以下步驟:
步驟1:將無線傳感器網(wǎng)絡(luò)的根節(jié)點(diǎn)上電或復(fù)位啟動(dòng),作為時(shí)間源;
步驟2:已入網(wǎng)的節(jié)點(diǎn)周期性發(fā)送帶有時(shí)間源層級(jí)參數(shù)的廣播報(bào)文;
步驟3:待入網(wǎng)的節(jié)點(diǎn)通過監(jiān)聽廣播報(bào)文來獲取周圍已入網(wǎng)節(jié)點(diǎn)的時(shí)間源層級(jí)參數(shù),并選擇時(shí)間源層級(jí)參數(shù)最小的節(jié)點(diǎn)作為同步點(diǎn)進(jìn)行時(shí)間同步;
步驟4:執(zhí)行入網(wǎng),并發(fā)送帶有時(shí)間源層級(jí)參數(shù)的廣播報(bào)文。
所述時(shí)間源層級(jí)參數(shù)為用于標(biāo)記距離時(shí)間源的層次等級(jí)的參數(shù)。
所述已入網(wǎng)的節(jié)點(diǎn)包括根節(jié)點(diǎn)。
節(jié)點(diǎn)在執(zhí)行入網(wǎng)后,發(fā)送的廣播報(bào)文中的時(shí)間源層級(jí)參數(shù)n'=n+1;其中n'為執(zhí)行入網(wǎng)節(jié)點(diǎn)的時(shí)間源層級(jí)參數(shù);n為同步點(diǎn)的時(shí)間源層級(jí)參數(shù),n=1、2、3......。
當(dāng)通信鏈路出現(xiàn)問題時(shí),選擇時(shí)間源層級(jí)參數(shù)不大于自身時(shí)間源層級(jí)參數(shù)的節(jié)點(diǎn)作為同步點(diǎn);
判斷如果選定的同步點(diǎn)在一定時(shí)間內(nèi),時(shí)間源層級(jí)參數(shù)不變,則執(zhí)行時(shí)間同步過程;否則重新選擇同步點(diǎn)。
本發(fā)明具有以下有益效果及優(yōu)點(diǎn):
1.本發(fā)明引入時(shí)間源層級(jí)參數(shù),可以據(jù)此評(píng)估出同步點(diǎn)距離時(shí)間源的遠(yuǎn)近。
2.本發(fā)明在節(jié)點(diǎn)入網(wǎng)選擇同步點(diǎn)時(shí),根據(jù)時(shí)間源層級(jí)參數(shù)的選擇策略,可以最大限度上減少全網(wǎng)時(shí)間同步累積誤差。
3.本發(fā)明在節(jié)點(diǎn)工作過程中,因通信鏈路出現(xiàn)問題而需要重新選擇同步點(diǎn)的策略,可以最大限度上減少因網(wǎng)絡(luò)拓?fù)涞脑黾佣鸬娜W(wǎng)時(shí)間同步累積誤差、可以提高網(wǎng)絡(luò)的健壯性。
4.本發(fā)明在節(jié)點(diǎn)工作過程中,因通信鏈路出現(xiàn)問題而需要重新選擇同步點(diǎn)后,在約定的時(shí)間內(nèi)所選定的同步點(diǎn)的時(shí)間源層級(jí)參數(shù)不變的策略,可以避免 節(jié)點(diǎn)之間互為同步點(diǎn)。
附圖說明
圖1為節(jié)點(diǎn)在入網(wǎng)狀態(tài)下的同步點(diǎn)選擇流程圖;
圖2為節(jié)點(diǎn)在工作狀態(tài)下的同步點(diǎn)選擇流程圖。
具體實(shí)施方式
下面結(jié)合附圖及實(shí)施例對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說明。
本發(fā)明所涉及的概念如下:
時(shí)間源:無線傳感器網(wǎng)絡(luò)中的唯一一個(gè)參考時(shí)鐘。
同步點(diǎn):節(jié)點(diǎn)所選定的時(shí)間同步參考節(jié)點(diǎn)。
時(shí)間源層級(jí)參數(shù):標(biāo)記距離時(shí)間源層次等級(jí)的參數(shù)。根節(jié)點(diǎn)設(shè)置為一,次級(jí)節(jié)點(diǎn)設(shè)置為二,以此類推。
廣播報(bào)文:根節(jié)點(diǎn)、節(jié)點(diǎn)加入無線傳感器網(wǎng)絡(luò)后,周期性發(fā)送的、帶有時(shí)間源層級(jí)參數(shù)的、不指定報(bào)文目的地址任何節(jié)點(diǎn)都可以接收的報(bào)文。
本發(fā)明主要包括:根節(jié)點(diǎn)自動(dòng)作為網(wǎng)絡(luò)中的唯一時(shí)間源;節(jié)點(diǎn)在入網(wǎng)狀態(tài)、工作狀態(tài)根據(jù)時(shí)間源層級(jí)參數(shù)進(jìn)行選擇同步點(diǎn);在工作狀態(tài)重新選擇同步點(diǎn)后,需要對(duì)選定的同步點(diǎn)穩(wěn)定性進(jìn)行評(píng)定。
如圖1所示為節(jié)點(diǎn)在入網(wǎng)狀態(tài)下的同步點(diǎn)選擇流程圖。
具體包括以下步驟:
無線傳感器網(wǎng)絡(luò)的根節(jié)點(diǎn)上電工作后,自動(dòng)作為時(shí)間同步固定的、永久的時(shí)間源。
根節(jié)點(diǎn)的時(shí)間源層級(jí)參數(shù)設(shè)置為一,并周期性發(fā)送廣播報(bào)文。
節(jié)點(diǎn)在入網(wǎng)前,需進(jìn)行時(shí)間同步。在進(jìn)行時(shí)間同步時(shí),首先監(jiān)聽所有在網(wǎng)節(jié)點(diǎn)發(fā)送的廣播報(bào)文。根據(jù)廣播報(bào)文中的時(shí)間源層級(jí)參數(shù)進(jìn)行選定同步點(diǎn)。選定同步點(diǎn)后,進(jìn)行時(shí)間同步。節(jié)點(diǎn)自身的時(shí)間源層級(jí)參數(shù)設(shè)置為同步點(diǎn)該參數(shù)基礎(chǔ)上加一。無線傳感器網(wǎng)絡(luò)開始組建時(shí),根節(jié)點(diǎn)自動(dòng)成為全網(wǎng)唯一的時(shí)間源,并規(guī)定時(shí)間源層級(jí)參數(shù)為一,通過廣播報(bào)文周期性發(fā)送。
待入網(wǎng)節(jié)點(diǎn)根據(jù)所監(jiān)聽到的廣播報(bào)文中的時(shí)間源層級(jí)參數(shù)進(jìn)行選擇時(shí)間源,選擇的策略是選擇時(shí)間源層級(jí)參數(shù)中的最小的一個(gè)節(jié)點(diǎn)作為自身的同步點(diǎn)。
如圖2所示為節(jié)點(diǎn)在工作狀態(tài)下的同步點(diǎn)選擇流程圖。
節(jié)點(diǎn)加入完成后,周期性發(fā)送廣播報(bào)文,廣播報(bào)文中帶有節(jié)點(diǎn)自身的時(shí)間源層級(jí)參數(shù)。節(jié)點(diǎn)入網(wǎng)后,將自身的時(shí)間源層級(jí)參數(shù)設(shè)置為自身所選擇的同步點(diǎn)的時(shí)間源層級(jí)參數(shù)加一,并周期性發(fā)送帶有自身時(shí)間源層級(jí)參數(shù)的廣播報(bào)文。選擇的策略是選擇時(shí)間源層級(jí)參數(shù)中小于等于自身時(shí)間源層級(jí)參數(shù)的節(jié)點(diǎn)作為自身的時(shí)間同步時(shí)間源。
節(jié)點(diǎn)入網(wǎng)后,因通信鏈路出現(xiàn)問題需要重新選擇同步點(diǎn)。對(duì)于重新選定的同步點(diǎn),需要評(píng)定該同步點(diǎn)的穩(wěn)定性。重新選定的同步點(diǎn)是否穩(wěn)定的判斷依據(jù)是在約定的時(shí)間內(nèi)所選定的同步點(diǎn)的時(shí)間源層級(jí)參數(shù)不變。若在約定的時(shí)間內(nèi)所選定的同步點(diǎn)的時(shí)間源層級(jí)存數(shù)改變,則應(yīng)重新選擇同步點(diǎn)。
節(jié)點(diǎn)在工作過程中,若連續(xù)五個(gè)未聽到同步點(diǎn)的廣播報(bào)文,則視為通信鏈路出現(xiàn)問題,則需要重新選定同步點(diǎn)。選定同步點(diǎn)的策略為選擇時(shí)間源層級(jí)參數(shù)小于等于自身時(shí)間源層級(jí)參數(shù)的節(jié)點(diǎn)作為自身的同步點(diǎn)。不能選擇比自身的時(shí)間源層級(jí)參數(shù)小的的節(jié)點(diǎn)作為同步點(diǎn),目的是防止向下進(jìn)行時(shí)間同步。選定同步點(diǎn)后,在十個(gè)廣播發(fā)送周期內(nèi),同步點(diǎn)的時(shí)間源層級(jí)參數(shù)不能變化,防止相互選擇對(duì)方作為同步點(diǎn)。若在十個(gè)廣播發(fā)送周期內(nèi),時(shí)間源層級(jí)參數(shù)發(fā)生改變,則需重新選擇同步點(diǎn)。