任雪玉,朱維斌,黃 垚,薛 梓
(1.中國計量大學計量測試工程學院,浙江杭州 310018;2.浙江大學光學科學與工程學院現(xiàn)代光學儀器國家重點實驗室,浙江杭州 310027;3.中國計量科學研究院,北京 100029)
隨著我國制造業(yè)的蓬勃發(fā)展,角度測量技術(shù)正朝著高分辨率、高精度、動態(tài)、實時性以及測量穩(wěn)定性等需求的方向發(fā)展[1-2]。目前國內(nèi)在角度計量中所用圓光柵的柵距在20″ 以上,但是其計量分辨率要求達到0.1″,甚至更高,光柵制造技術(shù)受加工工藝和加工成本的限制,無法滿足高精度、高分辨的需求。因此采用莫爾條紋信號細分技術(shù)提高測量系統(tǒng)的分辨力和精度具有較好的實用價值[3]。
傳統(tǒng)的電子細分方法包括幅值分割細分法、載波調(diào)制細分法、鎖相倍頻法等[4]。幅值分割細分法可以獲得較高的細分數(shù),但是電路較復雜,對幅值相關(guān)特性要求較高;載波調(diào)制細分法的精度較高,但是電路對信號的正交性要求較嚴格,同時電路的復雜度也較高。
鎖相倍頻細分法是對信號的相位進行細分,對原始信號質(zhì)量要求不高,硬件電路簡單,因此被廣泛使用[5-7]。傳統(tǒng)的數(shù)字鎖相倍頻細分法通過調(diào)節(jié)輸入信號與反饋信號之間的相位差,使輸出信號N分頻之后的反饋信號頻率自動跟蹤輸入信號的頻率,從而完成輸入信號頻率的N倍細分功能。但是,傳統(tǒng)的數(shù)字鎖相細分方法采用閉環(huán)結(jié)構(gòu),在環(huán)路鎖定之前需要較長的獲取時間使環(huán)路達到鎖定狀態(tài),才能對輸入信號進行倍頻,并且受數(shù)控振蕩器的影響,輸入信號頻率變化范圍較窄。因此傳統(tǒng)的數(shù)字鎖相細分方法不能實時得到輸入信號細分的結(jié)果,不能夠滿足于動態(tài)角度實時測量要求。
因此本文提出一種改進數(shù)字鎖相細分方法,分析改進鎖相細分方法的原理及電路系統(tǒng)設(shè)計,并且詳細分析和仿真驗證了該方法中小數(shù)分頻各個模塊電路系統(tǒng)設(shè)計。在FPGA平臺上實現(xiàn)不同動態(tài)工況下,傳感器輸出信號的實時128倍細分,顯著提高了動態(tài)測量分辨率,為提高超精密機械加工技術(shù)奠定了基礎(chǔ)。
改進數(shù)字鎖相細分方法采用開環(huán)結(jié)構(gòu),主要由邊沿檢測器、時間數(shù)字轉(zhuǎn)換器、小數(shù)分頻算法、頻率控制字調(diào)節(jié)算法和分頻器構(gòu)成,如圖1所示。
圖1 改進數(shù)字鎖相細分原理圖
邊沿檢測器判斷輸入信號x(n)的周期起始時刻,時間數(shù)字轉(zhuǎn)換器利用系統(tǒng)高頻時鐘fclk對x(n)的周期進行量化,量化值為
(1)
式中:int(·)為向下取整函數(shù);fi為輸入信號的頻率。
根據(jù)輸入的量化值Q和細分倍率N,計算出時鐘分頻因子為
(2)
隨著輸入信號頻率的改變,當Q和N為整數(shù)時,時鐘分頻因子C可能為小數(shù),但是FPGA數(shù)字電路無法實現(xiàn)小數(shù)分頻,因此設(shè)計小數(shù)分頻方法,該方法利用整數(shù)頻率控制字的相互組合實現(xiàn)小數(shù)分頻。其中包括小數(shù)分頻算法、頻率控制字調(diào)節(jié)算法和分頻器。
小數(shù)分頻算法根據(jù)量化值Q和細分倍率N,能夠確定與輸入信號頻率相對應的整數(shù)頻率控制字M為
(3)
與M和M+1對應的頻率為
(4)
fM和fM+1對應的周期個數(shù)為k1、k2,為實現(xiàn)N倍細分任務,令k1+k2=N,在輸入信號x(n)的一個周期Ti內(nèi),輸出k1個頻率為fM的信號和k2個頻率為fM+!的信號,即:
Ti=k1TM+k2TM+1
(5)
式中:TM=1/fM;TM+1=1/fM+1。
把式(6)~式(10)代入式(11),化簡得:
k1M+k2(M+1)=Q
(6)
式(6)中,所有變量均為整數(shù),小數(shù)分頻算法僅得到M、M+1、k1、k2的取值,頻率控制字調(diào)節(jié)算法調(diào)節(jié)N個整數(shù)頻率控制字輸出的先后順序。
頻率控制字調(diào)節(jié)算法通過比較k1、k2的大小,將一個周期內(nèi)的N個頻率控制字分為A組,每組輸出l個控制字數(shù)。頻率控制字調(diào)節(jié)算法流程如圖2所示。
圖2 頻率控制字調(diào)節(jié)算法流程圖
以k1>k2為例,頻率控制字調(diào)節(jié)算法將頻率控制字分為了A=k2組,每組按順序輸出1個M+1和l-1個M,從而保證Ti時間內(nèi)輸出N個整數(shù)頻率控制字。
分頻器通過高頻時鐘頻率fclk對整數(shù)頻率控制字進行分頻,即可以完成任意頻率輸入信號的N倍細分。
因此,改進數(shù)字鎖相細分方法不僅可以實時對光柵傳感器輸出信號進行細分,提高測量分辨率,而且所有變量均為整數(shù),確??梢栽贔PGA平臺上施加改進數(shù)字鎖相細分算法。
FPGA具有可并行、可重構(gòu)、可定制等優(yōu)點,可以承載改進鎖相倍頻細分任務。在電路系統(tǒng)中,需要實現(xiàn)信號量化值獲取與小數(shù)分頻兩部分。電路系統(tǒng)原理圖如圖3所示。
圖3 電路系統(tǒng)原理圖
由圖3可知,電路系統(tǒng)中量化值獲取包括邊沿檢測和時間數(shù)字轉(zhuǎn)換器兩部分。邊沿檢測通過高頻時鐘檢測輸入信號上升沿,產(chǎn)生一個高電平EN觸發(fā)時間數(shù)字轉(zhuǎn)換器,利用系統(tǒng)時鐘量化輸入信號時間間隔,得到量化值Q。小數(shù)分頻部分包括參數(shù)求解、頻率控制字調(diào)節(jié)、分頻器3個部分。
參數(shù)求解模塊主要由頻率控制字的求解模塊和控制字分組求解模塊組成。圖4為參數(shù)求解模塊的RTL級仿真電路圖。頻率控制字的求解模塊是根據(jù)量化值和式(12),利用乘法器和加法器完成對參數(shù)M、M+1、k1、k2的求解;控制字分組求解模塊利用比較器和除法器完成對參數(shù)A、l的求解,輸出全部參數(shù)M、M+1、k1、k2、A、l以及標志位update。
圖4 參數(shù)求解電路的RTL級仿真電路圖
參數(shù)求解模塊的波形圖如圖5所示,當輸入信號為變頻方波時,實時更新參數(shù)計算結(jié)果,并產(chǎn)生一個計算結(jié)束標志位update。
圖5 參數(shù)求解模塊的波形圖
頻率控制字調(diào)節(jié)模塊根據(jù)參數(shù)M、M+1、k1、k2、A、l的計算結(jié)果,調(diào)節(jié)頻率控制字M和M+1的輸出的先后順序,圖6為頻率控制字調(diào)節(jié)模塊的RTL級仿真電路圖。
圖6 頻率控制字調(diào)節(jié)模塊的RTL級仿真電路圖
本模塊采用三段式狀態(tài)機實現(xiàn)如圖6所示的調(diào)節(jié)邏輯,狀態(tài)機由initation、S01、S02和S11 4種狀態(tài)組成,狀態(tài)機工作模擬圖如圖7所示。
圖7 狀態(tài)機工作模擬圖
初始狀態(tài)設(shè)為initation狀態(tài),此時判斷參數(shù)更新標志位update狀態(tài)。當update為高電平時,狀態(tài)機跳轉(zhuǎn)到S01狀態(tài),此時輸出1個頻率控制字M或M+1,每輸出1個頻率控制字變量cnt和cnt_all累加計數(shù),當滿足cnt=1條件時,cnt=0,狀態(tài)機跳轉(zhuǎn)到S02狀態(tài),此時輸出l-1個頻率控制字M或M+1,每輸出一個頻率控制字變量cnt和cnt_all累加計數(shù),當滿足cnt=l-1條件時,cnt=0,狀態(tài)機跳轉(zhuǎn)到S01狀態(tài),此時一組頻率控制字輸出完成,如此循環(huán)。當cnt_all=A·l時,輸出A組頻率控制字,狀態(tài)機跳轉(zhuǎn)到S11狀態(tài),此時輸出剩余的N-A·l個M或M+1,每輸出一個頻率控制字cnt_all累加計數(shù)1次,當cnt_all=N時,狀態(tài)機跳轉(zhuǎn)到initation狀態(tài),完成對N個頻率控制字的調(diào)節(jié)。
以k1>k2為例,當update為高電平時,狀態(tài)從initation跳轉(zhuǎn)到S01,此時輸出1個M+1,變量cnt開始計數(shù);當cnt=1時,cnt=0,狀態(tài)從S01跳轉(zhuǎn)到S02,此時cnt開始計數(shù),輸出l-1個M;當cnt=l-1時,cnt=0,狀態(tài)從S02跳轉(zhuǎn)到S01。當cnt_all=A·l時,狀態(tài)從S02跳轉(zhuǎn)到S11,輸出剩余的N-A·l個M+1;當cnt_all=N時,狀態(tài)從S11跳轉(zhuǎn)到initation。
頻率控制字調(diào)節(jié)模塊的波形圖如圖8所示,當輸入信號為變頻方波時,實時更新不同的參數(shù),狀態(tài)機state_c處于不同狀態(tài)時,輸出不同的頻率控制字M_cur給分頻器,分頻器通過高頻時鐘分頻,得到倍頻后的輸出信號。
圖8 頻率控制字調(diào)節(jié)模塊的波形圖
為驗證改進鎖相細分方法的有效性,在實驗室自制FPGA電路上加載實際信號進行細分功能的驗證,電路板如圖9所示,電路中選用40 MSPS、16位的ADC芯片獲取傳感器輸出信號,EP4CE115F29C7作為處理改進數(shù)字鎖相細分算法加載芯片,IS42S16320B作為動態(tài)采集存儲芯片。
圖9 實驗室自制FPGA電路板
為降低信號噪聲的影響,選用信號發(fā)生器RIGOL DG4162作為信號源,模擬3種勻速運動工況,輸出占空比為50%、頻率分別為1.0、10.0、80.0 kHz的方波信號,驗證改進數(shù)字鎖相細分方法的有效性。
在改進鎖相細分算法中設(shè)定fclk=200 MHz,N=128,3種不同工況下,分別采樣得到的fi和f0,使用MATLAB進行數(shù)據(jù)分析,得到輸入信號周期內(nèi)采樣點數(shù)與細分倍率之間的關(guān)系,如圖10所示。
(a)1.0 kHz細分結(jié)果
(b)10.0 kHz細分結(jié)果
(c)80.0 kHz細分結(jié)果圖10 3種不同頻率信號的細分結(jié)果
由圖10(a)、圖10(b)可知,當輸入信號為低頻信號時,單周期內(nèi)采樣點數(shù)較多,因此不容易看出理論細分結(jié)果呈階梯狀線性增加,僅看出細分結(jié)果具有良好的線性度,且在隨機抽取3個周期信號內(nèi)信號細分數(shù)均為128。由圖10(c)可知,當fi=80.0 kHz時,輸入信號單周期內(nèi),采樣點數(shù)較少,在輸入信號單周期結(jié)束,采樣點數(shù)為500、1 000、1 500左右時,明顯看出細分結(jié)果的階梯狀。因此改進鎖相倍頻細分方法能夠?qū)崿F(xiàn)對光柵傳感器輸出信號的細分。
選擇傳統(tǒng)的鎖相倍頻細分方法作為對比對象,在傳統(tǒng)的鎖相倍頻細分算法中設(shè)置N=128,,在改進鎖相細分算法中設(shè)定fclk=200 MHz,N=128,信號發(fā)生器分別輸出頻率為1.0、10.0、80.0 kHz的方波信號,在實驗室自制FPGA電路上分別施加傳統(tǒng)鎖相倍頻細分算法和改進的鎖相倍頻細分算法,實驗得到3種不同工況下,參數(shù)如表1所示。
表1 傳統(tǒng)鎖相細分與改進鎖相細分參數(shù)對比
由表1數(shù)據(jù)可見:
(1)改進鎖相倍頻細分方法的鎖定時間不會隨著輸入信號頻率的改變而改變。當輸入信號頻率為1 kHz時,改進鎖相環(huán)仍能在10 ns內(nèi)快速鎖定,實時完成對輸入信號的細分。
(2)改進鎖相倍頻細分方法的頻率分辨率不會隨輸入信號頻率的改變而改變,始終以10 ns的頻率分辨率調(diào)節(jié)反饋系統(tǒng),實現(xiàn)鎖相細分。在硬件資源占用方面,芯片EP4CE115F29C7的邏輯元件總資源為114480,改進細分方法邏輯元件資源數(shù)雖然會增加,但是占用芯片整體邏輯元件資源百分比并沒有很大改變。
本文對基于動態(tài)測量中光柵莫爾信號的細分技術(shù)進行研究,提出了一種改進數(shù)字鎖相細分方法,開發(fā)了基于FPGA的改進數(shù)字鎖相細分電路,完成了電路測試。在不同動態(tài)工況下,實現(xiàn)光柵傳感器輸出信號的128倍細分,且細分結(jié)果具有良好的線性度。通過對比實驗,證明該方法不僅解決了傳統(tǒng)數(shù)字鎖相細分方法的不足,而且改進方法具有良好的動態(tài)特性以及較高的分辨率。