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