牛宇卿,楊 挺
(天津大學(xué)電氣自動化與信息工程學(xué)院,天津 300072)
一種基于休眠機(jī)制的網(wǎng)絡(luò)時(shí)間同步協(xié)議
牛宇卿,楊 挺
(天津大學(xué)電氣自動化與信息工程學(xué)院,天津 300072)
時(shí)間同步技術(shù)是網(wǎng)絡(luò)系統(tǒng)正常運(yùn)行的基礎(chǔ)。為了降低能耗,無線傳感器網(wǎng)絡(luò)(WSN)需要采用周期性休眠機(jī)制。針對目前WSN時(shí)間同步協(xié)議較少考慮網(wǎng)絡(luò)節(jié)點(diǎn)的休眠問題,提出了一種適用于采用休眠機(jī)制的WSN時(shí)間同步協(xié)議。該協(xié)議包括遞增序列號(ISN)機(jī)制和時(shí)鐘校正機(jī)制。ISN同步機(jī)制能夠在喚醒休眠節(jié)點(diǎn)的同時(shí),將各網(wǎng)絡(luò)節(jié)點(diǎn)同步到一致的時(shí)間點(diǎn)。隨后,各節(jié)點(diǎn)利用本地時(shí)鐘與參考節(jié)點(diǎn)時(shí)鐘間的時(shí)鐘漂移差值,對本地時(shí)鐘進(jìn)行校正?;谟布脚_的測試表明,該協(xié)議能夠以較低的同步成本達(dá)到較高的同步精度;與傳統(tǒng)時(shí)間同步協(xié)議相比,協(xié)議的執(zhí)行不再受節(jié)點(diǎn)休眠狀態(tài)影響,并且節(jié)點(diǎn)的喚醒過程與時(shí)間同步相結(jié)合,減少了同步消息的交換量;此外,協(xié)議中的時(shí)鐘校正機(jī)制還可有效延長再同步周期。該協(xié)議還為眾多基于時(shí)間同步的應(yīng)用,如網(wǎng)絡(luò)通信協(xié)議、時(shí)分多址(TDMA)調(diào)度及節(jié)點(diǎn)定位等,奠定了必要的基礎(chǔ)。
無線網(wǎng)絡(luò); 時(shí)間同步協(xié)議; 通信; 休眠機(jī)制; 時(shí)鐘漂移; 時(shí)鐘校正; 傳感器
無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)是由大量的傳感器節(jié)點(diǎn)通過無線通信技術(shù)互聯(lián)的網(wǎng)絡(luò),可對采集的數(shù)據(jù)進(jìn)行處理和傳輸。WSN已逐漸應(yīng)用于建筑安全、環(huán)境監(jiān)測等領(lǐng)域[1]。多數(shù)WSN應(yīng)用,如確定事件時(shí)序、協(xié)調(diào)休眠以及時(shí)分多址(time division multiple access,TDMA)通信協(xié)議等[2],都需要時(shí)間同步協(xié)議的支持。因此,時(shí)間同步協(xié)議是構(gòu)建WSN的重要基礎(chǔ)。
Su Ping[3]提出的延遲測量時(shí)間同步協(xié)議(delay measurement time synchronization,DMTS),采用單向消息傳遞機(jī)制。在該協(xié)議中,被同步節(jié)點(diǎn)利用接收到的主節(jié)點(diǎn)時(shí)鐘信息設(shè)置本地時(shí)鐘,以達(dá)成同步。傳感器網(wǎng)絡(luò)時(shí)間同步協(xié)議(timing-sync protocol for sensor networks,TPSN)是基于雙向消息交換機(jī)制協(xié)議的代表[4]。該協(xié)議首先在全網(wǎng)建立樹狀分級結(jié)構(gòu),隨后在各層級間進(jìn)行同步,直到所有節(jié)點(diǎn)均達(dá)到同步為止。Elson等[5]提出的參考廣播同步(reference broadcast synchronization,RBS)協(xié)議采用了接收端-接收端同步方式。其中,被同步節(jié)點(diǎn)通過交換彼此的同步消息接收時(shí)間戳來達(dá)成同步。Maggs M K[6]等提出了協(xié)商時(shí)間同步協(xié)議,利用協(xié)商算法消除節(jié)點(diǎn)間的時(shí)鐘相位差和漂移。Schenato L等[7]提出了基于協(xié)商和謠傳算法的平均時(shí)間同步(average time synchronization,ATS)協(xié)議,通過對來自相鄰節(jié)點(diǎn)的時(shí)間信息進(jìn)行平均計(jì)算以達(dá)成同步。Wu J等[8]提出了一種基于分簇的時(shí)間同步策略,各個(gè)簇頭被賦予不同的權(quán)值,時(shí)間同步過程在簇間和簇內(nèi)相繼進(jìn)行。
然而,上述協(xié)議均未考慮到WSN休眠機(jī)制的影響。在實(shí)際應(yīng)用中,WSN經(jīng)常部署于偏遠(yuǎn)無人區(qū)域,使用電池供電[9],并采用休眠/蘇醒交替的工作模式。此時(shí),上述協(xié)議往往無法執(zhí)行。
為此,本文提出了一種適用于WSN休眠機(jī)制的時(shí)間同步協(xié)議。該協(xié)議包括2種機(jī)制:①遞增序列號(incremental serial number,ISN)同步機(jī)制,用于喚醒并同步WSN節(jié)點(diǎn);②時(shí)鐘校正機(jī)制,可對節(jié)點(diǎn)時(shí)鐘進(jìn)行周期性校正,以延長再同步時(shí)間。
WSN 節(jié)點(diǎn)的時(shí)鐘由晶體振蕩器(簡稱晶振)和計(jì)數(shù)器組成。計(jì)數(shù)器通過對晶振產(chǎn)生的脈沖計(jì)數(shù)來計(jì)算時(shí)間。節(jié)點(diǎn)通過晶振獲取本地時(shí)間T與實(shí)際時(shí)間t的關(guān)系。時(shí)鐘模型一般為一階線性方程:
T=ρt+β+ε
(1)
對節(jié)點(diǎn)間的時(shí)間同步操作,即將β視為0。
在式(1) 中,理想時(shí)鐘的漂移率ρ=1。然而,實(shí)際時(shí)鐘的振蕩頻率與其標(biāo)稱頻率一般存在偏差。該偏差將導(dǎo)致實(shí)際時(shí)鐘的漂移率ρ略大于或小于1。在應(yīng)用中,將此偏差稱為晶振精度。例如,精度為10×10-6的晶振會與UTC標(biāo)準(zhǔn)時(shí)間產(chǎn)生最大為10 μs/s 的時(shí)間差。綜上所述,由于時(shí)鐘漂移的影響,為了長期保持WSN網(wǎng)絡(luò)的同步狀態(tài),需要周期性地進(jìn)行同步操作,同時(shí)伴隨大量的消息收發(fā)。對于WSN節(jié)點(diǎn),數(shù)據(jù)無線收發(fā)消耗的電量通常遠(yuǎn)大于本地CPU計(jì)算消耗的電量。為了節(jié)約電能,除ISN同步機(jī)制外,本協(xié)議還包括了時(shí)鐘校正機(jī)制。其利用節(jié)點(diǎn)的本地計(jì)算代替部分同步消息的收發(fā),可避免頻繁同步操作帶來的能耗。
對于采用休眠/蘇醒交替模式的WSN,時(shí)間同步時(shí),被同步的節(jié)點(diǎn)均須處于蘇醒狀態(tài)。本文提出的ISN同步機(jī)制將節(jié)點(diǎn)的喚醒與同步過程相結(jié)合,最終將網(wǎng)絡(luò)節(jié)點(diǎn)同步到一致的時(shí)間點(diǎn)。
大量基于WSN的應(yīng)用都需要在網(wǎng)絡(luò)中建立分層結(jié)構(gòu),如WSN路由算法和數(shù)據(jù)匯聚樹算法等[10]。因此,本文假設(shè)待同步WSN已建立類似TPSN協(xié)議中的分層結(jié)構(gòu)。其中,根節(jié)點(diǎn)為0級,其鄰近分支節(jié)點(diǎn)為第1級,依次類推,最后一級節(jié)點(diǎn)為第n級。第(i-1)級節(jié)點(diǎn)利用ISN同步機(jī)制喚醒并同步第i級節(jié)點(diǎn)。
同步過程需要設(shè)置消息發(fā)送節(jié)點(diǎn)。為了喚醒下一級休眠節(jié)點(diǎn),該節(jié)點(diǎn)將持續(xù)發(fā)送包含步進(jìn)值為1的ISN和喚醒消息的數(shù)據(jù)包。ISN同步機(jī)制如圖1所示。
圖1 ISN同步機(jī)制示意圖
網(wǎng)絡(luò)節(jié)點(diǎn)具有時(shí)長為Δtw的蘇醒窗口。如果在Δtw內(nèi)接收到喚醒消息,表明節(jié)點(diǎn)退出休眠;否則,再次進(jìn)入時(shí)長為Δts的休眠狀態(tài)。由此可知,節(jié)點(diǎn)處于一個(gè)總時(shí)長為(Δtw+Δts)的蘇醒/休眠循環(huán)內(nèi)。
WSN網(wǎng)絡(luò)剛建立時(shí),各節(jié)點(diǎn)的本地時(shí)鐘初始值存在隨機(jī)差異,因此網(wǎng)絡(luò)節(jié)點(diǎn)蘇醒的時(shí)刻不同。設(shè)級別為i的3個(gè)節(jié)點(diǎn)a、b、c的蘇醒時(shí)刻分別為t1、t2、t3。在t0時(shí)刻,由第(i-1)級的節(jié)點(diǎn)連續(xù)發(fā)送時(shí)長為Tmsg、包含喚醒消息和ISN的數(shù)據(jù)包。第一個(gè)數(shù)據(jù)包中的ISN為1,第二個(gè)為2,依次類推,最后一個(gè)為n。為保證所有節(jié)點(diǎn)均被喚醒,需使Tmsg≥Δtw+Δts。a、b、c節(jié)點(diǎn)隨機(jī)蘇醒并接收到喚醒消息,若節(jié)點(diǎn)收到的ISN為N(1≤N≤n),則根據(jù)式(2) 延時(shí)到tvirtual(虛擬時(shí)間點(diǎn)),每個(gè)節(jié)點(diǎn)的延時(shí)長度為tdelay。
(2)
在ISN發(fā)送完畢的時(shí)刻,消息發(fā)送節(jié)點(diǎn)與a、b、c節(jié)點(diǎn)均被統(tǒng)一到tvirtual時(shí)刻。此時(shí),4個(gè)節(jié)點(diǎn)的本地時(shí)鐘值不同,但它們均具有一致的虛擬時(shí)間。上述節(jié)點(diǎn)只要在tvirtual時(shí)刻將本地時(shí)鐘改寫為相同數(shù)值,即可將虛擬時(shí)間轉(zhuǎn)換為統(tǒng)一的本地時(shí)間。
由于時(shí)鐘漂移的影響,同步完成后,節(jié)點(diǎn)僅在tvirtual時(shí)刻是同步的。從這一時(shí)刻起,節(jié)點(diǎn)間會重新出現(xiàn)時(shí)鐘偏差。時(shí)鐘漂移導(dǎo)致的蘇醒窗口移動過程如圖2所示。
圖2 蘇醒窗口移動過程示意圖
圖2中:t為節(jié)點(diǎn)的公共參考時(shí)間,并假設(shè)在上次時(shí)間同步后的一段時(shí)間內(nèi),第(i-1)級節(jié)點(diǎn)與第i級節(jié)點(diǎn)a之間不存在時(shí)鐘漂移,而a與b之間存在時(shí)鐘漂移,會導(dǎo)致它們之間的蘇醒窗口Δtw產(chǎn)生t1-t0的偏差。Δt為節(jié)點(diǎn)a蘇醒窗口結(jié)束時(shí)與節(jié)點(diǎn)b蘇醒窗口開始時(shí)之差,即t2-t1。設(shè)平均發(fā)送1個(gè)ISN的耗時(shí)為tcritical。假設(shè)在t0時(shí)刻,第(i-1)級節(jié)點(diǎn)持續(xù)發(fā)送喚醒消息。如果Δt≥tcritical,則節(jié)點(diǎn)b至少可收到1個(gè)喚醒消息;如果Δt 由式(1)可知,由于時(shí)鐘漂移的影響,網(wǎng)絡(luò)節(jié)點(diǎn)間難以保持絕對持續(xù)同步。一般認(rèn)為,只要節(jié)點(diǎn)間的時(shí)鐘偏差能夠保持在某一區(qū)間內(nèi),即同步。對于上述WSN節(jié)點(diǎn),各節(jié)點(diǎn)的蘇醒窗口起始時(shí)刻偏差可作為節(jié)點(diǎn)時(shí)間同步效果的度量。假如圖2中的該偏差能夠長期小于Δtw,則其效果等價(jià)于將網(wǎng)絡(luò)節(jié)點(diǎn)間的時(shí)鐘偏差保持在Δtw內(nèi)。因此,節(jié)點(diǎn)可按如下步驟進(jìn)行周期性的時(shí)鐘校正。 ①由第(i-1)級某節(jié)點(diǎn)利用ISN同步機(jī)制,同步所有第i級節(jié)點(diǎn)。 ②經(jīng)過若干休眠周期后,步驟①中的第(i-1)級節(jié)點(diǎn)將包含本地時(shí)間戳t的消息發(fā)送給所有的i級節(jié)點(diǎn)。時(shí)間戳t由MAC層負(fù)責(zé)截取,并在發(fā)送前寫入消息中。 ③第i級某節(jié)點(diǎn)a利用本地時(shí)鐘值對消息接收的時(shí)間打時(shí)間戳ta,并令Δclock=ta-t-δ。其中:δ為消息傳播時(shí)延。 RT=Δclock+RT (3) 式中:RT為本地時(shí)鐘寄存器。 式(3)表示:首先,從RT獲取當(dāng)前時(shí)鐘值;然后,作Δclock+RT運(yùn)算;最后,將運(yùn)算結(jié)果再次寫入RT中。校正完成后,即可長時(shí)間地將節(jié)點(diǎn)間時(shí)鐘偏差保持在Δtw內(nèi)。 為了對ISN和時(shí)鐘校正機(jī)制進(jìn)行驗(yàn)證,試驗(yàn)采用了自主開發(fā)的WSN節(jié)點(diǎn)。其微控制器采用C8051F921芯片,無線通信模塊采用Si4463芯片。上述器件均支持休眠模式。節(jié)點(diǎn)還具有實(shí)時(shí)時(shí)鐘(real time clock,RTC)功能,用于支持休眠/蘇醒模式的切換,并采用鋰電池供電。因此,該節(jié)點(diǎn)具有WSN節(jié)點(diǎn)的典型特征。 試驗(yàn)采用3個(gè)WSN節(jié)點(diǎn),消息發(fā)送節(jié)點(diǎn)為S,其余2個(gè)節(jié)點(diǎn)A、節(jié)點(diǎn)B均采用休眠機(jī)制。試驗(yàn)原理如圖1所示。蘇醒窗口Δtw為10 ms,休眠時(shí)間Δts為4 990 ms。由于節(jié)點(diǎn)上電工作時(shí)間隨機(jī),因此它們的起始時(shí)間差Δtw也是隨機(jī)的。為了喚醒節(jié)點(diǎn),節(jié)點(diǎn)S發(fā)送時(shí)長為6 s、包含ISN的喚醒消息。節(jié)點(diǎn)A、節(jié)點(diǎn)B被喚醒后,對tdelay進(jìn)行計(jì)算,并延時(shí)到tvirtual,最后在該時(shí)刻通過GPIO產(chǎn)生1個(gè)正脈沖。試驗(yàn)將雙通道示波儀測量節(jié)點(diǎn)A、節(jié)點(diǎn)B的脈沖時(shí)間差ΔP作為同步效果的度量。 50次同步機(jī)制試驗(yàn)的結(jié)果如下:最小值為9.2 μs,最大值為96.0 μs,平均值為44.4 μs,標(biāo)準(zhǔn)差為25.3 μs。 50次同步機(jī)制試驗(yàn)的ΔP分布如圖3所示。試驗(yàn)結(jié)果表明,ISN同步機(jī)制的最大同步誤差小于100 μs。 圖3 ΔP分布示意圖 表1給出了ISN同步機(jī)制與TPSN[4]協(xié)議、RBS[5]協(xié)議和ATS[7]協(xié)議的精度。Kumar R等在Berkeley motes平臺上測試了TPSN的精度。由于其試驗(yàn)中的時(shí)鐘取自節(jié)點(diǎn)CPU時(shí)鐘,系統(tǒng)休眠后,該時(shí)鐘將無法工作。而本試驗(yàn)采用的RTC時(shí)鐘在休眠模式下仍可持續(xù)工作。 表1 各種同步方式精度 試驗(yàn)采用消息發(fā)送節(jié)點(diǎn)S和待校正節(jié)點(diǎn)R。節(jié)點(diǎn)S與節(jié)點(diǎn)R首先被同步到tvirtual時(shí)間點(diǎn)。從該時(shí)刻開始,經(jīng)過60次休眠循環(huán)后,節(jié)點(diǎn)S將本地時(shí)鐘值發(fā)送給節(jié)點(diǎn)R;節(jié)點(diǎn)R據(jù)此求出Δclock,然后每間隔5 min利用Δclock校正自身的本地時(shí)鐘值。節(jié)點(diǎn)S和節(jié)點(diǎn)R在每次蘇醒時(shí)產(chǎn)生1個(gè)正脈沖。使用雙通道示波儀每隔2.5 min測量兩脈沖的時(shí)間差ΔP,作為校正效果的度量,在對照組中則未進(jìn)行校正。試驗(yàn)持續(xù)進(jìn)行60 min,每隔5 min測量節(jié)點(diǎn)S與節(jié)點(diǎn)R之間的時(shí)鐘漂移量。試驗(yàn)在22 ℃的恒溫空調(diào)室內(nèi)進(jìn)行。時(shí)鐘校正試驗(yàn)結(jié)果如表2所示。 為使結(jié)果更加直觀,每次測量結(jié)果均減去節(jié)點(diǎn)S與節(jié)點(diǎn)R的初始時(shí)鐘差,即ΔP初始值為0。 表2 時(shí)鐘校正試驗(yàn)結(jié)果 由表2可知:無校正機(jī)制時(shí),時(shí)鐘漂移率約為1.08 ms/min,試驗(yàn)進(jìn)行60 min后,漂移總量為65.03 ms;而加入校正機(jī)制后,60 min后的漂移總量為0.304 ms,僅為前者的1/213。60 min試驗(yàn)中時(shí)鐘漂移量對比如圖4所示。 圖4 時(shí)鐘漂移量對比示意圖 為了驗(yàn)證時(shí)鐘校正機(jī)制對時(shí)間同步操作間隔時(shí)間的影響,本試驗(yàn)在節(jié)點(diǎn)S和節(jié)點(diǎn)R中實(shí)現(xiàn)了TPSN協(xié)議,并將同步差值上限設(shè)定為10 ms 。如2個(gè)節(jié)點(diǎn)間的時(shí)鐘差值在此上限內(nèi),就可以認(rèn)為這2個(gè)節(jié)點(diǎn)是同步的;反之,則不同步。經(jīng)測試,節(jié)點(diǎn)S和節(jié)點(diǎn)R每5 min的相對時(shí)鐘漂移量為8.7 ms。為了使節(jié)點(diǎn)S和節(jié)點(diǎn)R的同步差值保持在該上限內(nèi),每隔約344 s,TPSN就需要進(jìn)行1次同步;而采用時(shí)鐘校正機(jī)制后,經(jīng)過約32.9 h,相對時(shí)鐘漂移量才會達(dá)到同步差值上限,相當(dāng)于將網(wǎng)絡(luò)節(jié)點(diǎn)的再同步時(shí)間延長了約344倍。 針對目前WSN時(shí)間同步協(xié)議較少考慮節(jié)點(diǎn)休眠的問題,本文提出了一種結(jié)合ISN和時(shí)鐘校正機(jī)制的時(shí)間同步的協(xié)議。試驗(yàn)結(jié)果表明,與其他協(xié)議相比,本協(xié)議可將節(jié)點(diǎn)的喚醒與時(shí)間同步過程相結(jié)合,同時(shí)有效延長了網(wǎng)絡(luò)節(jié)點(diǎn)的再同步周期,降低了同步能量消耗,適用于采用休眠機(jī)制的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é)點(diǎn)密度與 TDMA 的無線傳感器網(wǎng)絡(luò)集簇協(xié)議[J].傳感技術(shù)學(xué)報(bào),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] 徐潔,丁國強(qiáng),熊明.低功耗無線傳感終端網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].自動化儀表,2015,36(1):59-62. [10]于搖標(biāo).一種樹型層次結(jié)構(gòu)的無線傳感器網(wǎng)絡(luò)應(yīng)用研究[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 國家自然科學(xué)基金資助項(xiàng)目(61571324)、國際科技合作專項(xiàng)基金資助項(xiàng)目(2013DFA11040)、天津市自然科學(xué)基金資助重點(diǎn)項(xiàng)目(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 試驗(yàn)結(jié)果
4.1 ISN同步機(jī)制測試結(jié)果
4.2 時(shí)鐘校正機(jī)制測試結(jié)果
5 結(jié)束語