文献标识码:A
DOI:10.16157/j.issn.0258-7998.190161
中文引用格式:马昭,葛文双,胡爱兰,等. 基于PTP授时的高可靠时间统一系统的应用研究[J].电子技术应用,2019,45(5):38-42.
英文引用格式:Ma Zhao,Ge Wenshuang,Hu Ailan,et al. Application research of high reliability time unified system based on PTP strategy[J]. Application of Electronic Technique,2019,45(5):38-42.
0 引言
随着计算机和通信技术的飞速发展,时间统一系统在测控、航天、工业控制等领域的应用越来越广泛,例如,时间统一系统为指挥控制系统、航空航天信息处理系统、工业控制网络等提供精确、可靠、统一的时间,同时,各应用领域对所需的时间统一系统的性能要求也越来越高[1-2]。
时间统一系统的主要功能是提供标准的时间和脉冲中断信号,使其所处的信息系统有一个统一的时间标准。目前在时间统一系统中应用最广泛的时间同步协议是NTP协议,但是该协议的同步精度为毫秒级,无法满足高精度要求的应用场景[3-4]。并且,在NTP协议的条件下,系统主时钟一般都是固定的,一旦系统中的主时钟出现异常,整个系统的授时就会瘫痪,所以,提升时间统一系统的鲁棒性也是一个亟需解决的问题。因此,设计并实现一个高精度、高可靠性的时间统一系统,提升时间统一系统的同步精度、鲁棒性,对于测控、航天、工业控制等领域具有重大现实意义。
1 系统架构
本文基于PTP协议构建了一个高可靠的时间统一系统,系统由时间服务器和时统软件两部分组成。在本系统中,PTP时间服务器为整个系统的时间源,时统软件接收时间源的同步信号,校正本地时间。PTP时间服务器通过网络交换机连接服务器,服务器配置专用网卡来接收网络传输的PTP信号;安装于服务器上的时统软件获得网卡的时间信息,进行解码并输出对时信号和脉冲中断信号。系统架构图如图1所示。
2 基于PTP授时的双机热备的实现
为了解决时间同步精度较低、鲁棒性较差等问题,本系统采用PTP协议进行网络授时,且本系统采用两台时间服务器及BMC算法来实现系统的双机热备功能。
2.1 PTP同步原理
PTP协议的时间戳记录在MAC层,消除了在NTP协议中一直存在的协议栈的延迟和抖动,从而提高授时精度。PTP协议主要通过4种类型的报文来测量时钟偏差和网络延时,分别是:Sync报文、Follow_Up报文、Delay_Req报文、Delay_Resp报文[5-7]。其具体的时间同步过程如图2所示。
具体原理如下:
(1)主时钟在t1时刻发送Sync消息:如果为1588 one-step机制,则Sync消息包含有发送时间;如果为1588 two-step机制,则Sync消息仅发送发送时间值的估计值,即t1的估计值,然后在Follow_Up消息中再发送精确的t1值。
(2)从时钟记下收到Sync消息的时间t2,然后在t3时刻发送Delay_Req消息。
(3)主时钟记下收到Delay_Req消息的时间t4,然后发送携带t4值的Delay_Resp消息给从时钟。
(4)假设主从时钟之间的链路延迟是对称的,从时钟根据已知的t1、t2、t3、t4值,计算出Offset值与Delay值。
计算过程如下:
假设从时钟超前主时钟的值为Offset,则有:
则本地时间纠正值为本地时间值减去Offset值与Delay值之和。
2.2 双机热备实现原理
在时间统一系统中,主时钟的异常会导致整个系统的授时瘫痪。在航天、测控、工业控制等领域,这种情况的出现对所需授时的信息系统的影响是致命的,它可能会带来无法挽回的损失。因此,在这些要求较高的应用领域中实现时间统一系统的双机热备,并进一步达到双机切换的无缝衔接,是十分有必要的。对此问题的解决,BMC算法提供了很好的理论依据。双机热备原理图如图3所示。
2.2.1 双机热备工作模式
在BMC算法的理论基础上,为了防止算法运行过程中受到无法预测的干扰而导致系统授时出现故障,本系统共实现了两种双机热备工作模式。两种双机热备工作模式的实现原理如下:
(1)手动设置主时钟
根据本系统实际工作环境,网络授时采用发送/接收组播数据包的模式进行相关报文的交互,因此,PTP时间服务器运行状态稳定后(锁定后),可将其中一台设置为组播模式,其余的设置为单播模式,且将所有的PTP时间服务器设置为较高的同一优先级。
通过如上的设置,实现了当前网络中只有一台设备发包,进而实现热备功能。其中,保持为组播模式的PTP时间服务器为主时钟,单播模式的为备时钟。另外,传输模式中单播与组播模式可无缝切换无需重启服务,保障了运行的可靠性。
(2)自动选择主时钟
①正常工作情况
首先,整个时间统一系统会选择一台PTP时间服务器作为主时钟,该模式的工作原理为:当PTP时间服务器开机并锁定后,均从时统专网上获取时间报文,并从中解析出所需的参数值,再根据BMC算法的相应参数值进行判断,符合相应条件的即为主时钟(Master),其余的为从时钟(Slave)。然后,主时钟对整个系统进行授时。
②异常工作情况
主时钟(Master)发生故障或物理链路波动导致授时精度下降时,系统会根据BMC算法的判定结果选定新的主时钟,即主时钟(Master)自动切换为数据质量较好的从时钟(Slave)。
2.2.2 最佳主时钟算法
BMC算法能够对整个时间统一系统进行自适应授时调整,它包括数据集比较算法和端口状态决策算法[7-9]。
(1)数据集比较算法
在PTP时间统一系统中,每个协议节点定期向其他协议节点发送的Announce报文中携带了该节点及其父节点的时钟质量信息[10]。数据集比较算法的比较对象是端口收到的时钟质量信息和本地时钟default DS数据集[11]。其需比较的具体信息及比较流程如图4、图5所示,图中A、B分别代表端口收到的时钟质量信息和本地时钟default DS数据集。
(2)端口状态决策算法
端口状态决策算法的数据来源为:本地时钟默认数据(D0)、PTP端口最佳报文(Erbest)、最佳报文(Ebest)。对于任一PTP端口r,对其收到的来自其他PTP端口的有效报文,依次使用数据集比较算法,就可以得到PTP端口最佳报文(Erbest)[11-12]。然后,对每个端口的Erbest依次使用数据集比较算法,就可以得到Ebest。
根据从这3个数据源得到数据的比较以及对本地时钟等级的判定,系统得出本地端口应处的状态,包括主时钟状态(M1、M2、M3)、从时钟状态(S1)、待机状态(P1、P2)。端口状态决策流程图如图6所示。
3 实验结果
本系统的实验环境由2台PTP时间服务器和相应的时统软件组成,按照如图1所示系统架构图进行部署。根据PTP时钟优先级设置规则,PTP时间服务器为本系统内主时钟(设置为高优先级),时统软件为从时钟(优先级设置为255,无法被选择为主时钟)。
完成整个系统的部署后,首先对本系统进行精度测试。将标准时钟源的授时信号输出到示波器上,再选择本系统中一台服务器,在服务器上利用时统软件测试工具获得的授时信号经串口输出到示波器上,调整示波器并进行上升沿的对比,得出两者的时延误差。系统测试结构图如图7所示,测试结果如图8所示。
如图8所示,本系统通过时统软件获取的稳定时延误差大概为710 ns,远远低于NTP协议的毫秒级误差,满足本系统自身的高精度要求。
然后,对本系统进行鲁棒性测试。本系统正常运行时,随机选择一时刻(本测试中为7时59分59秒),将PTP时间服务器1与网络交换机断开连接,测试结果如表1所示。
由表1可以看出,将PTP时间服务器1断开连接,对系统的运行并无影响,系统并未出现时间断续、跳变等异常情况,满足本系统自身的高鲁棒性要求。
另外,在本系统中,服务器接收PTP信号需配置专用网卡,为了使系统性能测试结果更加详细,更能体现出本系统的授时精度情况,在进行了上述两项测试之后,对本系统中所使用的网卡进行了自守时的测试,大概收集了16个小时的数据,使用MATLAB将数据转化为曲线图,得出了如图9所示的自守时精度及其一阶拟合情况。
由图9可得本系统所使用网卡的每秒时间漂移大概为80 ns(由图中直线斜率得出),即随着系统使用时间的增长,本系统所使用的专用网卡对系统的授时精度有一定的影响。
4 结论
本文通过对基于PTP授时的高可靠时间统一系统进行理论研究、设计论证,实现了一套基于PTP授时的、适用可靠性要求较高的双机热备时间统一系统,提出了手动设置主时钟与自动选择主时钟两种双机热备工作模式。本研究充分利用实际物理环境,筛选使用场景,并进行了系统的搭建、系统的性能测试。结果表明,对比以往的时间统一系统,本系统的时间同步精度为纳秒级,大大提升了时间统一系统的授时精度;并且在双机热备自动切换的基础上,增加了人工主动切换模式,进一步提高了系统的鲁棒性。此外,在性能测试中,对本系统中所使用的专用网卡进行了自守时精度测试,也进一步展示了本系统相比于以往时间统一系统的性能优化情况。
参考文献
[1] 张杨敏,郭勇,谢兴红.嵌入式高精度GPS异地时间测量系统的设计[J].电子技术应用,2010,36(2):19-22.
[2] 王娜,慕德俊.分布式试验系统管理中的时钟同步技术研究[J].电子技术应用,2006,32(12):25-27.
[3] 黄沛芳.基于NTP的高精度时钟同步系统实现[J].电子技术应用,2009,35(7):122-124,127.
[4] 李永刚,李欣泉,郭力兵,等.麒麟操作系统平台软时统同步方法研究[J].电子技术应用,2018,44(9):129-133.
[5] 李德骏,汪港,杨灿军,等.基于NTP和IEEE1588海底观测网时间同步系统[J].浙江大学学报(工学版),2014,59(1):1-7.
[6] 刘见,靳绍平,李敏,等.基于IEEE-1588协议的高精度时钟对时设计[J].电子技术应用,2014,40(4):48-51.
[7] 孙中尉.IEEE1588高精度网络时间同步应用研究[D].西安:中国科学院大学(中国科学院国家授时中心),2010.
[8] 魏亚敏,李轶,张申,等.矿山物联网时间同步系统设计与实现[J].电子技术应用,2017,43(1):81-83.
[9] 黄健,刘鹏,杨瑞民.IEEE1588精确时钟同步协议从时钟设计[J].电子技术应用,2010,36(7):94-97,108.
[10] 王冠.IEEE1588v2时钟同步技术的研究与实现[D].武汉:武汉邮电科学研究院,2011.
[11] 李红亮.基于PTP协议的高精度网络时间同步系统的设计与实现[D].天津:天津大学软件学院,2012.
[12] 庾智兰,李智.精确时钟同步协议最佳主时钟算法[J].电力自动化设备,2009,16(11):74-77.
作者信息:
马 昭,葛文双,胡爱兰,张瑞权,张志成
(华北计算机系统工程研究所,北京100083)