徐世武,王平,何花,施文灶,江華麗
(福建師范大學物理與光電信息科技學院,福州350007)
無線傳感器網(wǎng)絡集成了傳感器技術、計算機技術和通信技術,在軍事、環(huán)境、健康、家庭、商業(yè)等許多方面有著巨大的潛在應用前景[1]。功耗的高低是衡量一個無線傳感器網(wǎng)絡性能的主要標志之一,應該盡量讓沒有工作的節(jié)點處于休眠狀態(tài),以節(jié)省節(jié)點的功耗。當然可以在MAC層采用時分多路復用技術,但這就要求節(jié)點通信雙方實現(xiàn)時間上的同步。
NTP協(xié)議是目前因特網(wǎng)上采用的時間同步協(xié)議標準。因無線傳感網(wǎng)絡具有體積、電能供應、存儲容量等的約束,以及采用的是無線傳輸方式,算法的局部性等,所以NTP協(xié)議不適合用于無線傳感網(wǎng)絡中。GPS系統(tǒng)也可以提供高精度的時間同步,但它的信號穿透性差,GPS天線必須安裝在空曠的地方,功耗也較大,所以不適合無線傳感器網(wǎng)絡。
傳感器節(jié)點是構成無線傳感網(wǎng)絡的基本平臺,具有傳統(tǒng)網(wǎng)絡的終端和路由的雙重功能:一方面要實現(xiàn)數(shù)據(jù)的采集和處理;另一方面還要對其他節(jié)點轉發(fā)的數(shù)據(jù)進行存儲、管理和融合等處理。雖然其設計不一,但是基本結構相同。它一般由傳感器模塊、處理器模塊、無線通信模塊和能量供應模塊組成[2]?;窘M成如圖1所示。
圖1 無線傳感器節(jié)點基本組成
因受到各種器件、負載等因素的影響,傳輸延遲的不確定性主要的影響因素如圖2所示。
圖2 報文傳輸延遲
發(fā)送時間:發(fā)送方用于構造分組并將分組轉交給發(fā)送方的MAC層的時間。主要取決于時間同步程序的操作系統(tǒng)調(diào)用時間和處理器負載等。
訪問時間:分組到達MAC層后,獲取信道發(fā)送權的時間。主要取決于共享信道的競爭,當前的負載等。
傳送時間:發(fā)送分組的時間,主要取決于報文的長度等。
傳播時間:分組離開發(fā)送方后,并將分組傳輸?shù)浇邮辗街g的無線傳輸時間。主要取決于傳輸介質(zhì)、傳輸距離等。
接收時間:接收端接收到分組,并將分組傳送到MAC層所需的時間。
接受時間:處理接收到分組的時間。主要受到操作系統(tǒng)的影響。
在無線傳感器網(wǎng)絡中,目前時間同步協(xié)議比較成熟的協(xié)議中,根據(jù)同步節(jié)點間信息交互方式的不同,可以歸結為以下3類:
①基于發(fā)送者—接收者的雙向同步算法,比較典型的算法如TPSN(Timing-Sync Protocol for Sensor Networks)算法。
②基于發(fā)送者—接收者的單向時間同步算法,比較典型的算法如FTSP(Flooding Time Synchronization Protocol)算法,DM TS(Delay Measurement Time Synchronization)算法。
③基于接收者—接收者的同步算法,典型的有RBS(Reference Broadcast Synchronization)算法。
DM TS(Delay Measurement Time Synchronization)算法[3],即延遲測量時間同步協(xié)議,是基于發(fā)送者—接收者的單向時間同步算法,該算法結構簡單,功耗較低,具有廣泛的運用,其算法原理圖如圖3所示。當發(fā)送節(jié)點在檢測到通道空閑時,給廣播分組加上時間戳t0,從而排除了發(fā)送節(jié)點的處理延遲與MAC層的訪問延遲。并假設發(fā)送報文的長度為NA個比特(包括前導碼與同步字),傳送每個比特的時間為t,而接收者在接收完同步字后,記錄下此時的本地時間為t1,并在調(diào)整自己的本地時間記錄之前記錄下此時的時刻t2,這時接收節(jié)點為了與發(fā)送節(jié)點達到時間上的同步,可以調(diào)整接收節(jié)點的時間改為t0+t?NA+(t2-t1)。
圖3 DMTS算法原理圖
TPSN(Timing-Sync Protocol for Sensor Networks)算法[4],采用的是層次型的網(wǎng)絡結構,是基于發(fā)送者—接收者的雙向同步算法。分層兩個階段,第一階段為層次發(fā)現(xiàn)階段,第二階段為同步階段。其算法原理圖如圖4所示。在圖4中,T1、T4用來記錄同步節(jié)點的本地時間,T2、T3用來記錄參考
節(jié)點的本地時間。同步節(jié)點A在T1時刻向參考節(jié)點B發(fā)送一個同步請求報文,報文中包含了同步節(jié)點的級別和T1,當參考節(jié)點B收到報文后,記錄下接收時刻T2,并立即向同步節(jié)點A回復一個同步應答報文,該報文中包含了參考節(jié)點B的級別和T1、T2、回復時刻T3。同步節(jié)點A收到參考節(jié)點的回復后,記下時刻T4,假設來回報文的傳輸延遲相同都為d,且m為同步節(jié)點在T1時刻兩者之間的時偏,且設來回時偏相同,由則在T4時刻,若在同步節(jié)點A的本地時間增加修正量m,就能達到同步節(jié)點A與參考節(jié)點B之間的同步。
圖4 TPSN算法原理圖
本文設計主要采用DM TS與TPSN兩種算法的融合運用,充分利用兩種算法的優(yōu)點。本文主要分成兩條路徑,主路徑和次路徑。主路徑即圖5中的A、B、E三個路由節(jié)點形成的路徑,次路徑即路由節(jié)點B與兩個傳感節(jié)點(C、D)形成的一個子網(wǎng)絡1,還有路由節(jié)點E與兩個傳感節(jié)點(F、G)形成的一個子網(wǎng)絡2。在無線傳感網(wǎng)絡中大部分是由傳感節(jié)點組成的,用來采集數(shù)據(jù),還有一部分是路由節(jié)點用來存儲和轉發(fā)數(shù)據(jù),因主路徑中的路由節(jié)點跳數(shù)較多,為了提高網(wǎng)絡的精度,可以在路由節(jié)點與路由節(jié)點之間,即主路徑之間采用TPSN算法,而在子網(wǎng)內(nèi)的傳感節(jié)點與該子網(wǎng)的路由節(jié)點之間采用DMTS算法,這樣既可以減少整個網(wǎng)絡算法的復雜度,也可以減少整個網(wǎng)絡的功耗。
主路徑上的時間同步:首先A節(jié)點通過使用NLDEDATA.request原語,并設置DstAdd r參數(shù)為0xffff(廣播網(wǎng)絡地址)廣播形式發(fā)送時間同步組包命令[5]。組包中包括了A節(jié)點的層次號0,A節(jié)點的ID號,并指定B節(jié)點為其下一跳同步節(jié)點。當B節(jié)點收到A節(jié)點發(fā)送的廣播組包后,記下自己的層次號為1,父節(jié)點的ID號為A,并與A節(jié)點進行時間同步。同樣,B節(jié)點也以廣播的方式發(fā)送同步組包,指定E節(jié)點為其下一跳同步節(jié)點。當C、D、E節(jié)點收到B節(jié)點的廣播同步包后,分別記下自己的層次號為2,但只有E節(jié)點才與A節(jié)點進行時間同步。
圖5 實驗節(jié)點組網(wǎng)圖
次路徑上的時間同步:在主路徑上時間同步完成后,這時就可以在次路徑上進行時間同步。對同步精度要求不是很高的情況下,次路徑可以選擇較長的周期進行同步,以減少網(wǎng)絡的功耗。在子網(wǎng)絡1中,B節(jié)點以廣播的方式發(fā)送同步信息包,當然與主路徑的同步包不同,這時B節(jié)點指定的下一跳節(jié)點為C、D兩個節(jié)點。但C、D兩個節(jié)點收到B節(jié)點的同步包后,修改自己的本地時間以達到以節(jié)點B的同步,子網(wǎng)2采用同樣的辦法進行同步。
主路徑誤差分析,根據(jù)圖2中的消息傳輸過程,可以得出以下各式:
在式(1)、(2)中,t1、t2是由標準時鐘所確定的,表示UTC時間。T1、T2分別是t1、t2所對應的本地節(jié)點所測出的本地時間。SA代表節(jié)點A的報文發(fā)送時間,AA是發(fā)送報文的訪問時間,TA→B是A節(jié)點按比特傳輸報文與B節(jié)點按比特接收報文所需要的時間,PA→B是節(jié)點A傳播到節(jié)點B的時間。RB是節(jié)點B的報文接收處理過程時間。NAt是傳輸NA個比特的總時間。Terror指傳輸比特的誤差,Rerror打時標過程存在的誤差。代表節(jié)點A與節(jié)點B在t1時刻的時偏。因為在實驗中我們采用了MAC層的打時標方法,這樣就可以消除了發(fā)送時間與訪問時間對誤差的影響。于是式(1)、(2)就可以簡寫為式(3)、(4)。
由以上各式可以得到時偏:
次路徑上的誤差分析,由圖1可以看出,發(fā)送節(jié)點A在T0時刻檢測到空閑,接收節(jié)點B在報文到達時刻給報文加上時間戳T1,并在調(diào)整自己的本地時間記錄之前記錄下此時的時刻為T2,在T3時間完成調(diào)整。則可以得到[6]:
式子TA→B+RB=nt+Terror+Rerror+(T2-T1)中,n是前導碼的長度,于是可以得到DMTS的時偏m:
從式(7)中可以看出TPSN的誤差較小,因為兩個傳感節(jié)點的距離較小,而電波的傳播速度快,所示PUC通常都在μs范圍之內(nèi),而兩個節(jié)點之間的來回時偏基本是不變的。所以TPSN誤差大部分是由兩個節(jié)點收、發(fā)報文的時間差。從式(10)中可以看出,DM TS是單播傳送報文,所示不能消除Terror和Rerror的影響。雖然TPSN算法精度較高,但同步一次,需要發(fā)送2個消息和接收2個消息,共4個消息的能量消耗。DM TS算法精度較差,但同步一次,只需要發(fā)送1個消息和接收1個消息,共2個消息的能量消耗。所以結合了兩者的優(yōu)點,在無線傳感器網(wǎng)絡中不僅保證了網(wǎng)絡的精確度,也減少了整個網(wǎng)絡的功耗。
算法總體流程如圖6所示,主路徑程序流程如圖7所示,次路徑程序流程如圖8所示。22
圖6 算法總體流程
圖7 主路徑程序流程
圖8 次路徑程序流程
本文的創(chuàng)新在于融合了DM TS和TPSN兩種時間同步算法,網(wǎng)絡功耗和精度均介于兩者之間。雖然相較于TPSN算法,在同步精度上有所下降,但網(wǎng)絡節(jié)點功耗低于TPSN算法,特別適用于同步精度要求不是非常高的中小型無線傳感器網(wǎng)絡中。
[1]田賢忠,陳登,胡同森.無線傳感器網(wǎng)絡按需時間同步算法研究[J].傳感技術學報,2008,21(11):1881-1886.
[2]宋文.無線傳感器網(wǎng)絡技術與應用[M].北京:電子工業(yè)出版社,2007:128-144.
[3]Ping S.Delaymeasurement time synchronization for wireless sensor networks(IR-TR-2003-64).Intel Research Center,2003.
[4]MarotiM,Kusy B,Simon G.The Flooding time synchronization inw ireless sensor networks:ACM SenSys'04,November 2004,Baltinore[C].
[5]呂治安.ZigBee網(wǎng)絡原理與應用開發(fā)[M].北京:北京航空航天大學出版社,2008:120-140.
[6]封紅霞,周瑩.無線傳感器網(wǎng)絡的時間同步算法誤差分析[J].儀器儀表標準化與計量,2006(6):30-33.