吳培棟
(1.北京全路通信信號研究設(shè)計院集團(tuán)有限公司,北京 100070;2.北京市高速鐵路運(yùn)行控制系統(tǒng)工程技術(shù)研究中心,北京 100070)
列車運(yùn)行控制系統(tǒng)中,存在車載、地面等多個子系統(tǒng),各個子系統(tǒng)中又存在多個子設(shè)備,是典型的分布式系統(tǒng)[1,2]。為滿足安全控制列車的需求,部分設(shè)備之間需要保持時鐘同步。時鐘同步后,設(shè)備之間可以對通信數(shù)據(jù)包的時序性、實(shí)時性進(jìn)行檢查,也可以估算通信傳輸延時,并據(jù)此做時間、距離等變量補(bǔ)償[3]。
成熟的時鐘同步算法有很多種[4],在列車運(yùn)行控制系統(tǒng)中,SUBSET-056 STM FFFIS Safe Time Layer中提出的時鐘同步算法應(yīng)用較為普遍[5]。本文對此時鐘同步算法進(jìn)行研究,提出該算法應(yīng)用階段相關(guān)配置參數(shù)的計算方法。
參考時鐘源周期的向其他節(jié)點(diǎn)廣播時鐘信息,其他節(jié)點(diǎn)在收到一定數(shù)量的時鐘信息后,結(jié)合自己本地時鐘,計算出初始的調(diào)整因子,此時該節(jié)點(diǎn)完成初始的時鐘同步。之后,該節(jié)點(diǎn)繼續(xù)根據(jù)參考時鐘源周期廣播的時鐘信息,持續(xù)更新調(diào)整因子,保持與參考時鐘源的同步。以圖1為例進(jìn)行簡要說明,其中,參考時鐘節(jié)點(diǎn)(Reference Clock Node,RCN)表示參考時鐘源設(shè)備,本地時鐘節(jié)點(diǎn)(Local Clock Node,LCN)表示需進(jìn)行時鐘同步的節(jié)點(diǎn)設(shè)備。
圖1 時鐘同步示意圖Fig.1 Schematic of clock synchronization
LCN啟動后,應(yīng)等待RCN發(fā)送的系統(tǒng)時鐘信息,并在RCN開始發(fā)送系統(tǒng)時鐘后,啟動時鐘同步流程。假設(shè)LCN在時刻n收到RCN發(fā)來的參考時鐘RefTime[n],并記錄下本地時鐘LocalTime[n],時間同步流程如下:
當(dāng)LCN從RCN收到至少M(fèi)幀有效時鐘報文后,按下面的公式計算出調(diào)整因子:
當(dāng)LCN得到第一個調(diào)整因子后,即認(rèn)為時鐘同步成功,向RCN發(fā)送時鐘同步確認(rèn)信息。LCN得出調(diào)整因子后,每收到一幀有效時鐘報文,按照上述方法對調(diào)整因子進(jìn)行更新。
經(jīng)過時鐘同步后的LCN本地時鐘為:
完成時鐘同步后,LCN可進(jìn)行短時漂移監(jiān)控和長時漂移監(jiān)控。
1.2.1 短時漂移監(jiān)控
當(dāng)時鐘同步以后,LCN時鐘與RCN時鐘的差值應(yīng)該在限定范圍Tss(短時漂移)內(nèi):
1.2.2 長時漂移監(jiān)控
當(dāng)時鐘同步以后,不同時刻的調(diào)整因子應(yīng)該在限定范圍Tls(長時漂移)內(nèi):
其中,n表示LCN接收到有效RCN時鐘報文的時刻,k表示在n之前不超過ΔT范圍內(nèi)收到第一個有效RCN時鐘報文的時刻。
一般來說,長時漂移率不應(yīng)超過0.1%,即Tls≤ΔT×1%[7]。短時漂移Tss一定程度上反映了實(shí)時性要求,需要根據(jù)實(shí)際應(yīng)用場景來配置。參數(shù)配置過大影響安全性,參數(shù)配置過小又影響可用性。以下主要對該參數(shù)的配置進(jìn)行研究。
如圖2所示,說明如下。
圖2 RCN時間系超前于LCN時間系Fig.2 RCN time system is ahead of LCN time system
1)T軸和t軸分別表示RCN本地時間系和LCN本地時間系;
2)ΔS表示RCN時間系與LCN時間系的差值。當(dāng)RCN時間系超前于LCN時間系時,ΔS>0;當(dāng)LCN時間系超前于RCN時間系時,ΔS<0;當(dāng)RCN時間系與LCN時間系同步時,ΔS=0;
3)Δxi(i=1,2……,16)表 示 RCN 在 Ti(i=1,2……,16)時刻得到系統(tǒng)時間Ti,經(jīng)過任務(wù)處理,Δxi后將時鐘報文發(fā)出,注意:該時鐘報文打入的時間戳為Ti;
4)Δyi(i=1,2……,16)表示時鐘報文從RCN側(cè)到達(dá)LCN側(cè)的傳輸延時;
5)ti(i=1,2……,16)表示LCN在ti時刻收到并處理了時間戳為Ti(i=1,2……,16)的時鐘報文;
6)Δz17表示LCN在t17時刻將數(shù)據(jù)報文發(fā)送,經(jīng)過Δz17后RCN收到;
7)Δa17表示經(jīng)過Δa17的任務(wù)調(diào)度等待時間后,RCN在系統(tǒng)時間T18開始處理該數(shù)據(jù)報文。
條件假設(shè):
1)RCN的任務(wù)調(diào)度周期為Pnor,最大任務(wù)調(diào)度周期為Pmax;
2)LCN任務(wù)周期遠(yuǎn)遠(yuǎn)小于RCN任務(wù)周期和傳輸延時,因此假設(shè)LCN任務(wù)周期為0,即LCN側(cè)收發(fā)數(shù)據(jù)的時刻等于實(shí)際處理該數(shù)據(jù)的時刻;
3)LCN在收到16次校時信息包后,可以算出調(diào)整因子;
4)T16~T19之間RCN未發(fā)送校時信息包,t16~t19之間LCN未收到校時信息包,即這段時間校時因子未更新。
啟機(jī)后,LCN在t16時刻累計收到RCN的16次校時信息包,算出第一個校時調(diào)整因子:
其中:
t17時刻,LCN向RCN發(fā)一幀信息,其時間戳為:
將式(5)代入式(6),得:
T18時刻,RCN計算本地系統(tǒng)時間與幀包含的時間戳差值為:
將式(7)代入式(8)得:
由式(9)可以看出,RCN側(cè)的時間戳偏差值與ΔS無關(guān),因此圖1可簡化為ΔS=0時的圖3,便于分析,如圖3所示。
圖3 簡化ΔS=0后Fig.3 After simplifying ΔS=0
分析ΔT的范圍即分析ΔT的最小值ΔTmin和最大值 ΔTmax。
1)Δz17表示傳輸延時;
2)如圖4所示,AB和BC表示RCN兩個相鄰任務(wù)調(diào)度周期。當(dāng)RCN在AB區(qū)間的某一點(diǎn)收到數(shù)據(jù)且時鐘包立刻被處理,此時為最小值Δa17=0;當(dāng)RCN在AB周期的A點(diǎn)收到時鐘包,而在BC周期的C點(diǎn)才處理該時鐘包,且AB和BC任務(wù)周期均為最大任務(wù)調(diào)度周期Pmax,此時為最大值Δa17=2×Pmax;
圖4 RCN相鄰周期任務(wù)調(diào)度圖Fig.4 RCN adjacent periodic task scheduling diagram
3) 如圖5所示,AB表示RCN的一個任務(wù)調(diào)度周期,當(dāng)在AB區(qū)間某一點(diǎn)獲取系統(tǒng)時間并立即發(fā)送時鐘包,如果連續(xù)16個周期都是這種情況,此時為最小值;反之,當(dāng)在AB區(qū)間A點(diǎn)獲取系統(tǒng)時間,在B點(diǎn)發(fā)送時鐘包,且該任務(wù)周期為Pmax,如果連續(xù)16個周期都是這種情況,此時為最大值
圖5 RCN單個任務(wù)調(diào)度圖Fig.5 RCN single task scheduling diagram
綜上,
由此可見,RCN側(cè)時間偏差可根據(jù)實(shí)際系統(tǒng)的傳輸延時和任務(wù)調(diào)度周期,綜合考慮安全性和可用性,在ΔTmin和ΔTmax之間選擇合適的配置值。
如圖2所示,RCN在T19時刻得到系統(tǒng)時間T19,由于任務(wù)調(diào)度延時Δx19后發(fā)送數(shù)據(jù)包。
又經(jīng)過Δy19的傳輸延時后,LCN在t19時刻收到該數(shù)據(jù)包并對其處理。計算LCN系統(tǒng)時鐘與數(shù)據(jù)包包含的時間戳差值為:
將式(5)、(14)代入式(13)得:
由式(15)可以看出,LCN側(cè)的時間戳偏差值也與ΔS無關(guān),因此圖2同樣可簡化為ΔS=0時的圖3,便于分析。
分析Δt的范圍即分析Δt的最小值Δtmin和最大值 Δtmax。
2) Δx19的最大最小值分析與2.4節(jié)類似,最小值Δx19=0,最大值Δx19=Pmax;
3)Δy19表示傳輸延時。
綜上
由此可見,同RCN側(cè)類似,LCN側(cè)時間偏差也可根據(jù)實(shí)際系統(tǒng)的傳輸延時和任務(wù)調(diào)度周期,綜合考慮安全性和可用性,在Δtmim和Δtmax之間選擇合適的配置值。
使 用SUBSET-056 STM FFFIS Safe Time Layer中提出的時鐘同步算法的主設(shè)備和從設(shè)備,在從設(shè)備的任務(wù)調(diào)度周期遠(yuǎn)小于主設(shè)備任務(wù)周期和設(shè)備間傳輸延時的前提下,主設(shè)備側(cè)的短時漂移在范圍內(nèi),從設(shè)備的短時漂移在范圍內(nèi)。實(shí)際應(yīng)用時,可根據(jù)實(shí)測結(jié)果,綜合考慮安全性和可用性[8],對短時漂移進(jìn)行合理配置。