摘 要:SERCOS-III是SERCOS協(xié)議的最新版本,SERCOS-III融合了實時以太網(wǎng)技術(shù),成為CNC系統(tǒng)發(fā)展的新方向。運用IEEE1588來解決環(huán)路時間的傳播和同步,同步過程中同步時間和偏移值的測量與計算,并加入了晶振補償和濾波算法來達到更精確的同步要求,實現(xiàn)SERCOS-III網(wǎng)絡(luò)系統(tǒng)的高精度同步機制。
關(guān)鍵詞:SERCOS-III;IEEE1588;同步機制;伺服控制
中圖分類號:TP393.04 文獻標識碼:A 文章編號:2095-1302(2015)02-00-03
0 引 言
作為用于傳動系統(tǒng)和伺服裝置之間的現(xiàn)場總線接口和數(shù)據(jù)交換的協(xié)議,SERCOS能夠?qū)崿F(xiàn)控制器與PLC、傳感器、數(shù)字伺服系統(tǒng)之間的實時數(shù)據(jù)通訊[1,2]。本文運用IEEE1588來解決SERCOS-III通信系統(tǒng)同步問題,并且研究了系統(tǒng)同步過程中同步時間和偏移值的測量與計算,通過晶振補償和濾波算法對相關(guān)算法加以改進,從而來達到更精確的同步要求,實現(xiàn)SERCOS-III網(wǎng)絡(luò)系統(tǒng)的高精度同步機制。
1 SERCOS-III 高速同步機制的設(shè)計與實現(xiàn)
IEEE1588的同步過程分為時鐘偏移測量階段和網(wǎng)絡(luò)延時測量階段兩個階段。由于數(shù)據(jù)報文的傳遞延時等網(wǎng)絡(luò)延時原因的影響,一次傳送同步報文計算的時鐘偏移并不準確,還需要通過網(wǎng)絡(luò)延時的計算來實現(xiàn)對偏移值進行修正[3-5]。
1.1 偏移值(Offset)的測量與計算
圖1 同步報文和跟隨報文傳送圖
主時鐘每隔2秒發(fā)出一個確定的同步信息,該信息包含了精確描述數(shù)據(jù)包發(fā)出的時間的時間標記。如圖2所示,假設(shè)同步之前主時鐘的時間為Tm,而從時鐘的時間為Ts。主站發(fā)出同步報文的時間為Tm1,從站收到報文的時間為Ts1??梢杂嬎愠鰪恼緯r鐘與主站時鐘之間的偏移值(offset):
Offset=Ts1-Tm1-Delay (1)
上式中的Delay指的是主站時鐘和從站時鐘之間的延時,其可以通過以下的方式測出。
1.2 時鐘延時(Delay)的測量與計算
(2)
Tmk、Tmk+1為主站時鐘在第k次和第k+1次記錄的時間戳,Tsk、Tsk+1為從站時鐘在第k次和第k+1次記錄的時間戳,該方法通過求信號從主從時鐘往返一圈所用的時間平均值來計算得出,但是如果網(wǎng)絡(luò)不對稱則會對同步的精確性產(chǎn)生影響。因而可得:
Ts=Tm+Offset+Delay (3)
Ts為從時鐘測到的時間,Tm為主時鐘測到的時間。假設(shè)網(wǎng)絡(luò)對稱時,可以準確地計算出系統(tǒng)的延時,從而實現(xiàn)主站時鐘和從站時鐘的同步。
2 高速同步機制的算法改進
精確時鐘同步協(xié)議(PTP)時鐘同步要求非常高的進度,但是由于軟硬件等方面的原因[6-8],會直接影響到SERCOS-III的同步的精度,影響系統(tǒng)同步進度的因素主要包括:晶振速率的穩(wěn)定性、時間戳的精度、同步報文的發(fā)送頻率以及廣義線路延時的穩(wěn)定性等[9,10],根據(jù)影響SERCOS-III網(wǎng)絡(luò)通信系統(tǒng)的同步的原因,本文提出以下幾種同步進度改進方法。
2.1 晶振偏差的補償
假設(shè)主站的本地時鐘速度為Rm,從站本地時鐘速度為Rs,同步間隔時間為T,可以求出同步間隔中的最大偏差值為:
(4)
在基于SERCOS-III高精度同步系統(tǒng)中,同步時間間隔為2 s,晶振精度為100 ppm,在SERCOS-III通信系統(tǒng)運行過程中任意兩個點產(chǎn)生的最大偏差為:
(5)
因此,為了使Rm=Rs,從而使ΔTmax =0。在運行過程中,每個點都記錄本地時鐘的運行時間,并且通過與主時鐘的運行時間的比較來調(diào)整時鐘的計數(shù)值,使從站時鐘和主時鐘的保持相同的運行速度。調(diào)整公式如下:
(6)
Rs為調(diào)整后的從站時鐘速率, RsΔ為調(diào)整前的從時鐘速率,分母和分子分別表示了從時鐘和主時鐘在n個調(diào)整周期內(nèi)的運行時間。
2.2 Offset的濾波算法
針對系統(tǒng)中因為線路變化以及內(nèi)部時延的不同產(chǎn)生的偏差,本文在計算偏移值時候,加入離散濾波算法。離散濾波算法公示如式(7)所示,在濾波時候,取e-aT=1/2,e-bT=1/3,推導出式(9)。
式(9)中Offset(k)表示第k次同步時通過式(2)求出的偏差,使用濾波算法后的第k次同步偏差用YOffset(k)來表示。
2.3 時鐘的自補償算法
在SERCOS-III系統(tǒng)中,時鐘通常用晶體振蕩器脈沖來度量,即:
(10)
其中ω(t)是晶振的頻率,k是依賴于晶振物理特性的常量,t是時間的變量,c(t0)是從時鐘。
在理想時鐘的情況下,晶振頻率恒k(t)=dc(t)/dt為1,但是,由于溫度、壓力和晶振本身老化等原因,晶振頻率是會在一定范圍內(nèi)產(chǎn)生變化的。因此式(10)可簡化為:
ci(t)=ki(t)+ci(t0) (11)
因為使用的外部晶振的實際頻率和標稱頻率會有大約±(10~100)ppm的偏差,故晶振頻率ki(t)也會存在±(10~100)×10-6的偏差。如果同步精度要求不是很高時這個偏差是可以不考慮的,但精確時鐘同步協(xié)議的同步精度要求為10-6秒級,甚至10-9秒級,所以這個偏差就不能忽略了,必須想辦法消除,因此本文通過以下從時鐘自補償算法來消除上述偏差。
2.3.1 時鐘偏差的計算
精確時鐘同步協(xié)議所指的時鐘同步是指主從時鐘之間的相對同步,將主時鐘作為參考時鐘,如果從時鐘與其保持一致就可以認為該系統(tǒng)時鐘是同步的。如圖2所示,cM(t)代表主時鐘時鐘,cs(t)代表實際從時鐘,cs_ideal(t)代表理想的從時鐘。在理想情況下,從時鐘和主時鐘只是存在起始時刻的相對時移cΔ,不會有偏差。但是,實際上實際晶振頻率不會完全相同,因此,從時鐘與理想的軌跡cs_ideal(t)會有偏差,Δ表示經(jīng)過t時間后從時鐘與主時鐘的相對偏移量。如果Δ>0,則表示從時鐘實際晶振頻率要比主時鐘晶振頻率快。
圖2 時鐘偏差的計算圖
由式(11)可得如下關(guān)系式:
從時鐘: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 從時鐘自補償算法原理的實現(xiàn)
精確時鐘同步協(xié)議的同步是一種相對同步,其根本在于認為主時鐘的時鐘頻率是準確的,所有的精確時鐘同步協(xié)議同步偏差都是因為從時鐘引起的,并且由從時鐘來負責進行補償。時鐘是通過計數(shù)器來實現(xiàn)的,這個計數(shù)器通過記錄晶振產(chǎn)生脈沖的個數(shù)來實現(xiàn)計數(shù)功能。假設(shè)精確時鐘同步協(xié)議主時鐘發(fā)送同步報文的周期為Tsync,從時鐘實際晶振頻率為Fslave,實際時鐘周期為Tslave,可以得出同步周期的計數(shù)器的值為:
Nsync=Tsync / Tslave (15)
因為主時鐘和同步時鐘之間存在相對偏移量Δ,也就是說主時鐘計數(shù)器和從時鐘計數(shù)器的計數(shù)值之間會相差N。
N=floor(Δ/ Tslave ) (16)
因為頻率補償計數(shù)器N'與N絕對值相等,但符號相反。
N'=-N (17)
式(16)通過取整函數(shù)floor() 對參量進行取整運算。并通過補償從時鐘在每個同步周期的N個計數(shù)器偏移量來實現(xiàn)從時鐘與主時鐘之間的同步。
通常使用的外部晶振頻率都不會很高,一般為幾MHz到幾十MHz之間,為了進一步提高補償精度,在CPU處理器中引入PLL(鎖相環(huán))對Fslave進行Npll倍頻。
N'=floor(-N*Npll) (18)
通過倍頻的方法可以得到一個高頻率時鐘來實現(xiàn)時鐘偏差的精確補償,從而解決由于補償時鐘精度所限而導致時鐘偏差不能完全補償?shù)膯栴},如圖3所示。
圖3 頻率補償原理
3 結(jié) 語
本文運用IEEE1588來實現(xiàn)基于SERCOS-III的網(wǎng)絡(luò)系統(tǒng)高精度同步機制,并加入了晶振補償和濾波算法來達到更精確的同步要求?;谝蕴W(wǎng)的SERCOS-III技術(shù)為開放式數(shù)控系統(tǒng)的提供了一種新思維,對于我國高檔開放式數(shù)控系統(tǒng)的開發(fā)具有很大的促進作用。
參考文獻
[1] Interests group SERCOS(IGS). White Paper SERCOS-III [R].2004
[2]郇極,尹旭峰.數(shù)字伺服通訊協(xié)議SERCOS驅(qū)動程序設(shè)計及應(yīng)用[M].北京:北京航空航天大學出版社,2005
[3]袁曉峰,龔邦明.基于SERCOS-III總線的伺服驅(qū)動單元接口[J].組合機床與自動化加工技術(shù),2005(10):48-50
[4]陳敏.基于NTP協(xié)議的網(wǎng)絡(luò)時間同步系統(tǒng)的研究與實現(xiàn)[D].武漢:華中科技大學,2005.
[5] 桂本烜.IEEE1588的高精度同步算法的研究和實現(xiàn)[J]電光與控制,2006,13(5):90-94.
[6]鄭國雄,高軍禮. 基于以太網(wǎng)的SERCOS-Ⅲ驅(qū)動程序的設(shè)計與實現(xiàn)[J].機床與液壓,2011(9):83-86
[7]鄭國雄.基于SERCOS-III的數(shù)控裝備網(wǎng)絡(luò)通信系統(tǒng)的軟件設(shè)計[D].廣州:廣東工業(yè)大學,2009.
[8]桂本烜.IEEE1588的高精度時間同步算法的分析與實現(xiàn)[J].工業(yè)儀表與自動化裝置,2006(4):20-23.
[9] IEC. Real-time Ethernet SERCOS-III specification[S].IEC/PAS 62410,2005.
[10]劉明哲.基于IEEE1588的時鐘同步算法軟件實現(xiàn)[J].儀器儀表學報,2006,27(6): 2009-2011.