一種即時同步與時鐘自校準結合的全網同步技術
目前,無線傳感器網絡時間同步技術的研究重點已經從單跳網絡發展到多跳網絡。現有的多跳時間同步算法充分體現了同步功耗和同步精度以及同步周期間的折衷,本文著重解決的問題就是在不顯著增加同步功耗的前提下擴展同步周期,本文的硬件平臺為Silicon Labs公司的Si1000無線MCU芯片。
1 網絡拓撲結構
無線傳感器網絡的拓撲結構主要有星型網、樹型網和網狀網,本文以應用較多的星型網和樹型網結合的多級網絡結構為例進行同步過程的設計。
一個典型的網絡結構如圖1所示。網絡中的節點可以分為根節點、樹枝節點和樹葉節點3種類型。其中,最上端的0-0為根節點,網絡中間的如0-1、0-2、5-8等為樹枝節點,網絡末端的1-3、4-7等為樹葉節點。每兩個相連接的節點互稱為父子節點,如0-1和1-4互為父子節點。其中0-1是1-4的父節點,1-4是0-1的子節點,而1-4是4-7的父節點,4-7是1-4的子節點。在對節點編址時,每一個節點都有兩個地址信息,其中低位地址表示本節點在網絡中的唯一的ID號,高位地址表示該節點的父節點在網絡中的ID號。這種表示方式的優勢在于,每個節點只跟自己的父節點和子節點通信,不與其他節點交互信息,即使收到其他節點的數據包,也會當作無效數據丟掉。這樣,每個節點的程序相對簡單,網絡的層數可以不受限制,網絡層數和網絡內節點數的增加,不會導致每個節點的程序復雜度的增加。

一般情況下,在網絡中,根節點為網關節點,樹葉節點和樹枝節點均為簇頭,每個簇頭在為其他簇頭作數據轉發的同時,均可以接收傳感器節點的數據。簇頭的數量由ID號的位數決定,如果用一個字節來表示ID號,則網絡中簇頭的最大數量為255個。
根據傳感器節點與簇頭節點的緊密程度,可以將傳感器節點劃分為若干個區域,每個區域設置一個簇頭,簇頭與采集節點之間采用星型網連接。
2 即時同步技術
在無線傳感器網絡剛建立時,由于某些原因導致節點間的同步狀態丟失時,需要進行時鐘同步的“初始化”,采用即時同步的方式進行。
即時同步技術是星型網絡結構中一種高效的同步技術,同步以網關節點為起點,并由近及遠的同步樹型網絡結構中的各簇頭節點,之后簇頭節點再分別同步各自的傳感器節點。
下面以簇頭同步傳感器節點為例說明同步過程,同步的時序如圖2所示。

一般情況下,傳感器節點在剛上電或復位之后,處于低功耗模式,實驗時,以5 s為一個周期,即節點睡眠狀態4 995 ms,接收狀態5 ms,如果沒有有效數據。則繼續轉入睡眠狀態,如此循環下去。5 ms稱為數據偵聽窗口。由于節點的個體差異、晶振的漂移等因素的影響,經過一段時間后,各個節點的數據接收窗口的起始時間差距就比較大了。如果簇頭要讓所有的傳感器節點都收到同步命令,必須連續發送5 s。這個同步命令包括了簇頭的低位地址和一個不斷累加的序列號,共3個字節。若以115.2 kbps的速率傳輸,發送一個同步命令需1.72 ms,連續不斷地發送,從1開始,每發送一次,序列號加1。這樣,序列號本身就攜帶著時間信息。在實際編程中,共發送2907次,約為5s。
簇頭連續發送5 s同步序列后,轉入低功耗模式,5 s結束時的時間點稱為同步時間點,即圖中的10 s點的位置。如圖2所示,所有的傳感器節點在數據接收窗口內都至少能收到一條完整的喚醒命令。以收到的第一條完整的同步命令為有效命令,根據序列號,節點能夠判斷自己在時間軸上所處的位置,經過計算后,得到自己距同步時間點的時長t。可以看到,經過5 s的持續同步后,所有傳感器節點均可以同步到同步時間點。
傳感器節點的同步流程圖如圖3所示。

網關節點同步簇頭節點的時序與傳感器節點類似,只是將通信速率降低到4 800 bps,相對應的簇頭的偵聽窗口為50 ms,睡眠4 950 ms,網關發送的同步命令字為本地ID+末端簇頭ID+一個不斷累加的序列號,共3個字節。以4 800 bps的波特率發送,每個同步命令需要22 ms,實際編程中,共發送227次,約為5 s。經過即時同步后,網絡中的各個節點均被同步到網關節點的時鐘上。







評論