新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于IEEE1588协议的精确时钟同步算法改进

基于IEEE1588协议的精确时钟同步算法改进

作者:时间:2016-09-12来源:网络收藏

随着计算机和互联网的迅速发展,基于网络的分布式应用越来越普及。为了确保分布式网络化的终端能够实现精确的数据采集、运行控制等实时性任务,需要整个系统具有统一的参考时间,并且应该使所有分布式终端的本地时钟与该系统时间保持同步。越来越多的工业测量和控制系统对时钟同步的精度要求也越来越高,尤其是在大多数以工业以太网为基础的控制系统中,已经对时钟同步提出了微妙级的同步要求。特别是在分布式控制系统中,考虑到实时性的调度和控制,对时间统一的要求就更为严格。传统的技术网络时间协议(Network time protocol,NTP)已经无法满足这种精度要求,比如对时钟同步精度要求非常苛刻的TDSCDMA网络就采用GPS卫星信号进行授时,虽然精度可以保证,但是GPS系统造价昂贵、安装复杂、兼容性差的缺点使得运营商不得不考虑其替代方案。

本文引用地址:http://www.eepw.com.cn/article/201609/303777.htm

为了彻底解决分布式网络化测控系统的实时性问题,很多研究机构和测控公司纷纷投入人力、物力进行这方面的研究与实验。美国电气和电子工程师协会(IEEE)开发并发布了“网络测量和控制系统的精密时钟同步协议标准(Precision cloek synchronization Drotocol for networked measurement and control systems)”,即协议,简称为精确协议(Precision Time Protocol,PTP)。IEEE15 88协议的发展和成熟提供了一种低成本高精度的网络时钟同步解决方案。定义了一种用于由网络通讯、本地计算和分布式对象等技术实现的现代测量和控制系统的精确时钟同步协议。该协议支持系统范围的时钟同步,即可以用于广域的以太网中,也可用于支持多点欢送的局域网中,能够实现亚微妙级的精度。协议采用了发布者和接收者的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所示。

基于IEEE1588协议的精确时钟同步算法改进

这里我们把主从时钟的时间偏差记作△toffset,而发送同步报文Sync消息传输需要的时间记作△tdelay12,发送Delay_Req消息传输需要的时间记作△tdelay34,则它们有公式(1)关系。

基于IEEE1588协议的精确时钟同步算法改进

从原理中可以看出传输的网络延迟严重影响时钟同步精度。传输的网络延迟包含协议栈、存贮转发及物理网络上的传输时延。物理网络所产生的线路延时一般是稳定的,而协议栈及存贮转发在运行过程中由于受不确定因素影响会产生较大的抖动,这对同步的精度有较大的影响。为此IEEE1588协议提出了一种基于软件和硬件相结合的时间同步方法,将时间戳的标记点下移到MAC层和PHY层之间,即图2中的A点,降低协议栈及业务流量对同步时间的影响,使同步过程中的主要延时为物理层延时,目前已经有很多Switch芯片、PHY芯片都支持硬件打时间戳。

基于IEEE1588协议的精确时钟同步算法改进

2 时钟同步算法的改进

只有当网络双向传输是完全对称的,即△tdelay=△tdelay12=△tdelay34时,才能够保证同步的精确性。但在现实中的网络系统中这只能是一种理想情况,在网络上有较大负载的情况下,这种假设很难保证。为了有效减小远程末端的串扰,目前使用网络电缆在设计时就采用了一些非对称的设计,而许多收发器采用的也是不对称的传送和接收路径。在这种情况下,网络负载越大,不同传输方向上延迟Delay越不可能相等,这样就会使计算出的延时与实际的主从延时相差较大。另外,如果主时钟和从时钟使用的收发器的时间特性不同,这种不对称性将是无法补偿的,从而严重影响时钟同步精度。现实中的网络传输延迟肯定是非对称的,根据IEEE1588的规定,上文中给出的计算网络延迟的式(3)可在必要时作出修改,以满足实际情况的需要。

针对网络传输路径的不对称性,以及发送同步报文Sync消息传输需要的时间△tdelay12和发送Delay_Req消息传输需要的时间△tdelay34具有不同的更新周期,可以考虑一种基于加权平衡的同步改进算法,所以若将网络延迟△tdelay取为△tdelay12和△tdelay34的加权平均值,则可具有较好的精确度。不妨标记传输的网络延迟△tdelay34为网络延迟△tdelay12的w倍(w的测量计算不在本文讨论,文献给出了具体的实现方法)

基于IEEE1588协议的精确时钟同步算法改进

在时间源稳定运行下,主从时钟间的时间偏差△toffset测量值在统计学理论上符合正态分布,或者分布近似高斯分布。根据IEEE1588标准同步算法计算得出的时间偏差测量值△toffsset,若简单认为就是主从时钟间的相位差而直接进行相位的调整,由于时间偏差△toffset符合正态分布,则会出现从时钟相位的正负矢量方向上的无间歇运动,时钟的运行将很不稳定,不但起不到适中同步的效果,反而可能使系统的时间发生严重的错乱。故在实现精确时间同步算法的时间同步系统中,由于网络延时等不可确定因素的影响,计算得出的主从时钟偏差测量值与理论值存在一定误差,为进一步提高时间同步精度,一般运用统计学方法计算大量主从时钟偏差样本的算术平均值,无限逼近主从相位偏差的数学期望值,即式(7)。不足的是当采集到的△toffset测量值不够理想时,计算出的算术平均值可能会远离其期望值,或者在主时钟源时间发生跳变时,通常的调相操作可能会使得从时钟相位发生较大位移,降低同步精度和系统的稳定性。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭