基于IEEE 1588的時(shí)鐘同步技術(shù)在分布式系統(tǒng)中的應(yīng)用
5 基于FPGA的硬件同步方案
因?yàn)椴捎糜布娐帆@取時(shí)間戳,從而獲得更高的同步精度,這里采用FPGA實(shí)現(xiàn)時(shí)間戳的獲取和從時(shí)鐘相對主時(shí)鐘的頻率糾偏。分布式系統(tǒng)中節(jié)點(diǎn)時(shí)鐘同步模塊的內(nèi)部結(jié)構(gòu)如圖5所示。
每個(gè)節(jié)點(diǎn)包含CPU、以太網(wǎng)媒體訪問控制器(MAC)、以太網(wǎng)物理層收發(fā)器(PHY)、FPGA等4種主要器件。物理層收發(fā)器和MAC控制器通過標(biāo)準(zhǔn)的MII接口相連,CPU通過總線與MAC控制器和FPGA相連。物理層收發(fā)器、MAC控制器和CPU構(gòu)成通訊協(xié)議棧完成數(shù)據(jù)包的發(fā)送和接收。
為了使從時(shí)鐘的晶振頻率與主時(shí)鐘保持一致,F(xiàn)PGA中需要有一個(gè)頻率可調(diào)的時(shí)鐘以實(shí)現(xiàn)晶振糾偏,如圖6所示,由r位頻率補(bǔ)償值寄存器、g位分頻累加器、p位系統(tǒng)時(shí)鐘計(jì)數(shù)器組成,一個(gè)普通晶體振蕩信號輸入FPGA模塊。在每個(gè)晶振周期,r位頻率補(bǔ)償值寄存器內(nèi)保存的頻率補(bǔ)償值累加到q位分頻累加器中,與累加器中的值相加。
如果發(fā)生溢出,則在下一個(gè)晶振周期,時(shí)鐘計(jì)數(shù)器增加一個(gè)增量,這個(gè)增量就是整個(gè)頻率補(bǔ)償時(shí)鐘的分辨率;如果沒有溢出,則在下一個(gè)晶振周期,時(shí)鐘計(jì)數(shù)器保持原值。計(jì)數(shù)器的當(dāng)前值即為調(diào)整后的本地時(shí)鐘。因此可以通過改變頻率補(bǔ)償值來改變時(shí)鐘計(jì)數(shù)器數(shù)值增加的頻率,實(shí)現(xiàn)對晶振頻率的補(bǔ)償。q和r越大,頻率補(bǔ)償值的改變對累加器發(fā)生溢出的頻率的影響越小,對晶振頻率的補(bǔ)償越精細(xì)。本系統(tǒng)選擇r=32,q=32,p=64。
使用FPGA不但能夠獲得最精確的時(shí)間戳,而且能夠采用數(shù)字電路的方法精確補(bǔ)償從時(shí)鐘的晶振頻率。FPGA的控制器實(shí)現(xiàn)時(shí)鐘調(diào)節(jié)算法,并由得到的時(shí)間戳和本地時(shí)鐘相比較,得到頻率補(bǔ)償值,從而控制時(shí)鐘計(jì)數(shù)器數(shù)值,補(bǔ)償晶振的頻率。而CPU則主要負(fù)責(zé)驅(qū)動MAC控制器完成相關(guān)的通訊功能。
6結(jié)束語
采用IEEE 1588精確時(shí)鐘同步協(xié)議的以太網(wǎng)時(shí)鐘同步技術(shù),解決了通用以太網(wǎng)實(shí)時(shí)性和同步性差的問題。為基于多播技術(shù)的標(biāo)準(zhǔn)以太網(wǎng)的實(shí)時(shí)應(yīng)用提供了有效的解決方案。IEEE 1588精確時(shí)鐘同步協(xié)議的制定滿足網(wǎng)絡(luò)化分布式系統(tǒng)的需求,利用IEEE 1588時(shí)鐘同步技術(shù)可以在不增加網(wǎng)絡(luò)負(fù)荷的情況下,實(shí)現(xiàn)整個(gè)分布式系統(tǒng)的高精度時(shí)鐘同步,從而可以有效解決分布式系統(tǒng)的實(shí)時(shí)性問題,進(jìn)而改善和提高系統(tǒng)的同步精度。
評論