基于FPGA的測角脈沖細(xì)分電路的設(shè)計(jì)
2 基于FPGA的脈沖細(xì)分電路的設(shè)計(jì)
2.1 總體設(shè)計(jì)
大部分的角度傳感器輸出信號(hào)都是由兩路相位差90°的脈沖信號(hào)組成,設(shè)計(jì)電路時(shí)首先可以對(duì)兩路信號(hào)進(jìn)行鑒相解調(diào)與倍頻,一方面完成轉(zhuǎn)向的判斷,另一方面將兩路信號(hào)四倍頻;接著設(shè)計(jì)整數(shù)脈沖計(jì)數(shù)器、小數(shù)脈沖計(jì)數(shù)器,對(duì)相應(yīng)脈沖數(shù)進(jìn)行計(jì)數(shù);最后將計(jì)數(shù)值通過串口通信單元順序發(fā)送至計(jì)算機(jī),方便后期的數(shù)據(jù)處理。這里最為關(guān)鍵的問題是利用脈沖細(xì)分技術(shù)計(jì)出被測脈沖的小數(shù)部分,另外指示脈沖對(duì)計(jì)數(shù)器的控制精度關(guān)系到計(jì)數(shù)值的準(zhǔn)確與否,因此要利用性能良好的硬件并巧妙地設(shè)計(jì)程序。這里硬件選擇了FPGA,程序則是利用HDL語言進(jìn)行編寫,脈沖細(xì)分電路總體設(shè)計(jì)如圖2所示。
2.2 整數(shù)脈沖計(jì)數(shù)器
為了更準(zhǔn)確地對(duì)倍頻后的脈沖進(jìn)行計(jì)數(shù),在設(shè)計(jì)時(shí),電路采用了2個(gè)計(jì)數(shù)器輪流計(jì)數(shù),指示脈沖控制2個(gè)計(jì)數(shù)器交替工作。具體方法是將兩個(gè)計(jì)數(shù)器的使能信號(hào)分別設(shè)置為1和0,由指示脈沖控制使能信號(hào),在每一個(gè)指示脈沖到來時(shí)使能信號(hào)取反。另外,由于計(jì)數(shù)值很大,為了保證數(shù)值不會(huì)溢出,使用32位計(jì)數(shù)器。
2.3 小數(shù)脈沖計(jì)數(shù)單元
由脈沖細(xì)分技術(shù)可知,小數(shù)脈沖計(jì)數(shù)單元是要對(duì)指示脈沖上升沿與在其之后的第一個(gè)測角脈沖上升沿之間的高頻計(jì)數(shù)時(shí)鐘脈沖計(jì)數(shù)。測角脈沖信號(hào)是周期性的,而設(shè)計(jì)時(shí)要用到的只是指示脈沖之后的第一個(gè)陀螺信號(hào)的上升沿,這給小數(shù)脈沖計(jì)數(shù)的設(shè)計(jì)帶來了困難,在設(shè)計(jì)時(shí)使用了有限狀態(tài)機(jī)。這里主要利用整數(shù)脈沖計(jì)數(shù)單元中設(shè)計(jì)的整數(shù)計(jì)數(shù)器使能信號(hào)CLR與測角脈沖信號(hào)CH的狀態(tài)組合來設(shè)計(jì)狀態(tài)機(jī),利用狀態(tài)機(jī)輸出小數(shù)脈沖計(jì)數(shù)器的工作使能信號(hào)ENA,這里狀態(tài)都是在時(shí)鐘CLK上升沿轉(zhuǎn)換。圖3與圖4分別為小數(shù)計(jì)數(shù)器工作時(shí)序圖與使能信號(hào)狀態(tài)機(jī)。
DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY
評(píng)論