文献标识码: A
文章编号: 0258-7998(2010)07-0094-04
在分布式网络中,由于网络传输时延的不确定性,导致采用网络命令触发的同步精度差;同时,由于分布式网络各节点位置的分散性,不适合采用硬件同步提供高精度的同步触发。基于时间信息的同步触发方式特别适合于分布式远距离同步系统,其触发方式灵活,不受距离的限制[1]。
IEEE 1588 的基本功能是使分布式网络内的所有时钟与最精确时钟保持同步,它定义了一种精确时间协议PTP(Precision Time Protocol),用于对标准以太网或其他采用多播技术的分布式总线系统中的传感器、执行器以及其他终端设备中的时钟进行亚微秒级同步[2]。IEEE 1588可以以纯软件的方式实现,也可以用能够提供更精确的时间同步的专门的硬件实现。时间的精度和不确定性主要依模块和IEEE 1588执行的情况而定,一般期望在几十纳秒到几十亚微秒间。IEEE 1588用于需要时间精度比NTP高的局域分布系统,也用于一些不能接受GPS高成本或者不能接收到GPS信号的应用场合。
1 同步机制
PTP协议通过最佳主时钟算法建立主从时钟结构后,使用UDP通信协议,每个从时钟通过与主时钟交换同步报文而与主时钟达到同步[2]。同步过程分为两个阶段,偏移测量阶段和延迟测量阶段,如图1所示。
1.1 偏移测量阶段
偏移测量阶段是指测量主时钟与从时钟之间的时间偏移量,并在从时钟上消除这些偏移。主时钟每隔2 s向从时钟发送一个同步报文Sync,并记下它发出的准确时刻t1。当从时钟接收到Sync报文时立刻把当前时刻t2记下。由于偏移量的计算是在从时钟处进行,在此过程中需要用到时标t1,因此,必须在Sync报文发出后用一个跟随报文(Follow up)把时标t1装入并发送给从时钟。
1.2 延迟测量阶段
延迟测量阶段用于确定主时钟与从时钟之间报文传输的延时。当从时钟需要测量网络传输延迟时,它就向主时钟发送一个延时请求报文Delay_Req,并在报文发出的同时记下当前时刻t3,在主时钟接收到延时请求报文的时刻立即打上时标t4。由于传输延时的计算也是在从时钟处进行,需要用到时标t4,因此,需要用一个延时响应报文Delay_Resp装上时标t4并由主时钟发送给从时钟。从时钟在得到t3与t4之后,可得到下列公式:
2 报文内部延时分析和时间检测点的选择
从PTP协议的同步原理可以知道,要实现高精度的同步,必须有高准确度的时间测量,即准确地获取同步报文发送和接收的时间。在一个IEEE 1588应用系统中,报文发出一般依次经过应用程序、操作系统、网络协议栈和以太网控制器,最后通过网络发送到接收端。报文到达接收端后,依次通过以太网控制器、网络协议栈和操作系统,最后通过操作系统达到应用程序,如图2所示。
为了消除操作系统和网络协议栈带来的波动,达到高的准确度和精确度,对传输报文的时间打标越靠近物理层越好[3]。在IEEE 1588中定义了两种时间打标的方法,一种是没有带硬件辅助;另一种是带硬件辅助。
没有带硬件辅助的方法是在软件层对发送和接收报文的时间做标记。带硬件辅助的方法是在连接介质访问控制层(MAC)和物理层(PHY)的介质独立接口(MII)接口处安装一个特殊的时钟同步包检测器和时间标记单元,如使用FPGA或ASIC实现,对发出或接收到的每个特殊报文(如:Sync和Delay_Req)打上时标。由于在网络中发送和接收的包都要经过硬件层,而硬件层的延时都是固定的,所以这种方法的精确度是最高的。典型的从时钟设计如图3所示。
3 IEEE 1588从时钟设计
3.1 可调时钟的硬件设计
时钟是IEEE 1588设备的核心单元,为了达到设计的精度,一般使用基于硬件的时钟模块。在时钟的设计中有三个重要的模块需要设计,一是时钟本身,二是驱动时钟的时钟,三是时钟速率调节电路。
时间由两个32位的二进制数表示,其中32位无符号的整形寄存器组成秒单位,30位无符号的整形亚秒寄存器和2位无符号的整形分数亚秒寄存器组成了秒以下的单位。如图4所示,速率计数寄存器和速率调节都是32位的,高2位用于表示分数亚秒时间,系统时钟是50 MHz[4]。
每个从时钟在每个同步间隙必须利用计算的时间偏移调整本地时钟,无限地逼近主时钟,使这个时间偏移减小到最小。在目前的PTP协议中并没有说明从时钟如何利用这个偏移,而这个时间调整在同步中十分重要,参考文献[3,5-6]都描述了一些如何减少主从误差的方法,如使用对偏移数据预滤波和PI控制环的方法。
3.2 时钟数据滤波处理
对主从时钟偏移的数据进行滤波处理,可以减少因为网络的原因造成的偏移数据抖动、跳变以及晶体震荡器的方差造成的时钟的摆动,同时减小控制器的输入噪声,最终使从时钟的抖动减小[5]。实现采用将时钟偏移和网络延时分别滤波,其原理框图如图5所示。
对偏移数据的滤波使用有限冲击响应(FIR)的滤波器,该滤波器采用常见的求和平均:
S一般取整数,S越大,滤波器的截止频率越小。系统刚开始时,取S=1,随着时间增加网络延时逐渐固定起来,接着在每隔延时测量周期将S增大,直到达到最大值。
3.3 从时钟伺服控制模型
对从时钟逼近主时钟的时钟同步模型对应的伺服模型如图6所示。系统包括一个控制器、采样保持和代表从时钟的被控目标。误差信号e(t)表示本地时钟的时间与远端主时钟的时间的时间差,也就是滤波算法中计算得到的时间偏移offset。误差信号在每过一个时间被采样,代表同步的时间间隔[6]。所以整个控制模型是一个离散的控制系统。
在整个系统控制模型中,时钟伺服的性能好坏取决于PI控制器的常数大小。首先必须保证控制器的闭环是稳定的,其次是要保证控制器的响应满足系统同步时钟需求,下面分析如何选择控制器的参数[6]。
PI控制器的微分方程如下:
当取P=0.7和I=0.1,P=0.7和I=0.3,对应的闭环响应曲线如图8所示,采样时间是2 s。
从仿真图可以看出,积分常数越大,系统的响应震荡和过冲越大,但是响应的平均幅度很快接近1,也就是同步过程很快。所以在实际系统选取时,可以折中考虑,取P=0.7和I=0.2,既可以防止过冲又可以满足快速同步的要求,如图9中m=0所示。
考虑计算延时不为0的情况时,根据式(16)可以画出相应系统的单位阶跃响应曲线。从曲线图9可以看出,即使在m≠0的情况,系统的响应也是稳定的。
IEEE1588时钟同步协议是LXI A类和B类设备中基于时间的同步触发方式。时钟同步算法直接影响到分布式系统的运算准确性和控制稳定性。本文在FPGA中设计了从时钟的硬件结构,并采用数据滤波与PI算法相结合的复合调节方法,分析了整个同步控制系统的稳定性,实现了从节点逻辑时钟对主节点时钟的动态跟踪。
参考文献
[1] 王刚,黄飞,乔纯捷,等. 分布式网络时钟同步研究[J]. 仪器仪表学报, 2008,29(11).
[2] IEEE Std 1588-2008, IEEE Standard for a precision Clock Synchronization Protocol for Networked Measurement and Control Systems.2008.
[3] IEEE 15888 Tutorial. Conference on IEEE 1588 National Institute of Standards and Technology Gaithersburg, Maryland, USA, October 2, 2006.
[4] GUILFORD J. Design of an FPGA-based hardware IEEE-1588 implementation,IEEE-1588 Conference,October 2005.
[5] CORRELL K, BARENDT N, BRANICKY M. Design considerations for software only implementations of the IEEE 1588 Precision Time Protocol. Conference on IEEE, 2005.
[6] EIDSON J C. Measurement control and communication Using IEEE 1588. Springer-Verlag London Limited 2006.