基于IEEE1588协议的精确时钟同步算法改进
2015-01-25刘建成
刘建成
(朗讯科技光网络有限公司 上海研发中心,上海201206)
随着计算机和互联网的迅速发展,基于网络的分布式应用越来越普及。为了确保分布式网络化的终端能够实现精确的数据采集、运行控制等实时性任务,需要整个系统具有统一的参考时间,并且应该使所有分布式终端的本地时钟与该系统时间保持同步。越来越多的工业测量和控制系统对时钟同步的精度要求也越来越高,尤其是在大多数以工业以太网为基础的控制系统中,已经对时钟同步提出了微妙级的同步要求。特别是在分布式控制系统中,考虑到实时性的调度和控制,对时间统一的要求就更为严格。传统的时间同步技术网络时间协议(Network time protocol,NTP)已经无法满足这种精度要求,比如对时钟同步精度要求非常苛刻的TDSCDMA网络就采用GPS卫星信号进行授时,虽然精度可以保证,但是GPS系统造价昂贵、安装复杂、兼容性差的缺点使得运营商不得不考虑其替代方案。
为了彻底解决分布式网络化测控系统的实时性问题,很多研究机构和测控公司纷纷投入人力、物力进行这方面的研究与实验。美国电气和电子工程师协会(IEEE)开发并发布了“网络测量和控制系统的精密时钟同步协议标准(Precision clock synchronization protocol for networked measurement and control systems)”,即IEEE1588协议,简称为精确时间同步协议(Precision Time Protocol,PTP)。 IEEE1588协议的发展和成熟提供了一种低成本高精度的网络时钟同步解决方案。IEEE1588定义了一种用于由网络通讯、本地计算和分布式对象等技术实现的现代测量和控制系统的精确时钟同步协议。该协议支持系统范围的时钟同步,即可以用于广域的以太网中,也可用于支持多点欢送的局域网中,能够实现亚微妙级的时间同步精度。IEEE1588协议采用了发布者和接收者的P/S模式,主时钟担当时间发布者的角色,从时钟担当接受者的角色。IEEE1588精确时钟同步算法由于其高同步精度、低成本实现、方便安装与维护等优越性,在供电管理、工业控制、测试和测量、网络通信等邻域得到了广泛的应用。
1 IEEE1588同步原理
IEEE1588通过交换报文来确定主时钟Master和从时钟Slave之间的时间偏差及报文传输的网络延迟。首先,主时钟节点Master端周期性的发送同步报文 (Sync消息)给从时钟Slave端,Sync消息中包括其离开主时钟时的时间t1,如果采用两步机制,则将同步包文时间戳t1打包到跟随报文(Follow Up消息),紧接着发送Follow Up消息。Slave接收后记录该消息到达时间戳t2;从时钟发Delay_Req消息给主时钟,并记录Delay_Req的离开时刻t3;主时钟记录Delay_Req到达时间t4,并通过Delay_Resp把t4发回给从时钟Slave。从时钟Slave根据时间戳t1,t2,t3,t4来计算主从时钟的时间偏差及传输的网络延迟,并用时间偏差调整自身时钟,直到与主时钟同步,如图1所示。
图1 同步过程Fig.1 Synchronization process
这里我们把主从时钟的时间偏差记作△toffset,而发送同步报文Sync消息传输需要的时间记作△tdelay12,发送Delay_Req消息传输需要的时间记作△tdelay34,则它们有公式(1)关系。
从而得到主从时间偏差
在IEEE1588协议里假设网络双向传输是对称的,我们标记平均传输网络延迟为△tdelay,即公式(3)
从而得到公式(4)中的主从时间偏差以及平均传输网络延迟:
从原理中可以看出传输的网络延迟严重影响时钟同步精度。传输的网络延迟包含协议栈、存贮转发及物理网络上的传输时延。物理网络所产生的线路延时一般是稳定的,而协议栈及存贮转发在运行过程中由于受不确定因素影响会产生较大的抖动,这对同步的精度有较大的影响。为此IEEEl588协议提出了一种基于软件和硬件相结合的时间同步方法,将时间戳的标记点下移到MAC层和PHY层之间,即图2中的A点,降低协议栈及业务流量对同步时间的影响,使同步过程中的主要延时为物理层延时,目前已经有很多Switch芯片、PHY芯片都支持硬件打时间戳。
2 时钟同步算法的改进
图2 硬件打时间戳模型Fig.2 Timestamp generation model
只有当网络双向传输是完全对称的,即△tdelay=△tdelay12=△tdelay34时,才能够保证同步的精确性。但在现实中的网络系统中这只能是一种理想情况,在网络上有较大负载的情况下,这种假设很难保证。为了有效减小远程末端的串扰,目前使用网络电缆在设计时就采用了一些非对称的设计,而许多收发器采用的也是不对称的传送和接收路径。在这种情况下,网络负载越大,不同传输方向上延迟Delay越不可能相等,这样就会使计算出的延时与实际的主从延时相差较大。另外,如果主时钟和从时钟使用的收发器的时间特性不同,这种不对称性将是无法补偿的,从而严重影响时钟同步精度。现实中的网络传输延迟肯定是非对称的,根据IEEE1588的规定,上文中给出的计算网络延迟的式(3)可在必要时作出修改,以满足实际情况的需要。
针对网络传输路径的不对称性,以及发送同步报文Sync消息传输需要的时间△tdelay12和发送Delay_Req消息传输需要的时间△tdelay34具有不同的更新周期,可以考虑一种基于加权平衡的同步改进算法,所以若将网络延迟△tdelay取为△tdelay12和△tdelay34的加权平均值,则可具有较好的精确度。不妨标记传输的网络延迟△tdelay34为网络延迟△tdelay12的w倍(w的测量计算不在本文讨论,文献[1]给出了具体的实现方法)
从而得到公式(6)中的主从时间偏差以及传输网络延迟:
在时间源稳定运行下,主从时钟间的时间偏差△toffset测量值在统计学理论上符合正态分布,或者分布近似高斯分布。根据IEEE1588标准同步算法计算得出的时间偏差测量值△toffset,若简单认为就是主从时钟间的相位差而直接进行相位的调整,由于时间偏差△toffset符合正态分布,则会出现从时钟相位的正负矢量方向上的无间歇运动,时钟的运行将很不稳定,不但起不到适中同步的效果,反而可能使系统的时间发生严重的错乱。故在实现精确时间同步算法的时间同步系统中,由于网络延时等不可确定因素的影响,计算得出的主从时钟偏差测量值与理论值存在一定误差,为进一步提高时间同步精度,一般运用统计学方法计算大量主从时钟偏差样本的算术平均值,无限逼近主从相位偏差的数学期望值,即式(7)。不足的是当采集到的△toffest测量值不够理想时,计算出的算术平均值可能会远离其期望值,或者在主时钟源时间发生跳变时,通常的调相操作可能会使得从时钟相位发生较大位移,降低同步精度和系统的稳定性。
通常来讲,可以把主时钟源认为是运行极其稳定的系统,但时钟系统都会有参数调整,比如在闰秒操作,就会造成主时钟源“轻微”的时间跳跃。所以,授时的主时钟信号是可能存在跳变的非稳定基准信号。由于无法确定过于偏离期望值的数据是变质的样本还是参数调整后可能更优的信号,倘若把参数调整后更优的“标准”信号简单舍弃,将造成从时钟系统向主时钟信号同步锁定的滞后。而快速向其靠拢显然也是不恰当的,因为这样将可能使得从时钟的相位发生较大的位移,造成系统的不稳定。时间同步操作时正确的做法应是逐渐信任并逐渐靠拢。这里考虑用方差阈值滤波的方法,只有当N个的方差 D(公式8)小于方差阈值 DThreshold,则第 N个时间偏差△tdelay[N]才被接受,进入下一个循环计算。为了加快算法收敛速度同时又保证稳定性,可根据算法状态调整时间窗N的大小,在初始时算法还未进入稳定状态,设置为较小值,调整时间窗为N/2.这样既保证了在从时钟与主时钟偏差较大时,算法能很快做出响应,尽快收敛,同时又保证在从时钟与主时钟同步稳定时,不用频繁调整从时钟。
3 时钟同步性能测试
Alcatel-Lucent 1850业务传输平台TSS5R是一款简洁,模块化的包交换光传输PTN系统,支持IEEE1588时钟同步。2012年TSS5R通过了中国移动PTN测试,TSS5R时钟同步性能表现稳定。在实验室里,我们将两个TSS5R网元背靠背光纤连接来测试时间同步。测试设备连接如图3,时间测量仪TimeAcc接收GPS信号,同时输出1PPS+TOD信号给TSS5R主时钟Master网元,输出10 MHz频率参考信号给综合测试仪HP37718,而综合测试仪HP37718则提供2 MHz的频率信号给主时钟Master网元。从时钟Slave网元与主时钟Master网元利用SYNCE相位调频,保持主从时钟的频率同步,利用IEEE1588进行时间同步,同时从时钟Slave网元输出1PPS+TOD到时间测量仪TimeAcc,在时间同步算法收敛稳定后做了长时间的时间性能监控试验,测试的时间性能如图4,实验结果表明时钟同步具有稳定的性能,在主从同步稳定后,时间偏差达到亚微妙级别。
4 结束语
图3 测试配置框图Fig.3 Test configuration
图4 实验结果Fig.4 Result of experiment
本文在深入研究IEEE1588精确时间同步原理的基础上,给出一种改进的时间同步方法,该改进的时钟同步算法使时钟同步性能更稳定更抗干扰。该改进算法被应用在Alcatel-Lucent包交换光传输TSS5R系统中,并通过了中国移动基于分组网络的分组时间同步特性测试。实验结果表明TSS5R系统IEEE1588时钟同步具有稳定的性能,同步精度达到亚微秒级,可满足PTN产品高精度时钟同步的要求。
[1]HE Zong-ying.Automatic asymmetric delay correction for IEEE1588 in TSS-5R [C]//Alcatel-Lucent 2012 Technical Volume.Shanghai:Alcatel-Lucent,2012:10-11.
[2]LIU Jian-cheng,FANG Peng,HE Zong-ying.Implementation of IEEE1588 clock synchronization over PTN[C]//Alcatel-Lucent 2012 Technical symposium,2012:231-234.
[3]LV Shuai,LU Yue-ming,JI Yue-feng.An Enhanced IEEE 1588 Time Synchronization for Asymmetric Communication Link in Packet Transport Network [J].IEEE Communications Letters,2010,14(8):764-766.
[4]IEEEInstrumentation and Measurement Society,IEEEStd 1588.IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurementand Control Systems[S].New York:Instituteof Electricaland Electronic Engineers,Inc,2008.
[5]袁文学,基于IEEE1588协议的电力系统时间同步技术改进与仿真 [D].宜昌:三峡大学,2010.
[6]袁震华,董秀军,刘朝英.基于IEEE1588的时钟同步技术及其应用 [J].计算机测量与控制,2006,14(12):1726-1728.YUAN Zhen-hua,DONG Xiu-jun,LIU Chao-ying.Precise time synchronizationtechnology and application based on IEEE1588[J].Computer Measurement&Control,2006,14(12):1726-1728.