IEEE1588协议在网络测控系统中的应用✴
2011-04-02杨传顺彦廷江
杨传顺,彦廷江
(江苏自动化研究所,江苏连云港222006)
IEEE1588协议在网络测控系统中的应用✴
杨传顺,彦廷江
(江苏自动化研究所,江苏连云港222006)
在基于网络的测量与控制系统中,对分散节点间的时钟同步有很高的要求。IEEE 1588标准的精确时钟协议为测控系统的时钟同步提供了一种简单可行的途径。分析了精确时钟协议实现的原理和算法,针对测控系统中对时钟同步精度的需求,研究了系统内选择最优主时钟的算法和实现,以及硬件辅助检测时间戳的方法和应用。最后以以太网为例,对设计的方法进行了精度测试,验证了在测控系统中应用精确时钟同步协议能够满足系统的应用需求。
测控系统;IEEE 1588协议;精确时钟协议;最优主时钟算法;时间戳;硬件辅助
在基于网络的测量控制系统中,对时钟的应用主要有基于绝对时间的应用和基于频率的应用两种,绝对时间用于记录系统内事项的发生次序,频率用于控制器、执行器以及传感器的同步采样、回馈和执行。因此,分散节点间的时钟同步对于基于网络的测控系统来说非常重要,而IEEE 1588协议的推出正是为了解决测量仪器和工业控制系统中网络定时同步能力不足的问题。
1 精确时钟同步协议
IEEE 1588协议[1]的全称是“网络测量和控制系统的精确时钟同步协议”,简称PTP(Precision TimeProtocol)。国际电工协会也把此标准纳入到了IEC标准中,对应的标准是IEC 61588[2]。它具有配置容易、收敛快速以及对网络带宽和资源消耗少等优点。它的主要原理是采用分层的主从模式通过一个同步信号周期性地对网络中所有节点的时钟进行校正;通过记录报文发送和接收的时间戳信息,计算出报文传输的时间延迟和主从时钟的时钟偏移,并相应地调整本地时间,使从时钟保持与主时钟一致的频率与相位,使系统中分散节点间的时钟达到高精度同步[3]。
PTP定义了4种多点传送的报文[4]:同步报文(Sync)、跟随报文(Follow-up)、延迟请求报文(Delay-Req)和延迟应答报文(Delay-Resp)。这些报文的交互顺序将在第2节中说明,收到的信息响应与时钟当前的状态有关。
为了描述测控系统的时钟同步问题,我们以一个主时钟和一个从时钟的同步过程为例,如图1所示。
时钟同步过程如下所述。
(1)主时钟按照定义的间隔时间周期性地向从时钟发送“同步报文(Sync)”,这个报文的时间戳是主时钟打上的预计发送时间,同时主时钟记下实际发送时间tm1;此报文在接收端被从时钟记下接收时间ts1。
(2)主时钟向从时钟发送“跟随报文(Follow-up)”,此报文包含先前的同步报文准确的发送时间tm1。
记网络延迟时间为Delay,主从时钟偏移为Offset,则:
(3)从时钟向主时钟发送“延时请求报文(Delay-Request)”(延时请求报文的间隔是独立设置的),报文发送后是从时钟记下准确的发送时间ts2,在主时钟端记录准确的接收时间tm2。
(4)主时钟向从时钟返回一个“延时响应报文(Delay-Response)”,此报文包含先前的“延时请求报文”的准确接收时间tm2,从时钟利用ts2和发送时间tm2。可以得到:
根据链路的对称性,由式(1)和(2)可计算出:
如果目前的从时钟时间为tsOld,则可以计算出目前应该同步到的新的从时钟时间tsNew:
据此,在接下来的一个同步周期内,就可以实现从时钟和主时钟的同步。
以上是时钟同步过程的算法思想,在实际的应用中,同步报文和跟随报文的发送是按照定义的时间间隔周期性发送的;延迟请求报文和延迟应答报文发送间隔可以是不规则的,其测量间隔时间比偏移值测量间隔时间要大,这样做可以减轻网络尤其是终端设备的负荷[5]。
2 IEEE 1588在网络测控中的应用
在测控系统中,测控装置的时钟一般来源于主站或后台;为了提高同步精度,一般采取系统内配置GPS装置,接收GPS的标准授时信号,其它节点和GPS的时钟同步,保证系统的时钟同步精确度要求;当GPS故障时,可选择利用与监控中心的时钟同步来校正,这正好符合IEEE 1588标准的要求。
在IEEE 1588标准中,系统内的时钟分为普通时钟和边界时钟两种。只有一个PTP通信埠的时钟是普通时钟,有两个及以上PTP埠的时钟是边界时钟。每个PTP埠的状态主要有主状态、从状态和被动状态3种。埠处于主状态的时钟称为主时钟,处于从状态的时钟称为从时钟,主时钟负责同步系统内所有的从时钟。如果埠处于被动状态,则意味着对应的时钟不参与时钟同步。理论上任何时钟都能实现主时钟和从时钟的功能,但一个系统内只能有一个主时钟,整个系统中的最优时钟为主时钟(Grandmaster Clock),具有最好的稳定性、精确性等。根据各节点的时钟精度、级别以及通用协调时间(UTC)的可追溯性等,由最优主时钟算法来自动选择系统内的主时钟[6]。图2是一个网络测控系统中典型的主、从时钟关系示意图,最上面的时钟作为主时钟,其它设备的时钟通过分层结构都与主时钟同步。
2.1 最优主时钟算法
最佳时钟(Best Master Clock,BMC)算法独立运行于系统内的每个时钟的端口上,在系统的所有时钟中(包括本地时钟)选出一个性能最好的,指定它作为系统中的最优主时钟,该算法避免系统内出现2个主时钟或没有一个主时钟的情况[7]。
BMC算法由两部分组成:一是数据集比较算法,比较两组数据的优劣,一组可能是本地时钟的缺省数据集,一组可能是本地时钟的某个端口接收到的时钟数据集,应用此算法,从中选出质量较优的数据集;二是状态决策算法,根据数据集比较算法的结果计算本地时钟的每个埠当前应该所处的状态,并作相应的埠状态转换,为接下来系统的时钟同步作准备。
BMC算法规定了数据比较的顺序和判据。时钟埠在设备上电时进行缺省初始化配置,为各数据集分配缓冲区等操作。然后,系统开始侦听网络上的时钟同步报文,如果埠收到相应的PTP报文,就调用BMC算法。
BMC算法的典型软件实现步骤如下:
Step 1:对于具有N个埠的时钟C0的其中一个端口r,通过数据集比较算法比较从这个端口接收到的其它时钟埠的有效同步报文的数据集,计算出最优的Erbest;
Step 2:对C0的所有埠比较Erbest,计算出N个埠最优的Ebest;
Step 3:对C0每个埠,根据Erbest和Ebest以及缺省资料集D0,通过状态决策算法决策出端口应该所处的状态,并更新所有端口的数据集;
Step 4:把决策出的端口状态返馈到PTP引擎状态机,由状态机控制和实现埠状态的转化。
实现时钟端口的BMC算法的软件流程图如图3所示。对于系统的每个时钟,每个端口都运行BMC算法,这个运算是连续不断的,因此能适应时钟和埠的变化。
2.2 时间戳记录
PTP支持在物理介质层、驱动程序层或应用软件层检测和记录报文发送和接收的时间戳;越靠近物理介质层,同步精度越高;越靠近应用软件层,同步精度越低[8]。早期的网络时间协议(NTP)是只有软件控制的同步协议,在应用软件层打上时间戳,因此同步的精度不高;PTP为了提高系统的时钟同步精度,既使用软件,亦同时使用硬件和软件配合,获得更精确的定时同步;PTP支持硬件辅助在物理介质层检测和记录报文的时间,从而把报文从驱动程序到应用软件处理的不确定时间延迟排除在系统精度的分析之外。图4是在物理介质层硬件辅助记录时间戳的示意图,图中tm1、tm2、ts1和ts2分别是在物理介质层由硬件记录的同步报文的发送和接收时间,然后传送给应用软件,由应用软件打包记录到报文中,通过网络发送出去。
目前已有多种芯片和微控制器支持PTP时间戳硬件实现,常见的有美国国家半导体的DP83640芯片、Silicon Labs公司生产的Si5315芯片、飞思卡尔的ColdFire MPU等,也可以采用FPGA设计实现。当采用硬件辅助检测和记录PTP报文的时间戳时,即在网络的物理层(PHY)中放置这些器件,一旦线路上有PTP包,即被这些器件读取。采用DP83640芯片实现系统时钟同步的系统结构图如图5所示。
3 精度测试
当在测控系统中采用PTP时,本地时钟相对于主时钟的同步时钟精度可由标准差(或称均方差)表示,PTP的标准差基于Allan标准差,Allan标准差σy(τ)的估计如下[9]:式中,xk、xk+1、xk+2是对应时间tk、tk+τ、tk+2τ的样本测量值,τ是样本测量的时间间隔,N是样本总数。Allan标准差是对时基振荡器频率变化的二阶统计,PTP标准差则是对测量时钟和本地参考时钟的偏差统计。
PTP方差定义为
由式(6)和(7)得PTP的标准差无偏估计的计算如下:
测试系统时钟同步精度的方法有多种,最常用的是通过示波器观察秒脉冲信号(PPS)的波形。为了使测试的精度能够满足实际的工程应用,以采用以太网组网为例,对不同情况下的网络负载分别进行了相应的测试。
设置主时钟和从时钟在某一频率点产生一个时钟输出,然后比较这两路时钟信号。采用秒脉冲测量是由于秒脉冲信号一般从数字输出中产生,虽然会对同步结果增添额外的误差,但是附加的误差仅会影响数字输入和输出,而不是同步时钟本身,因此不会包括在同步测量中。测试结果如表1所示。
由表1可知,当网络负载在80%时,从时钟和主时钟的同步精度在28.0 ns的标准差内,完全能够满足网络测控系统的时钟需求。
4 结论
随着测量和控制系统规模的不断增大,分散节点间的时钟同步变得愈加重要。IEEE 1588精确时钟同步协议的出现,为测控系统的时钟同步提供了一种切实可行的途径。由于PTP不需要为时钟传递布置特别的网络,只需在原有网络上添加时钟同步报文,这些报文只占用少许网络资源,它们和控制数据包或其它信息包共享网络,具有较低的网络开销,在不需要太多资源的情况下,就能实现微秒级的高精度时钟同步,完全能够满足系统对时钟的同步精度需求。
[1]IEEE 1588-2008,IEEE Standard for a precision Clock Synchronization Protocol for Networked Measurement and Control Systems[S].
[2]IEC 61588-2009,Precision Clock Synchronization Protocol for NetworkedMeasurement and Control Systems[S].
[3]赵上林,胡敏强,窦晓波,等.基于IEEE1588的数字化变电站时钟同步技术研究[J].电网技术,2008(21):97-102.
ZHAO Shang-lin,HU Min-qiang,DOU Xiao-bo,et al. Research of Time Synchronization in Digital Substation Based on IEEE 1588[J].Power System Technology,2008(21):97 -102.(in Chinese)
[4]于鹏飞,喻强,邓辉,等.IEEE 1588精确时间同步协议的应用方案[J].电力系统自动化,2009(13):95-99.
YU Peng-fei,YU Qiang,DENG Hui,et al.The Research of Precision Time Protocol IEEE 1588[J].Automation of Electric Power Systems,2009(13):95-99.(in Chinese)
[5]张振,许扬,陆于平,等.IEEE1588协议在分布式系统保护信息传输中应用[J].电力自动化设备,2009(12):83 -87,97.
ZHANG Zhen,XU Yang,LU Yu-ping,et al.Application of IEEE1588 protocol in information transmission of distributed protection system[J].Electric Power Automation Equipment,2009(12):83-87,97.(in Chinese)
[6]李学桥,陈园,梁爽.基于IEEE1588协议的精确时钟同步算法改进[J].计算机工程与科学,2011(2):42-45.
LIXue-qiao,CHEN Yuan,LIANG Shuang.Improvement of the Precise Time Synchronization Algorithm Based on IEEE1588[J].Computer Engineering&Science,2011(2):42 -45.(in Chinese)
[7]刘明哲,徐皑冬,赵伟.基于IEEE1588的时钟同步算法软件实现[J].仪器仪表学报,2006(S3):2009-2011.
LIUMing-zhe,XUAi-dong,ZHAOWei.Implementation of clock synchronization algorithm by software method base on IEEE 1588 protocol[J].Chinese Journal of Scientific Instrument,2006(S3):2009-2011.(in Chinese)
[8]马龙华,陈孝良,程晓斌,等.分布式声学测量设备中精确时钟同步研究[J].计算机工程与设计,2011(1):351 -353,365.
MA Long-hua,CHEN Xiao-liang,CHENG Xiao-bin,et al.Precise time synchronization for distributed acoustic measurement equipment[J].Computer Engineering and Design,2011(1):351-353,365.(in Chinese)
[9]师伟,刘昕,万晓东.基于IEEE 1588同步协议的高空台采集同步系统开发[J].计算机测量与控制,2010(2):476-478.
SHIWei,LIU Xin,WAN Xiao-dong.Development of High Altitude Test Cell′s Data Acquisition Synchronization System Based on IEEE 1588 Synchronization Protocol[J].Computer Measurement&Control,2010(2):476-478.(in Chinese)
YANG Chuan-shun was born in Heze,Shandong Province,in 1978.He received the B.S.degree from Shandong University and the M.S.degree from the North China Computer System Engineering Research Institute in 2001 and 2007,respectively.He is now an engineer.His research interests include computer control and system engineering.
Email:yang97718@yahoo.com.cn
彦廷江(1963—),男,吉林人,1990年于东南大学自动化系获硕士学位,现为高级工程师,主要研究方向为电子设备及显控台总体技术。
YAN Ting-jiang was born in Jilin Province,in 1963.He received the M.S.degree from Southeast University in 1990.He is now a senior engineer.His research concerns system technique of electronic equipment and console.
Application of IEEE 1588 Protocol in Networked Measurement and Control System s
YANGChuan-shun,YAN Ting-jiang
(Jiangsu Automation Research Institute,Lianyungang 222006,China)
In a networked measurement and control system,high accuracy of the clock synchronization between the distributed nodes is required.IEEE 1588 standard of precision time protocol formeasurement and control system provides a simple and feasibleway to the clock synchronization.This paper analyses the principle and algorithm of precision time protocol,according to the requirement ofmeasurement and control system for clock synchronization accuracy,studies the algorithm and implementation to choose the bestmaster clock in the system,and the hardware-assisted method and application of detecting time stamp.Finally,taking the ethernet for example,it tests the accuracy of the clock synchronization designed and the resut verifies that the application of precision clock synchronization protocol inmeasurementand control systems can satisfy the system application requirements.
measurement and control system;IEEE 1588 protocol;precision time protocol;bestmaster clock algorithm;time stamp;hardware-assisted
TP273
A
10.3969/j.issn.1001-893x.2011.11.017
杨传顺(1978—),男,山东菏泽人,2001年于山东大学数学系获学士学位,2007年于华北计算机系统工程研究所获硕士学位,现为工程师,主要研究方向为计算机控制和系统工程;
1001-893X(2011)11-0084-05
2011-07-11;
2011-08-19