本發(fā)明涉及無線傳感網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法及裝置。
背景技術(shù):
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量的靜止或移動的傳感器以自組織和多跳的方式構(gòu)成的無線網(wǎng)絡(luò),以協(xié)作地感知、采集、處理和傳輸網(wǎng)絡(luò)覆蓋地理區(qū)域內(nèi)被感知對象的信息,并最終把這些信息發(fā)送給網(wǎng)絡(luò)的所有者。大量傳感器節(jié)點(diǎn)隨機(jī)部署在監(jiān)測區(qū)域內(nèi)部或附近,能夠通過自組織方式構(gòu)成網(wǎng)絡(luò)。傳感器節(jié)點(diǎn)監(jiān)測的數(shù)據(jù)沿著其他傳感器節(jié)點(diǎn)逐跳地進(jìn)行傳輸,在傳輸過程中監(jiān)測數(shù)據(jù)可能被多個(gè)節(jié)點(diǎn)處理,經(jīng)過多跳后路由到匯聚節(jié)點(diǎn),最后通過互聯(lián)網(wǎng)或衛(wèi)星到達(dá)管理節(jié)點(diǎn),參見圖1所示。路由協(xié)議在無線傳感網(wǎng)體系結(jié)構(gòu)中,具有非常重要的地位,路由協(xié)議的好壞直接影響無線傳感網(wǎng)的性能。
當(dāng)前用于無線傳感網(wǎng)的路由協(xié)議的分類基本上延續(xù)了傳統(tǒng)無線自組網(wǎng)的分類方式,按路由發(fā)現(xiàn)策略可以分為主動路由和按需路由,節(jié)點(diǎn)在鄰居發(fā)現(xiàn)階段廣播路由消息分組,根據(jù)返回的消息計(jì)算得到本機(jī)路由表。然而這樣的方式卻有幾個(gè)弊端,首先,由于無線傳感網(wǎng)的節(jié)點(diǎn)分布可能比較分散,節(jié)點(diǎn)無法獲得全網(wǎng)拓?fù)?,小范圍路由選擇的結(jié)果不一定在全網(wǎng)范圍內(nèi)是最優(yōu)的選擇,甚至有可能造成某些節(jié)點(diǎn)負(fù)載量過大繼而擁塞的嚴(yán)重后果;其次,每一個(gè)節(jié)點(diǎn)都需要執(zhí)行路由算法,計(jì)算量大,消耗能量大,不符合傳感器節(jié)點(diǎn)簡單化的發(fā)展趨勢。
公開于該背景技術(shù)部分的信息僅僅旨在增加對本發(fā)明的總體背景的理解,而不應(yīng)當(dāng)被視為承認(rèn)或以任何形式暗示該信息構(gòu)成已為本領(lǐng)域一般技術(shù)人員所公知的現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提供一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法及裝置,從而克服現(xiàn)有節(jié)點(diǎn)難以在全網(wǎng)范圍確定最優(yōu)路徑的缺陷。
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,包括:
接收廣播的第一拓?fù)湔埱?,第一拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枺?/p>
將本地鄰居列表和拓?fù)湫蛄刑柗庋b至拓?fù)浠貜?fù)數(shù)據(jù)中,并根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn);
根據(jù)控制節(jié)點(diǎn)地址和拓?fù)湫蛄刑柹傻诙負(fù)湔埱?,并廣播第二拓?fù)湔埱蟆?/p>
在一種可能的實(shí)現(xiàn)方式中,該方法還包括:
在本輪中廣播第一鄰居發(fā)現(xiàn)請求,第一鄰居發(fā)現(xiàn)請求包括本輪序列號和本地節(jié)點(diǎn)地址;
接收第一節(jié)點(diǎn)發(fā)送的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第一序列號和第一節(jié)點(diǎn)地址;
在本輪序列號和第一序列號相一致時(shí),將第一節(jié)點(diǎn)地址添加至本地鄰居列表中,并記錄響應(yīng)次數(shù),響應(yīng)次數(shù)為在本輪中接收到來自第一節(jié)點(diǎn)的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)的次數(shù)。
在一種可能的實(shí)現(xiàn)方式中,該方法還包括:
接收第二節(jié)點(diǎn)廣播的第二鄰居發(fā)現(xiàn)請求,第二鄰居發(fā)現(xiàn)請求包括第二序列號和第二節(jié)點(diǎn)地址;
生成第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),并將第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)發(fā)送至第二節(jié)點(diǎn),第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第二序列號和本地節(jié)點(diǎn)地址。
在一種可能的實(shí)現(xiàn)方式中,在根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)之后,該方法還包括:
當(dāng)本輪中確定的本地鄰居列表與上一輪確定的本地鄰居列表不同時(shí),根據(jù)本輪中確定的本地鄰居列表更新本地鄰居列表,并重新記錄響應(yīng)次數(shù);
向控制節(jié)點(diǎn)發(fā)送拓?fù)涓聰?shù)據(jù),拓?fù)涓聰?shù)據(jù)包括更新后的本地鄰居列表和重新記錄的響應(yīng)次數(shù)。
基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,包括:
廣播拓?fù)湔埱?,拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枺?/p>
接收響應(yīng)節(jié)點(diǎn)發(fā)送的拓?fù)浠貜?fù)數(shù)據(jù),拓?fù)浠貜?fù)數(shù)據(jù)包括響應(yīng)節(jié)點(diǎn)的鄰居列表和拓?fù)湫蛄刑枺?/p>
根據(jù)拓?fù)浠貜?fù)數(shù)據(jù)更新全網(wǎng)鄰接矩陣和鏈路權(quán)重,并確定全網(wǎng)拓?fù)洹?/p>
基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的傳感裝置,包括:
接收模塊,用于接收廣播的第一拓?fù)湔埱?,第一拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枺?/p>
發(fā)送模塊,用于將本地鄰居列表和拓?fù)湫蛄刑柗庋b至拓?fù)浠貜?fù)數(shù)據(jù)中,并根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn);
拓?fù)鋸V播模塊,用于根據(jù)控制節(jié)點(diǎn)地址和拓?fù)湫蛄刑柹傻诙負(fù)湔埱螅V播第二拓?fù)湔埱蟆?/p>
在一種可能的實(shí)現(xiàn)方式中,該傳感裝置還包括:
鄰居廣播模塊,用于在本輪中廣播第一鄰居發(fā)現(xiàn)請求,第一鄰居發(fā)現(xiàn)請求包括本輪序列號和本地節(jié)點(diǎn)地址;
第一接收模塊,用于接收第一節(jié)點(diǎn)發(fā)送的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第一序列號和第一節(jié)點(diǎn)地址;
處理模塊,用于在本輪序列號和第一序列號相一致時(shí),將第一節(jié)點(diǎn)地址添加至本地鄰居列表中,并記錄響應(yīng)次數(shù),響應(yīng)次數(shù)為在本輪中接收到來自第一節(jié)點(diǎn)的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)的次數(shù)。
在一種可能的實(shí)現(xiàn)方式中,第一接收模塊還用于接收第二節(jié)點(diǎn)廣播的第二鄰居發(fā)現(xiàn)請求,第二鄰居發(fā)現(xiàn)請求包括第二序列號和第二節(jié)點(diǎn)地址;
處理模塊還用于生成第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),并將第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)發(fā)送至第二節(jié)點(diǎn),第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第二序列號和本地節(jié)點(diǎn)地址。
在一種可能的實(shí)現(xiàn)方式中,該傳感裝置還包括更新模塊;
在發(fā)送模塊根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)之后,更新模塊用于當(dāng)本輪中確定的本地鄰居列表與上一輪確定的本地鄰居列表不同時(shí),根據(jù)本輪中確定的本地鄰居列表更新本地鄰居列表,并重新記錄響應(yīng)次數(shù);
發(fā)送模塊還用于:向控制節(jié)點(diǎn)發(fā)送拓?fù)涓聰?shù)據(jù),拓?fù)涓聰?shù)據(jù)包括更新后的本地鄰居列表和重新記錄的響應(yīng)次數(shù)。
基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的控制裝置,包括:
廣播模塊,用于廣播拓?fù)湔埱?,拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枺?/p>
接收模塊,用于接收響應(yīng)節(jié)點(diǎn)發(fā)送的拓?fù)浠貜?fù)數(shù)據(jù),拓?fù)浠貜?fù)數(shù)據(jù)包括響應(yīng)節(jié)點(diǎn)的鄰居列表和拓?fù)湫蛄刑枺?/p>
拓?fù)淠K,用于根據(jù)拓?fù)浠貜?fù)數(shù)據(jù)更新全網(wǎng)鄰接矩陣和鏈路權(quán)重,并確定全網(wǎng)拓?fù)洹?/p>
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法及裝置,設(shè)置無線傳感網(wǎng)包含一個(gè)中心控制節(jié)點(diǎn)與若干個(gè)傳感節(jié)點(diǎn),每個(gè)傳感節(jié)點(diǎn)只需要負(fù)責(zé)將本地的鄰居列表上報(bào)給控制節(jié)點(diǎn)并轉(zhuǎn)發(fā)拓?fù)湔埱?,從而可以使得控制?jié)點(diǎn)獲取所有傳感節(jié)點(diǎn)的鄰接情況,進(jìn)而確定全網(wǎng)拓?fù)?。傳感?jié)點(diǎn)只需要接收控制節(jié)點(diǎn)發(fā)送的全網(wǎng)拓?fù)浼纯桑恍枰镜貓?zhí)行路由算法,減少了本地節(jié)點(diǎn)的計(jì)算量,可以提高本地節(jié)點(diǎn)的處理效率。同時(shí),由控制節(jié)點(diǎn)統(tǒng)一處理傳感節(jié)點(diǎn)的鄰居列表,從而可以有效確定全網(wǎng)拓?fù)?,使得傳感?jié)點(diǎn)可以根據(jù)該全網(wǎng)拓?fù)浯_定最優(yōu)路由路徑。通過周期性廣播鄰居發(fā)現(xiàn)請求的方式,可以及時(shí)獲取鄰居節(jié)點(diǎn)信息,同時(shí)在本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)發(fā)生變化時(shí),及時(shí)將更新后的本地鄰居列表發(fā)送至控制節(jié)點(diǎn),從而可以及時(shí)更新全網(wǎng)拓?fù)洹?/p>
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實(shí)施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
圖1為本發(fā)明實(shí)施例中無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的第一方法流程圖;
圖2為本發(fā)明實(shí)施例中鄰居發(fā)現(xiàn)的方法流程圖;
圖3為本發(fā)明實(shí)施例中無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的第二方法流程圖;
圖4為本發(fā)明實(shí)施例中無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的傳感裝置的第一結(jié)構(gòu)圖;
圖5為本發(fā)明實(shí)施例中無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的傳感裝置的第二結(jié)構(gòu)圖;
圖6為本發(fā)明實(shí)施例中無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的傳感裝置的第三結(jié)構(gòu)圖;
圖7為本發(fā)明實(shí)施例中無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的控制裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
下面結(jié)合附圖,對本發(fā)明的具體實(shí)施方式進(jìn)行詳細(xì)描述,但應(yīng)當(dāng)理解本發(fā)明的保護(hù)范圍并不受具體實(shí)施方式的限制。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。除非另有其它明確表示,否則在整個(gè)說明書和權(quán)利要求書中,術(shù)語“包括”或其變換如“包含”或“包括有”等等將被理解為包括所陳述的元件或組成部分,而并未排除其它元件或其它組成部分。
在這里專用的詞“示例性”意為“用作例子、實(shí)施例或說明性”。這里作為“示例性”所說明的任何實(shí)施例不必解釋為優(yōu)于或好于其它實(shí)施例。
另外,為了更好的說明本發(fā)明,在下文的具體實(shí)施方式中給出了眾多的具體細(xì)節(jié)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,沒有某些具體細(xì)節(jié),本發(fā)明同樣可以實(shí)施。在一些實(shí)例中,對于本領(lǐng)域技術(shù)人員熟知的方法、手段、元件未作詳細(xì)描述,以便于凸顯本發(fā)明的主旨。
除非另有其它明確表示,否則在整個(gè)說明書和權(quán)利要求書中,術(shù)語“包括”或其變換如“包含”或“包括有”等等將被理解為包括所陳述的元件或組成部分,而并未排除其它元件或其它組成部分。
本發(fā)明實(shí)施例中,設(shè)置無線傳感網(wǎng)包含一個(gè)中心控制節(jié)點(diǎn)與若干個(gè)傳感節(jié)點(diǎn)。本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,應(yīng)用于傳感節(jié)點(diǎn)側(cè),圖1為該方法的流程圖,具體包括步驟101-103:
步驟101:接收廣播的第一拓?fù)湔埱?,第一拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枴?/p>
本發(fā)明實(shí)施例中,首先由控制節(jié)點(diǎn)發(fā)送拓?fù)湔埱?,傳感?jié)點(diǎn)在接收到該拓?fù)湔埱蠛?,可以繼續(xù)以廣播的形式轉(zhuǎn)發(fā)該拓?fù)湔埱?,故步驟101中的第一拓?fù)湔埱罂梢詾榭刂乒?jié)點(diǎn)發(fā)送的請求,也可以為其他傳感節(jié)點(diǎn)轉(zhuǎn)發(fā)的請求。該第一拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枺刂乒?jié)點(diǎn)地址具體可以為控制節(jié)點(diǎn)的IP(Internet Protocol,網(wǎng)絡(luò)協(xié)議);拓?fù)湫蛄刑柧唧w可以為拓?fù)浒姹緲?biāo)識序列號SN(Serial Number,序列號),拓?fù)湫蛄刑栍糜诖_定當(dāng)前拓?fù)涞拇螖?shù),以剔除傳感器節(jié)點(diǎn)在響應(yīng)之前的拓?fù)湔埱笫前l(fā)送的鄰居列表。
同時(shí),由于控制節(jié)點(diǎn)廣播的拓?fù)湔埱髸ㄟ^其他傳感節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā),故第一拓?fù)湔埱筮€可以包括第一轉(zhuǎn)發(fā)次數(shù),該第一轉(zhuǎn)發(fā)次數(shù)用于確定控制節(jié)點(diǎn)發(fā)出的拓?fù)湔埱蟮霓D(zhuǎn)發(fā)次數(shù)。該第一轉(zhuǎn)發(fā)次數(shù)的初始值可以設(shè)置為0,每當(dāng)傳感節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)時(shí),對該第一轉(zhuǎn)發(fā)次數(shù)進(jìn)行加一處理。
步驟102:將本地鄰居列表和拓?fù)湫蛄刑柗庋b至拓?fù)浠貜?fù)數(shù)據(jù)中,并根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)。
本發(fā)明實(shí)施例中,拓?fù)浠貜?fù)數(shù)據(jù)用于響應(yīng)該第一拓?fù)湔埱?,拓?fù)浠貜?fù)數(shù)據(jù)包括本地鄰居列表和第一拓?fù)湔埱笾械耐負(fù)湫蛄刑枺辉摫镜剜従恿斜碇杏涗浻斜镜毓?jié)點(diǎn)的鄰居節(jié)點(diǎn),同時(shí)還可以記錄每個(gè)鄰居節(jié)點(diǎn)的鏈路權(quán)重。
同時(shí),由于本地節(jié)點(diǎn)可能不能直接將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至控制節(jié)點(diǎn),故步驟102中“根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)”具體包括步驟A1-A2:
步驟A1、根據(jù)第一拓?fù)湔埱蟠_定本地節(jié)點(diǎn)到控制節(jié)點(diǎn)的初始路由。
步驟A2、根據(jù)初始路由將該拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至下一跳節(jié)點(diǎn),指示下一跳節(jié)點(diǎn)將該拓?fù)浠貜?fù)數(shù)據(jù)轉(zhuǎn)發(fā)至控制節(jié)點(diǎn)。
具體的,假如控制節(jié)點(diǎn)廣播拓?fù)湔埱?,傳感?jié)點(diǎn)A接收到該拓?fù)湔埱?,并繼續(xù)以廣播形式轉(zhuǎn)發(fā)該拓?fù)湔埱?,之后傳感?jié)點(diǎn)B接收到傳感節(jié)點(diǎn)A廣播的拓?fù)湔埱蟆H魝鞲泄?jié)點(diǎn)B為本地節(jié)點(diǎn),則傳感節(jié)點(diǎn)B需要向控制節(jié)點(diǎn)發(fā)送拓?fù)浠貜?fù)數(shù)據(jù)時(shí),傳感節(jié)點(diǎn)B與控制節(jié)點(diǎn)并沒有直接的連接關(guān)系。故需要確定本地節(jié)點(diǎn)到控制節(jié)點(diǎn)的初始路由,即“傳感節(jié)點(diǎn)B→傳感節(jié)點(diǎn)A→控制節(jié)點(diǎn)”,此時(shí)本地節(jié)點(diǎn)的下一跳節(jié)點(diǎn)為傳感節(jié)點(diǎn)A,即與步驟101中第一拓?fù)湔埱蟮膩碓聪嘁恢隆?/p>
步驟103:根據(jù)控制節(jié)點(diǎn)地址和拓?fù)湫蛄刑柹傻诙負(fù)湔埱?,并廣播第二拓?fù)湔埱蟆?/p>
本發(fā)明實(shí)施例中,本地節(jié)點(diǎn)除了可以接收拓?fù)湔埱笸?,還需要轉(zhuǎn)發(fā)該拓?fù)湔埱螅允沟每刂乒?jié)點(diǎn)生成的拓?fù)湔埱罂梢园l(fā)送至全網(wǎng)所有的傳感節(jié)點(diǎn)。第二拓?fù)湔埱笈c第一拓?fù)湔埱蟮闹饕獏^(qū)別在于來源不同,第一拓?fù)湔埱笥杀镜毓?jié)點(diǎn)的上一跳節(jié)點(diǎn)生成,而第二拓?fù)湔埱笥杀镜毓?jié)點(diǎn)生成。同時(shí),第二拓?fù)湔埱筮€可以包括第二轉(zhuǎn)發(fā)次數(shù),第二轉(zhuǎn)發(fā)次數(shù)為對第一轉(zhuǎn)發(fā)次數(shù)進(jìn)行加一處理后確定的次數(shù)。
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,設(shè)置無線傳感網(wǎng)包含一個(gè)中心控制節(jié)點(diǎn)與若干個(gè)傳感節(jié)點(diǎn),每個(gè)傳感節(jié)點(diǎn)只需要負(fù)責(zé)將本地的鄰居列表上報(bào)給控制節(jié)點(diǎn)并轉(zhuǎn)發(fā)拓?fù)湔埱螅瑥亩梢允沟每刂乒?jié)點(diǎn)獲取所有傳感節(jié)點(diǎn)的鄰接情況,進(jìn)而確定全網(wǎng)拓?fù)?。傳感?jié)點(diǎn)只需要接收控制節(jié)點(diǎn)發(fā)送的全網(wǎng)拓?fù)浼纯?,不需要本地?zhí)行路由算法,減少了本地節(jié)點(diǎn)的計(jì)算量,可以提高本地節(jié)點(diǎn)的處理效率。同時(shí),由控制節(jié)點(diǎn)統(tǒng)一處理傳感節(jié)點(diǎn)的鄰居列表,從而可以有效確定全網(wǎng)拓?fù)?,使得傳感?jié)點(diǎn)可以根據(jù)該全網(wǎng)拓?fù)浯_定最優(yōu)路由路徑。
在一種可能的實(shí)現(xiàn)方式中,該方法還包括鄰居發(fā)現(xiàn)步驟,參見圖2所示,具體包括步驟201-203:
步驟201:在本輪中廣播第一鄰居發(fā)現(xiàn)請求,第一鄰居發(fā)現(xiàn)請求包括本輪序列號和本地節(jié)點(diǎn)地址。
本發(fā)明實(shí)施例中,本地節(jié)點(diǎn)可以周期性的發(fā)起鄰居發(fā)現(xiàn)請求,一個(gè)周期內(nèi)即可以作為一輪。本輪序列號用于確定第一鄰居發(fā)現(xiàn)請求對應(yīng)哪一輪,每輪的序列號均不同,具體可以在每輪開始時(shí)對上一輪的序列號進(jìn)行加一處理。
步驟202:接收第一節(jié)點(diǎn)發(fā)送的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第一序列號和第一節(jié)點(diǎn)地址。
本發(fā)明實(shí)施例中,在本地節(jié)點(diǎn)廣播第一鄰居發(fā)現(xiàn)請求后,其他節(jié)點(diǎn)(如第一節(jié)點(diǎn))可以收到該第一鄰居發(fā)現(xiàn)請求,之后響應(yīng)該請求。此時(shí),第一節(jié)點(diǎn)將第一鄰居發(fā)現(xiàn)請求中的本輪序列號和第一節(jié)點(diǎn)地址封裝至第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),并向本地節(jié)點(diǎn)發(fā)送該第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)。
步驟203:在本輪序列號和第一序列號相一致時(shí),將第一節(jié)點(diǎn)地址添加至本地鄰居列表中,并記錄響應(yīng)次數(shù),響應(yīng)次數(shù)為在本輪中接收到來自第一節(jié)點(diǎn)的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)的次數(shù)。
本發(fā)明實(shí)施例中,由于本地節(jié)點(diǎn)可以周期性的發(fā)起鄰居發(fā)現(xiàn)請求,故需要確定本地節(jié)點(diǎn)收到的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)是否為響應(yīng)本輪的回復(fù)數(shù)據(jù),故需要判斷本輪序列號和第一序列號是否一致。在本輪序列號和第一序列號相一致時(shí),將第一節(jié)點(diǎn)地址添加至本地鄰居列表中,即確定第一節(jié)點(diǎn)為本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)。
同時(shí),在本輪期間,本地節(jié)點(diǎn)可以多次發(fā)起鄰居發(fā)現(xiàn)請求,故本地節(jié)點(diǎn)可能收到第一節(jié)點(diǎn)響應(yīng)的多個(gè)第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),此時(shí)記錄該響應(yīng)次數(shù),該響應(yīng)次數(shù)即可以作為鏈路質(zhì)量的權(quán)重。該響應(yīng)次數(shù)可以記錄在本地鄰居列表中,也可以單獨(dú)封裝至拓?fù)浠貜?fù)數(shù)據(jù)中以發(fā)送給控制節(jié)點(diǎn)。
同時(shí),在一種可能的實(shí)現(xiàn)方式中,在步驟102“根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)”之后,該方法還包括鄰居更新步驟,具體包括步驟B1-B2:
步驟B1:當(dāng)本輪中確定的本地鄰居列表與上一輪確定的本地鄰居列表不同時(shí),根據(jù)本輪中確定的本地鄰居列表更新本地鄰居列表,并重新記錄響應(yīng)次數(shù)。
步驟B2:向控制節(jié)點(diǎn)發(fā)送拓?fù)涓聰?shù)據(jù),拓?fù)涓聰?shù)據(jù)包括更新后的本地鄰居列表和重新記錄的響應(yīng)次數(shù)。
本發(fā)明實(shí)施例中,上述步驟201-203可以在步驟101之前執(zhí)行,即預(yù)先確定本地鄰居列表;也可以在步驟102之后繼續(xù)執(zhí)行步驟201-203,此時(shí)實(shí)際為拓?fù)涓码A段。具體的,當(dāng)本輪中確定的本地鄰居列表與上一輪確定的本地鄰居列表不同時(shí),說明本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)發(fā)生了變化,故需要將新的鄰居列表發(fā)送至控制節(jié)點(diǎn),以使控制節(jié)點(diǎn)及時(shí)更新全網(wǎng)拓?fù)洹?/p>
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,通過周期性廣播鄰居發(fā)現(xiàn)請求的方式,可以及時(shí)獲取鄰居節(jié)點(diǎn)信息,同時(shí)在本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)發(fā)生變化時(shí),及時(shí)將更新后的本地鄰居列表發(fā)送至控制節(jié)點(diǎn),從而可以及時(shí)更新全網(wǎng)拓?fù)洹?/p>
在一種可能的實(shí)現(xiàn)方式中,本地節(jié)點(diǎn)還可以接收其他節(jié)點(diǎn)廣播的鄰居發(fā)現(xiàn)請求,具體的,鄰居發(fā)現(xiàn)步驟還包括步驟C1-C2:
步驟C1:接收第二節(jié)點(diǎn)廣播的第二鄰居發(fā)現(xiàn)請求,第二鄰居發(fā)現(xiàn)請求包括第二序列號和第二節(jié)點(diǎn)地址。
步驟C2:生成第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),并將第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)發(fā)送至第二節(jié)點(diǎn),第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第二序列號和本地節(jié)點(diǎn)地址。
本發(fā)明實(shí)施例中,第二節(jié)點(diǎn)也為本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn),或者說本地節(jié)點(diǎn)為第二節(jié)點(diǎn)的鄰居節(jié)點(diǎn),在本地節(jié)點(diǎn)接收到第二節(jié)點(diǎn)廣播的第二鄰居發(fā)現(xiàn)請求后,則向第二節(jié)點(diǎn)發(fā)送第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),從而第二節(jié)點(diǎn)可以更新自己的鄰居列表。
基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,該方法應(yīng)用于控制節(jié)點(diǎn)側(cè),參見圖3所示,包括:
步驟301:廣播拓?fù)湔埱?,拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枴?/p>
本發(fā)明實(shí)施例中,由控制節(jié)點(diǎn)廣播最原始的拓?fù)湔埱?,該拓?fù)湔埱罂梢詾椴襟E101中的第一拓?fù)湔埱?,亦可以在傳感?jié)點(diǎn)轉(zhuǎn)發(fā)該拓?fù)湔埱蠛笊稍摰谝煌負(fù)湔埱蟆?/p>
步驟302:接收響應(yīng)節(jié)點(diǎn)發(fā)送的拓?fù)浠貜?fù)數(shù)據(jù),拓?fù)浠貜?fù)數(shù)據(jù)包括響應(yīng)節(jié)點(diǎn)的鄰居列表和拓?fù)湫蛄刑枴?/p>
步驟303:根據(jù)拓?fù)浠貜?fù)數(shù)據(jù)更新全網(wǎng)鄰接矩陣和鏈路權(quán)重,并確定全網(wǎng)拓?fù)洹?/p>
本發(fā)明實(shí)施例中,通過全網(wǎng)鄰接矩陣記錄全網(wǎng)的節(jié)點(diǎn)之間的鄰接關(guān)系,在確定全網(wǎng)拓?fù)浜蠹磳⒃撊W(wǎng)拓?fù)湎掳l(fā)至傳感節(jié)點(diǎn),傳感節(jié)點(diǎn)接收到全網(wǎng)拓?fù)浜螅纯梢愿鶕?jù)全網(wǎng)拓?fù)浯_定最優(yōu)的路由路徑。具體的,規(guī)定一個(gè)無線傳感網(wǎng)中包含一個(gè)中心控制節(jié)點(diǎn)與若干個(gè)傳感節(jié)點(diǎn),每一個(gè)傳感節(jié)點(diǎn)只負(fù)責(zé)鄰居發(fā)現(xiàn)和將自身鄰居列表報(bào)告給控制節(jié)點(diǎn),于是控制節(jié)點(diǎn)能夠獲取全網(wǎng)的鄰接情況與鏈路權(quán)重,繼而為后續(xù)的路由算法提供便利。當(dāng)傳感節(jié)點(diǎn)鄰居發(fā)生改變時(shí),傳感節(jié)點(diǎn)再向控制節(jié)點(diǎn)報(bào)告新的鄰居表,進(jìn)行新一輪的拓?fù)浒l(fā)現(xiàn)。如此,在無線傳感網(wǎng)中引入“集中控制、數(shù)控分離”思想,將拓?fù)浒l(fā)現(xiàn)算法的計(jì)算量集中到控制節(jié)點(diǎn),能大大簡化傳感器節(jié)點(diǎn)的設(shè)計(jì),降低其能耗。同時(shí),控制節(jié)點(diǎn)利用全網(wǎng)拓?fù)溆?jì)算得到的路由一定是最優(yōu)的,并且在有某些特殊需要時(shí),可以在控制節(jié)點(diǎn)直接修改全網(wǎng)路由,并分發(fā)到各個(gè)傳感節(jié)點(diǎn),高效靈活地完成路由的修改及配置。
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法,設(shè)置無線傳感網(wǎng)包含一個(gè)中心控制節(jié)點(diǎn)與若干個(gè)傳感節(jié)點(diǎn),每個(gè)傳感節(jié)點(diǎn)只需要負(fù)責(zé)將本地的鄰居列表上報(bào)給控制節(jié)點(diǎn)并轉(zhuǎn)發(fā)拓?fù)湔埱?,從而可以使得控制?jié)點(diǎn)獲取所有傳感節(jié)點(diǎn)的鄰接情況,進(jìn)而確定全網(wǎng)拓?fù)?。傳感?jié)點(diǎn)只需要接收控制節(jié)點(diǎn)發(fā)送的全網(wǎng)拓?fù)浼纯桑恍枰镜貓?zhí)行路由算法,減少了本地節(jié)點(diǎn)的計(jì)算量,可以提高本地節(jié)點(diǎn)的處理效率。同時(shí),由控制節(jié)點(diǎn)統(tǒng)一處理傳感節(jié)點(diǎn)的鄰居列表,從而可以有效確定全網(wǎng)拓?fù)洌沟脗鞲泄?jié)點(diǎn)可以根據(jù)該全網(wǎng)拓?fù)浯_定最優(yōu)路由路徑。通過周期性廣播鄰居發(fā)現(xiàn)請求的方式,可以及時(shí)獲取鄰居節(jié)點(diǎn)信息,同時(shí)在本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)發(fā)生變化時(shí),及時(shí)將更新后的本地鄰居列表發(fā)送至控制節(jié)點(diǎn),從而可以及時(shí)更新全網(wǎng)拓?fù)洹?/p>
以上詳細(xì)介紹了一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法流程,該方法也可以通過相應(yīng)的裝置實(shí)現(xiàn),下面詳細(xì)介紹該裝置的結(jié)構(gòu)和功能。
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的傳感裝置,參見圖4所示,包括:
接收模塊41,用于接收廣播的第一拓?fù)湔埱?,第一拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枴?/p>
發(fā)送模塊42,用于將本地鄰居列表和拓?fù)湫蛄刑柗庋b至拓?fù)浠貜?fù)數(shù)據(jù)中,并根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)。
拓?fù)鋸V播模塊43,用于根據(jù)控制節(jié)點(diǎn)地址和拓?fù)湫蛄刑柹傻诙負(fù)湔埱?,并廣播第二拓?fù)湔埱蟆?/p>
在一種可能的實(shí)現(xiàn)方式中,參見圖5所示,該傳感裝置還包括:
鄰居廣播模塊44,用于在本輪中廣播第一鄰居發(fā)現(xiàn)請求,第一鄰居發(fā)現(xiàn)請求包括本輪序列號和本地節(jié)點(diǎn)地址。
第一接收模塊45,用于接收第一節(jié)點(diǎn)發(fā)送的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第一序列號和第一節(jié)點(diǎn)地址。
處理模塊46,用于在本輪序列號和第一序列號相一致時(shí),將第一節(jié)點(diǎn)地址添加至本地鄰居列表中,并記錄響應(yīng)次數(shù),響應(yīng)次數(shù)為在本輪中接收到來自第一節(jié)點(diǎn)的第一鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)的次數(shù)。
在一種可能的實(shí)現(xiàn)方式中,第一接收模塊45還用于接收第二節(jié)點(diǎn)廣播的第二鄰居發(fā)現(xiàn)請求,第二鄰居發(fā)現(xiàn)請求包括第二序列號和第二節(jié)點(diǎn)地址。
處理模塊46還用于生成第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù),并將第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)發(fā)送至第二節(jié)點(diǎn),第二鄰居發(fā)現(xiàn)回復(fù)數(shù)據(jù)包括第二序列號和本地節(jié)點(diǎn)地址。
在一種可能的實(shí)現(xiàn)方式中,參見圖6所示,該傳感裝置還包括更新模塊47。
在發(fā)送模塊42根據(jù)控制節(jié)點(diǎn)地址將拓?fù)浠貜?fù)數(shù)據(jù)發(fā)送至相應(yīng)的控制節(jié)點(diǎn)之后,更新模塊47用于當(dāng)本輪中確定的本地鄰居列表與上一輪確定的本地鄰居列表不同時(shí),根據(jù)本輪中確定的本地鄰居列表更新本地鄰居列表,并重新記錄響應(yīng)次數(shù)。
發(fā)送模塊42還用于:向控制節(jié)點(diǎn)發(fā)送拓?fù)涓聰?shù)據(jù),拓?fù)涓聰?shù)據(jù)包括更新后的本地鄰居列表和重新記錄的響應(yīng)次數(shù)。
基于同樣的發(fā)明構(gòu)思,本發(fā)明實(shí)施例還提供一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的控制裝置,參見圖7所示,包括:
廣播模塊71,用于廣播拓?fù)湔埱?,拓?fù)湔埱蟀刂乒?jié)點(diǎn)地址和拓?fù)湫蛄刑枴?/p>
接收模塊72,用于接收響應(yīng)節(jié)點(diǎn)發(fā)送的拓?fù)浠貜?fù)數(shù)據(jù),拓?fù)浠貜?fù)數(shù)據(jù)包括響應(yīng)節(jié)點(diǎn)的鄰居列表和拓?fù)湫蛄刑枴?/p>
拓?fù)淠K73,用于根據(jù)拓?fù)浠貜?fù)數(shù)據(jù)更新全網(wǎng)鄰接矩陣和鏈路權(quán)重,并確定全網(wǎng)拓?fù)洹?/p>
本發(fā)明實(shí)施例提供的一種無線傳感網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)的方法及裝置,設(shè)置無線傳感網(wǎng)包含一個(gè)中心控制節(jié)點(diǎn)與若干個(gè)傳感節(jié)點(diǎn),每個(gè)傳感節(jié)點(diǎn)只需要負(fù)責(zé)將本地的鄰居列表上報(bào)給控制節(jié)點(diǎn)并轉(zhuǎn)發(fā)拓?fù)湔埱?,從而可以使得控制?jié)點(diǎn)獲取所有傳感節(jié)點(diǎn)的鄰接情況,進(jìn)而確定全網(wǎng)拓?fù)洹鞲泄?jié)點(diǎn)只需要接收控制節(jié)點(diǎn)發(fā)送的全網(wǎng)拓?fù)浼纯?,不需要本地?zhí)行路由算法,減少了本地節(jié)點(diǎn)的計(jì)算量,可以提高本地節(jié)點(diǎn)的處理效率。同時(shí),由控制節(jié)點(diǎn)統(tǒng)一處理傳感節(jié)點(diǎn)的鄰居列表,從而可以有效確定全網(wǎng)拓?fù)洌沟脗鞲泄?jié)點(diǎn)可以根據(jù)該全網(wǎng)拓?fù)浯_定最優(yōu)路由路徑。通過周期性廣播鄰居發(fā)現(xiàn)請求的方式,可以及時(shí)獲取鄰居節(jié)點(diǎn)信息,同時(shí)在本地節(jié)點(diǎn)的鄰居節(jié)點(diǎn)發(fā)生變化時(shí),及時(shí)將更新后的本地鄰居列表發(fā)送至控制節(jié)點(diǎn),從而可以及時(shí)更新全網(wǎng)拓?fù)洹?/p>
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在計(jì)算機(jī)可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
前述對本發(fā)明的具體示例性實(shí)施方案的描述是為了說明和例證的目的。這些描述并非想將本發(fā)明限定為所公開的精確形式,并且很顯然,根據(jù)上述教導(dǎo),可以進(jìn)行很多改變和變化。對示例性實(shí)施例進(jìn)行選擇和描述的目的在于解釋本發(fā)明的特定原理及其實(shí)際應(yīng)用,從而使得本領(lǐng)域的技術(shù)人員能夠?qū)崿F(xiàn)并利用本發(fā)明的各種不同的示例性實(shí)施方案以及各種不同的選擇和改變。本發(fā)明的范圍意在由權(quán)利要求書及其等同形式所限定。