基于FPGA與有限狀態(tài)機的高精度測角系統的設計與實(shí)
3 系統設計與實(shí)現
3.1 軟硬件平臺
根據以上分析,編碼器輸出的原始信號經(jīng)過(guò)有限狀態(tài)機處理后,得到了四倍頻的輸出信號。本系統采用FPGA實(shí)現四倍頻控制和計數功能,與用分立器件構成的倍頻計數電路相比,具有穩定度高,移植性靈活,可靠性好的特點(diǎn)。
硬件采用Altera公司的Cyclone系列FPGA芯片EP1C12Q240,編譯環(huán)境為Quartus II 5.1集成開(kāi)發(fā)環(huán)境。在Quartus II的開(kāi)發(fā)環(huán)境中,可以通過(guò)兩種方法來(lái)實(shí)現Mealy有限狀態(tài)機。第一采用硬件描述語(yǔ)言,第二通過(guò)Quartus II中的狀態(tài)機編輯工具來(lái)完成。本設計采用硬件描述語(yǔ)言來(lái)實(shí)現狀態(tài)機設計。
3.2 程序設計
為了提高系統的實(shí)用性和穩定性,濾掉信號上的毛刺,在A(yíng)、B相信號進(jìn)入狀態(tài)機前,先設計一個(gè)濾波器進(jìn)行初次濾波,每個(gè)信號用4個(gè)D觸發(fā)器和1個(gè)判決器來(lái)濾波;觸發(fā)器由時(shí)鐘SCLK驅動(dòng)。小于一個(gè)SCLK時(shí)鐘周期的毛刺,都被濾波器濾掉了。濾波器的原理圖如圖5所示[6-7]。

整個(gè)程序的設計是采用圖形和語(yǔ)言相結合的方法來(lái)實(shí)現的。頂層設計采用圖形文件,頂層模塊的結構圖如圖6所示。

內部的狀態(tài)機模塊采用VHDL語(yǔ)言來(lái)實(shí)現。頂層模塊包含兩個(gè)模塊,一個(gè)濾波器模塊,該模塊根據三選二判決的原理來(lái)濾掉毛刺;另一個(gè)模塊是狀態(tài)機模塊,最終輸出編碼器計數的結果。Input[0]和input[1]輸入引腳分別連接增量型編碼器A相和B相信號。q[31..0]為32位的計數器,輸出當前編碼器的計數值,dirout是編碼器的旋轉方向信號。
程序設計完成后,在仿真工具modelsim下進(jìn)行波形仿真。仿真結果如圖7所示。從圖中看出,計數器能夠實(shí)現正向與反向計數,可以有效濾除脈沖上的抖動(dòng),獲得精確的計數值。

本文提出了一種基于有限狀態(tài)機的高精度測量系統,在FPGA上用有限狀態(tài)機實(shí)現了編碼器輸出脈沖的去抖,并通過(guò)32位計數器實(shí)現精確計數。最終在A(yíng)RM處理器上完成角度的計算。通過(guò)大量反復試驗,試驗結果表明本文介紹的方法具有精度高、成本低、接口兼容性高、可靠性高、可移植性好等優(yōu)點(diǎn),可以有效抑制噪聲干擾,獲得高精度的角度數據。該方法已經(jīng)成功應用在激光跟蹤測量系統中,該技術(shù)的推廣可以取得良好的經(jīng)濟效益,具有重要實(shí)用意義。
fpga相關(guān)文章:fpga是什么
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
評論