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