專利名稱:一種基于分簇的無線傳感器數(shù)據(jù)高效采集方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線傳感器技術(shù)領(lǐng)域,尤其涉及一種基于分簇的無線傳感器數(shù) 據(jù)高效采集方法。
背景技術(shù):
近年來隨著傳感器、嵌入式計算、微機(jī)電系統(tǒng)(MEMS)、網(wǎng)絡(luò)及無線通信、 分布式信息處理等技術(shù)的飛速發(fā)展,出現(xiàn)了一種全新的信息獲取和處理模式, 即同時具有數(shù)據(jù)采集、無線通信、信息處理及協(xié)同工作等功能,由大量具有此 類功能的微型無線傳感器節(jié)點自組織構(gòu)成的網(wǎng)絡(luò)一一無線傳感器網(wǎng)絡(luò) (Wireless Sensor Networks, WSN)。網(wǎng)絡(luò)的特點是硬件資源有限、電源容量 有限、無中心、自組織、多跳路由、動態(tài)拓?fù)?、?jié)點數(shù)量眾多及分布密集等。 WSN是以數(shù)據(jù)為中心的網(wǎng)絡(luò),怎樣將有效源數(shù)據(jù)以最有效的方式傳送到目的地, 是WSN研究的重點。在數(shù)據(jù)量不大的網(wǎng)絡(luò)中,節(jié)點的能耗設(shè)計相對更加重要; 但是在數(shù)據(jù)量很大的網(wǎng)絡(luò)中,怎樣將數(shù)據(jù)穩(wěn)定地傳送到目的地成為設(shè)計的重點。
目前已有的路由算法可以分為平面路由算法和層次路由算法。平面路由算 法中的節(jié)點是平等的,每個節(jié)點通過多跳的方式進(jìn)行數(shù)據(jù)傳輸,如DD、 RR等。 實驗表明,傳輸數(shù)據(jù)所消耗的能量比運(yùn)算處理所消耗的能量大。所以平面路由 算法中會造成部分節(jié)點耗能過快,壽命過短,從而影響網(wǎng)絡(luò)的整體性能;此外, 平面路由算法中的源數(shù)據(jù)需要經(jīng)過多個中間節(jié)點的轉(zhuǎn)發(fā),對于數(shù)據(jù)量較大的網(wǎng) 絡(luò),容易引起網(wǎng)絡(luò)堵塞。鑒于以上原因,根據(jù)平面路由算法設(shè)計的數(shù)據(jù)采集系 統(tǒng)不適合數(shù)據(jù)量較大的網(wǎng)絡(luò)系統(tǒng)。層次路由算法與平面路由算法相比,具有易 擴(kuò)展,易管理,節(jié)約系統(tǒng)能耗等優(yōu)點,被認(rèn)為是比較符合傳感器網(wǎng)絡(luò)特性的高 效算法。層次型路由算法中最常見的是分簇路由算法,如LEACH、 TEEN、 SEP、 EEUC等,分簇路由算法在一個大循環(huán)中需要完成的工作有 一、簇首選擇;二、 簇的形成;三、數(shù)據(jù)傳輸。該類算法的不足之處是每輪都要選擇簇首和分簇, 故建立階段的協(xié)議開銷較大。對于需要連續(xù)、快速、實時的數(shù)據(jù)采集系統(tǒng),以上 分簇路由算法存在一定的缺陷。
對于數(shù)據(jù)量較大的無線傳感器網(wǎng)絡(luò)系統(tǒng),以上所述算法都存在一定的缺陷。 本文提出了一種基于分簇的數(shù)據(jù)采集方法,該方法利用分簇的低能耗特點,釆 用分簇網(wǎng)絡(luò)結(jié)構(gòu),最大限度地降低傳感器節(jié)點的能耗;利用網(wǎng)絡(luò)信標(biāo)信號為骨 架建立起整個網(wǎng)絡(luò),簇首節(jié)點固定,各個簇相對穩(wěn)定;釆用時鐘周期調(diào)整機(jī)制
4和刷新機(jī)制,保證節(jié)點之間的同步性和網(wǎng)絡(luò)路由的穩(wěn)定性,提高網(wǎng)絡(luò)中數(shù)據(jù)通
信的效率。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的不足,提供一種基于分簇的無線傳感器 數(shù)據(jù)高效采集方法。
本發(fā)明的目的是通過技術(shù)方案來實現(xiàn)的 一種基于分簇的無線傳感器數(shù)據(jù) 高效采集方法,包括以下步驟
(1) 節(jié)點初始化;
(2) Sink節(jié)點設(shè)定自身周期,然后周期性地發(fā)送信標(biāo)信號,接收簇首節(jié)點數(shù)據(jù) 包并進(jìn)行數(shù)據(jù)處理,同時通過USB接口與外部設(shè)備進(jìn)行數(shù)據(jù)通信;
(3) 簇首節(jié)點根據(jù)sink節(jié)點的信標(biāo)信號加入網(wǎng)絡(luò),然后周期性地發(fā)送信標(biāo)信 號,接收傳感器節(jié)點的數(shù)據(jù)包并作相應(yīng)處理,每隔一定的時間進(jìn)行一次刷新操 作;
(4) 傳感器節(jié)點根據(jù)簇首節(jié)點的信標(biāo)信號加入網(wǎng)絡(luò),然后周期性地采集傳感數(shù) 據(jù)并發(fā)送給相應(yīng)的簇首節(jié)點,每隔一定的時間進(jìn)行一次刷新操作。
本發(fā)明的有益效果是
1、 每個傳感器節(jié)點擁有唯一的一條通路,在網(wǎng)絡(luò)中不會產(chǎn)生冗余數(shù)據(jù);
2、 網(wǎng)絡(luò)中能夠隨時加入或撤出節(jié)點,增強(qiáng)了網(wǎng)絡(luò)的靈活性;
3、 當(dāng)某個簇首節(jié)點失效時,傳感器節(jié)點在R輪循環(huán)后會發(fā)現(xiàn)這一事件, 然后搜尋其它有效簇首節(jié)點,從而保證網(wǎng)絡(luò)的連通性;
4、 網(wǎng)絡(luò)中數(shù)據(jù)傳輸快速、連續(xù)、實時,這是最大的特點,當(dāng)然這是以一 定的丟包率為代價的;
5、 由于簇首固定,所以網(wǎng)絡(luò)中不需簇首選擇時間片,同時該算法中也不 需要簇的重組,各節(jié)點管理自身的狀態(tài),這些都減小了傳感器節(jié)點的時間 片開銷;
6、 建立及維持整個網(wǎng)絡(luò)的骨架是sink節(jié)點、簇首節(jié)點的信標(biāo)信號,無 論簇首節(jié)點還是傳感器節(jié)點加入網(wǎng)絡(luò)都是依據(jù)對應(yīng)的信標(biāo)信號,這給網(wǎng)絡(luò) 增大了能耗。然而,結(jié)合具體的應(yīng)用,sink節(jié)點、簇首節(jié)點可以有持續(xù) 的能量供應(yīng);
7、 網(wǎng)絡(luò)中數(shù)據(jù)傳輸?shù)姆绞讲煌谝话愕臇嗽兎绞?,它采取的是主動傳?的方式,即節(jié)點將數(shù)據(jù)發(fā)送給上一層節(jié)點后,上層節(jié)點并不發(fā)回確認(rèn)信號, 這就對時間同步調(diào)整提出了更高的要求。如果時間同步不好,必然引起較 大的丟包率,所以時間同步算法是其中的關(guān)鍵支撐技術(shù),本發(fā)明中的關(guān)鍵技術(shù)之一就是時鐘周期調(diào)整。
圖1是無線傳感網(wǎng)絡(luò)結(jié)構(gòu)模型圖2是傳感器節(jié)點結(jié)構(gòu)框圖3是簇首節(jié)點結(jié)構(gòu)框圖4是sink節(jié)點結(jié)構(gòu)框圖5是sink節(jié)點行為的流程圖6是簇首節(jié)點行為的流程圖7是傳感器節(jié)點行為的流程圖。
具體實施例方式
本發(fā)明利用分簇路由能耗低的優(yōu)點,在分簇路由的基礎(chǔ)上,設(shè)計了一種高 效的數(shù)據(jù)采集方法。其中簇首節(jié)點固定,具有較強(qiáng)的數(shù)據(jù)處理能力和持續(xù)的能 量供應(yīng)。在簇首節(jié)點固定的情況下,減少了簇首選擇所占用的時間片,同時, 網(wǎng)絡(luò)中的各個簇相對穩(wěn)定,是否加入或者離開某簇由簇內(nèi)節(jié)點自己決策。根據(jù) 以上策略,連續(xù)、快速、實時的數(shù)據(jù)傳輸成為可能。
1、本發(fā)明的無線傳感數(shù)據(jù)高效采集方法,包括以下機(jī)制時隙分配機(jī)制、 時鐘周期調(diào)整機(jī)制、刷新機(jī)制,下面對這些機(jī)制分別作出說明。
在論述以上機(jī)制之前,先引入虛擬時間戳的概念,其定義為以某個周期為 起點的周期序列號,記為iV,起始周期對應(yīng)虛擬時間戳為iV-O。另外引入父節(jié) 點、子節(jié)點的概念,父節(jié)點為兩節(jié)點之間有直接通信的上層節(jié)點,相應(yīng)子節(jié)點 為下層節(jié)點。每個節(jié)點擁有一個自身的虛擬時間戳,父節(jié)點記為iV,,子節(jié)點/記
為w,。父節(jié)點周期記為r,,子節(jié)點/的周期記為r,。某個周期中的時刻值記為r,
該時刻區(qū)別于絕對時刻,其與絕對時刻的關(guān)系是^iV.r + T + G ,,為絕對時刻
值,r為周期值,f,為初始周期時對應(yīng)的絕對時刻,即a^0, r-o時對應(yīng)的時刻
值,相應(yīng)的父節(jié)點記為v,子節(jié)點記為/,,。各節(jié)點的時鐘頻率為F,則計數(shù)值與
周期之間的關(guān)系為7}=,, 7;=,,其中M,,M,分別為父節(jié)點、子節(jié)點/的時 鐘周期計數(shù)值。節(jié)點一旦設(shè)定了時鐘周期為M,則節(jié)點的時鐘計數(shù)在[O,M]之間 循環(huán)。父節(jié)點在某一周期內(nèi)的時刻值=^, 為父節(jié)點的瞬時計數(shù)值。子節(jié) 點亦有相同的形式,為5=,, w,為子節(jié)點/的瞬時計數(shù)值。 一、 時隙分配機(jī)制
時隙分配機(jī)制的目的是將各個子節(jié)點的數(shù)據(jù)通信對應(yīng)于父節(jié)點的不同時 隙,使得各子節(jié)點之間的通信不會相互干擾。令時隙大小為Ar,其中Ar-,, 則時隙分配方法如下 F
6=A^.7]+/.Ar + ^, (1) (1)表明子節(jié)點/的周期為 ;,其在每個周期中的相應(yīng)時刻/.Ar發(fā)送數(shù)據(jù)。設(shè) 數(shù)據(jù)包傳輸時間為^,數(shù)據(jù)傳輸延遲時間為^,則父節(jié)點接收到子節(jié)點/的數(shù)據(jù) 包時的本地時間為
-AV^+y^.Ar (2) 其中^=。 + ~,當(dāng)發(fā)送的數(shù)據(jù)包長度固定時,Q為一個固定值。 父節(jié)點的絕對時間表示如下
,廣JVr盧,+," (3)
(1)式和(3)式中^、 ^的關(guān)系定義如下
(4)
式中t為一個常量。iV,-iV,表示子節(jié)點的虛擬時間戳相對父節(jié)點虛擬時間戳的差 值。
根據(jù)(2)式,結(jié)合(4)式,父節(jié)點接收到子節(jié)點/和子節(jié)點j的時間間隔為
△、 =^,'(7;—r,)+乂 .(7> -r乂)+(/—_/) .Ar (5) 即為子節(jié)點/與子節(jié)點/之間對應(yīng)時隙的時間間隔。由(5)式可知,對于固 定的/和y值,若7^ ;-r,,則隨著時間的推移,即隨著M,Ao的不斷增大,a、是 不斷增大的,這必然滿足不了固定的時隙分配。所以下面給出時鐘周期調(diào)整機(jī) 制以解決這一問題。
二、 時鐘周期調(diào)整機(jī)制
時鐘周期調(diào)整機(jī)制的目的是使得各個子節(jié)點的時鐘周期調(diào)整到與父節(jié)點的 時鐘周期一致。
子節(jié)點/周期性地接收父節(jié)點的信標(biāo)信號,并記錄接收到信標(biāo)信號時的本地
時刻值,該值對應(yīng)的瞬時計數(shù)值為M,。, ,加,2…附,w。其對應(yīng)的絕對時刻值為
—d+r諷+^ ^=0,1,2--- (6)
其中^ = , , 表示子節(jié)點/初始周期對應(yīng)的絕對時刻。
因為父節(jié)點是周期性地發(fā)送信標(biāo)信號,即它在各個周期中的固定時刻值^
發(fā)送,所以可知信標(biāo)信號發(fā)送的絕對時刻值為
^ = W, '7} + r/s = O,l, 2… (7)
由(6)式可知,子節(jié)點連續(xù)接收AT + l個信標(biāo)信號所需時間為為Af,W.7;+%-r,0 (8) 同理,由(7)式可知,父節(jié)點發(fā)送7V + 1個信標(biāo)信號所需時間為
△/,7V. 7} (9)
由(8)式=(9)式,可得
F F F F M, = M, + ;加'o , + AM (10) 式中AM = Z! ^k為計數(shù)偏移量。
由(10)式可知,只要將子節(jié)點的計數(shù)周期值調(diào)整偏移量AM就可以達(dá)到與父 節(jié)點相同的周期值。各個子節(jié)點經(jīng)過以上操作后,都具有與父節(jié)點相同的周期 值,即
r'=r, (11)
根據(jù)(5)式,結(jié)合(ll)式,可以得到如下關(guān)系
— (12)
對于固定的/和y值,A7;.是一個固定值,即對于固定的兩個子節(jié)點,父節(jié)點 接收到它們的數(shù)據(jù)包時對應(yīng)的時間間隔始終是固定的,這就保證了各子節(jié)點能 夠始終獨(dú)占自己的時隙,不產(chǎn)生相互之間的干擾。
然而,由于各節(jié)點之間存在時鐘漂移,他們之間的周期不可能完全相等, 下面提出的一種刷新機(jī)制,將針對如何減小漂移作用帶來的影響作出討論。
三、刷新機(jī)制
由于各節(jié)點之間的晶振漂移,以上算法只能使各子節(jié)點之間的時鐘周期達(dá) 到最小的偏差值,而不能保證各節(jié)點的時鐘周期完全相等。刷新機(jī)制的目的是 使各個節(jié)點的時鐘漂移盡量小,以減小其帶來的通信影響。由上可知(ll)式不是 嚴(yán)格正確的,嚴(yán)格的表示方法應(yīng)該為
7; 7} (13)
所以(12)式只是在理想情況下得到的結(jié)論,當(dāng)在非理想情況下,兩節(jié)點之間 的時隙間隔又回到(5)式。
經(jīng)過時鐘周期調(diào)整后,各個子節(jié)點可以軟件設(shè)置接收到信標(biāo)信號時的本地時刻值,如設(shè)置為r,,則各子節(jié)點對應(yīng)的絕對時間為
一iV,.7;+^+G iV,-0,1,2… (14)
(14) 式的操作是重新設(shè)置虛擬時間戳。在(12)式的約束條件下,(14)式表明 各子節(jié)點之間完全達(dá)到了時間同步,而在(13)式的約束條件下表明各子節(jié)點之間 只達(dá)到近似同步。
刷新機(jī)制表述如下子節(jié)點/經(jīng)過一定時間的數(shù)據(jù)通信后,重新進(jìn)行虛擬時 間戳的調(diào)整,其調(diào)整的基準(zhǔn)是接收到父節(jié)點信標(biāo)信號的時刻值,如(14)式所示。 經(jīng)過一次調(diào)整后,其對應(yīng)的虛擬時間戳重新從O開始計數(shù),即 =0,1,2...。換一 種說法就是,當(dāng)子節(jié)點/的虛擬時間戳達(dá)到某一個值后,重新將虛擬時間戳設(shè)為 0,即始終滿足如下關(guān)系M《^^, W自可以軟件設(shè)置,其大小部分決定了因漂 移而產(chǎn)生的時間偏差的大小。設(shè)經(jīng)過時鐘周期調(diào)整后滿足如下關(guān)系 K-T;M7^。根據(jù)(5)式,可以定義子節(jié)點/產(chǎn)生的時隙偏移如下
《=d7>)| (15)
(15) 式滿足3X^at^,下面給出該刷新機(jī)制可行性與穩(wěn)定性的判據(jù)
《《Ar (16) 在(16)式的判據(jù)下,(5)式一(12)式的絕對值為
I a,〃 - △《H . (7; - r,)+v, (r, - 7;) i
(17)
所以只要始終能夠滿足(16)式,則在該刷新機(jī)制下,時隙的偏移相對于理想
時隙的大小是很小的,也就是說相鄰時隙之間產(chǎn)生的錯位很小,相鄰節(jié)點之間 的通信不會產(chǎn)生太大的干擾。
根據(jù)該數(shù)據(jù)采集方法設(shè)計的無線傳感網(wǎng)絡(luò)結(jié)構(gòu)模型如圖1所示。由圖中可
以看出,網(wǎng)絡(luò)中總共有三類節(jié)點傳感器節(jié)點,簇首節(jié)點,sink節(jié)點。傳感器節(jié) 點采集傳感數(shù)據(jù),經(jīng)過簡單處理后傳送給簇首節(jié)點;簇首節(jié)點接收傳感數(shù)據(jù), 對數(shù)據(jù)做相應(yīng)的處理,然后將數(shù)據(jù)轉(zhuǎn)發(fā)給sink節(jié)點;sink節(jié)點接收簇首節(jié)點的 數(shù)據(jù),同時通過USB接口與外部設(shè)備進(jìn)行通信。
傳感器節(jié)點結(jié)構(gòu)框圖如圖2所示。由圖中可以看出,傳感器節(jié)點主要包括 以下幾個個部分電源、MCU、傳感器、射頻收發(fā)模塊。電源采用鋰電池供電, 這樣設(shè)計的優(yōu)點是能夠使節(jié)點體積盡量小,缺點是能量有P艮。MCU包含模數(shù)轉(zhuǎn)換 (ADC)、串行外圍接口(SPI)、串行通信接口(SCI)、鍵盤中斷(KBI)等模塊,它 控制節(jié)點的一系列操作。MCU可以采用Freescale公司的MC9S08QG8,該芯片的 優(yōu)點是能耗低,具有系統(tǒng)設(shè)計要求的所有外圍接口。傳感器是傳感數(shù)據(jù)的來源, 根據(jù)不同的應(yīng)用系統(tǒng)可以有不同的傳感器,如溫度傳感器、加速度傳感器、磁
9感應(yīng)傳感器等。RF為射頻收發(fā)模塊,負(fù)責(zé)發(fā)送和接收無線數(shù)據(jù),工作頻率為 2.4GHz,外接天線可以是印刷F天線或者陶瓷天線等。射頻芯片可以采用 Freescale公司的MC13203,該芯片需要外接晶振,同時芯片的輸出時鐘可以作 為MCU的時鐘源。
簇首節(jié)點結(jié)構(gòu)框圖如圖3所示。由圖中可以看出,簇首節(jié)點主要包括以下 幾個部分電源、電壓調(diào)整模塊、DSP、射頻收發(fā)模塊。電源采用持續(xù)電源供電, 如220V家用電源。電壓調(diào)整模塊將電壓轉(zhuǎn)換到DSP工作需要的電壓。DSP包括 串行外圍接口(SP工)、鍵盤中斷(KBI)等模塊,它控制節(jié)點的一系列操作,對傳 感數(shù)據(jù)進(jìn)行相應(yīng)處理。這里之所以采用DSP是因為該節(jié)點需要進(jìn)行較多的數(shù)據(jù) 處理,DSP芯片可以采用Freescale公司的MC56F8122。射頻模塊同上。
Sink節(jié)點結(jié)構(gòu)框圖如圖4所示。由圖中可以看出,sink節(jié)點主要包括以下 幾個部分電壓調(diào)整模塊、MCU、射頻收發(fā)模塊。其中電源采用USB的5V電源。 電壓調(diào)整模塊將電壓轉(zhuǎn)換到MCU工作需要的電壓。MCU包括串行外圍接口 (SPI)、 鍵盤中斷(KBI)、 USB等模塊,它控制節(jié)點的一系列操作,通過USB接口與外部 設(shè)備進(jìn)行通信。因為網(wǎng)絡(luò)中的全部數(shù)據(jù)最終都匯聚到sink節(jié)點,所以對該節(jié)點 設(shè)計三個射頻收發(fā)模塊,以提高sink節(jié)點的數(shù)據(jù)接收速率。該節(jié)點的MCU可以 采用Freescale公司的MC9S08JM60。射頻模塊同上。
本發(fā)明提供了一種基于分簇的無線傳感數(shù)據(jù)高效采集方法,實現(xiàn)數(shù)據(jù)的連 續(xù)、快速、實時傳輸。該方法主要通過以下步驟實現(xiàn)
(1) 節(jié)點初始化。
節(jié)點初始化包括MCU的初始化、射頻芯片的初始化。MCU的初始化包括總線 頻率的設(shè)定、SPI模塊的配置、GPIO 口的配置、中斷配置、看門狗的設(shè)置等; 射頻芯片的初始化包括初始化頻道設(shè)置、發(fā)射能量設(shè)置、芯片時鐘頻率設(shè)置等。
(2) sink節(jié)點設(shè)定自身周期,然后周期性地發(fā)送信標(biāo)信號,接收簇首節(jié)點數(shù)據(jù) 包并進(jìn)行數(shù)據(jù)處理,同時通過USB接口與外部設(shè)備進(jìn)行數(shù)據(jù)通信。
Sink節(jié)點一旦設(shè)定自身周期就不再改變,它的信標(biāo)信號中包含的信息有可 以分配的頻道、已經(jīng)分配的頻道、已連接的簇首節(jié)點及該節(jié)點的連接狀態(tài)等。 簇首節(jié)點發(fā)送的數(shù)據(jù)包類型有頻道申請信號、傳感器節(jié)點加入或撤出信號、傳 感數(shù)據(jù)信號等。Sink節(jié)點與外部通信可以有多種途徑,如USB、串口等。Sink 節(jié)點工作的流程圖如圖5所示,表述如下
一、 節(jié)點初始化;
二、 設(shè)定時鐘周期;
三、 發(fā)送信標(biāo)信號;
10四、 接收簇首節(jié)點發(fā)送的數(shù)據(jù)包;
五、 處理簇首節(jié)點數(shù)據(jù)包,對于頻道申請信號,如果該頻道為空,可以申
請,則返回允許信號;如果該頻道已被其他節(jié)點占用,則返回拒絕信 號。對于傳感器節(jié)點加入撤出信號,sink節(jié)點作出相應(yīng)處理后即返回 確認(rèn)信號,表示己經(jīng)處理了這些信息。對于傳感數(shù)據(jù)信號,則通過USB 接口將數(shù)據(jù)傳送給外部設(shè)備。同時,根據(jù)簇首節(jié)點的數(shù)據(jù)包接收狀況 設(shè)定相應(yīng)簇首節(jié)點的通信狀態(tài),并將相應(yīng)狀態(tài)值包含于信標(biāo)信號;
六、 一次循環(huán)結(jié)束,返回步驟二。
sink節(jié)點的數(shù)據(jù)結(jié)構(gòu)如下sink—node { sink—channel , phy一addr , timestamp, sen一num, ch—num, ch—list[i]), 其中sink—channel為sink節(jié)點 與簇首節(jié)點之間的通信頻道;phy—addr為sink節(jié)點的固定編號;timestamp為 sink節(jié)點的時間戳;sen—num為連接上的總傳感器節(jié)點個數(shù);ch—num為連接上 的簇首節(jié)點個數(shù);ch一list[i]為簇首節(jié)點序列,ch—list[i]的結(jié)構(gòu)為ch—list[i] {state, phy_addr, net—id, timestamp, sen—n咖,sen—list[i] },其中state、 phy_addr、 net一id、 timestamp、 sen一num、 sen—list[i]分別為簇首節(jié)點的狀態(tài)、 固定編號、網(wǎng)絡(luò)編號、時間戳、所連接的傳感器節(jié)點個數(shù)、傳感器節(jié)點序列。 sen—list[i]的結(jié)構(gòu)為sen一list[i] {state, phy—addr, net_id, timestamp, data},與簇首節(jié)點中的傳感器節(jié)點序列結(jié)構(gòu)相同。
sink節(jié)點發(fā)送的信標(biāo)信號(beaconing signal, b_signal)的格式如下 sink_b—signal {ch_num_max, channel—allocated, ch一state),其中ch—num_max 為可以連接的最大簇首節(jié)點數(shù)量;channel—allocated為已經(jīng)被分配的頻道; ch—state為連接上的簇首節(jié)點的連接狀態(tài)。簇首節(jié)點申請有效頻道的過程、時 鐘周期調(diào)整、時隙分配、刷新操作的進(jìn)行都需要依據(jù)sink節(jié)點的信標(biāo)信號。 (3)簇首節(jié)點根據(jù)sink節(jié)點的信標(biāo)信號加入網(wǎng)絡(luò),然后周期性地發(fā)送信標(biāo)信 號,接收傳感器節(jié)點的數(shù)據(jù)包并作相應(yīng)處理,每隔一定的時間進(jìn)行一次刷 新操作。
簇首節(jié)點根據(jù)sirik節(jié)點的信標(biāo)信號進(jìn)行頻道申請、時鐘周期調(diào)整、時隙分 配、刷新等操作,它的信標(biāo)信號中包含的信息有可以連接最大節(jié)點數(shù)、已連接 的節(jié)點數(shù)和連接節(jié)點的狀態(tài)值等。簇首節(jié)點在發(fā)送信標(biāo)信號后就處于幀聽狀態(tài), 接收傳感器節(jié)點的信息并進(jìn)行相應(yīng)的處理。簇首節(jié)點工作的流程圖如圖6所示, 表述如下
一、 節(jié)點初始化;
二、 向sink節(jié)點申請可用頻道,同時得到一個網(wǎng)絡(luò)編號(NetID),若申請成功則進(jìn)入下一步; 頻道申請過程如下簇首節(jié)點接收sink節(jié)點的信標(biāo)信號,查找其中的 可用頻道,選擇一個最合適的頻道并向sink節(jié)點發(fā)送請求信號,請求信號 中包含的信息有該簇首節(jié)點的固定編號(物理地址)、需要申請的頻道等。 Sink節(jié)點接收到該請求信號后,判斷是否已經(jīng)有其它節(jié)點優(yōu)先占用該頻道, 若有,則返回拒絕信號;若無,則返回允許信號。簇首節(jié)點若接收到拒絕信 號,則繼續(xù)申請其它頻道;若接收到允許信號,則設(shè)定該節(jié)點的通信頻道, 該頻道為簇首節(jié)點與傳感器節(jié)點的通信頻道,因為其具有唯一性,所以可以 根據(jù)該通信頻道值來設(shè)定相應(yīng)簇首節(jié)點的NetID。這里再作出一點說明,每 個簇首節(jié)點擁有兩個通信頻道, 一個頻道用于與sink節(jié)點通信,另一個頻 道用于與傳感器節(jié)點通信。
三、 以sink節(jié)點的時鐘周期為基準(zhǔn)進(jìn)行時鐘周期調(diào)整,時鐘周期調(diào)整詳見 前面的論述;
四、 根據(jù)網(wǎng)絡(luò)編號分配時隙,然后設(shè)定周期并周期性地發(fā)送信標(biāo)信號,接 收傳感器節(jié)點數(shù)據(jù)包并作相應(yīng)處理;
傳感器節(jié)點發(fā)送的數(shù)據(jù)包類型有網(wǎng)絡(luò)編號請求信號、傳感數(shù)據(jù)信號等。當(dāng) 接收到請求信號時,若該NetID沒有被其他節(jié)點占用,則返回允許信號,表示 該NetID可用;若已被其他節(jié)點占用,則返回拒絕信號。當(dāng)接收到傳感數(shù)據(jù)信 號時,對數(shù)據(jù)進(jìn)行相應(yīng)的處理,然后轉(zhuǎn)發(fā)給sink節(jié)點。同時根據(jù)數(shù)據(jù)包接收狀 況對傳感器節(jié)點的通信狀態(tài)進(jìn)行設(shè)定,并將相應(yīng)狀態(tài)值包含于信標(biāo)信號中。當(dāng) 有新的傳感器節(jié)點加入,或者有傳感器節(jié)點退出時,簇首節(jié)點將相應(yīng)的傳感器 節(jié)點加入撤出信息傳送給sink節(jié)點。
五、 經(jīng)過R輪循環(huán)后,進(jìn)入幀聽狀態(tài),若成功接收到sink節(jié)點的信標(biāo)信號 則進(jìn)入下一步,若不成功則返回步驟二。這里稱為刷新操作;
六、 在成功接收sink節(jié)點信標(biāo)信號的前提下,判斷自身連接狀態(tài),若連接 正常則返回步驟四,若不好則返回步驟三。
簇首節(jié)點的數(shù)據(jù)結(jié)構(gòu)如下ch—node { sen—channel , sink—channel , phy_addr, net—id, state, timestamp, sen—num, sen—list [i]),其中sen—channel 為簇首節(jié)點與傳感器節(jié)點之間的通信頻道;sink—channel為簇首節(jié)點與sink節(jié) 點之間的通信頻道;phy—addr為唯一的標(biāo)志簇首節(jié)點身份的固定編號;net—id 為向sink節(jié)點申請的有效網(wǎng)絡(luò)編號;state為節(jié)點狀態(tài);timestamp為簇首節(jié) 點的時間戳;sen一num為連接的傳感器節(jié)點個數(shù);sen—list[i]為連接上的傳感 器節(jié)點序列。sen—list[i]的結(jié)構(gòu)為sen—list[i] {state, phy—addr, net—id,timestamp, data}, 其中state、 phy一addr、 net—id、 timestamp、 data分別為 對應(yīng)傳感器節(jié)點的狀態(tài)、固定編號、網(wǎng)絡(luò)編號、時間戳、傳感數(shù)據(jù)。在每個周 期中,簇首節(jié)點將接收到的傳感數(shù)據(jù)經(jīng)處理后轉(zhuǎn)發(fā)給sink節(jié)點,同時檢査每個 連接上的傳感器節(jié)點的狀態(tài),設(shè)定相應(yīng)的狀態(tài)值。
簇首節(jié)點發(fā)送的信標(biāo)信號(b—signal)的格式如下ch—b_signal {sen—num_max, netid一allocated, sen—state},其中sen—num—max為單個簇 首節(jié)點可以連接的最大傳感器節(jié)點數(shù);netid一allocated為己經(jīng)被分配的網(wǎng)絡(luò)編 號;sen—state為連接上的傳感器節(jié)點的連接狀態(tài)。傳感器節(jié)點搜尋簇首節(jié)點及 申請網(wǎng)絡(luò)編號的過程、時鐘周期調(diào)整、時隙分配、刷新操作的進(jìn)行都需要依據(jù) 簇首節(jié)點的信標(biāo)信號。 (4)傳感器節(jié)點根據(jù)簇首節(jié)點的信標(biāo)信號加入網(wǎng)絡(luò),然后周期性地采集傳感數(shù) 據(jù)并發(fā)送給相應(yīng)的簇首節(jié)點,每隔一定的時間進(jìn)行一次刷新操作。 傳感器節(jié)點根據(jù)簇首節(jié)點的信標(biāo)信號進(jìn)行網(wǎng)絡(luò)編號申請、時鐘周期調(diào)整、 時隙分配、刷新等操作。傳感器節(jié)點工作的流程圖如圖7所示,表述如下
一、 節(jié)點初始化;
二、 傳感器節(jié)點搜尋簇首節(jié)點,搜到有效簇首節(jié)點后進(jìn)入下一步; 搜尋簇首節(jié)點的過程即為搜尋有效頻道的過程,因為每個簇首節(jié)點占用
不同的頻道。其過程如下傳感器節(jié)點設(shè)定某個頻道,進(jìn)入幀聽狀態(tài),若能 夠接收到簇首節(jié)點的信標(biāo)信號,則該頻道為可用頻道;若一定時間內(nèi)接收不 到有效信號,則為不可用頻道。傳感器節(jié)點對所有頻道進(jìn)行査找,并對查找 到的簇首節(jié)點進(jìn)行判斷,找出其中最空閑的那個節(jié)點,然后設(shè)定相應(yīng)的通信 頻道。每個傳感器節(jié)點只占用一個頻道。
三、 向該簇首節(jié)點申請網(wǎng)絡(luò)編號(NetID),若申請成功則進(jìn)入下一步; NetID請過程如下傳感器節(jié)點接收簇首節(jié)點的信標(biāo)信號,查找其中已
占用的NetID,如果發(fā)現(xiàn)該簇首節(jié)點的負(fù)載已經(jīng)達(dá)到最大,則返回步驟二; 如果不是,則選擇一個最合適的NetID并向簇首節(jié)點發(fā)送請求信號,請求信 號中包含的信息有該傳感器節(jié)點的固定編號(物理地址)、需要申請的NetID 等。簇首節(jié)點接收到該請求信號后,判斷是否已經(jīng)有其它節(jié)點優(yōu)先占用該 NetID,若有,則返回拒絕信號;若無,則返回允許信號。傳感器節(jié)點若接 收到拒絕信號,則繼續(xù)申請其它NetID;若接收到允許信號,則設(shè)定該節(jié)點 的NetID。
四、 以該簇首節(jié)點為基準(zhǔn)進(jìn)行時鐘周期調(diào)整;
五、 根據(jù)網(wǎng)絡(luò)編號進(jìn)行時隙分配,然后設(shè)定周期并周期性地采集數(shù)據(jù)和發(fā)
13送數(shù)據(jù);
六、 經(jīng)過R輪循環(huán)后,進(jìn)入幀聽狀態(tài),若成功接收到對應(yīng)簇首節(jié)點的信標(biāo) 信號則進(jìn)入下一步,若不成功則返回步驟二。同上,這里稱為刷新操 作;
七、 在成功接收對應(yīng)簇首節(jié)點信標(biāo)信號的前提下,判斷自身連接狀態(tài)是否 正常,若正常則返回步驟五,若不正常則返回步驟四。
傳感器節(jié)點的數(shù)據(jù)結(jié)構(gòu)如下sensor—node { sen—channel , phy一addr, net—id, state, timestamp, data}, 其中sen—channel為通信步員道,傳感器節(jié) 點搜尋簇首節(jié)點的過程即是搜尋可用頻道的過程,搜到可用頻道后,即向該簇 首節(jié)點申請網(wǎng)絡(luò)編號,每個簇首節(jié)點擁有唯一的一個通信頻道,所以每個傳感 器節(jié)點與唯一的一個簇首節(jié)點進(jìn)行通信;phy一addr是傳感器節(jié)點的固定編號, 每個傳感器節(jié)點擁有一個唯一標(biāo)志自己身份的編號;net—id是向簇首節(jié)點申請 的有效網(wǎng)絡(luò)編號,傳感器節(jié)點根據(jù)該網(wǎng)絡(luò)編號進(jìn)行時隙分配與數(shù)據(jù)通信;state 為節(jié)點的狀態(tài);timestamp為時間戳,根據(jù)該時間戳進(jìn)行時鐘周期調(diào)整及循環(huán)輪 數(shù)的判定;data為傳感器節(jié)點采集的傳感數(shù)據(jù)。
上述實施例用來解釋說明本發(fā)明,而不是對本發(fā)明進(jìn)行限制,在本發(fā)明的 精神和權(quán)利要求的保護(hù)范圍內(nèi),對本發(fā)明作出的任何修改和改變,都落入本發(fā) 明的保護(hù)范圍。
1權(quán)利要求
1、一種基于分簇的無線傳感器數(shù)據(jù)高效采集方法,其特征在于,包括以下步驟(1)節(jié)點初始化。(2)sink節(jié)點設(shè)定自身周期,然后周期性地發(fā)送信標(biāo)信號,接收簇首節(jié)點數(shù)據(jù)包并進(jìn)行數(shù)據(jù)處理,同時通過USB接口與外部設(shè)備進(jìn)行數(shù)據(jù)通信。(3)簇首節(jié)點根據(jù)sink節(jié)點的信標(biāo)信號加入網(wǎng)絡(luò),然后周期性地發(fā)送信標(biāo)信號,接收傳感器節(jié)點的數(shù)據(jù)包并作相應(yīng)處理,每隔一定的時間進(jìn)行一次刷新操作。(4)傳感器節(jié)點根據(jù)簇首節(jié)點的信標(biāo)信號加入網(wǎng)絡(luò),然后周期性地采集傳感數(shù)據(jù)并發(fā)送給相應(yīng)的簇首節(jié)點,每隔一定的時間進(jìn)行一次刷新操作。
2、 根據(jù)權(quán)利要求1所述基于分簇的無線傳感器數(shù)據(jù)高效采集方法,其特征在于, 所述步驟(2)具體為(A) 節(jié)點初始化。(B) 設(shè)定時鐘周期。(C) 發(fā)送信標(biāo)信號。(D) 接收簇首節(jié)點發(fā)送的數(shù)據(jù)包。(E) 處理簇首節(jié)點數(shù)據(jù)包,對于頻道申請信號,如果該頻道為空,可以申請, 則返回允許信號;如果該頻道已被其他節(jié)點占用,則返回拒絕信號。對于傳感 器節(jié)點加入撤出信號,sink節(jié)點作出相應(yīng)處理后即返回確認(rèn)信號,表示已經(jīng)處 理了這些信息。對于傳感數(shù)據(jù)信號,則通過USB接口將數(shù)據(jù)傳送給外部設(shè)備。 同時,根據(jù)簇首節(jié)點的數(shù)據(jù)包接收狀況設(shè)定相應(yīng)簇首節(jié)點的通信狀態(tài),并將相 應(yīng)狀態(tài)值包含于信標(biāo)信號。(F) —次循環(huán)結(jié)束,返回步驟(B)。
3、 根據(jù)權(quán)利要求1所述基于分簇的無線傳感器數(shù)據(jù)高效采集方法,其特征在于, 所述步驟(3)具體為(a) 節(jié)點初始化。(b) 向sink節(jié)點申請可用頻道,同時得到一個網(wǎng)絡(luò)編號。(c) 以sink節(jié)點的時鐘周期為基準(zhǔn)進(jìn)行時鐘周期調(diào)整。(d) 根據(jù)網(wǎng)絡(luò)編號分配時隙,然后設(shè)定周期并周期性地發(fā)送信標(biāo)信號,接收傳 感器節(jié)點數(shù)據(jù)包并處理。(e) 經(jīng)過R輪循環(huán)后,進(jìn)入幀聽狀態(tài),若成功接收到sink節(jié)點的信標(biāo)信號則 進(jìn)入下一步,若不成功則返回步驟(b)。這里稱為刷新操作。(f)在成功接收sink節(jié)點信標(biāo)信號的前提下,判斷自身連接狀態(tài),若連接正 常則返回步驟(d),若不好則返回步驟(C)。
全文摘要
本發(fā)明公開了一種基于分簇的無線傳感器數(shù)據(jù)高效采集方法,簇首節(jié)點固定,具有較強(qiáng)的數(shù)據(jù)處理能力和持續(xù)的能量供應(yīng)。Sink節(jié)點、簇首節(jié)點周期性地發(fā)送信標(biāo)信號,信標(biāo)信號是構(gòu)成整個無線傳感器網(wǎng)絡(luò)的骨架。簇首節(jié)點、傳感器節(jié)點根據(jù)對應(yīng)的信標(biāo)信號進(jìn)行一系列的操作,其中時鐘周期調(diào)整機(jī)制是該算法中的關(guān)鍵支撐技術(shù);網(wǎng)絡(luò)中節(jié)點采用主動同步的數(shù)據(jù)傳輸方式,旨在進(jìn)行低功耗高速率的數(shù)據(jù)通信,減小各節(jié)點之間的通信干擾,保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性、可靠性和實時性。本發(fā)明適用于需要快速、連續(xù)、實時采集數(shù)據(jù)的應(yīng)用場合。
文檔編號H04W56/00GK101646233SQ20091015252
公開日2010年2月10日 申請日期2009年9月17日 優(yōu)先權(quán)日2009年9月17日
發(fā)明者周冬鑫, 潘新春, 金文光 申請人:浙江大學(xué)