IEEE 1588精确时钟同步协议的研究

IEEE 1588精确时钟同步协议的研究

网址:http://www.dzsc.com/data/html/2011-8-24/93816.html


在分布式网络中,由于网络传输时延的不确定性,导致采用网络命令触发的同步精度差;同时,由于分布式网络各节点位置的分散性,不适合采用硬件同步提供高精度的同步触发。基于时间信息的同步触发方式特别适合于分布式远距离同步系统,其触发方式灵活,不受距离的限制。

  IEEE1588的全称是“网络测量和控制系统的精密时钟同步协议标准”,IEEE1588标准的草案基础来自惠普公司的1990至1998年的有关成果,换句语说,安捷伦科技对IEEE1588标准作出重要贡献。安捷伦实验室的资深研究员John Eidson被网络业界视为专家,他的“IEEE1588在测试和测量系统的应用”,以及“IEEE1588:在测控和通信的应用”两篇论文对IEEE1588协议有精辟和全面的介绍。IEEE1588协议是通用的提升网络系统定时同步能力的规范,在起草过程中主要参考以太网来编制,使分布式通信网络能够具有严格的定时同步,并且应用于工业自动化系统。基本构思是通过硬件和软件将网络设备(客户机)的内时钟与主控机的主时钟实现同步,提供同步建立时间小于10μs的运用,与未执行IEEE1588协议的以太网延迟时间1,000μs相比,整个网络的定时同步指标有显着的改善。

  IEEE 1588 的基本功能是使分布式网络内的所有时钟与最精确时钟保持同步,它定义了一种精确时间协议PTP(Precision Time Protocol),用于对标准以太网或其他采用多播技术的分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行亚微秒级同步。IEEE 1588可以以纯软件的方式实现,也可以用能够提供更精确的时间同步的专门的硬件实现。时间的精度和不确定性主要依模块和IEEE 1588执行的情况而定,一般期望在几十纳秒到几十亚微秒间。IEEE 1588用于需要时间精度比NTP高的局域分布系统,也用于一些不能接受GPS高成本或者不能接收到GPS信号的应用场合。

  PTP起源

  伴随着网络技术的不断增加和发展,尤其是以太网在测量和控制系统中应用越来越广泛,计算机和网络业界也在致力于解决以太网的定时同步能力不足的问题,以减少采用其它技术,例如IRIG-B等带来的额外布线开销。于是开发出一种软件方式的网络时间协议(NTP),来提高各网络设备之间的定时同步能力。   1992年NTP版本的同步准确度可以达到200μs,但是仍然不能满足测量仪器和工业控制所需的准确度。为了解决这个问题,同时还要满足其它方面需求。网络精密时钟同步委员会于2001年中获得IEEE仪器和测量委员会美国标准技术研究所(NIST)的支持,该委员会起草的规范在2002年底获得IEEE标准委员会通过,作为IEEE1588标准。该标准定义的就是PTP协议(Precision Time Protocol)。

  PTP应用环境

  PTP适合用于支持多播消息的分布式网络通信系统,例如EtherNet。同时提供单播消息的支持。协议支持多种传输协议,例如UPD/IPv4,UDP/IPv6,Layer-2 EtherNet,DeviceNet。协议采用短帧传输,且数据帧少,算法简单,对网络资源使用少,对计算性能要求低,适合于在低端设备上应用。

  1 同步机制

  PTP协议通过最佳主时钟算法建立主从时钟结构后,使用UDP通信协议,每个从时钟通过与主时钟交换同步报文而与主时钟达到同步。同步过程分为两个阶段,偏移测量阶段和延迟测量阶段,如图1所示。

IEEE 1588精确时钟同步协议的研究_第1张图片

  1.1 偏移测量阶段

  偏移测量阶段是指测量主时钟与从时钟之间的时间偏移量,并在从时钟上消除这些偏移。主时钟每隔2 s向从时钟发送一个同步报文Sync,并记下它发出的准确时刻t1。当从时钟接收到Sync报文时立刻把当前时刻t2记下。由于偏移量的计算是在从时钟处进行,在此过程中需要用到时标t1,因此,必须在Sync报文发出后用一个跟随报文(Follow up)把时标t1装入并发送给从时钟。

IEEE 1588精确时钟同步协议的研究_第2张图片

  1.2 延迟测量阶段

  延迟测量阶段用于确定主时钟与从时钟之间报文传输的延时。当从时钟需要测量网络传输延迟时,它就向主时钟发送一个延时请求报文Delay_Req,并在报文发出的同时记下当前时刻t3,在主时钟接收到延时请求报文的时刻立即打上时标t4。由于传输延时的计算也是在从时钟处进行,需要用到时标t4,因此,需要用一个延时响应报文Delay_Resp装上时标t4并由主时钟发送给从时钟。从时钟在得到t3与t4之后,可得到下列公式:

IEEE 1588精确时钟同步协议的研究_第3张图片

  2 报文内部延时分析和时间检测点的选择

  从PTP协议的同步原理可以知道,要实现高精度的同步,必须有高准确度的时间测量,即准确地获取同步报文发送和接收的时间。在一个IEEE 1588应用系统中,报文发出一般依次经过应用程序、操作系统、网络协议栈和以太网控制器,最后通过网络发送到接收端。报文到达接收端后,依次通过以太网控制器、网络协议栈和操作系统,最后通过操作系统达到应用程序,如图2所示。

IEEE 1588精确时钟同步协议的研究_第4张图片

  为了消除操作系统和网络协议栈带来的波动,达到高的准确度和精确度,对传输报文的时间打标越靠近物理层越好。在IEEE 1588中定义了两种时间打标的方法,一种是没有带硬件辅助;另一种是带硬件辅助。

  没有带硬件辅助的方法是在软件层对发送和接收报文的时间做标记。带硬件辅助的方法是在连接介质访问控制层(MAC)和物理层(PHY)的介质独立接口(MII)接口处安装一个特殊的时钟同步包检测器和时间标记单元,如使用FPGA或ASIC实现,对发出或接收到的每个特殊报文(如:Sync和Delay_Req)打上时标。由于在网络中发送和接收的包都要经过硬件层,而硬件层的延时都是固定的,所以这种方法的精确度是最高的。典型的从时钟设计如图3所示。

IEEE 1588精确时钟同步协议的研究_第5张图片

  3 IEEE 1588从时钟设计

  3.1 可调时钟的硬件设计

  时钟是IEEE 1588设备的核心单元,为了达到设计的精度,一般使用基于硬件的时钟模块。在时钟的设计中有三个重要的模块需要设计,一是时钟本身,二是驱动时钟的时钟,三是时钟速率调节电路。

  时间由两个32位的二进制数表示,其中32位无符号的整形寄存器组成秒单位,30位无符号的整形亚秒寄存器和2位无符号的整形分数亚秒寄存器组成了秒以下的单位。如图4所示,速率计数寄存器和速率调节都是32位的,高2位用于表示分数亚秒时间,系统时钟是50 MHz[4]。

IEEE 1588精确时钟同步协议的研究_第6张图片

  每个从时钟在每个同步间隙必须利用计算的时间偏移调整本地时钟,无限地逼近主时钟,使这个时间偏移减小到最小。在目前的PTP协议中并没有说明从时钟如何利用这个偏移,而这个时间调整在同步中十分重要。

  3.2 时钟数据滤波处理

  对主从时钟偏移的数据进行滤波处理,可以减少因为网络的原因造成的偏移数据抖动、跳变以及晶体震荡器的方差造成的时钟的摆动,同时减小控制器的输入噪声,最终使从时钟的抖动减小[5]。实现采用将时钟偏移和网络延时分别滤波,其原理框图如图5所示。

IEEE 1588精确时钟同步协议的研究_第7张图片

  对偏移数据的滤波使用有限冲击响应(FIR)的滤波器,该滤波器采用常见的求和平均:

IEEE 1588精确时钟同步协议的研究_第8张图片

  S一般取整数,S越大,滤波器的截止频率越小。系统刚开始时,取S=1,随着时间增加网络延时逐渐固定起来,接着在每隔延时测量周期将S增大,直到达到最大值。

  3.3 从时钟伺服控制模型

  对从时钟逼近主时钟的时钟同步模型对应的伺服模型如图6所示。系统包括一个控制器、采样保持和代表从时钟的被控目标。误差信号e(t)表示本地时钟的时间与远端主时钟的时间的时间差,也就是滤波算法中计算得到的时间偏移offset。误差信号在每过一个时间被采样,代表同步的时间间隔[6]。所以整个控制模型是一个离散的控制系统。

  在整个系统控制模型中,时钟伺服的性能好坏取决于PI控制器的常数大小。首先必须保证控制器的闭环是稳定的,其次是要保证控制器的响应满足系统同步时钟需求,下面分析如何选择控制器的参数。

  PI控制器的微分方程如下:

IEEE 1588精确时钟同步协议的研究_第9张图片

  当取P=0.7和I=0.1,P=0.7和I=0.3,对应的闭环响应曲线如图8所示,采样时间是2 s。

IEEE 1588精确时钟同步协议的研究_第10张图片

  从仿真图可以看出,积分常数越大,系统的响应震荡和过冲越大,但是响应的平均幅度很快接近1,也就是同步过程很快。所以在实际系统选取时,可以折中考虑,取P=0.7和I=0.2,既可以防止过冲又可以满足快速同步的要求,如图9中m=0所示。

  考虑计算延时不为0的情况时,根据式(16)可以画出相应系统的单位阶跃响应曲线。从曲线图9可以看出,即使在m≠0的情况,系统的响应也是稳定的。

  IEEE1588时钟同步协议是LXI A类和B类设备中基于时间的同步触发方式。时钟同步算法直接影响到分布式系统的运算准确性和控制稳定性。本文在FPGA中设计了从时钟的硬件结构,并采用数据滤波与PI算法相结合的复合调节方法,分析了整个同步控制系统的稳定性,实现了从节点逻辑时钟对主节点时钟的动态跟踪。


你可能感兴趣的:(网卡驱动)