高兆強
(中國船舶重工集團公司第七一六研究所,江蘇 連云港 222002)
關鍵字:PTP; IEEE1588V2; 卡爾曼濾波;無線網絡時間同步
移動設備間時間一致是各個移動設備協同工作的基礎,廣泛應用在數據融合、節點定位、定時任務等場合,目前在移動無線網絡[1],各個節點普遍采用衛星授時的方式來獲取統一的時間,該方式技術成熟、精度高[2],但是衛星信號的接收容易受到環境的限制,比如在天氣不好或者室內的情況下,往往無法接受到衛星信號,并且衛星信號容易受到干擾,可靠性不高,在軍事、航天等需要高可靠性的領域只采用衛星授時的方式存在安全隱患[3],因此急需一種基于無線網絡的時間同步技術來填補衛星授時的不足。
針對無線網絡時間同步,研究者們提出了眾多的時間同步技術,但是由于無線網絡的移動性、拓撲結構多變性、接入退出變化快等特點,使得眾多時間同步技術在無線網絡應用中存在很大局限性[4],比如:單向時間同步技術時間同步精度不高[5],雙向時間同步技術收斂速度慢,無線網絡環境下安全性低等[6]。本文在分析無線網絡時間同步存在困難的基礎上,結合時間同步領域的最新進展,提出了一種基于IEEE1588V2(PTP)精確時間協議的新型無線網絡時間同步技術。
無線網絡與有線網絡相比存在網絡傳輸延時大,網絡傳輸延時抖動大,網絡拓撲結構容易變化,節點頻率接入退出等特點,這使得單向無線授時方式精度不高,單向時間同步技術是時鐘源廣播發送時間戳報文,其他節點同步接收到時間報文后作為本地時間,由于無線網絡傳輸延遲大,這種時間同步精度不高[7],比如IEEE802.11 使用的TSF 時間同步技術,其精度只有幾十毫秒到1 秒,無法滿足很多需要高精度時間同步的應用。
雙向時間同步采用的是交互時間戳報文,其技術關鍵是精確測量出傳輸時延,從而根據時鐘源的時間矯正本地時間,無線網絡傳輸時延主要有:(1)發送時延:節點構建同步報文并將報文遞交到 MAC 層所用的時間;(2)信道訪問時延:同步報文從檢測信道是否空閑到物理層開始發送報文所用的時間; 信道訪問延時隨機性較大,受當前信道空閑度和網絡負載狀況的影響較大;(3)傳輸時延:發送節點通過天線向外傳輸同步報文所用的時間;(4)傳播時延:節點在媒介中從發送節點傳播至接收節點所用的時間;(5)接收時延:接收節點的物理層通過天線接收同步報文所用的時間;(6)處理時延:接收節點對報文進行處理的時間[8]。除了隨機性較大的發送時延、信道訪問時延、處理時延外,傳輸過程中存在的噪聲經常會在同步報文的時延中引入部分符合高斯或者指數分布的小時延。如何精確計算網絡傳輸時延是無線網絡時間同步技術的關鍵,互聯網上廣泛采用的NTP 時間同步技術在應用層獲取時間戳,其傳輸時延包括了所有以上六種時延,由于含有三個變化比較大的發送時延、信道訪問時延、處理時延,所以其精度不高,只有毫秒到幾十毫秒。而PTP 則采用了硬件時間戳獲取MAC層時間戳,計算傳輸時延時只包含抖動比較小的傳輸時延,因此而能達到亞微米級的精度[9]。
IEEE1588 協議又稱精確同步時鐘協議,即PTP(Precision Time Protocol)協議。PTP 系統是一個分布式的網絡結構,協議運行的邏輯范圍稱為一個域。PTP 系統由一個或者多個PTP 子域組成。在一個PTP 系統中,時鐘源(Grandmaster clock)提供整個系統的時間源。實現協議只需要在原有的網絡上添加時間同步報文,這些報文只占用少量的網絡資源[10]。
PTP 同步技術主要是通過精確計算網絡傳輸時延,計算出從時鐘相對于主時鐘的時間偏差,然后調整本地時間與時鐘源的時間保持一致。具體流程如圖1 所示,主時鐘會定期發送帶有發送時間t1 的同步報文SYN,從時鐘接收到同步報文后記錄本地時間t2,然后馬上發送時延請求報文DELAYREQ,并記錄發送時間t3,主時鐘接收到延請求報文DELAYREQ 后記錄接收到的時間t4,然后發送時延請回應報文DELAYRSP,這樣從時鐘會有四個時間戳,根據協議技術出單向時延和時間偏差。

圖1 PTP 時間同步過程
同步原理為公式1 和公式2 所示。

公式1 計算主從時鐘間的網絡傳輸時間,公式2 計算主從時鐘的時間差,在實際情況中,兩次傳輸時間不是一樣的,兩者之間存在時間偏差,這個偏差稱為網絡傳輸抖動,PTP 時間同步精度是該偏差的一半。
為了提供時間同步精度,首先需要消除網絡協議棧的影響,需要更底層獲取時間,獲取時間的位置如圖2 所示。

圖2 時間戳獲取位置
更底層的時間獲取位置,可以消除協議棧抖動對時間同步精度的影響,經過測試,在簡單的網絡中,C 處獲取時間,由于網絡協議棧對時間同步精度的影響,PTP 同步為幾百微秒到幾毫秒;B 處獲取時間,由于網絡硬件發送擁塞,PTP 時間同步精度為微秒到幾十微秒;借助硬件在A 處獲取時間,PTP 時間同步精度可以達到納秒級別。為了易于實現并且節約成本,本方法在B 處獲取時間,修改網卡的驅動,修改所有經過PTP 時間端口的報文,在報文的特定位置增加時間信息。
移動網絡中移動節點一般都在無序地運動,這使得網絡傳輸路徑時刻在變化,簡單平均來計算單向傳輸時延不準確,它與實際的單向傳輸時延存在一個誤差,該誤差與移動節點的運動狀態有關,需要對計算出來的單向延時進行濾波,根據文獻介紹在移動互聯局域網絡中,移動節點相對于主節點的相對運動符合高斯白噪聲的特性,因此本文采用卡爾曼濾波的方式對傳輸時延進行濾波,得到更接近真實值的單向時延。
在PTP 協議模型中,短時間內單向時延是固定的,但是根據對移動網絡的分析,短時間內單向時延是不斷變化的,存在或多或少的偏差,該偏差可以看作是高斯白噪聲。另外,根據PTP 模型,每隔一段時間會計算出一個單向時延,由于移動節點的移動性,該計算也是不準確的,該偏差也可以看作是高斯白噪聲,現在可以根據單向時延的經驗值和測量值,以及它們各自的噪聲來估算出單向時延。
假如要估算k時刻的實際單向時延,首先需要根據k-1 時刻的單向時延,來預測k時刻的單向時延,因為根據經驗其值是固定的,所以k時刻的單向時延為

上一次的誤差協方差Pk-1和過程噪聲Q預測新的誤差

過程噪聲Q根據節點的一段時間內運動狀態而定,是運動速度累積的積分:

對應單向時延的實際狀況:

計算卡爾曼濾波增益:

對應于當前模型:


在IEEE1588v2 協議中約定,時間更新的頻率高于單向時延計算的頻率,這是基于穩定的網絡環境而設定的,對于移動網絡,節點不停地運動,導致單向時延是一個不斷變化的值,所以每次計算時間偏差必須基于最新的單向時延。其最新的時間修正過程如圖3 所示。

圖3 時間同步過程
為驗證該無線局域網絡時間同步技術的性能,本文設計了一個含有無線路由器的無線局域網絡,內部含有不斷運動的移動節點,作為時間從時鐘,一個原子鐘作為時間主時鐘,主時鐘通過衛星授時來獲取精確的時間,并通過無線網絡利用PTP 協議給無線網絡內部的子節點授時,子節點通過PTP 協議與主時鐘的時間保持一致,并且子節點上有一款硬件時鐘板,通過衛星獲取時間,以便對比PTP 時間同步的精度,具體架構圖如圖4 所示。

圖4 實驗驗證結構
首先從時鐘采用標準的PTP 協議,在應用層獲取時間戳,連續運行6 個小時,通過硬件時鐘板記錄的時間作為對比,記錄時間偏差,如圖5 所示。

圖5 軟件時間戳PTP 時間同步精度
從圖5 可以看出,其偏差基本在300μs 以內,標準差為59μs,這與無線網絡不忙、路由器性能較好有關,如果網絡繁忙,其同步精度只能在10ms以內,并且由于協議棧的影響,網絡抖動比較大,時間偏差的抖動也比較大。
然后在從時鐘上采用驅動層時間戳的PTP 軟件,連續運行一個小時,通過硬件時鐘板記錄的時間作為對比,記錄時間偏差,如圖6 所示。

圖6 驅動層時間戳PTP 時間同步精度
從圖中可以看出,通過在驅動層加時間戳,其偏差的穩定性好了很多,但是由于移動的存在,使得通過平均計算出來的單向時延與實際值存在差異,這種差異通過濾波會得到一定的修正。
最后測試本文提出的無線時間同步算法的性能,在同樣的環境中,從時鐘運行本文提出的時間同步方案,連續運行一個小時,記錄時間偏差如圖7 所示。

圖7 最新算法的時間同步精度
從圖中可以看出,經過濾波和對協議的改進,時間同步的精度穩定在10μs 以內。
本文首先分析了目前各種應用場合對無線網絡時間同步技術的迫切需求,以及無線時間同步技術存在的種種困難,提出了基于IEEE1588V2 精確時間協議的無線時間同步技術,根據無線時間同步的困難和特點,采用底層的時間戳,單向時延卡爾曼濾波,以及修改協議棧的方式,改進PTP 時間協議使其適應無線網絡,并通過實驗驗證,證明該方案的時間同步精度可以達到優于10μs,可以滿足絕大部分無線網絡應用場景。