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