唐藝靈
摘要:PTP精確時(shí)間同步協(xié)議廣泛應(yīng)用于分布式網(wǎng)絡(luò)系統(tǒng)中,本文針對(duì)實(shí)時(shí)測(cè)控網(wǎng)絡(luò)系統(tǒng)中各種影響因素的特點(diǎn),結(jié)合PTP協(xié)議時(shí)鐘同步機(jī)制,提出了一種適用于網(wǎng)絡(luò)環(huán)境下的高精準(zhǔn)時(shí)鐘同步方法,通過(guò)采用響應(yīng)同步機(jī)制以及對(duì)測(cè)控?cái)?shù)據(jù)進(jìn)行處理,實(shí)現(xiàn)亞毫秒精度的時(shí)鐘同步。
關(guān)鍵詞:PTP協(xié)議;局域網(wǎng);時(shí)鐘同步;精確時(shí)間;測(cè)控系統(tǒng)
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)03-0065-02
1 引言
PTP是IEEE-1588標(biāo)準(zhǔn)中定義的一種精密時(shí)鐘同步協(xié)議,主要應(yīng)用于基于局域網(wǎng)的處理控制系統(tǒng),在分布式系統(tǒng)中得以廣泛的應(yīng)用。PTP協(xié)議通過(guò)硬件和軟件的方法將網(wǎng)絡(luò)客戶機(jī)的內(nèi)部時(shí)鐘與主機(jī)的基準(zhǔn)時(shí)鐘實(shí)現(xiàn)同步[1]。應(yīng)用硬件方法時(shí),精度為ns級(jí);軟件方法的精度為ms級(jí)。在計(jì)算機(jī)網(wǎng)絡(luò)中采用軟件方法其精度要達(dá)到亞毫秒時(shí),可能會(huì)受到諸多因素影響而導(dǎo)致系統(tǒng)時(shí)間無(wú)法可靠性同步[2]。就這些因素而言,主要包括交換機(jī)不平衡、接口卡緩沖時(shí)延數(shù)據(jù)包,同時(shí)還包括系統(tǒng)內(nèi)部的相關(guān)影響因素;然而,這些因素即無(wú)法有效的控制,又難以準(zhǔn)確預(yù)測(cè),以致于時(shí)鐘同步性較差。大型靶場(chǎng)的實(shí)時(shí)測(cè)控系統(tǒng)因內(nèi)部設(shè)備終端數(shù)較多,很難用硬件方法實(shí)現(xiàn)PTP時(shí)鐘同步,文章根據(jù)軟硬件系統(tǒng)的特點(diǎn)以及PTP協(xié)議,利用純軟件方式對(duì)高精準(zhǔn)時(shí)鐘實(shí)現(xiàn)同步。為此,我們可以建立一個(gè)高精準(zhǔn)時(shí)鐘,按照同步機(jī)制同步處理測(cè)量結(jié)果,其時(shí)間同步精度到達(dá)了內(nèi)亞毫秒,有效解決了各種不可預(yù)測(cè)因素對(duì)局域網(wǎng)時(shí)鐘同步的影響。
2 PTP協(xié)議時(shí)鐘同步原理分析
就PTP協(xié)議時(shí)鐘同步而言,其中包含了基準(zhǔn)時(shí)鐘以及同步時(shí)鐘;這里所講的時(shí)間同步,實(shí)際上就是分別在發(fā)、接收雙方對(duì)時(shí)間信息等進(jìn)行打時(shí)戳,接收時(shí)根據(jù)戳對(duì)基準(zhǔn)以及同步時(shí)鐘偏差進(jìn)而信息等進(jìn)行計(jì)算,然后采取網(wǎng)絡(luò)傳輸延時(shí)方式予以實(shí)現(xiàn)。PTP協(xié)議中定義了幾種信息類(lèi)型,其中包括同步、跟隨以及延時(shí)校正申請(qǐng)和延時(shí)校正響應(yīng)等類(lèi)型。對(duì)于同步時(shí)鐘與基準(zhǔn)之間的差異而言,主要是由信息包以及時(shí)鐘偏差的傳輸延遲形成的,時(shí)鐘同步又包含了兩個(gè)階段,即偏移校正階段、延時(shí)校正階段。從流程上來(lái)看,如圖1所示。
在A階段(偏移校正),基準(zhǔn)時(shí)鐘于TM1處發(fā)出同步信息至同步時(shí)鐘,而且同步信息中有時(shí)間戳,是關(guān)于數(shù)據(jù)預(yù)計(jì)時(shí)間的描述。由于同步信息中包含了預(yù)發(fā)時(shí)間,因此同步信息發(fā)出的真實(shí)時(shí)間被測(cè)量以后,隨后通過(guò)跟隨信息發(fā)出。同步時(shí)鐘記錄了同步信息的真實(shí)接收時(shí)間,記為T(mén)S1;通過(guò)TM1、TS1能夠?qū)⑼綍r(shí)鐘之于基準(zhǔn)時(shí)鐘的偏差(offset)計(jì)算出來(lái),計(jì)算公式為:offset=TM1-TS1。實(shí)踐中,可根據(jù)時(shí)間偏差對(duì)同步時(shí)鐘進(jìn)行校正,計(jì)算結(jié)果中因有傳輸延時(shí)而必須對(duì)其校正。在B階段,同步時(shí)鐘將延時(shí)校正申請(qǐng)信息發(fā)送至基準(zhǔn)時(shí)鐘,并且由同步時(shí)鐘將準(zhǔn)確時(shí)間(TS2)記錄下來(lái),同時(shí)基準(zhǔn)時(shí)鐘將接收到的準(zhǔn)確時(shí)間(TM2)記錄下來(lái),經(jīng)延時(shí)校正響應(yīng)返回同步時(shí)鐘。此時(shí),同步時(shí)鐘結(jié)合上述時(shí)間(兩個(gè))將網(wǎng)絡(luò)延時(shí)計(jì)算出來(lái),計(jì)算公式為delay=(TM2-TS2)/2,而且利用這一數(shù)值予以校正。
3 PTP協(xié)議下的高精準(zhǔn)時(shí)鐘同步策略
對(duì)于高精準(zhǔn)數(shù)字時(shí)鐘而言,其作為高精準(zhǔn)時(shí)鐘實(shí)現(xiàn)同步的前提和基礎(chǔ),實(shí)際應(yīng)用之前需先建立高精準(zhǔn)時(shí)鐘。為了解決以上因素對(duì)時(shí)鐘同步精度造成的影響,在PTP協(xié)議條件下將響應(yīng)同步制度引入其中,采用直線擬合與過(guò)濾等方法,確保其精度達(dá)到亞毫秒級(jí)。
3.1 構(gòu)造高精準(zhǔn)數(shù)字時(shí)鐘
對(duì)于計(jì)算機(jī)而言,中央處理器上配置了高精度時(shí)鐘,以2GHz的中央處理器為例,其定時(shí)精度達(dá)到了0.5ns。同時(shí),Windows系統(tǒng)還提供了可獲得中央處理器震蕩頻率以及開(kāi)機(jī)后定時(shí)器計(jì)數(shù)值的接口,并且在API接口基礎(chǔ)上構(gòu)造出精準(zhǔn)度相對(duì)較高的邏輯時(shí)鐘。以t0代表中央處理器中的定時(shí)器計(jì)算數(shù)值,用△t代表邏輯時(shí)間之于中央處理器的計(jì)數(shù)偏差;邏輯時(shí)間(t)利用公式t=t0+△t來(lái)計(jì)算,修改邏輯時(shí)間時(shí)可通過(guò)△t的修改來(lái)完成[3]。
3.2 響應(yīng)同步機(jī)制
計(jì)算機(jī)關(guān)卡緩存效應(yīng)下,如果增大兩次傳輸時(shí)間間隔,則時(shí)鐘同步必然會(huì)受網(wǎng)絡(luò)影響,必然網(wǎng)絡(luò)系統(tǒng)穩(wěn)定性差、操作進(jìn)程調(diào)度等因素的影響。響應(yīng)同步機(jī)制的應(yīng)用,能夠解決上述問(wèn)題,減小影響。具體而言,就是在接收信息以后,再返回確認(rèn)信息;此時(shí)發(fā)送方僅在接收確認(rèn)信息后方可在此發(fā)送信息。通過(guò)隔離前后信息的傳輸,可使接收方避免同時(shí)接受全部信息數(shù)據(jù)。
3.3 數(shù)據(jù)處理算法
實(shí)踐中,為了能夠從測(cè)量數(shù)據(jù)中及時(shí)準(zhǔn)確的獲取有價(jià)值的數(shù)據(jù)信息,需對(duì)上述采取擬合法進(jìn)行處理。比如,Data[1:N]代表了N個(gè)測(cè)量所得的數(shù)據(jù),而Data[1:M]代表過(guò)濾所得數(shù)據(jù),其公式為Data[1:M]=fm,n(Data[1:N]),其中M=N-m-n;fm,n先排列數(shù)據(jù),以此來(lái)確保差異相對(duì)較大的數(shù)值可排在數(shù)組兩側(cè),并且將其中的小數(shù)值(m個(gè))和其中的大數(shù)值(n個(gè))去掉,即實(shí)現(xiàn)了過(guò)濾處理目的。其中,m、n均為可變參數(shù),具體根據(jù)數(shù)據(jù)量規(guī)模、穩(wěn)定性而定。對(duì)于Data[1:M]而言,可采用y=C直線公式對(duì)數(shù)據(jù)最小二乘直線擬合,具體擬合公式為C=1/MΣData[1:M],以此從N數(shù)據(jù)中得到擬合值C(最佳值)。
4 精度要求
4.1 實(shí)時(shí)測(cè)控系統(tǒng)概述
某靶場(chǎng)實(shí)時(shí)測(cè)控系統(tǒng)由信息匯集分發(fā)、中心計(jì)算機(jī)、安控臺(tái)、指揮顯示、實(shí)時(shí)數(shù)據(jù)庫(kù)和局域網(wǎng)等六個(gè)分系統(tǒng)組成。(1)信息匯集分發(fā)分系統(tǒng)負(fù)責(zé)對(duì)外信息的接收與發(fā)送。接收各種外部信息,轉(zhuǎn)換為內(nèi)部通信協(xié)議通過(guò)訂閱/發(fā)布機(jī)制向內(nèi)部各分系統(tǒng)轉(zhuǎn)發(fā),將內(nèi)部各分系統(tǒng)產(chǎn)生的信息按照通信協(xié)議向外部發(fā)送,此外還負(fù)責(zé)通過(guò)系統(tǒng)配備的時(shí)統(tǒng)B碼終端向全系統(tǒng)提供網(wǎng)絡(luò)授時(shí)服務(wù),保持系統(tǒng)時(shí)間同步。(2)中心計(jì)算機(jī)分系統(tǒng)負(fù)責(zé)對(duì)外部的各種測(cè)量數(shù)據(jù)進(jìn)行實(shí)時(shí)處理。具備彈道處理、航跡融合處理及目標(biāo)安全故障判斷等實(shí)時(shí)數(shù)據(jù)處理功能,它有很高的時(shí)間同步要求。(3)安控臺(tái)分系統(tǒng)負(fù)責(zé)目標(biāo)飛行試驗(yàn)的安全決策與控制。具備安控指令收發(fā)、記錄與顯示功能,同樣有很高的時(shí)間同步要求。(4)指揮顯示分系統(tǒng)負(fù)責(zé)各種測(cè)控信息的顯示。具備滿足試驗(yàn)、訓(xùn)練及演練等多種任務(wù)的態(tài)勢(shì)綜合處理與展現(xiàn)能力。(5)數(shù)據(jù)庫(kù)分系統(tǒng)負(fù)責(zé)各種實(shí)時(shí)測(cè)控信息的實(shí)時(shí)存貯。具備數(shù)據(jù)查詢、檢索、快速處理、分析與評(píng)估等功能。(6)局域網(wǎng)分系統(tǒng)負(fù)責(zé)系統(tǒng)內(nèi)部信息的傳輸。采用雙網(wǎng)結(jié)構(gòu)保證信息傳輸可靠性。
4.2 實(shí)時(shí)測(cè)控系統(tǒng)同步精度要求
時(shí)測(cè)控系統(tǒng)系統(tǒng)時(shí)間采用北京標(biāo)準(zhǔn)時(shí)間(BST),其具有嚴(yán)格的同步精度要求。(1)中心計(jì)算機(jī)和安控臺(tái)分系統(tǒng)服務(wù)器獲得的時(shí)間與時(shí)統(tǒng)時(shí)間同步精度優(yōu)于100μs;(2)其它分系統(tǒng)服務(wù)器通過(guò)網(wǎng)絡(luò)校時(shí)的時(shí)間平均誤差≤15ms;(3)中心計(jì)算機(jī)分系統(tǒng)服務(wù)器通過(guò)時(shí)碼板產(chǎn)生的1Hz、20Hz中斷信號(hào)延遲≤200μs;(4)內(nèi)部局域網(wǎng)信息傳輸時(shí)延≤5ms。
5 基于PTP協(xié)議高精準(zhǔn)時(shí)鐘同步方法在實(shí)時(shí)測(cè)控系統(tǒng)的應(yīng)用
根據(jù)基于PTP協(xié)議的高精準(zhǔn)時(shí)鐘同步法,按照PTP協(xié)議時(shí)鐘同步機(jī)制以及實(shí)時(shí)測(cè)量數(shù)據(jù),設(shè)計(jì)和運(yùn)用性能比較可靠的時(shí)鐘同步方案。比如,中心計(jì)算機(jī)實(shí)時(shí)處理軟件,其流程如圖2所示。
(1)信息匯集分發(fā)分系統(tǒng)時(shí)統(tǒng)B碼終端產(chǎn)生的基準(zhǔn)時(shí)鐘在TM1[1]發(fā)送同步信息到接收端同步時(shí)鐘,然后將準(zhǔn)確時(shí)刻TM1記錄下來(lái)[1],在FollowUp信息中將同步信息發(fā)送的TM1[1]發(fā)送至同步時(shí)鐘。對(duì)于同步時(shí)鐘而言,其接收同步信息以后,將準(zhǔn)確接收時(shí)刻TS1記錄下來(lái)[1],然后再將確認(rèn)信息OK返回。(2)重復(fù)N次上述過(guò)程,同步時(shí)鐘即可獲得N個(gè)時(shí)鐘的信息發(fā)送與接收時(shí)刻,即TM1[1:N]、TS1[1:N],然后將二者做差,得到Offset[1:N](即N個(gè)偏移值)。(3)對(duì)N個(gè)偏移值過(guò)濾與直線擬合,或者最佳擬合值(offset),并以該值為基礎(chǔ)對(duì)同步時(shí)鐘實(shí)現(xiàn)偏移校正之目的。(4)將DelayReq信息發(fā)送至基準(zhǔn)時(shí)鐘,然后將發(fā)送的準(zhǔn)確時(shí)刻TS2[1]記錄清楚,基準(zhǔn)時(shí)鐘在收到信息后記錄準(zhǔn)確的接收時(shí)刻TM2[1],由DelayResp向同步時(shí)鐘返回TS2[1]。(5)重復(fù)上一步驟M次以后,同步時(shí)鐘即可獲得2M個(gè)時(shí)鐘信息,即TM2[1:N]與TS2[1:N],通過(guò)對(duì)二者做差可得M個(gè)基準(zhǔn)、Delay[1:M](同步時(shí)鐘延時(shí)信息)。(6)過(guò)濾出來(lái)Delay[1:M]并進(jìn)行直線擬合,從而得到最佳擬合值,然后利用這一擬合值對(duì)延時(shí)校正同步時(shí)鐘。
當(dāng)網(wǎng)絡(luò)平穩(wěn)且計(jì)算機(jī)負(fù)載相對(duì)較小時(shí),取M=N=10,m=n=2,精度就能達(dá)到亞毫秒級(jí)。上述步驟完成以后,即實(shí)現(xiàn)了一次基準(zhǔn)、同步時(shí)鐘同步。在此過(guò)程中,為了能夠有效避免因時(shí)鐘累積誤差而造成的系統(tǒng)同步精度問(wèn)題,周期性地重復(fù)以上過(guò)程,即保持了系統(tǒng)同步。
6 結(jié)語(yǔ)
總而言之,基于PTP時(shí)鐘同步機(jī)制,設(shè)計(jì)適用于實(shí)時(shí)測(cè)控系統(tǒng)網(wǎng)絡(luò)環(huán)境下的可以達(dá)到亞毫秒精度的時(shí)鐘同步方法,該方法在實(shí)時(shí)測(cè)控軟件中得到了有效應(yīng)用。
參考文獻(xiàn)
[1]桂本烜,劉錦華.IEEE1588高精度同步算法的研究和實(shí)現(xiàn)[J].電光與控制,2006(5):90-94.
[2]袁振華,董秀軍,劉朝英.基于IEEE1588的時(shí)鐘同步技術(shù)及其應(yīng)用[J].計(jì)算機(jī)測(cè)量與控制,2006(12):1726-1728.
[3]汪文俊,龔育昌,朱建明.基于UDP的局域網(wǎng)內(nèi)時(shí)鐘同步協(xié)議[J].計(jì)算機(jī)應(yīng)用與軟件,2007(5):133-135.