基于FPGA與有限狀態(tài)機的高精度測角系統(tǒng)的設(shè)計與實
3 系統(tǒng)設(shè)計與實現(xiàn)
3.1 軟硬件平臺
根據(jù)以上分析,編碼器輸出的原始信號經(jīng)過有限狀態(tài)機處理后,得到了四倍頻的輸出信號。本系統(tǒng)采用FPGA實現(xiàn)四倍頻控制和計數(shù)功能,與用分立器件構(gòu)成的倍頻計數(shù)電路相比,具有穩(wěn)定度高,移植性靈活,可靠性好的特點。
硬件采用Altera公司的Cyclone系列FPGA芯片EP1C12Q240,編譯環(huán)境為Quartus II 5.1集成開發(fā)環(huán)境。在Quartus II的開發(fā)環(huán)境中,可以通過兩種方法來實現(xiàn)Mealy有限狀態(tài)機。第一采用硬件描述語言,第二通過Quartus II中的狀態(tài)機編輯工具來完成。本設(shè)計采用硬件描述語言來實現(xiàn)狀態(tài)機設(shè)計。
3.2 程序設(shè)計
為了提高系統(tǒng)的實用性和穩(wěn)定性,濾掉信號上的毛刺,在A、B相信號進入狀態(tài)機前,先設(shè)計一個濾波器進行初次濾波,每個信號用4個D觸發(fā)器和1個判決器來濾波;觸發(fā)器由時鐘SCLK驅(qū)動。小于一個SCLK時鐘周期的毛刺,都被濾波器濾掉了。濾波器的原理圖如圖5所示[6-7]。
整個程序的設(shè)計是采用圖形和語言相結(jié)合的方法來實現(xiàn)的。頂層設(shè)計采用圖形文件,頂層模塊的結(jié)構(gòu)圖如圖6所示。
內(nèi)部的狀態(tài)機模塊采用VHDL語言來實現(xiàn)。頂層模塊包含兩個模塊,一個濾波器模塊,該模塊根據(jù)三選二判決的原理來濾掉毛刺;另一個模塊是狀態(tài)機模塊,最終輸出編碼器計數(shù)的結(jié)果。Input[0]和input[1]輸入引腳分別連接增量型編碼器A相和B相信號。q[31..0]為32位的計數(shù)器,輸出當前編碼器的計數(shù)值,dirout是編碼器的旋轉(zhuǎn)方向信號。
程序設(shè)計完成后,在仿真工具modelsim下進行波形仿真。仿真結(jié)果如圖7所示。從圖中看出,計數(shù)器能夠?qū)崿F(xiàn)正向與反向計數(shù),可以有效濾除脈沖上的抖動,獲得精確的計數(shù)值。
本文提出了一種基于有限狀態(tài)機的高精度測量系統(tǒng),在FPGA上用有限狀態(tài)機實現(xiàn)了編碼器輸出脈沖的去抖,并通過32位計數(shù)器實現(xiàn)精確計數(shù)。最終在ARM處理器上完成角度的計算。通過大量反復(fù)試驗,試驗結(jié)果表明本文介紹的方法具有精度高、成本低、接口兼容性高、可靠性高、可移植性好等優(yōu)點,可以有效抑制噪聲干擾,獲得高精度的角度數(shù)據(jù)。該方法已經(jīng)成功應(yīng)用在激光跟蹤測量系統(tǒng)中,該技術(shù)的推廣可以取得良好的經(jīng)濟效益,具有重要實用意義。
fpga相關(guān)文章:fpga是什么
脈沖點火器相關(guān)文章:脈沖點火器原理
評論