一种时钟同步算法的应用研究
2018-11-16吴培栋
吴培栋
(1.北京全路通信信号研究设计院集团有限公司,北京 100070;2.北京市高速铁路运行控制系统工程技术研究中心,北京 100070)
列车运行控制系统中,存在车载、地面等多个子系统,各个子系统中又存在多个子设备,是典型的分布式系统[1,2]。为满足安全控制列车的需求,部分设备之间需要保持时钟同步。时钟同步后,设备之间可以对通信数据包的时序性、实时性进行检查,也可以估算通信传输延时,并据此做时间、距离等变量补偿[3]。
成熟的时钟同步算法有很多种[4],在列车运行控制系统中,SUBSET-056 STM FFFIS Safe Time Layer中提出的时钟同步算法应用较为普遍[5]。本文对此时钟同步算法进行研究,提出该算法应用阶段相关配置参数的计算方法。
1 算法简介
1.1 时钟同步[6]
参考时钟源周期的向其他节点广播时钟信息,其他节点在收到一定数量的时钟信息后,结合自己本地时钟,计算出初始的调整因子,此时该节点完成初始的时钟同步。之后,该节点继续根据参考时钟源周期广播的时钟信息,持续更新调整因子,保持与参考时钟源的同步。以图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本地时钟为:
1.2 时钟监控
完成时钟同步后,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.1 条件假设
如图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未收到校时信息包,即这段时间校时因子未更新。
2.2 计算校时因子
启机后,LCN在t16时刻累计收到RCN的16次校时信息包,算出第一个校时调整因子:
其中:
2.3 RCN侧时间偏差
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
2.4 RCN侧时间偏差范围
分析Δ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.5 LCN侧时间偏差
如图2所示,RCN在T19时刻得到系统时间T19,由于任务调度延时Δx19后发送数据包。
又经过Δy19的传输延时后,LCN在t19时刻收到该数据包并对其处理。计算LCN系统时钟与数据包包含的时间戳差值为:
将式(5)、(14)代入式(13)得:
由式(15)可以看出,LCN侧的时间戳偏差值也与ΔS无关,因此图2同样可简化为ΔS=0时的图3,便于分析。
2.6 LCN侧时间差偏差范围
分析Δt的范围即分析Δt的最小值Δtmin和最大值 Δtmax。
2) Δx19的最大最小值分析与2.4节类似,最小值Δx19=0,最大值Δx19=Pmax;
3)Δy19表示传输延时。
综上
由此可见,同RCN侧类似,LCN侧时间偏差也可根据实际系统的传输延时和任务调度周期,综合考虑安全性和可用性,在Δtmim和Δtmax之间选择合适的配置值。
3 结论
使 用SUBSET-056 STM FFFIS Safe Time Layer中提出的时钟同步算法的主设备和从设备,在从设备的任务调度周期远小于主设备任务周期和设备间传输延时的前提下,主设备侧的短时漂移在范围内,从设备的短时漂移在范围内。实际应用时,可根据实测结果,综合考虑安全性和可用性[8],对短时漂移进行合理配置。