無線傳感器網(wǎng)絡(luò)時間同步協(xié)議的實現(xiàn)
1.2 改進(jìn)的時間同步協(xié)議
由于ZigBee無線傳感器網(wǎng)絡(luò)的傳輸速率小,帶寬小等特點,便采用了降低PTP協(xié)議在網(wǎng)絡(luò)中的開銷來實現(xiàn)本系統(tǒng)的時間的精準(zhǔn)時間同步。即減少握手次數(shù),使PTP協(xié)議的偏移測量和延時測量在一次通信過程完成。這個時鐘同步原理示意圖如圖3所示。本文引用地址:http://www.ex-cimer.com/article/159475.htm
該協(xié)議也包括偏移測量和延遲測量:
(1)偏移測量:南于ZigBee網(wǎng)絡(luò)允許節(jié)點是即時加入和脫離的,故不能使用主節(jié)點周期性組播發(fā)送同步報文的方式,而采取子節(jié)點周期性地向主節(jié)點發(fā)送同步報文的方式,主節(jié)點收到此同步報文經(jīng)過處理后將白己的時間信息(包括處理時間,如下式Tm1~Tm2)發(fā)送給相應(yīng)的子節(jié)點,該子節(jié)點收到此時間信息后,就可以計算出與Master的時鐘偏移量。Offset=Ts2-Tm2 (1)
(2)延時測量:從下式可以看出,同步報文發(fā)送之后,子節(jié)點并沒有再發(fā)送延時請求報文,這是因為利用偏移測量過程中的時間信息就可以計算出子節(jié)點到主節(jié)點的傳輸延時。這里計算延時的方法與PTP協(xié)議不同,子節(jié)點記錄同步報文的發(fā)送時間和應(yīng)答報文的接收時間,計算出2個時間的間隔,如下式的Ts2~Ts1,然后減去主節(jié)點的包處理時間,如下式的Tm1~Tm2,把網(wǎng)絡(luò)當(dāng)成對稱網(wǎng)絡(luò),再除以2就得出從時鐘與主時鐘的延遲時間。即
偏移和延時都已經(jīng)計算出來,子節(jié)點再調(diào)整時間Tb,從而達(dá)到主從時鐘的同步。調(diào)整時間的公式
Tb=Tb-Offset+Delay (3)
2 時間同步的實現(xiàn)
ZigBee適用于開放和互操作的設(shè)備,標(biāo)準(zhǔn)從物理層開始定義。但是目前一般物理層和MAC層采用IEEE 802.15.4標(biāo)準(zhǔn),網(wǎng)絡(luò)層、安全層和應(yīng)用層由ZigBee聯(lián)盟開發(fā),ZigBee協(xié)議的構(gòu)架如圖4所示。
2.1 本地時鐘設(shè)計
我們采用的硬件是意法半導(dǎo)體(ST)公司最新推出的一個完全集成的系統(tǒng)芯片(SoC)STM32W108。它集成了32位ARM Cortex—M3微處理器、符合IEEE 802.15.4標(biāo)準(zhǔn)的2.4 G的收發(fā)器、1 28 KB的flash、8 KB的RAM以及各種通用外設(shè)。
STM32W108的定時器示意圖如圖5所示。
具體實現(xiàn)有以下幾個步驟:
(1)通過TIM2_CR1,設(shè)置邊緣對齊,向上計數(shù)模式,TIM2_ARR不使用緩沖;
(2)選擇定時器時鐘clock(本課內(nèi)部時鐘Fpclk=12 MHz);
(3)沒置預(yù)分頻值TIM2_PSC,給TIM2_PSC賦值0,不分頻;
(4)裝載TIM2_ARR和TIM2_CCR2,計數(shù)器清0;
(5)軟件產(chǎn)生事件更新,重新裝載TIM2_ARR;
(6)將GPIOA的引腳3定義為復(fù)用推挽輸出,用timer2的通道2(映射到引腳PA3)作為輸出比較;
(7)TIM2_CCR2和TIM2_CNT匹配時,翻轉(zhuǎn)OC2REF信號;
(8)設(shè)置定時器中斷方式,使能timer2的全局中斷,開始計數(shù)。
(9)產(chǎn)生中斷后,進(jìn)入中斷服務(wù)函數(shù)。
在中斷服務(wù)函數(shù)里,使軟件變量counter++,通過判斷counter是否等于1000000;如果條件滿足,UTC時間加1,counter和TIM2_CNT清0,清除timer2的所有中斷標(biāo)志。
我們將程序下載到芯片中,將數(shù)字示波器的探頭連接到定時器的比較輸出管腳PA3,經(jīng)過實驗的到本地時鐘的情況如下圖所示:
通過定時器和從網(wǎng)關(guān)獲取UTC時間,可確保主節(jié)點有一個絕對時間,由于不能從節(jié)點獲取UTC時間,所以從節(jié)點可能只有一個微秒級的相對時間。這就要求每次從節(jié)點定時喚醒后首要任務(wù)就是校時,確保其和它的父節(jié)點時間同步上。整個網(wǎng)絡(luò)在最終對采集到的數(shù)據(jù)進(jìn)行融合時不出現(xiàn)錯誤或誤差減少。
評論