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