前言:本站為你精心整理了用于WSN的時間同步方式研究范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
本文作者:徐頂鑫易衛東陳永銳孫昊作者單位:中國科學院研究生院信息科學與工程學院
0引言
無線傳感器網絡(wirelesssensornetworks,WSN)是由部署在監測區域內大量的微型傳感器節點組成,通過無線通信方式形成的1個多跳自組織網絡。它以低功耗、低成本、分布式和自組織的特點帶來了信息感知的一場變革。
在過去的十幾年中,國內外學者對WSN的研究與應用投入了極大的熱情。在環境感知與監測[1]、無線定位與跟蹤[2]、醫療監護[3]、智能家居[4]等領域都展現出廣泛的應用前景。時間同步是WSN的1項關鍵支撐技術[5]。WSN是一種分布式系統,各個節點的本地時鐘相互獨立,這就導致各個節點的系統時間互不相同。許多WSN應用需要各節點協同工作,單個節點采集的原始數據需要和其他節點數據統一處理才能獲取有用信息[6]。另一方面,時間同步在WSN通信協議的設計方面也有重要的應用。
MAC協議的設計目標主要包括節省能耗和防止沖突碰撞。TDMA在這方面具有先天的優勢,而時間同步是TDMA的基礎。傳感器節點的系統時間由計時器產生,計時信號一般由晶體振蕩器提供。由于晶振的制造工藝有差別,運行環境有變化,計時頻率很難保持一致,導致各個節點的時間很容易失去同步。因此需要設計專門的同步算法來保證網絡中節點的時間同步。傳統的時間同步方法主要有NTP(networktimeprotocol)[7]和GPS(globalpositioningsystem)。NTP是Internet上的標準時間同步協議,主要為互聯網中所有主機提供標準UTC(coordinateduniversaltime)時間。GPS用于進行全球高精度導航和定位。NTP和GPS都需要特定的設備或專用節點才能實現同步。由于傳感器節點硬件資源有限,節能要求比較高等特點使得這2種傳統時間同步方法都無法直接在wsn中使用。
目前針對WSN的時間同步方案主要分為以下3種[8]:1)基于發送者-接受者的方法。例如FTSP(floodingtimesynchronizationprotocol)[9],參考節點(發送方)在同步包中加入其本地時鐘信息,待同步節點(接收方)收到同步包后,提取出時間信息,并據此校準自己的時鐘。2)基于發送者-接收者交互的時間同步算法。例如TPSN(timing-syncprotocolforsensornetworks)[10],同步包的數據流向為待同步節點-參考節點-待同步節點,通過雙向發送同步包,抵消傳播時延。3)基于接收者-接收者交互的時間同步算法。例如RBS(referencebroadcastsynchronization)[11],其原理是利用同步包同步多個接收者之間的時間。參考節點廣播域內的每個接收者將同時接收到來自參考節點的同步包,據此可以根據各個接收者接收到同步包時的時鐘偏差進行校準。
現有的時間同步算法[12-13],大都將時間同步作為1個獨立于通信協議的中間層單獨設計,以使其適應各種不同的協議應用。這雖然會增強其通用性,但是卻大大增加了復雜度和維護的困難性。同時會帶來大量的維護開銷,增加節點額外的能耗,造成通信協議能量效率的下降。因此,1個好的時間同步方案應當在不犧牲同步精度的前提下盡量減小同步帶來的能耗。通用性和專一性是一對矛盾,而WSN是面向應用的。大量的研究實踐表明,對于WSN的協議設計,很難做到像Internet一樣的標準化和通用化,而必須針對不同的應用場景做特定的優化。從這種思想出發,本文針對數據采集這一WSN典型應用場景,設計了1個低能耗、高精度的時間同步方案LCTS(lightweightcollectiontreebasedsynchronization)。
1LCTS的設計原理
1.1同步包時延分析
不同節點之間的時間同步必須依靠同步包的收發來對相關節點的時鐘進行校準。同步包的收發必然帶來時延,因此在校準時必須對這部分的時延進行補償。時間同步的難點在于該時延的分布具有隨機性。為了精確的補償,我們首先必須分析時延的特性,如表1所示。從表1可以看出,同步包的時延組成比較復雜,而且各部分時延分布特性很不一樣。時延分布不確定性的最大來源是信道接入,這一點對于WSN尤為突出。本文的設計思路是盡量減少不確定性時延,為此我們將同步包的收發置于軟件所能控制的最底層———物理層的驅動程序中。同步包一旦打上時間戳就可以立即被發送。此時,時延的組成將主要由節點硬件決定(傳輸時延,編解碼時延),而由復雜多變的無線信道引入的時延可以剔除。對于接受方由于中斷響應被關閉引入的延時不確定性,我們可以通過周期性重復發送同步包來解決。
1.2周期性同步
同步包的周期性發送具有重要意義。從長時間看,節點晶振具有頻偏,導致節點計時不穩定。但是在短時間內,可以認為晶振是穩定的,從而計時是相對準確的。因此我們可以通過周期性的同步來解決長時頻率飄移的問題。數據包的周期性發送會產生能耗,但是從協議棧整體來看,用于網絡維護的周期性控制包例如路由信息等是不可缺少的,因此我們可以將同步包完全嵌入上層協議棧產生的協議控制包中,將時間戳打在周期性的控制包包尾。這樣,時間同步將不會帶來任何額外的數據包開銷,而只是將已有的包長度增加幾個字節,可以大大節省用于時間同步的能耗。事實上,在我們的實現中,同步包只需在MAC層的BEACON控制包包尾添加9個字節,就能統一實現同步、路由和網絡維護等功能。
1.3樹形拓撲
正如前文所講,WSN是面向應用的。本文設定的應用場景是數據采集,此類應用中,通常網絡層會維護1個以SINK節點為根節點的數據采集樹。網絡中所有的數據流向都是從子結點流向根節點并最終流向SINK節點。每一個節點都只與其父節點同步,只要樹形拓撲存在,就能最終實現全網同步。時間同步是為了數據交換,在數據采集樹中,所有的數據交換都是在父節點-子節點對中進行,只要保證子節點與父節點同步,就能實現高效數據傳輸。
2LCTS的設計與實現
2.1節點時間的表示
在Tmote-Sky節點中,節點時間由外部時鐘源(晶振)產生。其計時方法涉及到3個(寄存器)變量:TAR,TACCR1和count。TAR是1個16位的硬件寄存器,根據外部時鐘源計數,能夠得到以tick(1tick=2-15s)為單位的時間,計時精度達到微秒級。TACCR1是捕獲寄存器,當TAR=TACCR1時能產生TIMER中斷,通過將TACCR1的遞增步長設定為固定值INTERVAL可以對TIMER中斷計數,實現更大范圍計時。count是1個32位的軟件計數器,記錄TIMER中斷次數,從而得到毫秒級計時。
2.2同步包的設計
所謂同步包,即是在包尾打上時間戳的BEACON包,其格式如圖1所示。TYPE為標志位,表明是否需要同步;SenderAddr為發送者地址,接收者據此判斷是否為其父節點,從而決定是否需要與其同步;TAR和count為時間戳,表明發送節點當前系統時間。TACCR1的值,可以由TAR和count推出,因此不必發送。
2.3時鐘校準
由于節點時間由TAR、TACCR1和count唯一確定,所以如果能保證2個節點的這3對參數一致,即能實現時間同步。當接收者接收到同步包后可以根據時間戳信息校準自己時間,校準原理如下:(略)。TAR1和count1都可以直接從同步包中提取出來,INTERVAL是常量,因此只有1個未知量ΔT。ΔT是同步包的時延,需要進行估計。ΔT是1個非常重要的參數,對ΔT估計的精度直接影響同步精度。
2.4同步過程描述
網絡在初始化時會建立1個以SINK節點為根節點的數據采集樹。SINK節點周期性地發送包含時間戳的BEACON包,子結點在收到BEACON包后解析出時間戳,并按照式(1)~式(3)校準自己的時鐘。每個節點在完成同步(亦即入網)后也會按照SINK節點的方式廣播BEACON包,以方便新節點的加入。新節點加入時會首先偵聽一段時間,收集到鄰居節點的BEACON后會選取1個父節點,并與之同步,從而完成入網。當拓撲發生變化時,掉網的節點會首先偵聽一段時間,重新選擇父節點,并完成同步入網。
3試驗結果與分析
3.1實驗平臺與實驗方法
本文采用Tmote-Sky[14]硬件平臺和Contiki[15]操作系統。Tmote-Sky是1個廣泛應用的節點硬件平臺,它包括8MHzMSP430MCU,10KBRAM,48KBflash,250Kb/s射頻收發器。Contiki是1個輕量級多任務WSN操作系統。它完全由C語言實現。我們首先分析同步時延與包長的關系,依次改變同步包長度并記錄同步時延。在此基礎上分別提出定值校正法和跟蹤校正法2種估計同步時延的方法,分別進行測試,得出各自同步誤差。詳細結果分析如下。
3.2同步時延與包長的關系。
根據1.2.1節的分析,本文采用的同步方法引入的同步包時延主要包括傳輸時延,而它是與包長直接相關的。實驗所得ΔT與包長的關系如圖2所示。圖2表明時延與包長呈線性相關性,經過線性擬合可得如下經驗公式:(略)。給定包長L,我們可以得到ΔT,然后根據式(1)可以進行校準,我們稱此方法為定值校正法。下面我們來分析該方法的同步誤差。
3.3定值校正法
定值校正法的校準公式如式(5)所示:(略)。圖3所示為定值校正法的誤差分布圖,其數據的概率統計結果見表2,可見其同步誤差均值為0.968tick,即29.54μs,均方差為1.2054tick。為進一步分析同步誤差隨時間的變化,得到同步誤差的時序圖如圖4所示。該圖表明在短時間小區間內同步誤差較為穩定,而在長時間大區間內同步誤差呈周期性變化。根據這一特性,我們可以采用跟蹤校正法來估計同步誤差。
3.4跟蹤校正法
跟蹤校正法的校正公式如式(6)所示:(略)。其同步誤差分布如圖5所示,其數據的概率統計結果如表2所示??梢娖渫秸`差為0.4114tick,即12.55μs,均方差為0.7003tick。對誤差的時序進行分析得到同步誤差的時序圖如圖6所示。與定值校正法對比,可以發現跟蹤校正法性能有較大的提升,既能保證較高的精度(平均誤差減少57.5%),又能保證較好的穩定性(均方差減少49%)。因此在同步精度較高的場所可以采用跟蹤校正法。在同步精度低的場合可使用簡單的定值校正法。RBS[11]和TPSN[10]的同步誤差分別為29.13μs和16.9μs,與LCTS相當,但是LCTS在能耗方面更有優勢。
3.5能量分析
WSN節點的能耗主要由射頻模塊的數據收發產生,因此我們可以通過同步包收發次數來比較不同同步算法的能耗??紤]在1個廣播域內1個參考節點n個接收節點時各算法的同步開銷如表3所示[16]。其中K為RBS算法時間記錄次數,K越大同步精度越高。從表3中可以看出與RBS和TPSN相比,LCTS可以大大減少同步包的收發次數,因此可以降低能耗。
4結論
本文針對面向數據采集應用的WSN提出了1個輕量級的基于數據采集樹的低能耗、高精度時間同步方案LCTS,并進一步在該方案的基礎上提出了定值校正法和跟蹤校正法2種同步校正方法。通過在Tmote-Sky平臺上對該方案進行實驗評估,得出了同步誤差的概率分布圖以及時域變化特性。大量長時間的實驗測試表明,LCTS可以實現μs級(<100μs)的同步,同時具有低開銷、低能耗的特點。跟蹤校正法相對于定值校正法具有更高的精度,同步誤差的均值和均方差分別下降約57.5%和49%。