張科
摘 要:近年來ZigBee工業(yè)無線網(wǎng)成為人們關(guān)注的熱點,由于省去了繁瑣的線路布置,可廣泛應(yīng)用于石油、化工、環(huán)境檢測等不易布線的工業(yè)領(lǐng)域。在ZigBee無線網(wǎng)絡(luò)數(shù)據(jù)傳輸中要求各部分網(wǎng)絡(luò)時間同步,網(wǎng)絡(luò)時間同步技術(shù)應(yīng)經(jīng)成為ZigBee網(wǎng)絡(luò)的關(guān)鍵性技術(shù)。本文借鑒ZigBee網(wǎng)絡(luò)時間同步的一些算法,提出了網(wǎng)絡(luò)分層和點與點時間同步的時間同步方式。并通過實驗對該方案進(jìn)行了驗證。
關(guān)鍵詞:ZigBee無線網(wǎng)絡(luò);ZigBee協(xié)議;時間同步
中圖分類號:TN929 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-2064(2017)01-0035-01
1 概述
目前行業(yè)內(nèi)外相關(guān)技術(shù)人員對ZigBee網(wǎng)絡(luò)時間同步算法已經(jīng)有了一定的研究,提出了多種網(wǎng)絡(luò)時間同步算法。例如借助無線網(wǎng)絡(luò)廣播特點的RBS算法,其節(jié)點將時間參考信標(biāo)發(fā)送到臨近節(jié)點,臨近節(jié)點接收并提取時間信息后,參考接收到的時間信息對本地時間進(jìn)行調(diào)整,從而實現(xiàn)和臨近節(jié)點的時間同步。該方法避免了數(shù)據(jù)發(fā)送和訪問的時間影響,使系統(tǒng)中臨近節(jié)點的時間同步精度有效的提高。同樣基于層次結(jié)構(gòu)的TPSN算法,通過周期性的執(zhí)行時間同步操作,可進(jìn)行全網(wǎng)節(jié)點的時間同步。另外還有需進(jìn)行時間同步請求的LTS算法,該算法在節(jié)點需要進(jìn)行時間同步時,就發(fā)送請求指令到相鄰節(jié)點,若相鄰節(jié)點位于同步狀態(tài),則該節(jié)點把同步時間信息發(fā)送回發(fā)出同步請求的節(jié)點,若該節(jié)點未處于同步狀態(tài),則發(fā)送同步信息到更加臨近時鐘的節(jié)點,直至?xí)r間同步完成,該方式可以節(jié)省網(wǎng)絡(luò)資源,但其時間同步時間和網(wǎng)絡(luò)深度有關(guān)。[1]每種算法都有各自的優(yōu)缺點,本文介紹了基于分層的HRTS算法的網(wǎng)絡(luò)時間同步算法。
2 基于HRTS算法的網(wǎng)絡(luò)時間同步算法的構(gòu)建
2.1 HRTS算法
HRTS算法是一種“發(fā)送-接受”的時間同步算法。該方法借助發(fā)送方和接收方間的三次數(shù)據(jù)通訊中的時間標(biāo)記實現(xiàn)二者的時間同步。在首次數(shù)據(jù)通信中,發(fā)送方發(fā)送時間同步請求,并記錄此次通訊的時刻。發(fā)送節(jié)點廣播范圍內(nèi)的所有節(jié)點都會記錄接受時間,但在時間同步請求的發(fā)送后只有應(yīng)答節(jié)點進(jìn)行回復(fù)應(yīng)答。應(yīng)答節(jié)點向發(fā)送方的應(yīng)答為第二次通訊,通訊數(shù)據(jù)中包括應(yīng)答節(jié)點的命令接收時間以及應(yīng)答時間,發(fā)送方同時記錄接收回復(fù)的時間。發(fā)送方根據(jù)兩次通訊的時間計算時間補償值,并最終把經(jīng)過校正的同步時間通過第三次通訊發(fā)送給臨近節(jié)點。從而最終實現(xiàn)節(jié)點的時間同步。[2]
通訊的發(fā)送和接收延時、數(shù)據(jù)傳輸延時、訪問延時以及命令處理延時是影響時間同步精度的主要因素。在實際應(yīng)用中,可以通過在MAC層進(jìn)行時間標(biāo)記的方式減小通信發(fā)送和接收延時。由于電磁波的傳播速度很快,因此數(shù)據(jù)傳輸?shù)臅r間可以忽略不計。通訊質(zhì)量影響訪問延時,具有極大的不確定性。因此,同步算法的重點在于發(fā)送和接收延時的處理。
2.2 分層時間同步算法分析
當(dāng)系統(tǒng)中節(jié)點數(shù)目很多,超出廣播范圍時,上文的算法就難以滿足時間同步的要求,必須將同步有效的擴(kuò)散到整個網(wǎng)絡(luò),實現(xiàn)全網(wǎng)的時間同步。因此將網(wǎng)絡(luò)分層的思想引入,形成分層的時間同步方案。首先將通訊網(wǎng)絡(luò)中的節(jié)點分層,并標(biāo)記層次號,層次號可以看出節(jié)點距離時間參考節(jié)點的距離,層次好越低表明距離參考節(jié)點越近。之后在每一層可以采用HRTS算法進(jìn)行時間同步,最終實現(xiàn)全網(wǎng)時間同步。[3]具體方法如下:
(1)在系統(tǒng)初始化時,將協(xié)調(diào)器的層次賦值為0,其余節(jié)點層次號均設(shè)為系統(tǒng)最大允許層次;
(2)網(wǎng)絡(luò)建立之后,每當(dāng)有節(jié)點加入,協(xié)調(diào)器就發(fā)送一個分層命令,并在通訊數(shù)據(jù)中標(biāo)明其層次號;
(3)節(jié)點受到分層命令后,獲取層次號。若該節(jié)點的層次號為最大層次號,則將接收的層次號加一設(shè)為自身層次號,并回復(fù)上級的分層命令,同時說明自身的層次號。源節(jié)點收到分層回復(fù)數(shù)據(jù)后,將收到的節(jié)點層次號和地址保存。若該節(jié)點的層次號為收到的層次號,則說明該節(jié)點已經(jīng)做好了分層。若該點層次號比收到的層次號大一,則說明該層為上層信息發(fā)送源,則應(yīng)將該信息和地址進(jìn)行保存。若收到其他層信號則可直接忽略;
(4)若節(jié)點由于某些原因斷開了通訊,則可將其層次號重新標(biāo)記為最大層次號;
(5)在每層節(jié)點中,利用上文所述的HRTS算法進(jìn)行時間同步。
2.3 分層同步算法的設(shè)計
(1)數(shù)據(jù)構(gòu)成。時間同步通常有定時同步和命令同步兩種。只要網(wǎng)絡(luò)中的節(jié)點有子設(shè)備,定期同步就會啟動。當(dāng)有新節(jié)點接入時,上層設(shè)備就會對節(jié)點進(jìn)行命令同步。每一個設(shè)備將自身時間標(biāo)記以一個32位的有符號數(shù)的方式存儲,并在初始化階段賦值為0。另外,協(xié)調(diào)器還需設(shè)定周期同步時間,當(dāng)時間間隔到達(dá)時執(zhí)行同步。時間同步通訊數(shù)據(jù)中木點節(jié)點地址和源節(jié)點地址為16位地址,廣播數(shù)據(jù)由1個字節(jié)的類型標(biāo)志和5個字節(jié)的數(shù)據(jù)組成。
(2)同步算法設(shè)計。當(dāng)有新設(shè)備加入時,協(xié)調(diào)器進(jìn)行命令同步,執(zhí)行單層定向廣播,形成MAC層幀結(jié)構(gòu),同步源將本地時間發(fā)送。子設(shè)備收到同步命令后,利用分層時間同步同步自身的時間。
在系統(tǒng)正常運行過程中,由協(xié)調(diào)器執(zhí)行定期同步,形成MAC層幀結(jié)構(gòu),子設(shè)備收到命令后,進(jìn)行適當(dāng)?shù)男拚螅伦陨頃r間,并對下層子設(shè)備執(zhí)行時間同步操作。
2.4 系統(tǒng)時間同步效果的驗證
我們利用相關(guān)的處理器芯片構(gòu)建了簡單的無線傳感器網(wǎng)絡(luò)測試平臺。在協(xié)調(diào)器將網(wǎng)絡(luò)搭建完成以后,進(jìn)行了分層時間同步操作。通過對子設(shè)備和源節(jié)點設(shè)備同步時間的對比對同步時間精度進(jìn)行了驗證,同步時間誤差在10ms以內(nèi)。結(jié)果表明該方式完全滿足網(wǎng)絡(luò)時間同步的精度要求。
3 結(jié)語
隨著無線通訊技術(shù)的不斷發(fā)展,無線傳感器的應(yīng)用將越來越廣泛,無線時間同步精度要求越來越重要。本文論述的分層時間同步算法簡單易行,負(fù)荷ZigBee通訊協(xié)議的要求,尤其適合網(wǎng)絡(luò)節(jié)點較多的無線網(wǎng)絡(luò),同時,整個系統(tǒng)具有較好的擴(kuò)展性能。節(jié)點出現(xiàn)斷網(wǎng),在回復(fù)通訊后也能較好的恢復(fù)時間同步。很好的滿足了實際生產(chǎn)的需求。
參考文獻(xiàn):
[1]謝潔銳,胡月明,劉才興,等.無線傳感器網(wǎng)絡(luò)的時間同步技術(shù)[J].計算機工程與設(shè)計,2007,28(1):76-77,86.
[2]屠樂奇.高精度計算機網(wǎng)絡(luò)時鐘同步技術(shù)的研究[D].北京化工大學(xué),2010.
[3]周賢偉,韋煒,覃伯平.無線傳感器網(wǎng)絡(luò)的時間同步算法研究[J].傳感技術(shù)學(xué)報,2006,19(1):20-25,29.