吳培棟
(1.北京全路通信信號研究設計院集團有限公司,北京 100070;2.北京市高速鐵路運行控制系統工程技術研究中心,北京 100070)
列車運行控制系統中,存在車載、地面等多個子系統,各個子系統中又存在多個子設備,是典型的分布式系統[1,2]。為滿足安全控制列車的需求,部分設備之間需要保持時鐘同步。時鐘同步后,設備之間可以對通信數據包的時序性、實時性進行檢查,也可以估算通信傳輸延時,并據此做時間、距離等變量補償[3]。
成熟的時鐘同步算法有很多種[4],在列車運行控制系統中,SUBSET-056 STM FFFIS Safe Time Layer中提出的時鐘同步算法應用較為普遍[5]。本文對此時鐘同步算法進行研究,提出該算法應用階段相關配置參數的計算方法。
參考時鐘源周期的向其他節點廣播時鐘信息,其他節點在收到一定數量的時鐘信息后,結合自己本地時鐘,計算出初始的調整因子,此時該節點完成初始的時鐘同步。之后,該節點繼續根據參考時鐘源周期廣播的時鐘信息,持續更新調整因子,保持與參考時鐘源的同步。以圖1為例進行簡要說明,其中,參考時鐘節點(Reference Clock Node,RCN)表示參考時鐘源設備,本地時鐘節點(Local Clock Node,LCN)表示需進行時鐘同步的節點設備。

圖1 時鐘同步示意圖Fig.1 Schematic of clock synchronization
LCN啟動后,應等待RCN發送的系統時鐘信息,并在RCN開始發送系統時鐘后,啟動時鐘同步流程。假設LCN在時刻n收到RCN發來的參考時鐘RefTime[n],并記錄下本地時鐘LocalTime[n],時間同步流程如下:
當LCN從RCN收到至少M幀有效時鐘報文后,按下面的公式計算出調整因子:

當LCN得到第一個調整因子后,即認為時鐘同步成功,向RCN發送時鐘同步確認信息。LCN得出調整因子后,每收到一幀有效時鐘報文,按照上述方法對調整因子進行更新。
經過時鐘同步后的LCN本地時鐘為:

完成時鐘同步后,LCN可進行短時漂移監控和長時漂移監控。
1.2.1 短時漂移監控
當時鐘同步以后,LCN時鐘與RCN時鐘的差值應該在限定范圍Tss(短時漂移)內:

1.2.2 長時漂移監控
當時鐘同步以后,不同時刻的調整因子應該在限定范圍Tls(長時漂移)內:

其中,n表示LCN接收到有效RCN時鐘報文的時刻,k表示在n之前不超過ΔT范圍內收到第一個有效RCN時鐘報文的時刻。
一般來說,長時漂移率不應超過0.1%,即Tls≤ΔT×1%[7]。短時漂移Tss一定程度上反映了實時性要求,需要根據實際應用場景來配置。參數配置過大影響安全性,參數配置過小又影響可用性。以下主要對該參數的配置進行研究。
如圖2所示,說明如下。

圖2 RCN時間系超前于LCN時間系Fig.2 RCN time system is ahead of LCN time system
1)T軸和t軸分別表示RCN本地時間系和LCN本地時間系;
2)ΔS表示RCN時間系與LCN時間系的差值。當RCN時間系超前于LCN時間系時,ΔS>0;當LCN時間系超前于RCN時間系時,ΔS<0;當RCN時間系與LCN時間系同步時,ΔS=0;
3)Δxi(i=1,2……,16)表 示 RCN 在 Ti(i=1,2……,16)時刻得到系統時間Ti,經過任務處理,Δxi后將時鐘報文發出,注意:該時鐘報文打入的時間戳為Ti;
4)Δyi(i=1,2……,16)表示時鐘報文從RCN側到達LCN側的傳輸延時;
5)ti(i=1,2……,16)表示LCN在ti時刻收到并處理了時間戳為Ti(i=1,2……,16)的時鐘報文;
6)Δz17表示LCN在t17時刻將數據報文發送,經過Δz17后RCN收到;
7)Δa17表示經過Δa17的任務調度等待時間后,RCN在系統時間T18開始處理該數據報文。
條件假設:
1)RCN的任務調度周期為Pnor,最大任務調度周期為Pmax;
2)LCN任務周期遠遠小于RCN任務周期和傳輸延時,因此假設LCN任務周期為0,即LCN側收發數據的時刻等于實際處理該數據的時刻;
3)LCN在收到16次校時信息包后,可以算出調整因子;
4)T16~T19之間RCN未發送校時信息包,t16~t19之間LCN未收到校時信息包,即這段時間校時因子未更新。
啟機后,LCN在t16時刻累計收到RCN的16次校時信息包,算出第一個校時調整因子:

其中:
t17時刻,LCN向RCN發一幀信息,其時間戳為:

將式(5)代入式(6),得:

T18時刻,RCN計算本地系統時間與幀包含的時間戳差值為:

將式(7)代入式(8)得:

由式(9)可以看出,RCN側的時間戳偏差值與ΔS無關,因此圖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兩個相鄰任務調度周期。當RCN在AB區間的某一點收到數據且時鐘包立刻被處理,此時為最小值Δa17=0;當RCN在AB周期的A點收到時鐘包,而在BC周期的C點才處理該時鐘包,且AB和BC任務周期均為最大任務調度周期Pmax,此時為最大值Δa17=2×Pmax;

圖4 RCN相鄰周期任務調度圖Fig.4 RCN adjacent periodic task scheduling diagram
3) 如圖5所示,AB表示RCN的一個任務調度周期,當在AB區間某一點獲取系統時間并立即發送時鐘包,如果連續16個周期都是這種情況,此時為最小值;反之,當在AB區間A點獲取系統時間,在B點發送時鐘包,且該任務周期為Pmax,如果連續16個周期都是這種情況,此時為最大值

圖5 RCN單個任務調度圖Fig.5 RCN single task scheduling diagram
綜上,

由此可見,RCN側時間偏差可根據實際系統的傳輸延時和任務調度周期,綜合考慮安全性和可用性,在ΔTmin和ΔTmax之間選擇合適的配置值。
如圖2所示,RCN在T19時刻得到系統時間T19,由于任務調度延時Δx19后發送數據包。
又經過Δy19的傳輸延時后,LCN在t19時刻收到該數據包并對其處理。計算LCN系統時鐘與數據包包含的時間戳差值為:

將式(5)、(14)代入式(13)得:

由式(15)可以看出,LCN側的時間戳偏差值也與ΔS無關,因此圖2同樣可簡化為ΔS=0時的圖3,便于分析。
分析Δt的范圍即分析Δt的最小值Δtmin和最大值 Δtmax。

2) Δx19的最大最小值分析與2.4節類似,最小值Δx19=0,最大值Δx19=Pmax;
3)Δy19表示傳輸延時。
綜上

由此可見,同RCN側類似,LCN側時間偏差也可根據實際系統的傳輸延時和任務調度周期,綜合考慮安全性和可用性,在Δtmim和Δtmax之間選擇合適的配置值。
使 用SUBSET-056 STM FFFIS Safe Time Layer中提出的時鐘同步算法的主設備和從設備,在從設備的任務調度周期遠小于主設備任務周期和設備間傳輸延時的前提下,主設備側的短時漂移在范圍內,從設備的短時漂移在范圍內。實際應用時,可根據實測結果,綜合考慮安全性和可用性[8],對短時漂移進行合理配置。