尹 捷 胡立生
(上海交通大学电子信息与电气工程学院,上海 200240)
统计方法在IEEE1588同步协议中的应用
尹 捷 胡立生
(上海交通大学电子信息与电气工程学院,上海 200240)
对IEEE 1588同步机制进行分析,根据延时的来源提出了一套结合滤波和统计的同步算法来减小不对称性造成的误差。该算法基于一定的时间窗,累计主从时钟偏差样本,通过对这些样本采用统计方法获取精确的offset值来对从时钟进行校正。最终在Matlab中验证了该算法的有效性。
时钟同步 IEEE 1588 统计 时间窗
当前,工业以太网因其成本低廉、通信速率高、软硬件资源丰富及易于开发等特点已经被广泛应用于工业控制领域,例如文献[1]所提及的三塘湖输油管道SCADA系统。与商用以太网相比,工业以太网要求设备可以在恶劣环境下正常工作,对实时性、可靠性及安全性等多方面提出了较高的要求。
笔者主要对工业以太网中的时钟同步精度要求进行研究。从纵向来看,时钟同步一直以来都是工业中重要的影响因素,而且当今的工业环境下对时钟同步精度从之前的微秒级别提高到了纳秒级别。从横向来看,工业以太网中不断推出新的时间同步技术,例如网络时间协议(Networking Time Protocol,NTP),它采用典型的客户端/服务器授时方式,即客户端与服务器通过交换含有时间戳的报文来完成时间同步,最新的NTPv4能够达到200ms的时钟精度。但是,工业以太网越来越复杂的环境已经对精度提出了更高的要求,使得NTP/SNTP毫秒级的同步精度已不能满足某些通信、运动控制等工程领域的要求。
为了满足更高的同步精度,IEEE 1588定义了一种精确时间协议PTP(Precision Time Protocol),用于对标准以太网或其他采用多播技术的分布式总线系统中的时钟进行纳秒级同步。IEEE 1588采用了发布者和接收者的P/S模式,主时钟在同步系统中对外发布精确时钟,从时钟则要接收主时钟的信号并校正本地时钟,从而实现整个系统的同步运行。但是,IEEE 1588在实际的应用场合中仍然存在很多因素会影响到实际精度。例如不可预知的链路延时抖动、时钟源频率波动及软件时间戳误差[2]等。其中最主要的因素是不可预知的链路延时抖动,该抖动会严重破坏时间误差计算精度。所以,笔者研究的目的是通过分析提出一套基于统计与滤波相结合的校正算法来对链路延时进行修正,同时提供该同步系统的鲁棒性。
PTP系统采用主从层次结构来对时钟进行同步,图1为其原理图。
图1 PTP时间同步原理
其中,T1为主时钟发送同步报文的时间,T2为从时钟收到同步报文的时间,T3为从时钟发送延时请求报文的时间,T4为主时钟收到延时请求报文的时间。在IEEE 1588中做出了一个假设,即假设同步报文的接收延时等于延时请求报文的发送延时,或者说,假设传输路径是对称的。
从时钟相对于主时钟的时间偏差Toffset和网络传输延时Tdelay可以根据下面两个公式来计算:
Toffset=(T2-T1)-Tdelay
(1)
(2)
但是,在协议的实际应用场合下,由于存在报文传输延时抖动(PDV),所以上述所做的传输路径对称这一假设往往是不成立的。而且,在精度要求极高的场合中,PDV往往会带来很大的误差。基于此,笔者首先对PDV误差模型进行了分析,然后采用统计方法,在从时钟处通过对一定数量的同步报文样本的统计分析来实现同步。
PTP的路径传输延时主要涉及到两个报文:Sync报文和Delay_Req报文。在IEEE 1588中使用这两个报文传输延时的平均值来代替链路传输延时。但在实际中,双向的传输路径往往是非对称的。传输的网络延时包含协议栈、存贮转发和物理网络上的传输延时。其中物理网络的传输延时一般是稳定的,但是,协议栈和存贮转发却会导致传输延时有较大的波动,这严重影响了同步精度。
通过分析,可以用以下数学模型来描述传输延时:
D=Dnet+Dq+ε
(3)
其中,Dnet表示在不考虑延时漂移和报文排队的情况下的延时,因此,在没有排队发生的情况下,即所有中间PTP时钟设备都空闲,Dnet就等于平均传输时间,它的值取决于网络配置环境;Dq代表由于排队引发的延时;ε代表延时漂移。
在同步过程中,每一个报文都有自己具体的传输延时,这里用D(i)来表示第i个报文的延时。Dnet的值主要取决于网络配置,只要网络配置没有改变,Dnet便保持常量。所以,从统计学角度可做如下描述:Dnet(i)等于Dnet(i-1)的概率为pstable,且pstable接近于1。由于Dnet已经代表了平均传输延时,所以ε只考虑传输时间相对平均值的偏差。从统计学角度,可以假设ε的期望值E(ε)=0。另外,假设ε的方差为σ2,随后的实现是独立同分布的。为了处理漂移的影响,必须要知道ε,而这个变量对于一个给定的交换机而言几乎是常量[3],可以先测出来。对于排队延时Dq,即当一个报文即将传入的设备正在处理其他报文时,它会被放入一个缓冲队列并进行等待,这个延时主要依赖于设备的忙碌时间,如果设备忙碌,那么报文必须进行等待,这会导致传输延时加大,而如果设备空闲,那么报文可直接传递,从而引发传输延时的较大波动。从统计角度可得Dq=B·W,其中W是报文的等待时间随机变量,其分布不可知;B是设备忙碌的时间占比,B等于1的概率为pbusy。
根据上文对延时抖动来源的数学分析,笔者提出一套基于统计方法的改进算法,以减少延时抖动带来的误差。
在时间源稳定运行的情况下,主从时钟间的时钟偏差offset测量值理论上符合正态分布,或者近似高斯分布[4]。如果每次测量出一个offset就直接去进行从时钟相位校正,那么势必导致从时钟相位在正负矢量方向上无间歇运行,校正后反而非常不稳定,所以采用N个时间窗(图2)来对offset测量值进行统计,然后使用处理后的值去进行校正[5]。
图2 第k轮时间窗
算法思路为:假设第k轮时间窗里的第i次同步中,在路径对称的假设下得到的初始校正值为offsetki,可以先利用该初始校正值与前一位的修正值Ok(i-1)进行第一次修正,得到当前的修正值Oki,然后继续统计第k轮时间窗的后面(N-1-i)次同步修正值。当第k轮时间窗里所有的修正值均计算出来后,对这一轮的所有修正值取均值,得到第二次修正值Ok,然后使用该修正值去对从时钟进行校正。
根据上节所述,变量Dq正常情况下保持恒定,即同步系统中流量负载保持正常时,Dq会保持一个很小的排队时间值,接近于零。但是,一旦网络负载突然加剧,Dq会突然增大,而且网络负载越大,Dq变化越明显。这直接导致的后果是offset测量值与前一时刻测量值有明显变化。但是,并不是只要网络负载加大就会导致offset大幅波动,offset测量值波动取决于报文来回路径的传输延时均值,也就是说网络负载的波动直接影响到平均delay值与实际delay值之间的误差。对于offset突变,有两种可能的原因,一种是网络配置变化,由于传输路径不同可能会导致offset变化;还有一种就是排队变化,这种变化是完全随机的[6]。
对此,笔者采取的改进算法是:设定一个阈值,如果offset变化在阈值范围内,则不做修改;但是如果超过了该阈值,那么把它限定在阈值范围内,以防止最终校正值有太大波动。阈值的选取标准是尽量让offset波动的方差较小,取阈值为tσi,其中,σi为该时间窗内前面(i-1)次测量的方差值。通过t可以动态调节阈值范围,进而计算可以得到波动较稳定的偏差值Oki:
Oki=αg(offsetki-offsetk(i-1))
(4)
(5)
通过对算法的改进,在Matlab的同步时钟系统平台上进行测试,可以看到PTP同步精度较之前有了明显的改进。图3、4分别为改进前后的PTP同步测试结果。
图3 改进前的主从时钟偏差
从图中对比可以看出,笔者所提出的算法可以将主从时钟偏差限制在很小的范围内。这是由于该算法能够提高主从偏差的鲁棒性,从而较好地处理较大的链路延时,使从时钟的运行更加稳定。
笔者从理论角度分析了延时不对等性对IEEE 1588协议精度产生的影响,通过对误差建模,依次针对内部误差产生的原因,提出了相关的统计方法来进行校正。该方法主要是通过累计主从偏差样本,然后利用误差特性对样本进行处理。同时,该方法也考虑到链路传输的报文排队引起的传输时间突变,并对此进行了处理。最终的实验结果表明:该算法可以较好地提高同步报文精度,降低链路延时不对称性对精度造成的影响。
[1] 杜建林,方爱国.基于NTP协议的GPS时间服务器在SCADA系统中的应用[J].化工自动化及仪表,2012,39(5): 601~603.
[2] 谢形果.IEEE1588时钟同步报文硬件标记研究与实现[D].武汉:华中科技大学,2008.
[3] Carmelo I, Christoph H,Hans W.Synchronizing IEEE 1588 Clocks under the Presence of Significant Stochastic Network Delays[C].2005 Conference on IEEE 1588. Winterhur CH:IEEE,2005.
[4] IEEE Std 1588,Precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S].New York:Institute of Electricaland Electronic Engineers,2008.
[5] 刘建成.基于IEEE1588协议的精确时钟同步算法改进[J].电子设计工程,2015,23(4):105~107.
[6] 张涛,胡立生.IEEE1588标准下准确时间值的获取方法[J].化工自动化及仪表,2014,41(10):1181~1184.
ApplicationofStatisticalMethodsinImprovingTimeSynchronizationPerformanceofIEEE1588
YIN Jie, HU Li-sheng
(SchoolofElectronicInformationandElectricalEngineering,ShanghaiJiaotongUniversity,Shanghai200240,China)
Through analyzing IEEE 1588 clock synchronization mechanism and basing on the source of stochastic delay, a time synchronization algorithm which combines filtering and statistic method was proposed to reduce asymmetric error. This algorithm has fixed-window method based and master-slave clock deviation samples accumulated through statistical methods to achieve exactoffsetvalues so as to implement calibration. Simulation in Matlab verifies the effectiveness of this algorithm.
time synchronization, IEEE 1588, statistics, time window
TP393
A
1000-3932(2016)05-0505-04
2016-03-25(修改稿)