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