專利名稱:一種無線傳感器網(wǎng)絡時間同步方法
技術領域:
本發(fā)明涉及一種時間同步方法,尤其是一種無線傳感器網(wǎng)絡時間同步方法,屬于 無線傳感器網(wǎng)絡技術領域。
背景技術:
無線傳感器網(wǎng)絡是由大量傳感器節(jié)點以自組織方式構成的多跳無線網(wǎng)絡系統(tǒng),其 目的是協(xié)同地感知、采集、處理和傳輸網(wǎng)絡覆蓋區(qū)域內(nèi)被監(jiān)測對象的信息,并發(fā)送給終端用 戶。無線傳感器網(wǎng)絡融合了傳感技術、嵌入式技術、無線通信技術和智能信息處理等技術, 具有規(guī)模大、成本低、組網(wǎng)靈活等特點,已經(jīng)廣泛應用于軍事、工業(yè)、農(nóng)業(yè)和醫(yī)療等領域。時間同步是無線傳感器網(wǎng)絡重要的支撐技術之一,在無線傳感器網(wǎng)絡的整個技術 體系中發(fā)揮著重要的作用。無線傳感器網(wǎng)絡中的許多功能和服務是與時間緊密相關的,例 如多節(jié)點協(xié)同跟蹤、數(shù)據(jù)處理與融合、基于TDMA的通信協(xié)議、節(jié)點休眠調(diào)度以及聲音測距 定位等等。無線傳感器網(wǎng)絡是一個分布式系統(tǒng),各節(jié)點由于硬件特性和工作環(huán)境的不同,本 地時鐘往往會偏離基準時鐘,這給時間敏感的上層技術和服務帶來了挑戰(zhàn)。研究設計有效 的時間同步技術對全網(wǎng)結點進行周期性或者即時性的同步,是保證無線傳感器網(wǎng)絡穩(wěn)定工 作的重要條件?,F(xiàn)有的時間同步協(xié)議和算法大多注重于提高同步精度,例如RBS (Reference Broadcast Synchronization)協(xié)、議 禾口 TPSN(Timing—sync Protocol for Sensor Networks)協(xié)議在伯克利節(jié)點平臺上(Berkeley Motes)的單跳平均同步誤差分別為 29. 13 μ s 禾口 16. 9 μ s, FTPS (Flooding Time Synchronization Protocol) 辦議在 Mica2 平 臺上甚至達到了微秒級的同步精度。這些協(xié)議雖然在同步精度方面具有很好的性能,但需 要頻繁地執(zhí)行同步協(xié)議來保持同步精度,因此在實際系統(tǒng)中的性能并不理想。頻繁地執(zhí)行 時間同步算法不僅大量消耗節(jié)點有限的能量,而且還會擠占網(wǎng)絡的信道資源,影響傳感器 網(wǎng)絡的正常工作。因此,在滿足一定精度需求的前提下降低同步算法的執(zhí)行頻率,對于傳感 器網(wǎng)絡的節(jié)能和帶寬資源的有效利用都具有重要意義。傳感器節(jié)點的計時裝置中通常包含一個晶體振蕩器和一個計數(shù)寄存器,晶體振蕩 器每輸出一個振蕩脈沖,計數(shù)寄存器的計數(shù)值就增加1。讀取計數(shù)寄存器的值并經(jīng)過一定的 換算處理,就能得到節(jié)點的本地時間,通常將該時間稱為硬件時間。由于計時裝置中晶振的 實際工作頻率與標稱頻率存在偏差,節(jié)點的硬件時間通常會偏離標準時間,因此需要對硬 件時間進行必要的修正,經(jīng)過修正后的時間稱為邏輯時間。普通晶振的精度約為40ppm左 右,即最壞情況下每秒可產(chǎn)生40 μ s的計時偏差,更為嚴重的是,晶振的頻率會因為環(huán)境溫 度、供電電壓、空氣壓力以及晶體老化等因素的影響而動態(tài)變化。盡管一些硬件技術(例如 溫度補償晶體振蕩器)可以解決晶振的頻率偏斜問題,但它們并不適合資源和成本受限的 傳感器網(wǎng)絡。
發(fā)明內(nèi)容
針對現(xiàn)有技術中存在的問題,本發(fā)明的目的在于提供一種基于預測校準的無 線傳感器網(wǎng)絡長周期時間同步方法(A Self-calibration based Long-interval Time Synchronization),簡稱SLTS。本發(fā)明通過非硬件的方式,即根據(jù)晶振的頻率特性來校準節(jié) 點的邏輯時間,使節(jié)點的計時偏差在較長時間內(nèi)限定在誤差允許范圍內(nèi),達到降低同步算 法的執(zhí)行頻率。本發(fā)明的技術方案為一種無線傳感器網(wǎng)絡時間同步方法,其步驟為1)中心節(jié)點以設定的時間間隔向網(wǎng)絡廣播同步信息,啟動同步過程;所述同步信 息包括前導碼、預告消息和同步報文;2)傳感器節(jié)點收到同步信息后,與該同步信息的來源節(jié)點進行時間同步,并在信 道空閑時向網(wǎng)絡廣播自己的同步信息;3)在每一次同步過程結束后,傳感器節(jié)點采用溫特斯法預測自身配置的晶體振蕩 器在當前周期內(nèi)的工作頻率,并根據(jù)預測結果校準自己的邏輯時間,直至下一輪同步過程 開始為止。進一步的,所述同步報文包含前導碼的發(fā)送時間、周期同步的時間間隔、本次周期同 步的啟動時間、同步報文的序列號、發(fā)送節(jié)點的節(jié)點編號以及該同步報文的時間級別等信息。進一步的,所述同步信息的發(fā)送方法為1)發(fā)送節(jié)點依次向網(wǎng)絡發(fā)送前導碼、預告消息,并記錄發(fā)送前導碼的時間、;然后 將、寫入同步報文中發(fā)送給接收節(jié)點;2)接收節(jié)點接收完前導碼時記錄本地時間t2,然后繼續(xù)接收預告消息和同步報 文;3)接收節(jié)點從收到的同步報文中提取時間、,并在t3時刻將自身的邏輯時間修正 為 t' 3 = t3-(t2-t1-n τ );其中,η為前導碼包含的比特位數(shù)、τ為發(fā)送每個比特位需要的時間;預告消息包 括發(fā)送節(jié)點的序列號、發(fā)送節(jié)點的節(jié)點編號。進一步的,接收節(jié)點收到預告消息后,在設定的時間長度內(nèi)保持接收狀態(tài)。進一步的,接收節(jié)點接收到的同步報文后,檢查同步報文中的節(jié)點編號和序列號 與預告消息中的節(jié)點編號和序列號是否對應一致;如果一致,則接收節(jié)點根據(jù)同步信息修 正自己的邏輯時間;否則丟棄收到的同步信息,繼續(xù)偵聽接收同步信息。進一步的,當一個節(jié)點收到多個發(fā)送節(jié)點的同步信息時,該節(jié)點選擇時間級別低 的同步信息修正自己的邏輯時間。進一步的,傳感器節(jié)點在首輪同步后,設置一個與所述同步信息中的周期同步時 間間隔相等的定時器。進一步的,如果定時器到時,則節(jié)點開始檢測信道中的前導碼和預告消息;否則節(jié) 點繼續(xù)采用溫特斯法預測自身配置的晶體振蕩器在當前周期內(nèi)的實際工作頻率,并根據(jù)預 測結果校準自己的邏輯時間。本發(fā)明基于預測校準的無線傳感器網(wǎng)絡時間同步方法采用周期同步和預測校準 相結合的方式來對全網(wǎng)節(jié)點進行同步。該方法的周期同步采用預告消息機制來實現(xiàn),而預測校準則是在周期同步的間歇期間,各節(jié)點根據(jù)晶體振蕩器的頻率特性來修正自己的邏輯 時間,盡可能與標準時間保持一致,從而延長周期同步的時間間隔?;陬A測校準的無線傳感器網(wǎng)絡長周期時間同步方法包括以下兩個主要步驟1)周期同步的間隔時間到時后,Sink節(jié)點將自己的時間級別設置為0級,然后向 網(wǎng)絡廣播自己當前的時間信息,啟動全網(wǎng)同步過程;傳感器節(jié)點接收到時間級別為1級的 同步信息后,首先與同步信息的來源節(jié)點實現(xiàn)同步,然后將自己的時間級別設置為1+1級, 在檢測到信道空時向網(wǎng)絡廣播自己的同步信息對其它節(jié)點進行同步。依此類推,直至全網(wǎng) 節(jié)點都實現(xiàn)同步為止(見圖2)。2)周期同步結束后,傳感器節(jié)點采用溫特斯法來預測自身配置的晶體振蕩器在當 前周期內(nèi)的實際工作頻率,并根據(jù)預測結果來校準自己的邏輯時間,盡可能與標準時間保 持一致,直至下一輪周期同步開始為止。周期同步過程中,節(jié)點之間的同步采用預告消息機制來實現(xiàn),如圖3所示發(fā)送節(jié) 點獲得信道使用權后向接收節(jié)點發(fā)送前導碼和預告消息(Notice Message),并記錄下發(fā)送 前導碼的開始時間、;接收節(jié)點接收完前導碼時記錄本地時間t2,然后繼續(xù)接收預告消息; 發(fā)送節(jié)點稍后將前導碼的開始時間、寫入同步報文(Sync Message)中發(fā)送給接收節(jié)點; 接收節(jié)點對收到的同步報文進行解碼,提取里面的時間、,處理完同步報文后,在t3時刻將 自身的邏輯時間修正為t' 3 =、-(、-、-!! τ) (η為前導碼包含的比特位數(shù),τ為發(fā)送每 個比特位需要的時間,兩者均為系統(tǒng)預先設定好的確定值,t3為處理完同步報文后的某個 時刻)。前導碼是一段固定長度的0、1交錯比特流,在尾端附有幀首定界符,標志正式數(shù) 據(jù)的開始。預告消息和同步報文的格式見圖4和圖5,其中SEQ表示報文的序列號,Time level表示發(fā)送節(jié)點的時間級別,Sending time表示發(fā)送節(jié)點開始發(fā)送前導碼的時間, Starting time表示本輪周期同步的啟動時間,Sync time表示周期同步的間隔時間。前導碼的作用是使接收節(jié)點做好接收數(shù)據(jù)的準備;預告消息的作用是宣告發(fā)送節(jié) 點的身份信息,并使周圍節(jié)點在稍后的一定時間內(nèi)保持接收狀態(tài),避免不必要的信道競爭, 保證發(fā)送節(jié)點以較高的優(yōu)先級再次獲得信道使用權;同步報文的作用則是將周期同步的具 體參數(shù)和一些重要的時間信息傳送給接收節(jié)點,使之能夠根據(jù)這些信息校準自己的邏輯時 間,并在后續(xù)時刻生成自己的同步報文對其它節(jié)點進行同步。節(jié)點校準自身的邏輯時間首先需要獲取當前時刻晶振的實際工作頻率。由于節(jié)點 本身不具備實時探測晶振頻率的能力,本發(fā)明根據(jù)晶振的頻率特性,采用溫特斯法來預測 晶振的當前工作頻率。溫特斯法是針對具有長期趨勢、周期性變動和不規(guī)則波動的時間序 列,把因素分析與指數(shù)平滑法結合起來的預測方法。傳感器節(jié)點的晶振頻率具備溫特斯法 所要求的三個特征,即長期趨勢、周期性變動和不規(guī)則波動,因此在獲得晶振頻率歷史數(shù)據(jù) 的前提下,可以利用溫特斯法來預測節(jié)點當前以及后續(xù)時刻的晶振頻率。溫特斯法運用3 個平滑方程式,分別對節(jié)點晶振頻率的長期趨勢S、趨勢增量b和周期變動F作指數(shù)平滑,然 后把3個平滑結果用一個預測公式結合起來,進行外推預測。溫特斯法的3個平滑方程如 下
bk=fi{Sk-Sk_^) + {\-fi)bk_x(1-1)
其中η表示將一天時間劃分為η個時段(一天時間內(nèi)執(zhí)行η次周期同步);fk表示 節(jié)點在第k個時段的平均晶振頻率;α、β和γ為指數(shù)平滑系數(shù),取值在0 1之間。式 (1-1)中第一個方程的意義是消除晶振頻率的不規(guī)則波動和周期性變動,反映長期趨勢; 第二個方程是對晶振頻率變化的趨勢增量作指數(shù)平滑;第三個方程的意義是消除晶振頻率 變化的長期趨勢和不規(guī)則波動,反映晶振頻率的周期性變動。采用溫特斯法對節(jié)點晶振頻率進行預測,需要獲取節(jié)點前一段時期晶振頻率的 歷史數(shù)據(jù)。本發(fā)明采用如下方法獲取晶振頻率的歷史數(shù)據(jù)各傳感器節(jié)點記錄Sink節(jié)點 啟動各次周期同步的標準時間Ttl,T1,…,Tk,以及該節(jié)點實現(xiàn)同步時的硬件時間HiUtl), HiU1),…,Hi (tk)和邏輯時間Li(OUt1),…,Li (tk),其中t。,、,…,tk為節(jié)點實現(xiàn)同 步時的標準時間,那么節(jié)點在時間段[Ttl, T1], [T1, T2],…,[V1, TJ內(nèi)的平均晶振頻率可 以近似表示為fjdm’ U = U,-,k)(1-2)其中&表示晶振的標稱頻率,fj表示晶振在第j個時段的平均頻率。獲得2天時間內(nèi)2η個時段的晶振頻率數(shù)據(jù){f1;f2,…,f2n}后,可以利用式(1_1)
計算出各個時段的S、F和b,進而按照溫特斯法的預測公式計算當前時段的晶振頻率/,再
根據(jù)晶振頻率的預測結果來校準節(jié)點的邏輯時間。具體步驟如下1)選定指數(shù)平滑系數(shù)α、β和Y的初值;2)計算長期趨勢、趨勢增量和周期變動的初始值,計算公式分別為Sn+1 = fn+1,
一 ι rt+Ιη-
巧 二力其中」=1,2,-,η+1,7 = —Σ^)以及‘廣力)]/[_-1)];3)使用遞推公式計算其它時段的Sn+i、Fn+i和bn+i (2 ^ i ^ 2n);4)使用預測公式/4+m巧__對節(jié)點后續(xù)時段的晶振頻率進行預測(k =2n, 1 ^ m ^ η);
A5)計算當前時刻的邏輯時間,公式為=找(&)] +厶(4),以此結果
Jo
對節(jié)點時間進行校準。(其中Hi(tk)和Li(tk)分別表示節(jié)點在tk時刻實現(xiàn)同步時的硬件時 間和邏輯時間,Hi (t)表示節(jié)點當前時刻的硬件時間)。和現(xiàn)有技術相比,本發(fā)明的優(yōu)勢在于1、周期同步過程采用一種預告消息機制來實現(xiàn),消除了報文發(fā)送過程中的硬件延 遲誤差,提高了節(jié)點對之間的同步精度。該機制的實現(xiàn)不要求傳感器節(jié)點配置高性能的處 理芯片,具有很好的通用性。2、周期同步的間歇期間,傳感器節(jié)點采用溫特斯法來預測晶振的實際頻率,并根據(jù)預測結果來修正自己的邏輯時間,可以大幅地延長周期同步的時間間隔,顯著地降低同 步開銷和對無線信道的占用。 3、本發(fā)明提供的同步方法不需要傳感器網(wǎng)絡增加額外的硬件,能夠方便地應用到 各類無線傳感器網(wǎng)絡系統(tǒng)中。
圖1時間同步方法的流程圖
圖2全網(wǎng)同步過程示意圖3節(jié)點對之間的同步過程
圖4預告消息的格式;
圖5同步報文的格式;
圖6實驗的網(wǎng)絡拓撲。
具體實施例方式下面參照附圖并結合實施例對本發(fā)明進行詳細的描述。本實施例提供一個采用本發(fā)明方法的無線傳感器網(wǎng)絡時間同步實例。在本實施例中,傳感器節(jié)點選用克爾斯博公司生產(chǎn)的Mica2系列節(jié)點。Mica2節(jié) 點的通信頻率為868/916MHZ,數(shù)據(jù)傳輸率38. 4Kbps,室外通信距離約為150m,其配置的晶 振標稱頻率為7. 37MHz,經(jīng)過1/8分頻后得到921KHz的時鐘頻率。實施例中將20個Mica2 節(jié)點部署在露天環(huán)境下,形成20跳的線性網(wǎng)絡。參照圖1,本實施例的具體過程如下l)Sink節(jié)點以固定的時間間隔啟動周期同步過程,向網(wǎng)絡廣播自己的時間信息和 周期同步的時間間隔、啟動時間以及序列號、節(jié)點編號、時間級別等參數(shù)信息;2)傳感器節(jié)點在首輪周期同步過后,設置一個與周期同步間隔時間相等的定時 器。如果定時器到時,則節(jié)點進入新一輪周期同步狀態(tài),開始檢測信道中的前導碼和預告消 息;否則繼續(xù)采用溫特斯法來預測校準邏輯時間;3)傳感器節(jié)點接收到的同步報文后,檢查同步報文和預告消息中的節(jié)點編號和序 列號是否一致。如果一致,則節(jié)點根據(jù)同步報文中嵌入的前導碼的發(fā)送時間信息修正自己 的邏輯時間;否則丟棄收到的同步報文,繼續(xù)偵聽接收同步報文;時間級別的作用是記錄 同步的跳數(shù),由于傳感器網(wǎng)絡中,時間同步是逐跳進行的,隨著跳數(shù)的增加,累積誤差也就 越來越大,當一個節(jié)點收到多個鄰居節(jié)點發(fā)送的同步報文時,盡可能選擇時間級別低的同 步報文來修正自己的邏輯時間,從而降低同步誤差。4)傳感器節(jié)點實現(xiàn)同步后,調(diào)整自己的時間級別,并在網(wǎng)絡信道空閑時廣播自己 的時間信息對其它節(jié)點進行同步。
權利要求
一種無線傳感器網(wǎng)絡時間同步方法,其步驟為1)中心節(jié)點以設定的時間間隔向網(wǎng)絡廣播同步信息,啟動同步過程;所述同步信息包含前導碼、預告消息和同步報文;2)傳感器節(jié)點收到同步信息后,與該同步信息的來源節(jié)點進行時間同步,并在信道空閑時向網(wǎng)絡廣播自己的同步信息;3)在每一次同步過程結束后,傳感器節(jié)點采用溫特斯法預測自身配置的晶體振蕩器在當前周期內(nèi)的工作頻率,并根據(jù)預測結果校準自己的邏輯時間,直至下一輪同步過程開始為止。
2.如權利要求1所述的方法,其特征在于所述同步報文包括前導碼的發(fā)送時間、周期 同步的時間間隔、本次周期同步的啟動時間、同步報文的序列號、發(fā)送節(jié)點的節(jié)點編號。
3.如權利要求1或2所述的方法,其特征在于所述同步信息的發(fā)送方法為1)發(fā)送節(jié)點依次向網(wǎng)絡發(fā)送前導碼、預告消息,并記錄發(fā)送前導碼的時間、;然后將、 寫入同步報文中發(fā)送給接收節(jié)點;2)接收節(jié)點接收完前導碼時記錄本地時間t2,然后繼續(xù)接收預告消息和同步報文;3)接收節(jié)點從收到的同步報文中提取時間、,并在t3時刻將自身的邏輯時間修正為 t ‘ 3 = t3~(t2-t1-n τ );其中,η為前導碼包含的比特位數(shù)、τ為發(fā)送每個比特位需要的時間;預告消息包括發(fā) 送節(jié)點的序列號、發(fā)送節(jié)點的節(jié)點編號。
4.如權利要求3所述的方法,其特征在于所述同步信息還包括發(fā)送節(jié)點的時間級別, 所述時間級別用于記錄同步的跳數(shù)。
5.如權利要求4所述的方法,其特征在于當一個節(jié)點收到多個發(fā)送節(jié)點的同步信息 時,該節(jié)點選擇時間級別低的同步信息修正自己的邏輯時間。
6.如權利要求3所述的方法,其特征在于接收節(jié)點收到預告消息后,在設定的時間長 度內(nèi)保持接收狀態(tài)。
7.如權利要求6所述的方法,其特征在于接收節(jié)點接收到的同步報文后,檢查同步報 文中的節(jié)點編號和序列號與預告消息中的節(jié)點編號和序列號是否對應一致;如果一致,則 接收節(jié)點根據(jù)同步信息修正自己的邏輯時間;否則丟棄收到的同步信息,繼續(xù)偵聽接收同步信息。
8.如權利要求3所述的方法,其特征在于傳感器節(jié)點在首輪同步后,設置一個與所述 同步信息中的周期同步時間間隔相等的定時器。
9.如權利要求8所述的方法,其特征在于如果定時器到時,則節(jié)點開始檢測信道中的 前導碼和預告消息;否則節(jié)點繼續(xù)采用溫特斯法預測自身配置的晶體振蕩器在當前周期內(nèi) 的實際工作頻率,并根據(jù)預測結果校準自己的邏輯時間。全文摘要
本發(fā)明公開了一種無線傳感器網(wǎng)絡時間同步方法,屬于無線傳感器網(wǎng)絡技術領域。本發(fā)明的方法為1)中心節(jié)點以設定的時間間隔向網(wǎng)絡廣播同步信息,啟動同步過程;2)傳感器節(jié)點收到同步信息后,與該同步信息的來源節(jié)點進行時間同步,并在信道空閑時向網(wǎng)絡廣播自己的同步信息;3)在每一次同步過程結束后,傳感器節(jié)點采用溫特斯法預測自身配置的晶體振蕩器在當前周期內(nèi)的工作頻率,并根據(jù)預測結果校準自己的邏輯時間,直至下一輪同步過程開始為止。與現(xiàn)有技術相比,本發(fā)明可以大幅地延長周期同步的時間間隔,顯著地降低同步開銷和對無線信道的占用,同時提高了節(jié)點之間的同步精度。
文檔編號H04W56/00GK101883420SQ20101021916
公開日2010年11月10日 申請日期2010年6月25日 優(yōu)先權日2010年6月25日
發(fā)明者劉燕, 孫利民, 朱紅松, 蔣文濤 申請人:中國科學院軟件研究所