APP下载

基于SERCOS—III网络系统高精度同步机制的研究

2015-04-07郑国雄

物联网技术 2015年2期

摘 要:SERCOS-III是SERCOS协议的最新版本,SERCOS-III融合了实时以太网技术,成为CNC系统发展的新方向。运用IEEE1588来解决环路时间的传播和同步,同步过程中同步时间和偏移值的测量与计算,并加入了晶振补偿和滤波算法来达到更精确的同步要求,实现SERCOS-III网络系统的高精度同步机制。

关键词:SERCOS-III;IEEE1588;同步机制;伺服控制

中图分类号:TP393.04 文献标识码:A 文章编号:2095-1302(2015)02-00-03

0 引 言

作为用于传动系统和伺服装置之间的现场总线接口和数据交换的协议,SERCOS能够实现控制器与PLC、传感器、数字伺服系统之间的实时数据通讯[1,2]。本文运用IEEE1588来解决SERCOS-III通信系统同步问题,并且研究了系统同步过程中同步时间和偏移值的测量与计算,通过晶振补偿和滤波算法对相关算法加以改进,从而来达到更精确的同步要求,实现SERCOS-III网络系统的高精度同步机制。

1 SERCOS-III 高速同步机制的设计与实现

IEEE1588的同步过程分为时钟偏移测量阶段和网络延时测量阶段两个阶段。由于数据报文的传递延时等网络延时原因的影响,一次传送同步报文计算的时钟偏移并不准确,还需要通过网络延时的计算来实现对偏移值进行修正[3-5]。

1.1 偏移值(Offset)的测量与计算

图1 同步报文和跟随报文传送图

主时钟每隔2秒发出一个确定的同步信息,该信息包含了精确描述数据包发出的时间的时间标记。如图2所示,假设同步之前主时钟的时间为Tm,而从时钟的时间为Ts。主站发出同步报文的时间为Tm1,从站收到报文的时间为Ts1。可以计算出从站时钟与主站时钟之间的偏移值(offset):

Offset=Ts1-Tm1-Delay (1)

上式中的Delay指的是主站时钟和从站时钟之间的延时,其可以通过以下的方式测出。

1.2 时钟延时(Delay)的测量与计算

(2)

Tmk、Tmk+1为主站时钟在第k次和第k+1次记录的时间戳,Tsk、Tsk+1为从站时钟在第k次和第k+1次记录的时间戳,该方法通过求信号从主从时钟往返一圈所用的时间平均值来计算得出,但是如果网络不对称则会对同步的精确性产生影响。因而可得:

Ts=Tm+Offset+Delay (3)

Ts为从时钟测到的时间,Tm为主时钟测到的时间。假设网络对称时,可以准确地计算出系统的延时,从而实现主站时钟和从站时钟的同步。

2 高速同步机制的算法改进

精确时钟同步协议(PTP)时钟同步要求非常高的进度,但是由于软硬件等方面的原因[6-8],会直接影响到SERCOS-III的同步的精度,影响系统同步进度的因素主要包括:晶振速率的稳定性、时间戳的精度、同步报文的发送频率以及广义线路延时的稳定性等[9,10],根据影响SERCOS-III网络通信系统的同步的原因,本文提出以下几种同步进度改进方法。

2.1 晶振偏差的补偿

假设主站的本地时钟速度为Rm,从站本地时钟速度为Rs,同步间隔时间为T,可以求出同步间隔中的最大偏差值为:

(4)

在基于SERCOS-III高精度同步系统中,同步时间间隔为2 s,晶振精度为100 ppm,在SERCOS-III通信系统运行过程中任意两个点产生的最大偏差为:

(5)

因此,为了使Rm=Rs,从而使ΔTmax =0。在运行过程中,每个点都记录本地时钟的运行时间,并且通过与主时钟的运行时间的比较来调整时钟的计数值,使从站时钟和主时钟的保持相同的运行速度。调整公式如下:

(6)

Rs为调整后的从站时钟速率, RsΔ为调整前的从时钟速率,分母和分子分别表示了从时钟和主时钟在n个调整周期内的运行时间。

2.2 Offset的滤波算法

针对系统中因为线路变化以及内部时延的不同产生的偏差,本文在计算偏移值时候,加入离散滤波算法。离散滤波算法公示如式(7)所示,在滤波时候,取e-aT=1/2,e-bT=1/3,推导出式(9)。

式(9)中Offset(k)表示第k次同步时通过式(2)求出的偏差,使用滤波算法后的第k次同步偏差用YOffset(k)来表示。

2.3 时钟的自补偿算法

在SERCOS-III系统中,时钟通常用晶体振荡器脉冲来度量,即:

(10)

其中ω(t)是晶振的频率,k是依赖于晶振物理特性的常量,t是时间的变量,c(t0)是从时钟。

在理想时钟的情况下,晶振频率恒k(t)=dc(t)/dt为1,但是,由于温度、压力和晶振本身老化等原因,晶振频率是会在一定范围内产生变化的。因此式(10)可简化为:

ci(t)=ki(t)+ci(t0) (11)

因为使用的外部晶振的实际频率和标称频率会有大约±(10~100)ppm的偏差,故晶振频率ki(t)也会存在±(10~100)×10-6的偏差。如果同步精度要求不是很高时这个偏差是可以不考虑的,但精确时钟同步协议的同步精度要求为10-6秒级,甚至10-9秒级,所以这个偏差就不能忽略了,必须想办法消除,因此本文通过以下从时钟自补偿算法来消除上述偏差。

2.3.1 时钟偏差的计算

精确时钟同步协议所指的时钟同步是指主从时钟之间的相对同步,将主时钟作为参考时钟,如果从时钟与其保持一致就可以认为该系统时钟是同步的。如图2所示,cM(t)代表主时钟时钟,cs(t)代表实际从时钟,cs_ideal(t)代表理想的从时钟。在理想情况下,从时钟和主时钟只是存在起始时刻的相对时移cΔ,不会有偏差。但是,实际上实际晶振频率不会完全相同,因此,从时钟与理想的轨迹cs_ideal(t)会有偏差,Δ表示经过t时间后从时钟与主时钟的相对偏移量。如果Δ>0,则表示从时钟实际晶振频率要比主时钟晶振频率快。

图2 时钟偏差的计算图

由式(11)可得如下关系式:

从时钟:cs(t)=ks(t)*t+cs(t0) (12)

主时钟:cM(t)=kM(t)*t+cM(t0) (13)

由式(12)和(13)可得:

Δ=cs(t)-cM(t)

=(ks(t)*t+cs(t0))-(kM(t)*t+cM(t0) )+cM(t0) (14)

=(ks(t)-kM(t)*t)+(cs(t0) -cM(t0) )

=kΔ(t)*t+cΔ

2.3.2 从时钟自补偿算法原理的实现

精确时钟同步协议的同步是一种相对同步,其根本在于认为主时钟的时钟频率是准确的,所有的精确时钟同步协议同步偏差都是因为从时钟引起的,并且由从时钟来负责进行补偿。时钟是通过计数器来实现的,这个计数器通过记录晶振产生脉冲的个数来实现计数功能。假设精确时钟同步协议主时钟发送同步报文的周期为Tsync,从时钟实际晶振频率为Fslave,实际时钟周期为Tslave,可以得出同步周期的计数器的值为:

Nsync=Tsync / Tslave (15)

因为主时钟和同步时钟之间存在相对偏移量Δ,也就是说主时钟计数器和从时钟计数器的计数值之间会相差N。

N=floor(Δ/ Tslave ) (16)

因为频率补偿计数器N'与N绝对值相等,但符号相反。

N'=-N (17)

式(16)通过取整函数floor() 对参量进行取整运算。并通过补偿从时钟在每个同步周期的N个计数器偏移量来实现从时钟与主时钟之间的同步。

通常使用的外部晶振频率都不会很高,一般为几MHz到几十MHz之间,为了进一步提高补偿精度,在CPU处理器中引入PLL(锁相环)对Fslave进行Npll倍频。

N'=floor(-N*Npll) (18)

通过倍频的方法可以得到一个高频率时钟来实现时钟偏差的精确补偿,从而解决由于补偿时钟精度所限而导致时钟偏差不能完全补偿的问题,如图3所示。

图3 频率补偿原理

3 结 语

本文运用IEEE1588来实现基于SERCOS-III的网络系统高精度同步机制,并加入了晶振补偿和滤波算法来达到更精确的同步要求。基于以太网的SERCOS-III技术为开放式数控系统的提供了一种新思维,对于我国高档开放式数控系统的开发具有很大的促进作用。

参考文献

[1] Interests group SERCOS(IGS). White Paper SERCOS-III [R].2004

[2]郇极,尹旭峰.数字伺服通讯协议SERCOS驱动程序设计及应用[M].北京:北京航空航天大学出版社,2005

[3]袁晓峰,龚邦明.基于SERCOS-III总线的伺服驱动单元接口[J].组合机床与自动化加工技术,2005(10):48-50

[4]陈敏.基于NTP协议的网络时间同步系统的研究与实现[D].武汉:华中科技大学,2005.

[5] 桂本烜.IEEE1588的高精度同步算法的研究和实现[J]电光与控制,2006,13(5):90-94.

[6]郑国雄,高军礼. 基于以太网的SERCOS-Ⅲ驱动程序的设计与实现[J].机床与液压,2011(9):83-86

[7]郑国雄.基于SERCOS-III的数控装备网络通信系统的软件设计[D].广州:广东工业大学,2009.

[8]桂本烜.IEEE1588的高精度时间同步算法的分析与实现[J].工业仪表与自动化装置,2006(4):20-23.

[9] IEC. Real-time Ethernet SERCOS-III specification[S].IEC/PAS 62410,2005.

[10]刘明哲.基于IEEE1588的时钟同步算法软件实现[J].仪器仪表学报,2006,27(6): 2009-2011.