赫美琳,高明惠,祝瑞輝,楊開偉
(1.中國人民解放軍92941部隊,葫蘆島 125001;2.海軍航空大學,煙臺 264001;3.中國電子科技集團公司第54研究所,石家莊 050081;4.衛星導航系統與裝備技術國家重點實驗室,石家莊 050081)
1988年,美國特拉華大學教師DavidL.Mills主持開發了網絡時間協議(Network Time Protocol,NTP)的第一個版本,并在RFC-1059中完整描述了NTP的規范和相關算法[1],之后隨著電子商務,作戰系統等民用、軍用技術的發展和需要,經過20余年的研究,NTP向著更高精度、更強兼容性和多平臺的適應性方向發展,大大增加了應用范圍,目前已有了第四個版本。
偽衛星是一種類衛星的地面導航信號發射設備[2],布設在地面上,可使用戶不修改接收機硬件,只更改軟件就可實現導航定位的功能,特別在衛星信號受遮擋或微弱的情況下能增強接收機的定位精度,既可以同衛星組網聯合定位,也可獨立組建定位系統,是一種對GNSS衛星導航增強的相對獨立定位系統。當偽衛星不具有時鐘計時功能時,無法向用戶發射包含周內秒和周計數信息。
本文結合NTP原理,將網絡時間同步應用到偽衛星開發設計中,針對偽衛星對時間精度要求在秒級的特點,提出一種簡化的偽衛星網絡同步方法(Sample Pseudolite Network Time Protocol,SPNTP),精度可到達10ms,滿足偽衛星系統的需求。
網路時間協議(NTP),規范了網絡傳輸報文格式和相關時間處理算法,使用具有精確、穩定時間源對時間精度較低的設備進行精確校時,避免因每個設備安裝高精度時鐘硬件而提高成本,即提高經濟效益又保證了精度。
NTP通過其規范的網絡傳輸報文可簡單的計算出網絡傳輸延時和計算機時間差。協議規范如圖1所示[3]。
NTP頭包含48個字節,從左到右,從上到下依次為:閏秒標識器(2 bits)、版本號(2 bits)、模式(3 bits)、層(8 bits)、測試間隔(8 bits)、精度(8 bits)、根延時(32 bits)、根離散(32 bits)、參考時鐘標識符(32 bits)、參考時間戳(64 bits)、原始時間戳(64 bits)、接收時間戳(64 bits)、傳送時間戳(64 bits)。

圖1 NTP字段組成
NTP的報文規范保證了校時所需的全部信息。NTP有三種功能模式,分別為對稱模式、客戶端/服務器模式、廣播模式,本文根據偽衛星的特點和實際工作情況選用客戶端/服務器模式和廣播模式進行了研究實驗,客戶端/服務器模式是客戶端(待校時設備)向服務器(精確時間源)發送請求報文,服務器接收到請求報文后,發送一個應答報文,客戶端接收并解析應答報文后計算時間延遲和時間差;在廣播模式中,由一臺或多臺時間源向聯入網絡中的所有待校時設備發送校時報文,待校時報文可選擇接收。廣播網絡中,任何一個客戶端和上級服務器都可組成客戶端/服務器模式,因此以客戶端/服務器模式為例來闡述本文提出的方法。
NTP對時架構包括四個層次的時鐘,第二層是主服務器,經上一層的參考時間源(GPS、電話調制器等)校時,對下一層的從服務器或客戶端進行校時,第四層全部是客戶端,NTP規定最后可有16層。當主服務器直接與客服端相連,且主服務器只有一個時,系統簡化為簡單網絡時間協議(Sample Network Time Protocol,SNTP)[4],如圖2所示 :SNTP方法系統構造簡單,只需要一個穩定、精確的服務器,時間差和網絡延時參數計算方便,適用于對時間精度要求不高的時間待校正系統。
經典的NTP校時方法認為系統中存在多個服務器和多個客戶端,客戶端在一次本地時鐘校正時與所有服務器進行數據交互和過濾,通過交集和聚類算法選擇符合要求的時鐘源來校正客戶端時間,方法流程如圖3所示:

圖2 SNTP對時構架

圖3 NTP校時流程
該方法需要多個穩定、精確的服務器,系統結構復雜,數據處理繁瑣,代價較高,對于有多個精確、穩定時鐘源和對時間精度要求較高的場合,該方法能取得較高的精度。
客戶端打包一個標準的NTP查詢報文發送給服務器,發送時間為T1,服務器接收到該查詢報文時間為T2,服務器回復信息報文時間為T3,T4為客戶端受到服務器的回復報文時間。δ1為查詢報文的網絡傳輸時間,δ2為回復報文的網絡傳輸時間,θ為客戶端與服務器的時間差,當主服務器直接和客戶端相連,且服務器只有一臺時,不再需要交集和聚類算法,當對時間精度要求不高時,進一步簡化,可有下式估算:

假設δ1,δ2相等,即網絡延時對稱,則有

當偽衛星沒有時鐘機制時,無法向服務器提供參考時間T1,同樣也無法得到接收回復報文時間T4,因此上述的計算方法將不再適用,此時,對精度要求只有秒級的偽衛星可直接采用T3作為當前時刻的時間,忽略網絡傳輸延時時間,即可得到周內秒,周計數。SPNTP數據交互如圖4所示。

圖4 SPNTP數據包交互時序圖
在偽衛星與時間服務器組成的廣播網絡中,偽衛星首先接收服務器廣播的NTP報文,提取傳送時間戳信息,作為偽衛星的T1時刻,當向服務器發送查詢報文時,可將T1打包成參考時間戳,以后每當接收到服務器的回復報文時,提取傳送時間戳更新偽衛星的T1時間,同時作為偽衛星當前時刻的時間,用于生成周內秒,周計數電文信息。當系統工作在客戶端/服務器模式時,客戶端首先向服務器發送查詢報文,其中參考時間戳可估計一個大概值,當收到服務器的回復信息時,同廣播模式處理方法相同。
采用無計時功能的XXX型偽衛星,兩根1.5m長度2M網線,型號為S2700-9TP-PWR-EI華為交換機,服務器選用經精確時間原不斷同步的計算機,分別在客戶端/服務器模式和廣播模式進行試驗。在服務器上編寫一個延時測試程序,向偽衛星發送測試報文,記下發送時刻時間,偽衛星接收到測試報文后在下一條語句向服務器發送回復報文,服務器再記錄下接收到客戶端回復報文時的時刻,每種模式進行20次試驗,步長為1s,試驗結果如表1、表2所示。

表1 客戶端/服務器模式下網絡延遲情況

表2 廣播模式下網絡延遲情況
由表1和表2可以看出,兩種模式下,往返一次的網絡延時大都在毫秒級以下,少數延時偽0.001s,對于精確要求為秒級的偽衛星而言,可以完全忽略掉網絡延時的問題,這就證明了本文提出的基于NTP的簡單時間同步方法的可行性,即可直接才用服器的transmit timestamp(傳送時間戳)作為偽衛星當前時刻來打包周內秒,周計數信息電文。
本文結合NTP校時原理,針對偽衛星不具有時鐘計數功能的特點,提出了一種基于NTP的簡單偽衛星校時方法,使偽衛星能夠不斷獲取服務器回復報文時刻的時間,為周內秒,周計數電文的打包提供準確的時間信息,同時保證偽衛星同步工作,精度可達到秒級,滿足偽衛星工作需要。
[1] Mills,D.L.Network Time Protocol(version 1)-specification and implementation.DARPA Network Working Group Report RFC-1059,University of Delaware,July 1988.
[2] 耿建平,唐先紅,欒慎杰.CAPS中偽衛星技術研究與實現[M].西安電子科技大學出版社,2012:1-10.
[3] 王圣懂,方建勇,劉新友.基于NTP協議的一種校時的實現及相關算法[J].2011,33(1):101-107.
[4] Mills,D.,D.Plonka and J.Montgomery.Simple network time protocol(SNTP)version 4 forIPv4,IPv6 and OSI.Network Working Group Report RFC-4330,University of Delaware,December 2005,27 pp.