FPGA的時鐘頻率同步原理研究與設(shè)計實現(xiàn)
引 言
網(wǎng)絡(luò)化運動控制是未來運動控制的發(fā)展趨勢,隨著高速加工技術(shù)的發(fā)展,對網(wǎng)絡(luò)節(jié)點間的時間同步精度提出了更高的要求。如造紙機械,運行速度為1 500~1 800m/min,同步運行的電機之間1μs的時間同步誤差將造成30 μm的運動誤差。高速加工中心中加工速度為120 m/min時,伺服電機之間1μs的時間同步誤差,將造成2 μm的加工誤差,影響了加工精度的提高。
分布式網(wǎng)絡(luò)中節(jié)點的時鐘通常是采用晶振+計數(shù)器的方式來實現(xiàn),由于晶振本身的精度以及穩(wěn)定性問題,造成了時間運行的誤差。時鐘同步通常是選定一個節(jié)點時鐘作為主時鐘,其他節(jié)點時鐘作為從時鐘。主節(jié)點周期性地通過報文將主時鐘時間發(fā)送給從節(jié)點,從節(jié)點接收到報文后,以主時鐘為基準進行延遲補償,然后將計算出的新時鐘值賦給從時鐘。這種同步方法造成了從時鐘計數(shù)值的不連續(xù),即會出現(xiàn)重復(從時鐘晶振頻率快于主時鐘)或跳躍(從時鐘晶振頻率慢于主時鐘),而且這種方法并沒有從根本上解決時鐘頻率的不同步問題,因此要進一步提高同步精度很困難。本文研究了一種可對頻率進行動態(tài)調(diào)整的時鐘,通過對時鐘頻率的動態(tài)修正,實現(xiàn)主從時鐘頻率的同步,進而實現(xiàn)時間同步。
1 時鐘同步原理
要實現(xiàn)兩個時鐘的同步,一是時鐘的計數(shù)值要相同,二是計數(shù)增長速率要相同。如圖1所示,設(shè)主時鐘的頻率為f,從時鐘頻率在Nn-1到Nn時間段為fn-1,在Nn到Nn+1為fn,SyncDelay為同步報文從主站到從站的延遲時間,可以通過延時測量幀采用往返法測量得到,從時鐘要在Nn+1時刻達到與主時鐘相等,那么有:
因為主時鐘是周期性發(fā)出同步報文,所以有Mn+1-Mn=Mn-Mn-1=T,由式(2)和(3)可得:
kn就是時鐘頻率調(diào)整系數(shù)。在每個同步周期可以計算出頻率調(diào)整系數(shù),然后通過相應的硬件電路來實現(xiàn)頻率調(diào)節(jié)。
2 可調(diào)頻率的時鐘設(shè)計
可調(diào)頻率時鐘是一種完全由數(shù)字電路組成的時鐘計數(shù)器,構(gòu)造簡單,可以很方便地在FPGA中實現(xiàn),原理如圖2所示。該頻率可調(diào)時鐘由一個戶位時鐘計數(shù)器,q位累加器和r位頻率補償值寄存器組成。每個晶振周期,累加器與頻率補償寄存器中的FreqCompValue相加,并將結(jié)果保存到累加器。如果累加器發(fā)生溢出,時鐘計數(shù)器的值就增加1;反之,時鐘計數(shù)器保持不變。由此可以看出,晶振頻率和頻率補償值FreqCompValue的大小決定了累加器的溢出速率,也決定了時鐘計數(shù)器的計數(shù)頻率。所以可以通過調(diào)整FreqCompValue來調(diào)節(jié)時鐘頻率。為了實現(xiàn)高精度時鐘,晶振頻率要比時鐘頻率高。設(shè)晶振頻率為FreqOsc,時鐘計數(shù)頻率為FreqClk,分頻比為DivRatio,同步周期為SyncInterval,補償精度為Precision,p、q、r可由下列公式得出:
DivRatio=FreqOsc/FreqClk (5)
在本系統(tǒng)中,取FreqClk為50 MHz,F(xiàn)reqOsc為60MHz,則DivRatio為1.2。當同步周期為1 s時,補償精度Precision可選10-9,由公式可選擇r=q=32,p=64。頻率補償初值由下式求出:
FreqCompValue=2q/DivRatio=232/1.2=32d3579139413
在時鐘輸出算法中,該值由頻率調(diào)整系數(shù)動態(tài)調(diào)整:
FreqCompValuen=kn·FreqCompValuen-1 (10)
評論