牛宇卿,楊 挺
(天津大學電氣自動化與信息工程學院,天津 300072)
一種基于休眠機制的網(wǎng)絡(luò)時間同步協(xié)議
牛宇卿,楊 挺
(天津大學電氣自動化與信息工程學院,天津 300072)
時間同步技術(shù)是網(wǎng)絡(luò)系統(tǒng)正常運行的基礎(chǔ)。為了降低能耗,無線傳感器網(wǎng)絡(luò)(WSN)需要采用周期性休眠機制。針對目前WSN時間同步協(xié)議較少考慮網(wǎng)絡(luò)節(jié)點的休眠問題,提出了一種適用于采用休眠機制的WSN時間同步協(xié)議。該協(xié)議包括遞增序列號(ISN)機制和時鐘校正機制。ISN同步機制能夠在喚醒休眠節(jié)點的同時,將各網(wǎng)絡(luò)節(jié)點同步到一致的時間點。隨后,各節(jié)點利用本地時鐘與參考節(jié)點時鐘間的時鐘漂移差值,對本地時鐘進行校正?;谟布脚_的測試表明,該協(xié)議能夠以較低的同步成本達到較高的同步精度;與傳統(tǒng)時間同步協(xié)議相比,協(xié)議的執(zhí)行不再受節(jié)點休眠狀態(tài)影響,并且節(jié)點的喚醒過程與時間同步相結(jié)合,減少了同步消息的交換量;此外,協(xié)議中的時鐘校正機制還可有效延長再同步周期。該協(xié)議還為眾多基于時間同步的應用,如網(wǎng)絡(luò)通信協(xié)議、時分多址(TDMA)調(diào)度及節(jié)點定位等,奠定了必要的基礎(chǔ)。
無線網(wǎng)絡(luò); 時間同步協(xié)議; 通信; 休眠機制; 時鐘漂移; 時鐘校正; 傳感器
無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)是由大量的傳感器節(jié)點通過無線通信技術(shù)互聯(lián)的網(wǎng)絡(luò),可對采集的數(shù)據(jù)進行處理和傳輸。WSN已逐漸應用于建筑安全、環(huán)境監(jiān)測等領(lǐng)域[1]。多數(shù)WSN應用,如確定事件時序、協(xié)調(diào)休眠以及時分多址(time division multiple access,TDMA)通信協(xié)議等[2],都需要時間同步協(xié)議的支持。因此,時間同步協(xié)議是構(gòu)建WSN的重要基礎(chǔ)。
Su Ping[3]提出的延遲測量時間同步協(xié)議(delay measurement time synchronization,DMTS),采用單向消息傳遞機制。在該協(xié)議中,被同步節(jié)點利用接收到的主節(jié)點時鐘信息設(shè)置本地時鐘,以達成同步。傳感器網(wǎng)絡(luò)時間同步協(xié)議(timing-sync protocol for sensor networks,TPSN)是基于雙向消息交換機制協(xié)議的代表[4]。該協(xié)議首先在全網(wǎng)建立樹狀分級結(jié)構(gòu),隨后在各層級間進行同步,直到所有節(jié)點均達到同步為止。Elson等[5]提出的參考廣播同步(reference broadcast synchronization,RBS)協(xié)議采用了接收端-接收端同步方式。其中,被同步節(jié)點通過交換彼此的同步消息接收時間戳來達成同步。Maggs M K[6]等提出了協(xié)商時間同步協(xié)議,利用協(xié)商算法消除節(jié)點間的時鐘相位差和漂移。Schenato L等[7]提出了基于協(xié)商和謠傳算法的平均時間同步(average time synchronization,ATS)協(xié)議,通過對來自相鄰節(jié)點的時間信息進行平均計算以達成同步。Wu J等[8]提出了一種基于分簇的時間同步策略,各個簇頭被賦予不同的權(quán)值,時間同步過程在簇間和簇內(nèi)相繼進行。
然而,上述協(xié)議均未考慮到WSN休眠機制的影響。在實際應用中,WSN經(jīng)常部署于偏遠無人區(qū)域,使用電池供電[9],并采用休眠/蘇醒交替的工作模式。此時,上述協(xié)議往往無法執(zhí)行。
為此,本文提出了一種適用于WSN休眠機制的時間同步協(xié)議。該協(xié)議包括2種機制:①遞增序列號(incremental serial number,ISN)同步機制,用于喚醒并同步WSN節(jié)點;②時鐘校正機制,可對節(jié)點時鐘進行周期性校正,以延長再同步時間。
WSN 節(jié)點的時鐘由晶體振蕩器(簡稱晶振)和計數(shù)器組成。計數(shù)器通過對晶振產(chǎn)生的脈沖計數(shù)來計算時間。節(jié)點通過晶振獲取本地時間T與實際時間t的關(guān)系。時鐘模型一般為一階線性方程:
T=ρt+β+ε
(1)
對節(jié)點間的時間同步操作,即將β視為0。
在式(1) 中,理想時鐘的漂移率ρ=1。然而,實際時鐘的振蕩頻率與其標稱頻率一般存在偏差。該偏差將導致實際時鐘的漂移率ρ略大于或小于1。在應用中,將此偏差稱為晶振精度。例如,精度為10×10-6的晶振會與UTC標準時間產(chǎn)生最大為10 μs/s 的時間差。綜上所述,由于時鐘漂移的影響,為了長期保持WSN網(wǎng)絡(luò)的同步狀態(tài),需要周期性地進行同步操作,同時伴隨大量的消息收發(fā)。對于WSN節(jié)點,數(shù)據(jù)無線收發(fā)消耗的電量通常遠大于本地CPU計算消耗的電量。為了節(jié)約電能,除ISN同步機制外,本協(xié)議還包括了時鐘校正機制。其利用節(jié)點的本地計算代替部分同步消息的收發(fā),可避免頻繁同步操作帶來的能耗。
對于采用休眠/蘇醒交替模式的WSN,時間同步時,被同步的節(jié)點均須處于蘇醒狀態(tài)。本文提出的ISN同步機制將節(jié)點的喚醒與同步過程相結(jié)合,最終將網(wǎng)絡(luò)節(jié)點同步到一致的時間點。
大量基于WSN的應用都需要在網(wǎng)絡(luò)中建立分層結(jié)構(gòu),如WSN路由算法和數(shù)據(jù)匯聚樹算法等[10]。因此,本文假設(shè)待同步WSN已建立類似TPSN協(xié)議中的分層結(jié)構(gòu)。其中,根節(jié)點為0級,其鄰近分支節(jié)點為第1級,依次類推,最后一級節(jié)點為第n級。第(i-1)級節(jié)點利用ISN同步機制喚醒并同步第i級節(jié)點。
同步過程需要設(shè)置消息發(fā)送節(jié)點。為了喚醒下一級休眠節(jié)點,該節(jié)點將持續(xù)發(fā)送包含步進值為1的ISN和喚醒消息的數(shù)據(jù)包。ISN同步機制如圖1所示。
圖1 ISN同步機制示意圖
網(wǎng)絡(luò)節(jié)點具有時長為Δtw的蘇醒窗口。如果在Δtw內(nèi)接收到喚醒消息,表明節(jié)點退出休眠;否則,再次進入時長為Δts的休眠狀態(tài)。由此可知,節(jié)點處于一個總時長為(Δtw+Δts)的蘇醒/休眠循環(huán)內(nèi)。
WSN網(wǎng)絡(luò)剛建立時,各節(jié)點的本地時鐘初始值存在隨機差異,因此網(wǎng)絡(luò)節(jié)點蘇醒的時刻不同。設(shè)級別為i的3個節(jié)點a、b、c的蘇醒時刻分別為t1、t2、t3。在t0時刻,由第(i-1)級的節(jié)點連續(xù)發(fā)送時長為Tmsg、包含喚醒消息和ISN的數(shù)據(jù)包。第一個數(shù)據(jù)包中的ISN為1,第二個為2,依次類推,最后一個為n。為保證所有節(jié)點均被喚醒,需使Tmsg≥Δtw+Δts。a、b、c節(jié)點隨機蘇醒并接收到喚醒消息,若節(jié)點收到的ISN為N(1≤N≤n),則根據(jù)式(2) 延時到tvirtual(虛擬時間點),每個節(jié)點的延時長度為tdelay。
(2)
在ISN發(fā)送完畢的時刻,消息發(fā)送節(jié)點與a、b、c節(jié)點均被統(tǒng)一到tvirtual時刻。此時,4個節(jié)點的本地時鐘值不同,但它們均具有一致的虛擬時間。上述節(jié)點只要在tvirtual時刻將本地時鐘改寫為相同數(shù)值,即可將虛擬時間轉(zhuǎn)換為統(tǒng)一的本地時間。
由于時鐘漂移的影響,同步完成后,節(jié)點僅在tvirtual時刻是同步的。從這一時刻起,節(jié)點間會重新出現(xiàn)時鐘偏差。時鐘漂移導致的蘇醒窗口移動過程如圖2所示。
圖2 蘇醒窗口移動過程示意圖
圖2中:t為節(jié)點的公共參考時間,并假設(shè)在上次時間同步后的一段時間內(nèi),第(i-1)級節(jié)點與第i級節(jié)點a之間不存在時鐘漂移,而a與b之間存在時鐘漂移,會導致它們之間的蘇醒窗口Δtw產(chǎn)生t1-t0的偏差。Δt為節(jié)點a蘇醒窗口結(jié)束時與節(jié)點b蘇醒窗口開始時之差,即t2-t1。設(shè)平均發(fā)送1個ISN的耗時為tcritical。假設(shè)在t0時刻,第(i-1)級節(jié)點持續(xù)發(fā)送喚醒消息。如果Δt≥tcritical,則節(jié)點b至少可收到1個喚醒消息;如果Δt 由式(1)可知,由于時鐘漂移的影響,網(wǎng)絡(luò)節(jié)點間難以保持絕對持續(xù)同步。一般認為,只要節(jié)點間的時鐘偏差能夠保持在某一區(qū)間內(nèi),即同步。對于上述WSN節(jié)點,各節(jié)點的蘇醒窗口起始時刻偏差可作為節(jié)點時間同步效果的度量。假如圖2中的該偏差能夠長期小于Δtw,則其效果等價于將網(wǎng)絡(luò)節(jié)點間的時鐘偏差保持在Δtw內(nèi)。因此,節(jié)點可按如下步驟進行周期性的時鐘校正。 ①由第(i-1)級某節(jié)點利用ISN同步機制,同步所有第i級節(jié)點。 ②經(jīng)過若干休眠周期后,步驟①中的第(i-1)級節(jié)點將包含本地時間戳t的消息發(fā)送給所有的i級節(jié)點。時間戳t由MAC層負責截取,并在發(fā)送前寫入消息中。 ③第i級某節(jié)點a利用本地時鐘值對消息接收的時間打時間戳ta,并令Δclock=ta-t-δ。其中:δ為消息傳播時延。 RT=Δclock+RT (3) 式中:RT為本地時鐘寄存器。 式(3)表示:首先,從RT獲取當前時鐘值;然后,作Δclock+RT運算;最后,將運算結(jié)果再次寫入RT中。校正完成后,即可長時間地將節(jié)點間時鐘偏差保持在Δtw內(nèi)。 為了對ISN和時鐘校正機制進行驗證,試驗采用了自主開發(fā)的WSN節(jié)點。其微控制器采用C8051F921芯片,無線通信模塊采用Si4463芯片。上述器件均支持休眠模式。節(jié)點還具有實時時鐘(real time clock,RTC)功能,用于支持休眠/蘇醒模式的切換,并采用鋰電池供電。因此,該節(jié)點具有WSN節(jié)點的典型特征。 試驗采用3個WSN節(jié)點,消息發(fā)送節(jié)點為S,其余2個節(jié)點A、節(jié)點B均采用休眠機制。試驗原理如圖1所示。蘇醒窗口Δtw為10 ms,休眠時間Δts為4 990 ms。由于節(jié)點上電工作時間隨機,因此它們的起始時間差Δtw也是隨機的。為了喚醒節(jié)點,節(jié)點S發(fā)送時長為6 s、包含ISN的喚醒消息。節(jié)點A、節(jié)點B被喚醒后,對tdelay進行計算,并延時到tvirtual,最后在該時刻通過GPIO產(chǎn)生1個正脈沖。試驗將雙通道示波儀測量節(jié)點A、節(jié)點B的脈沖時間差ΔP作為同步效果的度量。 50次同步機制試驗的結(jié)果如下:最小值為9.2 μs,最大值為96.0 μs,平均值為44.4 μs,標準差為25.3 μs。 50次同步機制試驗的ΔP分布如圖3所示。試驗結(jié)果表明,ISN同步機制的最大同步誤差小于100 μs。 圖3 ΔP分布示意圖 表1給出了ISN同步機制與TPSN[4]協(xié)議、RBS[5]協(xié)議和ATS[7]協(xié)議的精度。Kumar R等在Berkeley motes平臺上測試了TPSN的精度。由于其試驗中的時鐘取自節(jié)點CPU時鐘,系統(tǒng)休眠后,該時鐘將無法工作。而本試驗采用的RTC時鐘在休眠模式下仍可持續(xù)工作。 表1 各種同步方式精度 試驗采用消息發(fā)送節(jié)點S和待校正節(jié)點R。節(jié)點S與節(jié)點R首先被同步到tvirtual時間點。從該時刻開始,經(jīng)過60次休眠循環(huán)后,節(jié)點S將本地時鐘值發(fā)送給節(jié)點R;節(jié)點R據(jù)此求出Δclock,然后每間隔5 min利用Δclock校正自身的本地時鐘值。節(jié)點S和節(jié)點R在每次蘇醒時產(chǎn)生1個正脈沖。使用雙通道示波儀每隔2.5 min測量兩脈沖的時間差ΔP,作為校正效果的度量,在對照組中則未進行校正。試驗持續(xù)進行60 min,每隔5 min測量節(jié)點S與節(jié)點R之間的時鐘漂移量。試驗在22 ℃的恒溫空調(diào)室內(nèi)進行。時鐘校正試驗結(jié)果如表2所示。 為使結(jié)果更加直觀,每次測量結(jié)果均減去節(jié)點S與節(jié)點R的初始時鐘差,即ΔP初始值為0。 表2 時鐘校正試驗結(jié)果 由表2可知:無校正機制時,時鐘漂移率約為1.08 ms/min,試驗進行60 min后,漂移總量為65.03 ms;而加入校正機制后,60 min后的漂移總量為0.304 ms,僅為前者的1/213。60 min試驗中時鐘漂移量對比如圖4所示。 圖4 時鐘漂移量對比示意圖 為了驗證時鐘校正機制對時間同步操作間隔時間的影響,本試驗在節(jié)點S和節(jié)點R中實現(xiàn)了TPSN協(xié)議,并將同步差值上限設(shè)定為10 ms 。如2個節(jié)點間的時鐘差值在此上限內(nèi),就可以認為這2個節(jié)點是同步的;反之,則不同步。經(jīng)測試,節(jié)點S和節(jié)點R每5 min的相對時鐘漂移量為8.7 ms。為了使節(jié)點S和節(jié)點R的同步差值保持在該上限內(nèi),每隔約344 s,TPSN就需要進行1次同步;而采用時鐘校正機制后,經(jīng)過約32.9 h,相對時鐘漂移量才會達到同步差值上限,相當于將網(wǎng)絡(luò)節(jié)點的再同步時間延長了約344倍。 針對目前WSN時間同步協(xié)議較少考慮節(jié)點休眠的問題,本文提出了一種結(jié)合ISN和時鐘校正機制的時間同步的協(xié)議。試驗結(jié)果表明,與其他協(xié)議相比,本協(xié)議可將節(jié)點的喚醒與時間同步過程相結(jié)合,同時有效延長了網(wǎng)絡(luò)節(jié)點的再同步周期,降低了同步能量消耗,適用于采用休眠機制的WSN。 [1] OJHA T,MISRA S,RAGHUWANSHI N S.Wireless sensor networks for agriculture:the state of the art in practice and future challenges[J].Computers & Electronics in Agriculture,2015,118(3):66-84. [2] 徐祥振,汪成亮.基于節(jié)點密度與 TDMA 的無線傳感器網(wǎng)絡(luò)集簇協(xié)議[J].傳感技術(shù)學報,2015,28(11):1689-1694. [3] SU P.Delay measurement time synchronization for wireless sensor networks[J].Intel Research Berkeley Lab,2003(6):1-10. [4] GANERIWAL S,KUMAR R,SRIVASTAVA M B.Timing-syncprotocol for sensor networks[C]//Proceedings of the 1st International Conference on Embedded Networked Sensor Systems,2003:138-149. [5] ELSON J,GIROD L,ESTRIN D.Fine-grained network time synchronization using reference broadcasts[J].ACM SIGOPS Operating Systems Review,2002,36(SI):147-163. [6] MAGGS M K,O’KEEFE S G,THIEL D V.Consensus clock synchronization for wireless sensor networks[J].Sensors Journal IEEE,2012,12(6):2269-2277. [7] SCHENATO L,GAMBA G.A distributed consensus protocol for clock synchronization in wireless sensor network[C]//46th IEEE Conference on Decision and Control,2007:2289-2294. [8] WU J,ZHANG L,BAI Y.Cluster-based consensus time synchronization for wireless sensor networks [J].IEEE Sensors Journal,2015,15(3):1404-1413. [9] 徐潔,丁國強,熊明.低功耗無線傳感終端網(wǎng)絡(luò)系統(tǒng)設(shè)計與實現(xiàn)[J].自動化儀表,2015,36(1):59-62. [10]于搖標.一種樹型層次結(jié)構(gòu)的無線傳感器網(wǎng)絡(luò)應用研究[J].自動化儀表,2013,34(4):50-54. NetworkTimeSynchronizationProtocolBasedonSleepingMechanism NIU Yuqing,YANG Ting (School of Electrical and Information Engineering,Tianjin University,Tianjin 300072,China) Time synchronization technique provides the basis for the normal operation of network system.To save energy,the wireless sensor network(WSN) usually has to adopt sleeping mechanism.At present,the sleeping mechanism for network nodes does not be considered in the time synchronization protocol for WSN.Aiming at this problem,the time synchronization protocol based on sleeping mechanism which is suitable for WSN is proposed.The protocol includes an incremental serial number(ISN) synchronization mechanism and a clock correction mechanism.The ISN mechanism is able to synchronize a set of network nodes to consistent time points while waking them up.Then the network nodes will correct their local clocks in accordance with the time drift between their clock and that of the reference node.According to the experiment based on the hardware test platform,the proposed protocol is able to reach a high synchronization precision with relatively low cost;compared with traditional time synchronization protocols,the execution of the proposed protocol will not be affected by the sleeping state of the node,and the wake-up process of the node is combined with time synchronization,thus the amount of synchronization messages exchanged is reduced,and the resynchronization period can be effectively extended by the clock correction mechanism of the protocol.Meanwhile,the proposed protocol will also be the cornerstone for many applications based on time synchronization,such as network communication protocols,time division multiple access(TDMA) scheduling and node positioning,etc. Wireless network; Time synchronization protocol; Communication; Sleep mechanism; Clock drift; Clock correction; Sensor 修改稿收到日期:2017-04-13 國家自然科學基金資助項目(61571324)、國際科技合作專項基金資助項目(2013DFA11040)、天津市自然科學基金資助重點項目(16JCZDJC30900) 牛宇卿(1984—),男,在讀博士研究生,主要從事無線傳感器網(wǎng)絡(luò)、物聯(lián)網(wǎng)方向的研究,E-mail:niuyuq@foxmail.com;楊挺(通信作者),男,博士,教授,主要從事無線傳感器網(wǎng)絡(luò)、電力信息物理融合系統(tǒng)方向的研究,E-mail:yangting@tju.edu.cn TH86;TP393 A 10.16086/j.cnki.issn1000-0380.2017120134 試驗結(jié)果
4.1 ISN同步機制測試結(jié)果
4.2 時鐘校正機制測試結(jié)果
5 結(jié)束語