因此,設計一種時間同步算法,是解決物聯(lián)網(wǎng)傳輸層時間同步問題的重要手段。在設計這種時間同步算法時,需要考慮多種問題,比如成本問題、自組織性、抗干擾性、及時性等。此外,還要結合傳感網(wǎng)絡的特點,系統(tǒng)地進行相關算法的設計。
(1)通用時間同步設計
時間同步可以從兩個方面得以實現(xiàn),一個是硬件方面,另一個是軟件方面。要實現(xiàn)時間同步,就必須了解時間同步的組成部件,也就是重新同步事件檢測部件、遠程時鐘估計以及時鐘校準等部件。
通過重新同步事件檢測部件來實現(xiàn)時間同步時,既可以借助初始化同步時鐘數(shù),又可以借助初始化同步消息。一般來說,一個感知節(jié)點在一些情況下會重新調(diào)整它們的時鐘時間,使不一致的時間重新同步,因此就會用到重新同步事件檢測。利用第一種方式進行時間同步,需要將初始化的同步時鐘數(shù)作為調(diào)整時間的依據(jù),在進行時間同步時,需要一個固定的速率kR,其中,k是一個實數(shù),且大于1,而R則表示時間周期。利用這個公式,可以有效避免在兩輪同步過程中出現(xiàn)時間重疊。第二種方式要求利用初始化消息進行時間同步,具體過程是,使一個較為特殊的網(wǎng)絡節(jié)點向其他所有網(wǎng)絡節(jié)點發(fā)送一個初始化消息,這樣一來,其他所有節(jié)點都會根據(jù)這個消息進行時間同步校準。如果發(fā)送的消息延時過長,時間同步的精度就會越低,反之越高。
遠程時鐘估計部件可以通過調(diào)節(jié)一個遠程節(jié)點的本地時鐘來實現(xiàn)節(jié)點的時間同步,這里又可采用兩種方式,第一種是將遠程節(jié)點的本地時鐘時間通過網(wǎng)絡消息向其他節(jié)點傳輸,第二種是節(jié)點讀取其他遠程節(jié)點的時間。
時鐘校準部件同步時間的原理是:當一個重新同步事件發(fā)生后,時鐘校準部件就會根據(jù)這一事件估計出遠程節(jié)點的時鐘信息,然后進行本地時鐘時間調(diào)整,最終實現(xiàn)時間同步。
(2)傳感器網(wǎng)絡時間同步設計
傳統(tǒng)的時間同步機制有兩種,一種是網(wǎng)絡時間協(xié)議,另一種是GPS。但是傳感器網(wǎng)絡的時間同步設計并沒有采用這兩種相對成熟的機制,因為這兩種同步時間機制的算法相對復雜,組建成本比較高。
在設計傳感器網(wǎng)絡時間方案時,不僅要考慮時間同步的精確性,還要考慮算法的復雜性,如果算法太過復雜,就會產(chǎn)生過多的電能損耗,這對于傳感網(wǎng)絡是一個致命的打擊。因此,設計傳感網(wǎng)絡必須同時從精確性和復雜度兩方面來考慮。簡單來說就是,要在精確性和復雜度之間找到一個平衡點,以便既能保證時間同步的精度,又能降低時間算法的復雜度,從而確保傳感網(wǎng)絡的高效、持續(xù)工作。具體來說,需要從以下幾個方面考慮:
?、俚湍芎?。傳感器網(wǎng)絡節(jié)點的供電電源無法經(jīng)常更換,所以,為了節(jié)約用電,確保傳感器網(wǎng)絡能夠長時間持續(xù)工作,時間同步算法的復雜度要低,這樣可以降低能耗。
②精確度。不同的應用具有不同的時間同步精度,對時間同步精度要求不高的應用,只要確保它們正常工作便可,不需要過分要求精度;對于時間同步精度要求在毫秒級以上的應用,要著重進行優(yōu)化設計,確保精度可行。
③可靠性。傳感器網(wǎng)絡屬于自動化系統(tǒng)網(wǎng)絡,很少需要人工干涉,這就要求在惡劣的自然環(huán)境下仍能繼續(xù)工作,而相關網(wǎng)絡節(jié)點的抗干擾能力足夠強,才能保持時間協(xié)議的有效性。
?、芸蓴U充性。傳感器網(wǎng)絡中的節(jié)點會根據(jù)應用的需要進行增添,所以,設計出的時間同步協(xié)議要隨時能夠滿足增添傳感器節(jié)點的需要,同時還要滿足高容量、高密度的需要。
⑤及時性。一些應用的時間同步需要在緊急情況下實現(xiàn),這就要求時間同步協(xié)議具有高效執(zhí)行性,也可以稱為“工作及時性”。
⑥成本廉價性。一般來說,傳感器節(jié)點具有結構簡單、尺寸小、成本低廉的特點。而類似GPS等設備雖然能實現(xiàn)時間同步,但一方面其體積較大,無法安裝在較小的傳感器節(jié)點上,另一方面,這類設備的成本較高,無法大規(guī)范普及,因此,設計傳感器網(wǎng)絡時間同步算法要遵循成本低、設備尺寸小的原則。
(3)成對節(jié)點間的時間同步設計
如果說全網(wǎng)的時間同步是一個整體,那么成對節(jié)點間的時間同步就是組成這個整體的單元。例如,節(jié)點A和節(jié)點B要實現(xiàn)時間同步,只需要將兩者之間的時間數(shù)據(jù)相互交換便能實現(xiàn)。具體過程如下:
首先節(jié)點A要在某一時間點T1向節(jié)點B發(fā)送一個同步脈沖分組,之后,節(jié)點B會接收這個脈沖中分組,并記錄分組到達時的對應時間T2,而從節(jié)點A到節(jié)點B所用的傳輸時間用D表示,則T2=T1+D。但由于節(jié)點A和節(jié)點B的時鐘可能出現(xiàn)時間偏差d,所以最終的T2=T1+D+d。其中,D未知,影響其時間長短的因素一般有兩個,一個是節(jié)點間的傳播距離,另一個是無線網(wǎng)絡技術的傳播特性。
然后,節(jié)點B也會反饋發(fā)射一個分組給節(jié)點A,假設節(jié)點B發(fā)送分組時的時間是T3,節(jié)點A接收分組的時間是T4,則T4=T3+D-d。
如圖所示:
成對同步的分組交換
根據(jù)對應關系,可以計算出偏差d和傳輸時間D,公式為:
d=((T2-T1)-(T4-T3))/2
D=((T2-T1)+(T4-T3))/2
將計算出的時間差d傳輸以分組的形式傳輸給節(jié)點B,就可以實現(xiàn)時間同步。但是上述內(nèi)容的成立必須基于節(jié)點A和節(jié)點B之間的傳輸時間一致,也就是必須保證D1=D2。然而實際上它們并不相同,仍然會存在同步誤差,如果應用對時間同步精度的要求不高,這樣的計算就省時省力,且能祈禱實際作用,否則,還需進一步進行計算。
(4)成對同步誤差分析
傳輸時間由發(fā)送時間、傳播時間、接收時間以及訪問時間構成。
①發(fā)送時間。發(fā)送時間由兩部分組成,一是處理時間,二是緩沖時間,總體來說就是裝配消息的時間。發(fā)送時間與傳輸時間不存在交叉和干擾,這是因為兩個時間是分開進行的,發(fā)送時間完成后,系統(tǒng)才會為分組加上時間戳。
?、趥鞑r間。傳播時間受節(jié)點間距離的影響,是一個節(jié)點通過物理介質(zhì)向另一個節(jié)點傳播分組的時間。理論上,傳播時間在兩個節(jié)點間的雙向傳輸時間是一樣的。
?、劢邮諘r間。接收時間符合高斯分布,是節(jié)點接收消息后的時間與節(jié)點告知計算機的處理時間之和。它的方差為8,均值為0,一般8等于11μS。
?、茉L問時間。節(jié)點將分組傳到MAC層,訪問信道需要一定的等待時間,這個時間與載波監(jiān)聽的時間之和便是訪問時間。其節(jié)點發(fā)送的分組會經(jīng)過同一個信道,并在同一個MAC傳輸。因此,訪問時間也符合高斯分布,其中的均值也為0。
通過以上分析可以看出,只有接收時間以及訪問時間才是誤差的來源。經(jīng)實驗測算,它們的方差最大相差4倍,兩者同步的概率是99%,精確度公式為:
X=2.3×4×8,
8=11μs,
則X=0.1ms。