一种自动校时的IEEE 1588v2精确时间同步算法*
2016-10-29黄希凯
黄 盛,卓 越,金 鑫,文 安,任 智,武 杨**,黄希凯
(1.中国能源建设集团广东省电力设计研究院,广州 510663;2.中国南方电网电力调度控制中心,广州 510623;3.重庆邮电大学移动通信技术重庆市重点实验室,重庆 400065)
一种自动校时的IEEE 1588v2精确时间同步算法*
黄 盛1,卓 越1,金 鑫2,文 安2,任 智3,武 杨**3,黄希凯3
(1.中国能源建设集团广东省电力设计研究院,广州510663;2.中国南方电网电力调度控制中心,广州510623;3.重庆邮电大学移动通信技术重庆市重点实验室,重庆400065)
为解决IEEE 1588v2单步模式时间同步算法中存在的时间戳不精确和同步报文丢失时误差增大的问题,提出了一种更精确的时间同步算法——自动校时的IEEE1588v2时间同步算法(ACTS)。当同步报文丢失时,ACTS算法使用时间偏差的历史均值自动进行校时,并采用时间戳补偿的新机制提高同步精度,从而降低偏差和延时误差,减小了同步误差。仿真结果表明:与IEEE 1588v2单步模式时间同步算法相比,在同步报文未丢失和丢失的情况下,ACTS的同步误差均值分别至少降低了90.2%和89%。所提算法对于提高IEEE 1588v2单步模式的时间精度具有促进作用和现实意义。
网络时间同步;误差校正;自动校时;历史均值
1 引 言
随着网络与控制技术的发展,网络对时间同步精度的要求更为严格,现有时间同步技术无法满足太高的时间精度要求[1-2]。而IEEE 1588v2[3]采用精确时间同步协议(Precision Time Protocol,PTP)发送同步报文传递同步信息,其同步精度可以达到亚微秒级别,能够满足现有网络中智能电子设备时钟同步精度的要求,可应用于未来的智能电网和数字化变电站等领域[4]。
我们经过实测和仿真发现,现有的IEEE 1588v2单步模式时间同步算法在网络发生故障导致同步报文丢失的情况下,同步误差会明显增大,有可能引起使用它的部分设备达不到同步精度要求或失去同步,从而对网络系统的正常运行带来危害,而在现有的相关研究中尚未见到对此问题的有效解决办法。文献[5]针对以太网通信路径不对称的情况,提出了一种加权修正的时间同步改进算法,但未能考虑到网络状况的变化。文献[6]提出了一种基于网络区分服务调度模型的同步报文路径延时误差修正算法,用于解决变电站网络同步报文传输的不可靠以及路径时延不确定等问题。文献[7]基于IEEE 1588v2标准提出了一种不对称时延修正模型,用该模型选取样本值对从时钟进行修正。文献[8]采用卡尔曼滤波器估计主从时钟之间的时钟偏差、时钟漂移等,然后使用估计值对从时钟进行补偿与修正。为此,本文提出一种更精确的同步算法——自动校时的IEEE 1588v2时间同步算法(an Automatic Calibration Time Synchronization algorithm for IEEE 1588v2,ACTS),在同步报文丢失时,从时钟用偏差的历史均值自动校时,并且在校时过程中使用补偿时间戳机制来提高算法的同步精度,从而消除报文丢失引入的延时和偏差误差,减小同步误差。
2 时间同步算法原理与问题描述
2.1IEEE 1588v2单步模式时间同步算法原理
IEEE 1588v2单步模式时间同步算法可分为偏差测量和延时测量两个阶段[9]。
第一阶段为偏差测量阶段,从时钟计算与主时钟之间的偏差值用于修正自己的时间[10]。如图1虚线以上部分所示,从时钟获得了T1和T2两个时间戳后利用式(1)去计算主从时钟的偏差值Offset∶
从时钟计算出Offset值后,用当前时间减去Offset,使自己与主时钟同步。
第二阶段为延时测量阶段,主要测量报文在网络传输中的延迟时间[11]。如图1虚线以下部分所示,从时钟在T3时向主时钟发送Delay_Req报文。主时钟在T4时收到该报文后,并将T4放入Delay_ Resp报文中发回给从时钟。当从时钟收到Delay_ Resp报文后可得到式(2)∶
然后由式(1)和式(2)得到网络传输延时∶
图1 IEEE 1588v2单步模式时间同步过程Fig.1 Time synchronization procedure of IEEE 1588v2 single-step mode time synchronization algorithm
2.2问题描述
IEEE 1588v2单步模式时间同步算法存在同步报文发生时时间戳不够精确和同步包丢失时同步误差增大两个问题。
2.2.1同步报文发生时时间戳不精确
在单步模式延时请求测量机制中,Sync同步报文携带的时间戳T1,并不是同步报文真实的发送时间。因为当Sync要发送时,主时钟会取下当前系统时间值T1,之后将T1写入Sync报文中,最后在TS时刻发送出去;由于取系统时间和将T1写入Sync报文都会消耗时间,因此Sync报文携带的T1值小于真实的报文发送时刻值TS,它们之间存在一个不为零的差值Δt。Δt的存在会影响Offset和Delay计算结果的准确性,导致时钟同步精度下降。
2.2.2同步报文丢失时同步误差增大
在网络运行过程中,有时会出现链路或节点故障导致同步报文丢失的情况,如图2所示。IEEE1588v2单步模式同步算法根据式(3)计算Delay值时以式(1)和式(2)中的Offset值相等为前提,但由于从时钟接收Sync报文与Delay报文的时刻不同,那么相应的时间偏差值Offset也有所不同。分别设式(1)与式(2)中的Offset值为Offset1和Offset2,因此式(3)变为
式中∶ΔT/2为Delay的计算值与实际值之间的偏差。当网络发生故障导致同步报文Sync丢失时,从时钟不能正常启动校时操作,难以及时修正偏差,会造成偏差积累ΔT/2的值增加,从而所测Delay值增大;当在偏差测量阶段使用此Delay值,会使Offset偏小,最终导致误差增大。
图2 同步报文丢失示意图Fig.2 Illustration of the Sync message being lost
3 ACTS算法
为了有效解决时间戳不精确和同步报文丢失导致同步误差增大的问题,我们基于IEEE 1588v2提出了ACTS算法,用时间戳补偿和自动校时来消除同步误差的增加。
3.1ACTS算法的新机制
本文在ACTS算法中设计了时间戳补偿和同步报文丢失自动校时两种新机制。
3.1.1时间戳补偿
在主时钟中,每进行一次操作就会执行一段相应的代码,而每段代码都有自己的运行时间,因此可以计算出T1时刻到TS时刻所执行的代码的总运行时间,并将该值与T1一起填入Sync报文中,从时钟收到Sync报文后再对T1进行补偿。
假设主时钟从T1时刻到TS时刻需要进行取当前时刻值、写入时刻值和发送报文3个操作,对应的代码执行时间为t1、t2和t3,代码总运行时间t=t1+ t2+t3。将t值写入到Sync报文的Reserved字段中与T1一起发送出去。因此,公式(1)改进为
3.1.2同步报文丢失自动校时
针对同步报文丢失,会导致时间偏差的不正常积累,且从时钟无法触发校时的情况。在ACTS算法中,从时钟在设定计时时间内,未收到同步报文,由从时钟设定的定时器触发校时。由计算的时间偏差的历史平均值代替应收到同步报文的偏差值,从而避免了因未正常校时而导致的偏差积累。
3.2ACTS算法主要操作
3.2.1偏差测量阶段
ACTS算法的偏差测量主要由自动校时完成,包括5个步骤。
步骤1 主时钟以周期T(默认为2 s)发送同步报文,从时钟根据预设时间阈值1T(T为周期)设置定时器,判断主时钟发送的同步报文是否发生丢失或延迟。
步骤2 在时间阈值结束时,如果从时钟是连续正常接收到同步报文,则使用该同步报文进行校时,从时钟的定时器重新开始计时,并使用公式(6)计算偏差值。如果是在报文丢失后,从时钟第一次正常接收同步报文,则使用延时的历史均值替换测量值,即当前延时测量过程计算的Delay为Delayave,则根据
计算偏差值。从时钟根据历次偏差测量得到的Offset值计算其平均值Offsetave∶
式中∶Offseti为从时钟第i次连续成功收到同步报文计算出的Offset值;n为一段时间(缺省可取24 h)内的成功接收次数。然后执行步骤5。
步骤3 如果在时间阈值结束时,没有收到同步报文,则认为同步报文丢失。此时,使用步骤2中计算出的最近一次的Offsetave值来代替正常校时中的Offset值并执行步骤5进行自动校时。校时后,从时钟的定时器重新开始计时。
步骤4 如果在时间阈值内收到上一个时间段对应的同步报文,则认为该同步报文延时,于是不再用它进行校时;从收到它的时刻起,定时器重新计时。
步骤5 从时钟用当前时间减去偏差值,得到校时后的时间,完成从时钟的校时过程。
3.2.2延时测量阶段
ACTS算法的延时测量阶段主要测量报文在网络传输中的延迟时间。
步骤1 从时钟周期向主时钟发送Delay_Req报文,收到Delay_Resp报文后通过公式(5)计算得到传输延时Delay。
步骤2 在延时测量过程中,若计算出的Delay与Delayave的差值大于1 μs,则用Delayave代替Delay。延时的历史平均值计算方法如下∶
式中∶Delayi为从时钟第i次成功同步时所使用的Delay值;n为一段时间内的成功测量次数。
3.3性能对比分析
关于ACTS算法的同步性能,有如下引理。
引理∶ACTS算法的同步性能优于1588v2单步模式定义的时间同步算法。
证明∶由于主时钟发送的同步报文携带的时间戳T1和真实的发送时间之间有Δt的差值,即真实的Offset值为
由于ACTS算法采用时间戳补偿机制,则所得的Offset值为
而由1588v2时间同步算法在校时中,所得值为
由于同步误差的计算公式为
则由公式(10)~(13)可分别得ACTS和1588v2算法的同步误差为
在时间戳补偿中,由于ACTS算法的补偿时间t(正相关于指令执行时间)大于0,则有
在发生丢包情况下,延时会增大,但由于ACTS机制采用自动校时将尽可能缩小因丢包导致的延时增大,而1588v2不能减少由于丢包导致的延时增大,则可得到
由于同步误差越小同步精度越高,所以综上所述,ACTS算法的同步优于1588v2定义的时间同步算法。
证毕。
4 仿真分析
4.1仿真设置
为了验证ACTS算法的有效及性能,使用OPNET仿真软件对它和IEEE 1588v2单步模式时间同步算法进行仿真比较。参照文献[6]和[12]设置环境条件,链路故障分布为泊松分布,参数如表1所示。为了尽量贴近实际情形,采用广域网(Wide Area Network,WAN)路径,分为单跳场景和多跳场景,每个场景均设置丢包与不丢包两种情况。仿真统计量为两种场景的时间同步误差,即校时后主从时间之差,并对同步误差的均值和最大值进行比较。
表1 仿真实验参数表Tab.1 Simulation parameters
4.2仿真结果分析
4.2.1同步报文未丢失
(1)同步误差
图3为同步报文未丢失时同步误差均值的比较结果。从图中可看出,无论是在单跳还是在多跳场景中,同步报文未丢失时,由于ACTS采用时间戳补偿机制,修正了主时钟发送同步报文的时间,使得在校时时,缩小了从时钟和主时钟时间之间的误差。ACTS算法的同步性能优于1588v2算法。
图3 同步报文未丢失时同步误差均值比较Fig.3 Comparison of the average time synchronization error when Sync message is not lost
(2)同步误差的均值和最大值
两种算法未丢失同步报文时的同步误差均值(取10次仿真的统计结果)与最大值如表2所示,可见ACTS的同步误差均值至少降低了90.2%,最大值至少降低了89%。
表2 同步报文未丢失时同步误差均值和最大值比较Tab.2 Comparison of average synchronization error and max synchronization error when Sync message is not lost
4.2.2同步报文丢失
(1)同步误差
图4为在同步报文丢失时1588v2和ACTS的同步误差均值的比较。从图4可见,由于同步报文的丢失,采用1588v2算法的从时钟在收到同步报文后统计的同步误差不均匀且误差较大,即图中跳变的点。这是由于同步报文的丢失使同步误差出现较大波动(报文丢失时同步误差明显增加)造成的。由于ACTS算法采用了自动校时机制,弥补了丢包时的误差点,使同步误差分布均匀,且相对更小并一直保持平稳,说明它有效避免了同步报文丢失对时间同步性能的影响。
图4 同步报文丢失时同步误差均值比较Fig.4 Comparison of the average time synchronization error when Sync message is lost
(2)同步误差的均值和最大值
两种算法的同步均值(取10次仿真的统计结果)和最大值如表3所示,可看出两者的数值差异巨大。丢失同步报文时的同步误差均值与最大值如表3所示,可见ACTS的同步误差均值至少降低了89%,最大值至少降低了99.8%。
表3 同步报文丢失时同步均值和最大值比较Tab.3 Comparison of average synchronization error and max synchronization error when Sync message is lost
5 结束语
本文基于现有IEEE 1588v2单步模式时间同步算法,针对同步报文时间戳不精确和同步报文丢失时同步误差明显增大的问题,提出了一种包含“时间戳补偿”和“同步报文丢失时自动校时”两种新机制的时间同步新算法,解决了丢同步报文导致误差增大的问题,提高了同步精度。理论分析与仿真结果显示提升效果明显且具有一定普遍意义。由于本文算法原理清晰、操作可行且简捷,从而为满足电力系统的时间同步需求提供了更有利的现实条件。在未来的研究中,我们将以本文算法为基础,进一步开展实践研究。
[1] 易胜蓝.嵌入式Linux下IEEE 1588时间同步的实现[J].电讯技术,2012,52(5)∶800-803.
YI Shenglan.Implementation of IEEE 1588 time synchronization under embedded Linux[J].Telecommunication Engineering,2012,52(5)∶800-803.(in Chinese)
[2] GURUSWAMY A,BLUM R S,KISHORES,et al.Performance lower bounds for phase offset estimation in IEEE 1588 synchronization[J].IEEE Transactions on Communications,2015,63(1)∶243-253.
[3] IEEE Std 1588-2008,IEEE standard for a precision clock synchronization protocol for networked measurement and control systems[S].
[4] CHEN W,SUN J H,ZHANG L,et al.An implementation of IEEE 1588 protocol for IEEE 802.11 WLAN[J]. Wireless Networks,2015,21(6)∶1-17.
[5] 李学桥,陈园,梁爽.基于IEEE 1588协议的精确时钟同步算法改进[J].计算机工程与科学,2011,33(2)∶42-45.
LI Xueqiao,CHEN Yuan,LIANG Shuang.Improvement of the precise time synchronization algorithm based on IEEE 1588[J].Computer Engineering&Science,2011,33(2)∶42-45.(in Chinese)
[6] 黎锐烽,曾祥君,李泽文,等.IEEE 1588同步时钟网络时延误差的分析及修正[J].电力系统自动化,2012,36(12)∶82-87.
LI Ruifeng,ZENG Xiangjun,LI Zewen,et al.Analysis and correction methods for network time-delay error of IEEE 1588 synchronization clock[J].Automation of Electric Power Systems,2012,36(12)∶82-87.(in Chinese)
[7] RAHMAN M,KUNZ T,SCHWARTZ H.Delay asymmetry correc-tion model for master-slave synchronization protocols[C]//Proceedings of 2014 IEEE 28th International Conference on Advanced Information Networking and Applications.Victoria,BC∶IEEE,2014∶1-8.
[8] 庄晓燕,王厚军.基于卡尔曼滤波器的IEEE 1588时钟同步算法[J].电子测量与仪器学报,2012,26(9)∶747-751.
ZHUANG Xiaoyan,WANG Houjun.IEEE 1588 clock synchronization algorithm based on Kalman filter[J]. Journal of Electronic Measurement and Instrument,2012,26(9)∶747-751.(in Chinese)
[9] GIORGI G,NARDUZZI C.Performance analysis of Kalman-filter-based clock synchronization in IEEE 1588 networks[J].IEEE Transactions on Instrumentation and Measurement,2011,60(8)∶2902-2909.
[10] 曾栋才,邓金根,王健,等.PHY对1588时钟精度影响的研究[J].计算机测量与控制,2013,21(10)∶2832-2834.
ZENG Dongcai,DENG Jingen,WANG Jian,et al.Research on the effects of PHY for IEEE 1588 clock precison[J].Computer Measurement&Control,2013,21(10)∶2832-2834.(in Chinese)
[11] CORRELL K,BARENDT N,BRANICKY M.Design considerations for software only implementations of the IEEE 1588 precision time protocol[C]//Proceedings of 2005 International IEEE Symposium on Precision Clock Synchronization for Measurement,Control and Communication.Winterthur,Switzer∶IEEE,2005∶11-15.
[12] ANYAEGBU M,WANG C,BERRIE W.A samplemode packet delay variation filter for IEEE 1588 synchronization[C]//Proceedings of 2012 12th International Conference on ITS Telecommunications(ITST). Taipei∶IEEE,2012∶1-6.
黄 盛(1978—),男,江西人,硕士,高级工程师,主要从事电力通信及其同步系统的研究与设计工作;
HUANG Sheng was born in Jiangxi Province,in 1978.He is now a senior engineer with the M.S. degree.His research concerns electric power communication and synchronization system.
Email∶15818885895@139.com
卓 越(1981—),男,江西人,博士,工程师,主要从事电力通信同步系统的研究与设计工作;
ZHUO Yue was born in Jiangxi Province,in 1981.He is now an engineer with the Ph.D.degree.His research concerns electric power communication and synchronization system.
Email∶zhuoyue@gedi.com.cn
金 鑫(1985—),男,湖南人,硕士,工程师,主要从事电力系统通信方面的运行维护与理论研究工作;
JIN Xin was born in Hunan Province,in 1985.He is now an engineer with the M.S.degree.His research concerns power system communication maintenance and theory.
文 安(1965—),男,四川人,博士,国家千人计划专家,主要从事电网保护控制研究工作;
WEN An was born in Sichuan Province,in 1965.He is an expert of Thousand Talents Plan with the Ph.D.degree.His research concerns power grid protection and control.
任 智(1971—),男,四川人,博士,教授,主要研究方向为宽带通信网络理论与技术;
REN Zhi was born in Sichuan Province,in 1971.He is now a professor with the Ph.D.degree.His research concerns broadband communications network theory and technology.
武 杨(1990—),男,河南人,硕士研究生,主要研究方向为IEEE 1588协议优化与仿真;
WU Yang was born in Henan Province,in 1990.He is now a graduate student.His research concerns optimization and simulation of IEEE 1588 protocol.
Email∶wuyang2016@126.com
黄希凯(1990—),男,广西人,硕士研究生,主要研究方向为IEEE 1588协议与优化。
HUANG Xikai was born Guangxi Zhuangzu Autonomous Region,in 1990.He is now a graduate student.His research concerns IEEE 1588 protocol and its optimization.
A Precise Time Synchronization Algorithm for IEEE 1558v2 Based on Automatic Time Calibration
HUANG Sheng1,ZHUO Yue1,JIN Xin2,WEN An2,REN Zhi3,WU Yang3,HUANG Xikai3
(1.Guangdong Electric Power Design Institute of China Energy Engineering Group,Guangzhou 510663,China;2.Power Dispatching Control Center of China Southern Power Grid,Guangzhou 510623,China;3.Chongqing Key Laboratory of Mobile Communications Technology,Chongqing University of Posts and Telecommunications,Chongqing 400065,China)
∶To solve the problem of the imprecise time stamp and the increasing error in case of losing Sync messages in the time synchronization algorithm of IEEE 1558v2 single-step mode,an automatic calibration time synchronization algorithm(ACTS)is proposed.ACTS utilizes a novel compensation mechanism of time stamps to improve the synchronization accuracy,and automatically conducts error correction with the historical average value of offset when Sync messages are lost.Thus,the error of offset and delay resulted from losing Sync messages is reduced,and the synchronization error is decreased.Simulation results show that compared with IEEE 1588v2 single-step mode time synchronization algorithm,ACTS reduces the average synchronization error by at least 90.2%and 89%when Sync messages are or not lost,respectively. ACTS is useful and feasible for improving the synchronization accuracy of IEEE 1588v2 single-step mode.
∶network time synchronization;error correction;automatic time calibration;historical average values
The National Natural Science Foundation of China(No.613719159);The Basic and Frontier Research Project of Chongqing(cstc2015jcyjBX0085);The Collaborative Research Project of the Collaborative Innovation Center(Chongqing)of the New Generation Information Networks and Terminals(N201501);The Technology Project of China Southern Power Grid(KZD2013-022)
TN919
A
1001-893X(2016)05-0538-06
10.3969/j.issn.1001-893x.2016.05.011
黄盛,卓越,金鑫,等.一种自动校时的IEEE 1588v2精确时间同步算法[J].电讯技术,2016,56(5)∶538-543.[HUANG Sheng,ZHUO Yue,JIN Xin,et al.A precise time synchronization algorithm for IEEE 1558v2 based on automatic time calibration[J].Telecommunication Engineering,2016,56(5)∶538-543.]
2015-09-30;
2016-01-05Received date:2015-09-30;Revised date:2016-01-05
国家自然科学基金资助项目(613719159);重庆市基础与前沿研究计划项目(cstc2015jcyjBX0085);新一代信息网络与终端协同创新中心协同攻关项目(N201501);南方电网科技项目(K-ZD2013-022)
**通信作者:wuyang2016@126.comCorresponding author:wuyang2016@126.com