基于時(shí)鐘頻率調整的時(shí)間同步的FPGA實(shí)現及應用
在本系統中,取FreqClk為50 MHz,FreqOsc為60MHz,則DivRatio為1.2。當同步周期為1 s時(shí),補償精度Precision可選10-9,由公式可選擇r=q=32,p=64。頻率補償初值由下式求出:
FreqCompValue=2q/DivRatio=232/1.2=32d3579139413
在時(shí)鐘輸出算法中,該值由頻率調整系數動(dòng)態(tài)調整:
FreqCompValuen=kn·FreqCompValuen-1 (10)3 頻率補償算法在FPGA中的實(shí)現頻率補償就是在每個(gè)同步周期計算FreqCompValuen,FPGA提供了參數化的乘法器兆函數(1pm_mult)和除法器兆函數(1pm_divide),可以快速實(shí)現上述算法。原理如圖3所示,在每個(gè)同步周期同步信號的驅使下,鎖存器B和C分別鎖存當前時(shí)鐘讀數和上個(gè)同步周期時(shí)鐘讀數,同時(shí)將主時(shí)鐘讀數輸入到加法器A中,經(jīng)過(guò)減法器E、F和乘法器G,以及除法器H后計算出新的FreqCompValuen,并在同步信號的驅動(dòng)下,將其鎖存到鎖存器D中。由于中間的計算結果要經(jīng)過(guò)一定的時(shí)鐘周期,所以鎖存器D的鎖存信號要延時(shí)一定的晶振周期。在本設計中延時(shí)50個(gè)FreqOsc,即在1μs的情況下就可以得到新的頻率補償值。

同步報文的傳輸延遲SyncDelay理論上是不變的,而實(shí)際上報文在傳輸過(guò)程中有抖動(dòng)。參考文獻[3]對此進(jìn)行了分析,并指出同步周期越長(cháng),報文傳輸延遲抖動(dòng)的影響就越小,因此可以忽略不計。
實(shí)驗驗證
主時(shí)鐘采用50 MHz的有源晶振來(lái)實(shí)現,并將其作為固定時(shí)鐘;從時(shí)鐘采用30 MHz有源晶振,通過(guò)FPGA的鎖相環(huán)PLL將其頻率倍頻到60 MHz,然后1.2分頻,實(shí)現可調頻率的50 MHz時(shí)鐘。

讓主時(shí)鐘和從時(shí)鐘以一定的時(shí)間間隔產(chǎn)生中斷,并通過(guò)邏輯分析儀采樣中斷信號分析其偏差。由于系統時(shí)鐘的分辨率為20 ns,采用廣州致遠電子有限公司的邏輯分析儀LA1532,其最大采樣頻率為100 MHz,所以偏差測量精度可以達到10 ns。圖4(a)是未進(jìn)行同步前兩個(gè)時(shí)鐘的偏差分析,X軸表示主時(shí)鐘和從時(shí)鐘的計時(shí)長(cháng)度,Y軸表示主時(shí)鐘和從時(shí)鐘的計時(shí)偏差。從圖中可以看出兩個(gè)時(shí)鐘的偏差大概為5×10-6,即1 s內的偏差可以達到5μs。圖4(b)為同步后主時(shí)鐘和從時(shí)鐘偏差測量結果,共測量1 000次,其10 ms內同步偏差在±20 ns。X軸表示測量時(shí)間,Y軸表示主從時(shí)鐘同步偏差。圖4(c)為同步后兩個(gè)從時(shí)鐘偏差測量結果,共測量1 000次,其10 ms內同步偏差在±40 ns。X軸表示測量時(shí)間,Y軸表示從時(shí)鐘之間同步偏差。
結 語(yǔ)
基于時(shí)鐘頻率調整的時(shí)間同步方法,實(shí)現簡(jiǎn)單,而且沒(méi)有復雜的軟件同步協(xié)議,占用較小的網(wǎng)絡(luò )帶寬就可以實(shí)現高精度的時(shí)鐘同步,在硬件上只需要低成本的FPGA支持。
fpga相關(guān)文章:fpga是什么
伺服電機相關(guān)文章:伺服電機工作原理
塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理 晶振相關(guān)文章:晶振原理
評論