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