專(zhuān)利名稱(chēng):基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種適用于移動(dòng)節(jié)點(diǎn)的基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法。該方法可以解決無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中,因節(jié)點(diǎn)位置移動(dòng)并超出無(wú)線(xiàn)發(fā)射距離,進(jìn)而引起的節(jié)點(diǎn)無(wú)法發(fā)送采集數(shù)據(jù)的問(wèn)題。本發(fā)明屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù):
無(wú)線(xiàn)傳感器網(wǎng)絡(luò)(Wireless Sensor Network)是一種由大量無(wú)線(xiàn)傳感器所組成的網(wǎng)絡(luò)。這種網(wǎng)絡(luò)并沒(méi)有固定的體系結(jié)構(gòu),也不需要基站或交換機(jī)作為中轉(zhuǎn),因此稱(chēng)為Ad hoc網(wǎng)絡(luò),即一種特殊的多跳移動(dòng)無(wú)線(xiàn)網(wǎng)絡(luò)。無(wú)線(xiàn)傳感器網(wǎng)絡(luò)常用于數(shù)據(jù)采集工作,即網(wǎng)絡(luò)中的節(jié)點(diǎn)(mote)通過(guò)傳感器采集數(shù)據(jù),然后通過(guò)一定的算法,由單跳或者多跳的方式將數(shù)據(jù)傳送回?cái)?shù)據(jù)處理中心。這樣的算 法通常稱(chēng)為無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集算法。在數(shù)據(jù)采集過(guò)程中,無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中的節(jié)點(diǎn)位置通常比較固定,在一次組網(wǎng)之后便可以順利進(jìn)行數(shù)據(jù)采集工作。但是,由于受限于每個(gè)節(jié)點(diǎn)的無(wú)線(xiàn)傳送距離,如果節(jié)點(diǎn)位置發(fā)生移動(dòng),則需要重新組網(wǎng)才能再次進(jìn)行數(shù)據(jù)采集。對(duì)于節(jié)點(diǎn)頻繁移動(dòng)的網(wǎng)絡(luò)就需要有一個(gè)合適的方法進(jìn)行協(xié)調(diào),保證網(wǎng)絡(luò)中的節(jié)點(diǎn)可以在這種情況下也能將數(shù)據(jù)傳送回?cái)?shù)據(jù)處理中心。申請(qǐng)?zhí)枮?01110135179.8,申請(qǐng)日期為2011年5月24日的國(guó)內(nèi)發(fā)明專(zhuān)利申請(qǐng)公開(kāi)了一種無(wú)線(xiàn)傳感器網(wǎng)絡(luò)分簇路由方法。該方法首先通過(guò)對(duì)一個(gè)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)區(qū)域進(jìn)行網(wǎng)格劃分,網(wǎng)格在劃分完畢后即為一個(gè)固定簇,每個(gè)周期結(jié)束后在簇中選取新的節(jié)點(diǎn)成為簇頭節(jié)點(diǎn),通過(guò)對(duì)簇頭節(jié)點(diǎn)到中心節(jié)點(diǎn)的距離來(lái)計(jì)算出簇頭節(jié)點(diǎn)所在簇的一個(gè)權(quán)值,通過(guò)簇之間的權(quán)值比較,簇頭節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)便得到了一個(gè)路徑,這條路徑是由權(quán)值逐次遞減的簇構(gòu)成的。該方法將分簇固定,不適合于節(jié)點(diǎn)位置可變的無(wú)線(xiàn)傳感器網(wǎng)絡(luò),而本發(fā)明則無(wú)需固定節(jié)點(diǎn)簇頭和分簇,從而更適用于采用移動(dòng)節(jié)點(diǎn)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)。申請(qǐng)?zhí)枮?01010565639. 6,申請(qǐng)日期為2010年11月30日的國(guó)內(nèi)發(fā)明專(zhuān)利申請(qǐng)公開(kāi)了一種基于分簇?zé)o線(xiàn)傳感器網(wǎng)絡(luò)的傳輸方法。該方法提供了下列技術(shù)方案首先,無(wú)線(xiàn)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)自組織形成簇,其中每個(gè)簇由簇頭節(jié)點(diǎn)和簇成員節(jié)點(diǎn)組成;其次,簇頭節(jié)點(diǎn)對(duì)接收到的所述簇成員節(jié)點(diǎn)發(fā)送的數(shù)據(jù)進(jìn)行融合;再次,基站根據(jù)所述簇頭節(jié)點(diǎn)的位置信息將相鄰的簇頭節(jié)點(diǎn)分成一組;最后,每組中的簇頭節(jié)點(diǎn)對(duì)所述融合后的數(shù)據(jù)進(jìn)行空時(shí)編碼后采用MIMO的方式傳輸給基站。該方法采用自組織來(lái)形成簇,但是沒(méi)有根據(jù)節(jié)點(diǎn)與匯聚節(jié)點(diǎn)(sink節(jié)點(diǎn))之間的距離來(lái)選擇簇頭,并根據(jù)簇頭與節(jié)點(diǎn)的距離來(lái)形成簇,因此不能適用于節(jié)點(diǎn)位置可變的無(wú)線(xiàn)傳感器網(wǎng)絡(luò),及有效地減少網(wǎng)絡(luò)能量消耗。不僅如此,該方法不能動(dòng)態(tài)地更新分簇。申請(qǐng)?zhí)枮?00910152525. 6,申請(qǐng)日期為2009年9月17日的國(guó)內(nèi)發(fā)明專(zhuān)利申請(qǐng)公
開(kāi)了一種基于分簇的無(wú)線(xiàn)傳感器數(shù)據(jù)高效采集方法。該方法的簇首節(jié)點(diǎn)固定,具有較強(qiáng)的數(shù)據(jù)處理能力和持續(xù)的能量供應(yīng)。Sink節(jié)點(diǎn)、簇首節(jié)點(diǎn)周期性地發(fā)送信標(biāo)信號(hào),信標(biāo)信號(hào)是構(gòu)成整個(gè)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的骨架。簇首節(jié)點(diǎn)、傳感器節(jié)點(diǎn)根據(jù)對(duì)應(yīng)的信標(biāo)信號(hào)進(jìn)行一系列的操作,其中時(shí)鐘周期調(diào)整機(jī)制是該算法中的關(guān)鍵支撐技術(shù);網(wǎng)絡(luò)中節(jié)點(diǎn)采用主動(dòng)同步的數(shù)據(jù)傳輸方式,旨在進(jìn)行低功耗高速率的數(shù)據(jù)通信。減小各節(jié)點(diǎn)之間的通信干擾,保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性、可靠性和實(shí)時(shí)性。該方法采用了固定簇頭來(lái)分簇,而本發(fā)明采用動(dòng)態(tài)選擇簇頭,從而更適用于采用移動(dòng)節(jié)點(diǎn)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)。本發(fā)明提出了一種新的基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,該方法適用于無(wú)線(xiàn)傳感器網(wǎng)絡(luò),特別是節(jié)點(diǎn)頻繁移動(dòng)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò),可以解決因節(jié)點(diǎn)位置變化而引起的節(jié)點(diǎn)無(wú)法發(fā)送采集數(shù)據(jù)的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題是,如何在節(jié)點(diǎn)頻繁移動(dòng)的情況下,為無(wú)線(xiàn)傳感器網(wǎng)絡(luò)提供一種可靠的路由算法,解決因節(jié)點(diǎn)位置變化而引起的節(jié)點(diǎn)無(wú)法發(fā)送采集數(shù)據(jù)的問(wèn)題。本發(fā)明旨在通過(guò)動(dòng)態(tài)分簇?cái)?shù)據(jù)采集算法,保證無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的正常運(yùn)行,從而減少網(wǎng)絡(luò)的能量消耗。本發(fā)明對(duì)動(dòng)態(tài)無(wú)線(xiàn)傳感器網(wǎng)絡(luò),即節(jié)點(diǎn)位置動(dòng)態(tài)移動(dòng)的網(wǎng)絡(luò),提出了一種有效可靠的分簇?cái)?shù)據(jù)采集方法。采取的技術(shù)方案如下
本發(fā)明使用分簇的拓?fù)浣Y(jié)構(gòu)進(jìn)行數(shù)據(jù)采集,組網(wǎng)后的節(jié)點(diǎn)按照功能分為三類(lèi),即負(fù)責(zé)將所有節(jié)點(diǎn)的采集數(shù)據(jù)傳輸?shù)教幚碇行牡墓潭ü?jié)點(diǎn)Sink節(jié)點(diǎn);負(fù)責(zé)采集數(shù)據(jù)的collecting節(jié)點(diǎn);負(fù)責(zé)將collecting節(jié)點(diǎn)數(shù)據(jù)轉(zhuǎn)發(fā)到sink節(jié)點(diǎn)的簇頭節(jié)點(diǎn)cluster-header 節(jié)點(diǎn)。網(wǎng)絡(luò)建立開(kāi)始時(shí),sink節(jié)點(diǎn)確定,而其他節(jié)點(diǎn)功能未確定。sink節(jié)點(diǎn)會(huì)發(fā)出尋找簇頭的廣播,所有能接收到廣播的節(jié)點(diǎn)都會(huì)給sink節(jié)點(diǎn)回應(yīng),sink節(jié)點(diǎn)會(huì)根據(jù)算法選擇出固定數(shù)目的N個(gè)cluster-header節(jié)點(diǎn)并通知這些節(jié)點(diǎn),確定為cluster-header的節(jié)點(diǎn)會(huì)發(fā)出分簇廣播,所有可以收到廣播的非sink及非cluster-header節(jié)點(diǎn)會(huì)回應(yīng)廣播,并將自己歸簇,這些節(jié)點(diǎn)就成為collecting節(jié)點(diǎn)。通過(guò)該方法將整個(gè)網(wǎng)絡(luò)劃分為N個(gè)簇,每個(gè)簇有一個(gè)cluster-header節(jié)點(diǎn)及若干個(gè)collecting節(jié)點(diǎn),collecting節(jié)點(diǎn)將采集到的數(shù)據(jù)信息發(fā)送給cluster-header節(jié)點(diǎn),再由cluster-header節(jié)點(diǎn)轉(zhuǎn)發(fā)給sink節(jié)點(diǎn),最后將數(shù)據(jù)信息轉(zhuǎn)送至數(shù)據(jù)處理中心。這樣就建立起分簇的拓?fù)鋽?shù)據(jù)采集結(jié)構(gòu)。組網(wǎng)過(guò)程中,cluster-header的選擇是按照節(jié)點(diǎn)距離作為選擇依據(jù)的。網(wǎng)絡(luò) 中除了 sink節(jié)點(diǎn)外,其他節(jié)點(diǎn)位置都是不固定的,而且cluster-header承擔(dān)了將大量collecting采集的數(shù)據(jù)轉(zhuǎn)發(fā)到sink節(jié)點(diǎn)的任務(wù)。因此,選擇距離sink節(jié)點(diǎn)最近的節(jié)點(diǎn)作為cluster-header。該方法首先降低了組網(wǎng)周期內(nèi)簇頭移動(dòng)出sink節(jié)點(diǎn)接收范圍內(nèi)的可能,其次也降低了網(wǎng)絡(luò)中能量的消耗。Sink節(jié)點(diǎn)與其他節(jié)點(diǎn)之間距離的判斷依據(jù)是消息的接收信號(hào)強(qiáng)度值RSSI(Received Signal Strength Indication)。Sink節(jié)點(diǎn)發(fā)出尋找簇頭廣播后,會(huì)等待一段時(shí)間來(lái)接收節(jié)點(diǎn)回應(yīng)的消息,然后根據(jù)消息的RSSI值來(lái)將節(jié)點(diǎn)按照距離由近到遠(yuǎn)進(jìn)行排序。在等待時(shí)間過(guò)后,sink節(jié)點(diǎn)會(huì)從序列中取出前N個(gè)節(jié)點(diǎn)作為簇頭節(jié)點(diǎn)并通知這些節(jié)點(diǎn),這些節(jié)點(diǎn)接收到消息后就確定成為cluster-header 節(jié)點(diǎn)。在簇頭確定之后,其他未成為簇頭的非sink節(jié)點(diǎn)就要選擇其中一個(gè)簇頭來(lái)將自己歸簇來(lái)成為collecting節(jié)點(diǎn)。由于一個(gè)節(jié)點(diǎn)可能會(huì)處在多個(gè)簇頭的附近,因此節(jié)點(diǎn)需要通過(guò)與簇頭的距離來(lái)選擇其中一個(gè)簇頭作為自己的簇頭。Cluster-header節(jié)點(diǎn)在確定成為簇頭之后會(huì)發(fā)送一個(gè)尋找collecting節(jié)點(diǎn)的廣播,其他未確定其功能的節(jié)點(diǎn)收到第一個(gè)尋找collecting節(jié)點(diǎn)的廣播消息后會(huì)等待一段時(shí)間,然后將這段時(shí)間內(nèi)收到的所有簇頭的廣播消息按照RSSI值進(jìn)行排序,即按照節(jié)點(diǎn)與簇頭的距離從近到遠(yuǎn)排序。等待時(shí)間過(guò)后,節(jié)點(diǎn)從序列中選擇廣播消息RSSI值最高的簇頭作為自己的簇頭,這樣節(jié)點(diǎn)就成為collecting節(jié)點(diǎn)。該選擇簇頭的方法首先降低了采集節(jié)點(diǎn)移動(dòng)出簇頭節(jié)點(diǎn)接收范圍的可能,其次降低無(wú)線(xiàn)發(fā)送的消耗能量。
由于網(wǎng)絡(luò)內(nèi)節(jié)點(diǎn)位置不固定,首次組網(wǎng)的一段時(shí)間后,當(dāng)前拓?fù)浣Y(jié)構(gòu)就可能不再是最有效的拓?fù)浣Y(jié)構(gòu)。Collecting節(jié)點(diǎn)可能移動(dòng)出cluster-header節(jié)點(diǎn)接收范圍,或者cluster-header節(jié)點(diǎn)也可能會(huì)移動(dòng)出sink節(jié)點(diǎn)的接收范圍。基于以上情況,本發(fā)明采用自動(dòng)重新分簇方法保證網(wǎng)絡(luò)自動(dòng)形成可靠有效的拓?fù)浣Y(jié)構(gòu)。組網(wǎng)開(kāi)始之前,根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)移動(dòng)的頻度,預(yù)設(shè)一個(gè)重新分簇周期。首次組網(wǎng)完成后,網(wǎng)絡(luò)中節(jié)點(diǎn)開(kāi)始數(shù)據(jù)采集,等到達(dá)下一個(gè)重新分簇周期,sink節(jié)點(diǎn)會(huì)重新發(fā)送尋找簇頭廣播,其他所有節(jié)點(diǎn)即不區(qū)分cluster-header和collecting節(jié)點(diǎn),如果能接收到廣播都會(huì)響應(yīng)sink節(jié)點(diǎn)。最后,重復(fù)組網(wǎng)步驟即將所有非sink節(jié)點(diǎn)根據(jù)當(dāng)前位置進(jìn)行功能重新劃分。為了保證采集數(shù)據(jù)能夠高效可靠地傳輸?shù)教幚碇行?,除了上述分簇傳輸及自?dòng)重新分簇機(jī)制外,還采用了如下機(jī)制
I)調(diào)整簇頭數(shù)目
網(wǎng)絡(luò)中簇的數(shù)目在拓?fù)渫瓿珊笫枪潭ǖ模绻W(wǎng)絡(luò)發(fā)生變化,如節(jié)點(diǎn)數(shù)目的變化或節(jié)點(diǎn)移動(dòng)的頻度變化,此時(shí),簇的數(shù)目也要進(jìn)行相應(yīng)調(diào)整。如果簇過(guò)少,則簇中可能會(huì)出現(xiàn)過(guò)多collecting節(jié)點(diǎn),這樣會(huì)出現(xiàn)數(shù)據(jù)擁塞導(dǎo)致的數(shù)據(jù)丟失情況。如果簇過(guò)多,則可能將距離sink節(jié)點(diǎn)很遠(yuǎn)的節(jié)點(diǎn)也劃為簇頭節(jié)點(diǎn),這樣會(huì)增加網(wǎng)絡(luò)中的能量消耗及節(jié)點(diǎn)移動(dòng)出sink節(jié)點(diǎn)范圍內(nèi)的幾率。因此在網(wǎng)絡(luò)發(fā)生變化后,在組網(wǎng)前可以根據(jù)網(wǎng)絡(luò)的情況調(diào)整相應(yīng)的簇頭數(shù)目。2)調(diào)整重新分簇周期
組網(wǎng)前,可根據(jù)網(wǎng)絡(luò)發(fā)生的變化相應(yīng)的增加或者減少重新分簇周期,來(lái)避免節(jié)點(diǎn)移動(dòng)導(dǎo)致的數(shù)據(jù)丟失情況。3)節(jié)點(diǎn)內(nèi)設(shè)置數(shù)據(jù)緩沖及重復(fù)發(fā)送機(jī)制
Collecting節(jié)點(diǎn)的發(fā)送數(shù)據(jù)可能會(huì)因?yàn)閏ollecting節(jié)點(diǎn)移動(dòng)出cluster-header節(jié)點(diǎn)接收范圍或者cluster-header正接收其他節(jié)點(diǎn)的數(shù)據(jù)等一些情況而導(dǎo)致數(shù)據(jù)發(fā)送到cluster-header節(jié)點(diǎn)失敗。Cluster-header節(jié)點(diǎn)的發(fā)送數(shù)據(jù)可能會(huì)因?yàn)閏luster-header節(jié)點(diǎn)移動(dòng)出sink節(jié)點(diǎn)接收范圍或者sink正接收其他節(jié)點(diǎn)的數(shù)據(jù)而導(dǎo)致數(shù)據(jù)發(fā)送到sink節(jié)點(diǎn)失敗。為了解決以上情況造成的數(shù)據(jù)丟失,本發(fā)明在節(jié)點(diǎn)中添加數(shù)據(jù)緩沖功能。當(dāng)數(shù)據(jù)發(fā)送失敗時(shí),數(shù)據(jù)會(huì)暫存在節(jié)點(diǎn)內(nèi),然后重復(fù)發(fā)送,直到接收節(jié)點(diǎn)接收到數(shù)據(jù)。
運(yùn)用本發(fā)明可達(dá)到的有益效果包括有效解決無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中節(jié)點(diǎn)頻繁移動(dòng),引起的節(jié)點(diǎn)無(wú)法發(fā)送采集數(shù)據(jù)的問(wèn)題,從而保證無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的正常運(yùn)行,并減少網(wǎng)絡(luò)的能量消耗。。
圖I為分簇?cái)?shù)據(jù)采集方法的拓?fù)浣Y(jié)構(gòu)示意 圖2為sink節(jié)點(diǎn)及普通節(jié)點(diǎn)的組網(wǎng)流程圖。
具體實(shí)施例方式部署環(huán)境及連接方式
參見(jiàn)圖1,其中簇頭I和簇頭2表示cluster-header節(jié)點(diǎn),采集I、采集2、采集3、采集 4和采集5表示collecting節(jié)點(diǎn)。sink節(jié)點(diǎn)連接到數(shù)據(jù)中心,位置固定,而其他非sink節(jié)點(diǎn)位置不固定。根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)數(shù)量和節(jié)點(diǎn)分布規(guī)模,在組網(wǎng)之前,需要預(yù)設(shè)兩個(gè)變量即簇頭數(shù)目N與簇更新周期T。簇頭數(shù)目N決定簇的數(shù)目,可根據(jù)節(jié)點(diǎn)數(shù)量調(diào)整;簇更新周期T表示,在T時(shí)間后,sink會(huì)重新發(fā)起組網(wǎng),重新確定簇頭和分簇。參見(jiàn)圖2,具體實(shí)施步驟為
I.Sink節(jié)點(diǎn)發(fā)送組網(wǎng)廣播消息new-net message,尋找簇頭節(jié)點(diǎn)。2.非 sink 節(jié)點(diǎn)接收到 new-net message,發(fā)送回應(yīng)消息 resp-new-net message給sink節(jié)點(diǎn)。3. Sink節(jié)點(diǎn)接收到resp-new-net message,根據(jù)消息的RSSI值進(jìn)行排序,建立從近到遠(yuǎn)的節(jié)點(diǎn)序列,然后從序列中取出前N個(gè)節(jié)點(diǎn),確定為簇頭cluster-header節(jié)點(diǎn)。4. Sink節(jié)點(diǎn)將N個(gè)簇頭節(jié)點(diǎn)編號(hào)通過(guò)簇頭廣播消息ch-info message發(fā)送出去。5.非sink節(jié)點(diǎn)接收到ch-info message,判斷自己是否是簇頭節(jié)點(diǎn)。如果消息中包含自己的節(jié)點(diǎn)編號(hào),貝U節(jié)點(diǎn)確定為cluster-header節(jié)點(diǎn)。6.確定為cluster-header節(jié)點(diǎn)的普通節(jié)點(diǎn)發(fā)送尋找數(shù)據(jù)采集節(jié)點(diǎn)廣播消息search message。7.未接收到ch-info message的非sink節(jié)點(diǎn)和接收到ch-info message但是節(jié)點(diǎn)編號(hào)不在消息中的節(jié)點(diǎn)接收各個(gè)簇頭的search message,并根據(jù)search message的RSSI值將簇頭節(jié)點(diǎn)按照從近到遠(yuǎn)的順序排序,之后選擇一個(gè)RSSI值最高即最近的節(jié)點(diǎn)作為自己的簇頭節(jié)點(diǎn),并將自己劃為collecting節(jié)點(diǎn),開(kāi)始采集數(shù)據(jù)。8. Collecting節(jié)點(diǎn)發(fā)送米集消息 collecting message 至 cluster-header 節(jié)點(diǎn),cluster-header節(jié)點(diǎn)將消息經(jīng)sink節(jié)點(diǎn)轉(zhuǎn)發(fā)至處理中心!collecting節(jié)點(diǎn)比較多的簇的cluster-header節(jié)點(diǎn)和sink節(jié)點(diǎn)必然會(huì)出現(xiàn)消息的堵塞,因此在節(jié)點(diǎn)程序內(nèi)增加了消息隊(duì)列,新來(lái)的消息都會(huì)先加入消息隊(duì)列中,等待節(jié)點(diǎn)依次發(fā)送到上一級(jí)。而且為了確保上一級(jí)能收到消息,還增加了握手及重發(fā)機(jī)制,如果節(jié)點(diǎn)發(fā)送的消息沒(méi)有收到上一級(jí)的握手,就會(huì)重復(fù)發(fā)送消息直到上一級(jí)收到為止。這樣做就能避免因?yàn)槎氯麑?dǎo)致的消息丟失情況。9.到達(dá)更新時(shí)間T, sink節(jié)點(diǎn)再次發(fā)送組網(wǎng)廣播消息new-net message,其他節(jié)點(diǎn)接收到消息后重復(fù)上述過(guò)程,進(jìn)行重新分簇。
10.如果網(wǎng)絡(luò)中的節(jié)點(diǎn)數(shù)目和節(jié)點(diǎn)移動(dòng)頻發(fā)生改變,需要改變簇頭數(shù)目N和簇更新周期T這兩個(gè)變量后重新進(jìn)行組網(wǎng)。簇頭數(shù)目N的設(shè)定改變后,在重新組網(wǎng)時(shí)sink節(jié)點(diǎn)會(huì)將節(jié)點(diǎn)隊(duì)列中選擇的簇頭的數(shù)目改為新的設(shè)定值。這樣做不僅會(huì)減少數(shù)據(jù)擁塞導(dǎo)致的數(shù)據(jù)丟失情況而且能減少網(wǎng)絡(luò)中的能量消耗及節(jié)點(diǎn)移動(dòng)出sink節(jié)點(diǎn)范圍內(nèi)的幾率。簇頭更 新周期T改變后,sink會(huì)改變更新定時(shí)器的周期為新的設(shè)定值,在到達(dá)更新時(shí)間T后,來(lái)重新進(jìn)行組網(wǎng)。這樣做會(huì)減少節(jié)點(diǎn)移動(dòng)導(dǎo)致的數(shù)據(jù)丟失情況。
權(quán)利要求
1.一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是基于無(wú)線(xiàn)傳感器網(wǎng)絡(luò),使用分簇的拓?fù)浣Y(jié)構(gòu)進(jìn)行組網(wǎng),將整個(gè)網(wǎng)絡(luò)劃分為N個(gè)簇,每個(gè)簇有一個(gè)cluster-header節(jié)點(diǎn)及若干個(gè)collecting節(jié)點(diǎn),collecting節(jié)點(diǎn)將采集到的數(shù)據(jù)信息發(fā)送給cluster-header節(jié)點(diǎn),再由cluster-header節(jié)點(diǎn)轉(zhuǎn)發(fā)給sink節(jié)點(diǎn),最后將數(shù)據(jù)信息轉(zhuǎn)送至數(shù)據(jù)處理中心,以此建立分簇的拓?fù)鋽?shù)據(jù)采集結(jié)構(gòu),其中sink節(jié)點(diǎn)在在組網(wǎng)時(shí)以及達(dá)到下一個(gè)重新分簇周期時(shí)都會(huì)重新發(fā)送尋找簇頭廣播,當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí),組網(wǎng)前可以根據(jù)網(wǎng)絡(luò)的情況調(diào)整相應(yīng)的簇頭數(shù)目cluster-header的確立與選擇是根據(jù)消息的接收信號(hào)強(qiáng)度值RSSI判斷,按照節(jié)點(diǎn)距離作為選擇依據(jù)的;collecting節(jié)點(diǎn)選擇廣播消息RSSI值最高的簇頭作為自己的簇頭,當(dāng)collecting節(jié)點(diǎn)向cluster-header節(jié)點(diǎn)發(fā)送數(shù)據(jù)失敗時(shí),啟動(dòng)數(shù)據(jù)緩沖及重復(fù)發(fā)送機(jī)制,從而解決因節(jié)點(diǎn)位置移動(dòng)并超出無(wú)線(xiàn)發(fā)射距離,進(jìn)而引起的節(jié)點(diǎn)無(wú)法發(fā)送采集數(shù)據(jù)的問(wèn)題。
2.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是節(jié)點(diǎn)之間距離的判斷依據(jù)是消息的接收信號(hào)強(qiáng)度值RSSI。
3.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是網(wǎng)絡(luò)中節(jié)點(diǎn)分為負(fù)責(zé)將采集數(shù)據(jù)傳輸?shù)教幚碇行牡墓潭ü?jié)點(diǎn)sink節(jié)點(diǎn),負(fù)責(zé)采集數(shù)據(jù)的collecting節(jié)點(diǎn),負(fù)責(zé)將collecting節(jié)點(diǎn)采集的數(shù)據(jù)轉(zhuǎn)發(fā)到sink節(jié)點(diǎn)的簇頭節(jié)點(diǎn)cluster-header節(jié)點(diǎn),網(wǎng)絡(luò)中除了 sink節(jié)點(diǎn)外,其他節(jié)點(diǎn)位置都是不固定的。
4.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是采用自動(dòng)重新分簇方法,即在組網(wǎng)開(kāi)始前,根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)移動(dòng)的頻度,預(yù)設(shè)一個(gè)重新分簇周期,到達(dá)重新分簇周期后網(wǎng)絡(luò)重新分簇,即sink節(jié)點(diǎn)會(huì)重新發(fā)送尋找簇頭廣播,其他所有節(jié)點(diǎn)即不區(qū)分cluster-header和collecting節(jié)點(diǎn),如果能接收到廣播都會(huì)響應(yīng)sink節(jié)點(diǎn);最后,重復(fù)組網(wǎng)步驟將所有非sink節(jié)點(diǎn)根據(jù)當(dāng)前位置進(jìn)行功能重新劃分。
5.根據(jù)權(quán)利要求4所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是可根據(jù)網(wǎng)絡(luò)發(fā)生的變化相應(yīng)的增加或者減少重新分簇周期,來(lái)避免節(jié)點(diǎn)移動(dòng)導(dǎo)致的數(shù)據(jù)丟失情況。
6.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是網(wǎng)絡(luò)中簇的數(shù)目在拓?fù)渫瓿珊笫枪潭ǖ?,但如果網(wǎng)絡(luò)發(fā)生變化,如節(jié)點(diǎn)數(shù)目的變化或節(jié)點(diǎn)移動(dòng)的頻度變化,此時(shí),簇的數(shù)目也要進(jìn)行相應(yīng)調(diào)整。
7.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是sink節(jié)點(diǎn)根據(jù)RSSI值確立cluster-header節(jié)點(diǎn),即采用動(dòng)態(tài)分簇路由算法組網(wǎng),網(wǎng)絡(luò)建立開(kāi)始時(shí),sink節(jié)點(diǎn)確定,而其他節(jié)點(diǎn)功能未確定;sink節(jié)點(diǎn)發(fā)出尋找簇頭的廣播,所有能接收到廣播的節(jié)點(diǎn)都會(huì)給sink節(jié)點(diǎn)回應(yīng),sink節(jié)點(diǎn)在等待一段時(shí)間后,根據(jù)其他節(jié)點(diǎn)回應(yīng)消息的RSSI值將節(jié)點(diǎn)進(jìn)行排序,等待時(shí)間過(guò)后,sink節(jié)點(diǎn)從序列中取出回應(yīng)消息RSSI值最高的前N個(gè)節(jié)點(diǎn)作為簇頭節(jié)點(diǎn)并通知這些節(jié)點(diǎn),這些節(jié)點(diǎn)接收到消息后就確定成為cluster-header節(jié)點(diǎn)。
8.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是collecting節(jié)點(diǎn)根據(jù)RSSI值確定自己的cluster-header節(jié)點(diǎn),即cluster-header節(jié)點(diǎn)在確定成為簇頭之后發(fā)送一個(gè)尋找collecting節(jié)點(diǎn)的廣播,其他未確定其功能的節(jié)點(diǎn)收到第一個(gè)尋找collecting節(jié)點(diǎn)的廣播消息后會(huì)等待一段時(shí)間,然后將這段時(shí)間內(nèi)收到的所有簇頭的廣播消息按照RSSI值進(jìn)行排序,等待時(shí)間過(guò)后,節(jié)點(diǎn)從序列中選擇廣播消息RSSI值最高的一個(gè)簇頭作為自己的簇頭,即該節(jié)點(diǎn)成為collecting節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求I所述的一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法,其特征是在節(jié)點(diǎn)中添加數(shù)據(jù)緩沖功能,當(dāng)數(shù)據(jù)發(fā)送失敗時(shí),數(shù)據(jù)會(huì)暫存在節(jié)點(diǎn)內(nèi),然后重復(fù)發(fā)送,直到接收節(jié)點(diǎn)接收到數(shù)據(jù)。
全文摘要
本發(fā)明提出了一種基于動(dòng)態(tài)分簇路由算法的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)數(shù)據(jù)采集方法。該方法基于無(wú)線(xiàn)傳感器網(wǎng)絡(luò),使用分簇傳輸及自動(dòng)重新分簇機(jī)制,即使用分簇的拓?fù)浣Y(jié)構(gòu)進(jìn)行組網(wǎng),按照節(jié)點(diǎn)距離作為確立和選擇簇頭的依據(jù);根據(jù)網(wǎng)絡(luò)中節(jié)點(diǎn)移動(dòng)的頻度,預(yù)設(shè)一個(gè)重新分簇周期,對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)進(jìn)行更新,從而解決因節(jié)點(diǎn)位置移動(dòng)并超出無(wú)線(xiàn)發(fā)射距離,進(jìn)而引起的節(jié)點(diǎn)無(wú)法發(fā)送采集數(shù)據(jù)的問(wèn)題。本方法還根據(jù)網(wǎng)絡(luò)情況動(dòng)態(tài)調(diào)整簇頭數(shù)目、分簇周期并在節(jié)點(diǎn)內(nèi)設(shè)置數(shù)據(jù)緩沖及重復(fù)發(fā)送機(jī)制,進(jìn)一步降低因節(jié)點(diǎn)超出發(fā)送距離而導(dǎo)致的數(shù)據(jù)傳輸失敗的幾率,同時(shí)降低網(wǎng)絡(luò)中的能量消耗。
文檔編號(hào)H04W84/18GK102711210SQ20121017908
公開(kāi)日2012年10月3日 申請(qǐng)日期2012年6月4日 優(yōu)先權(quán)日2012年6月4日
發(fā)明者倪明選, 劉浩威, 李洋, 趙云, 高民, 黃才炎 申請(qǐng)人:廣州市香港科大霍英東研究院