李正文, 張海濤,白文禮
(1. 61206部隊,北京 100042;2. 32022部隊,湖北 武漢 430000)
互聯網授時為計算機用戶和智能手機用戶提供了準確的中國標準時間(北京時間),計算機與手機用戶只要在終端中日期和時間屬性中勾選“自動確定日期和時間(使用網絡提供的時間)”選項,就可以自動獲取互聯網授時,精確度能達到200 ms(來自網絡時間協議)[1].我國國家授時中心具有中國標準時間發播功能,但是只針對互聯網或特定用戶授時.在實際工作生活中,有很多單位,如軍隊、保密部門、涉密企事業單位等,因保密原因,單位業務網須與互聯網物理隔離,只能在局域網內部辦公,而局域網內各計算機只能依靠自帶的價格低廉且精度較差的晶振時鐘維持時間,經常發生漂移,各計算機之間時間差異較大,無法準確、穩定地保持一個統一的時間,給工作生活帶來不便.急切需要一種價格低廉、簡單易用的授時方法,解決各類辦公及業務局域網絡計算機時間不統一的問題.
本文提出一種局域網網絡授時方法,即立足于現有北斗衛星導航系統(BDS)用戶終端,通過軟件開發,將BDS用戶終端UTC時間導入計算機,再通過局域網為網內計算機授時.
局域網授時需要解決兩個方面的問題:一是局域網參考時間源的建立,二是網絡時間傳遞,即網絡內計算機如何保持時間同步[2].本文方案是,利用BDS用戶終端接收BDS信號,獲取UTC時間,通過串口將用戶機時間信號導入到局域網計算機,作為局域網參考時間源;將前述計算機配置為時間服務器,通過網絡時間協議(NTP)提供授時服務,局域網中的其他計算機向時間服務器獲取時間信息,并校準本機時間,實現局域網計算機時間同步.網絡授時系統示意圖如圖1所示.

圖1 BDS用戶終端網絡授時示意圖
基于BDS用戶終端建立網絡授時參考時間源的過程,本質就是BDS用戶終端向單臺計算機授時的過程.為此,需要了解BDS用戶終端接口與數據傳輸協議,以及基于報文數據的授時過程.
1) BDS用戶終端接口與數據傳輸協議
對外接口上,BDS用戶終端普遍采用RS232串口,或通過分線盒轉換為RS232串口.數據傳輸協議采用了國際通用的NMEA-0183協議,NMEA-0183協議是美國國家海洋電子協會為海用電子設備制定的標準格式,是導航設備統一的標準協議,如GPS用戶終端包括7條基本消息:$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL、$GPGSA、$GPZDA,其中$GPZDA消息用于標記當前UTC時間和日期,$GPRMC為推薦最簡定位信息.而BDS用戶終端對應的消息為$BD***,如$GPZDA、$GPRMC對應的消息分別為$BDZDA、$BDRMC,其格式如圖2所示.

圖2 數據傳輸協議標準格式
其中UTC時間為協調世界時,上述接口協議,為利用BDS用戶終端向計算機授時提供了便利.
2)BDS用戶終端向計算機授時流程
默認情況下,支持衛星無線電導航系統(RNSS)功能的BDS用戶終端會以固定的間隔(通常為1 s)向串口推送NMEA-0183標準消息,外部計算機接收并對消息進行解析即可獲得UTC時,將此UTC時間信息及時地寫入本地計算機,即可讓計算機時間與UTC時間同步[3].以$BDZDA為例,基于$BDZDA消息的授時流程如圖3所示.
對Windows系統,校準計算機時間需要用到系統內部函數SetSystemTime.在使用中應注意與SetLocalTime的區別,采用SetSystemTime不必考慮時區轉換,由操作系統根據本機設置自動轉換;而采用SetLocalTime則需要先把標準UTC轉換為本地時間.

圖3 BDS用戶終端向計算機授時流程
解決了參考時間源,還需要將時間信息傳遞到網絡其他計算機.可以利用操作系統自帶的功能,也可以采用獨立的網絡授時軟件[4].Dimension 4是Thinking Man Software研制的一款小巧高效的計算機網絡授時軟件,也是一款自由軟件,最新版本為V5.31.Dimension 4基于SNTP協議和相關算法,獲取網絡時間服務的時間并校準計算機時間.Dimension 4可以作為時間服務器向網絡其他計算機提供時間服務,也可作為時間客戶端.
將Dimension 4作為時間服務器時,需要安裝在前述聯接BDS用戶終端并已同步到UTC時間的計算機上,此時Dimension 4可作為NTP服務器為局域網內計算機提供時間服務.將Dimension 4作為時間客戶端時,可安裝在局域內其他計算機上,按說明配置好參數,可將本機時間同步到時間服務器的時間.
基于前述方案,研制了BDS用戶終端授時軟件,成功將BDS用戶終端的UTC時間導入到計算機,并與Dimension 4授時軟件一起,可為局域網提供UTC時間服務.
軟件研發采用Visual Studio 2008 C#實現.開發所用BDS用戶終端為成都國星通信有限公司某型號BDS手持型用戶終端.該用戶終端可接收北斗二號(BDS-2)衛星無線電測定服務(RDSS)和衛星無線電導航(RNSS)信號,具備導航、定位、授時、短報文通信等功能,可獲取并顯示UTC時間.隨機配備的分線盒帶有RS232串口,可實現與計算機通信,默認參數波特率115200,1 bit起始位,1 bit停止位,無檢校位[5].圖4為BDS用戶終端授時軟件運行界面圖.該軟件主要功能是連接BDS用戶終端,監聽并解析BDS用戶終端串口發送的消息,獲取UTC時間,并校正計算機時間.

圖4 BDS用戶終端授時軟件界面
程序還具備以下功能:
1)串口設置.用于對計算機的串口參數進行設置,保證與BDS用戶終端正常聯機.
2)授時頻率設置.可根據需要,設定向計算機授時的頻率,如10 s每次、30 s每次、1 min每次、5 min每次、15 min每次等.在兩次授時之間,計算機利用本身時鐘保持時間.
3)串口信息顯示.實時顯示BDS用戶終端串口定時發送的$BDZDA或$BDRMC消息,用于監視BDS用戶終端串口是否正確發送所需信息.
4)BDS定時信息顯示.在接收到含時間的消息后,及時解析UTC時間并顯示,同時轉換成帶時區的UTC時間并顯示.本程序顯示的UTC時間已加入本地時區,是為了與日常用時習慣保持一致.
5)偏差設置.理論上計算機獲得的時間與UTC時間仍存在偏差,通過與標準UTC時間比對可得到偏差,啟用此選項可對此偏差進行糾正,提高計算機獲取的時間精度.
6)計算機授時.在獲取BDS用戶終端時間后,點擊開始授時,可按前述設定的頻率,定時校正計算機時間.
7)狀態顯示:在界面底部顯示授時頻率、串口狀態和授時狀態、本機時間.
經與標準UTC時間對比(利用BDS授時型用戶機獲取標準UTC時間,并將兩個時間顯示界面拍照對比),本文方案的UTC時間引入精度優于200 ms,因網絡授時采用NTP,網絡授時精度優于500 ms.
本方案基于BDS用戶終端串口輸出的NMEA0183報文獲取時間,可在不增加外圍硬件電路的情況下,實現計算機時間向UTC時間同步,同步精度可達200 ms,可作為局域網的時間參考,支持多種RNSS接收機,具有較好的適應性.本局域網授時方案成本低廉易于實現,不涉及外網連接,可保證安全,可廣泛應用于涉密辦公網、業務網、指揮所內網等UTC時間授時、統一.