《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA與FSM的高精度測角系統(tǒng)設計與實現(xiàn)
基于FPGA與FSM的高精度測角系統(tǒng)設計與實現(xiàn)
來源:電子技術應用2012年第2期
王 鵬1, 杜衛(wèi)東2, 呂志剛1, 雷 斌1
1.西安工業(yè)大學 電子信息工程學院 信息通信系, 陜西 西安710032; 2.山東省特種設備檢驗研究院,山東 濟南250101
摘要: 介紹了一種基于有限狀態(tài)機(FSM)的高精度角度測量系統(tǒng)。該系統(tǒng)采用Renishaw高精度增量式光電編碼器作為位置傳感器來測量角度,在FPGA上用VHDL語言描述與仿真有限狀態(tài)機,實現(xiàn)信號濾波與去抖,從而保證了計數(shù)器計數(shù)的正確性。在ARM9處理器上實現(xiàn)角度的實時計算,并控制轉臺旋轉。在激光跟蹤測量系統(tǒng)的工程應用中驗證了該系統(tǒng)的正確性和有效性。
中圖分類號: TP301.1
文獻標識碼: A
文章編號: 0258-7998(2012)02-0077-03
The design and implementation of high precision angle measuring system based on FPGA & FSM
Wang Peng1, Du Weidong2, Lv Zhigang1, Lei Bin1
1. School of Electronic and Information Engineering, Xi′an Technological University,Xi′an 710032,China; 2. Shandong Special Equipment Inspection Institute, Jinan 250101,China
Abstract: This paper describes a high-precision angle measurement system based on finite state machine(FSM). The system uses Renishaw precision incremental optical encoder as a position sensor to measure the angle, using VHDL language in the FPGA to describe and simulation finite state machine, to achieve signal filtering and the shaking, thus ensuring the correctness of the counter. The ARM9 processor achieves real-time calculation of the angle, and controls the turntable rotation. In the engineering application of the laser tracking measurement system verify the correctness and effectiveness.
Key words : FSM; FPGA; incremental photoelectric encoder; EP1C12Q240

    激光跟蹤測量系統(tǒng)(Laser Tracker System)是工業(yè)測量系統(tǒng)中常用的一種高精度的測量儀器,是近十年發(fā)展起來的新型大尺寸空間測量儀器,不僅對靜止目標可以測量,而且對運動目標也可以進行跟蹤測量。它集合了激光測距技術、光電技術、精密機械技術、計算機及控制技術等各種先進技術,對空間運動目標進行跟蹤并實時測量目標的空間三維坐標。它具有快速、動態(tài)、精度高等優(yōu)點,適合于大尺寸工件配裝測量。在航空航天、機械制造、核工業(yè)、現(xiàn)代軍事等測量領域得到廣泛的應用。該系統(tǒng)的跟蹤精度在很大程度上依賴于轉臺的旋轉角度的測量精度。

    為了提高系統(tǒng)轉臺旋轉角度測量的精度,本系統(tǒng)采用高分辨率的光電編碼器來測量角度。光電編碼器是利用光柵衍射原理實現(xiàn)位移數(shù)字變換的,光電編碼器作為一種高精度的測角傳感器已普遍應用于伺服跟蹤系統(tǒng)中,它具有精度高、響應快、性能穩(wěn)定可靠等優(yōu)點。光電編碼器按編碼方式主要分為兩類:增量式與絕對式。由于增量式光電編碼器成本低、測角的精度高,因此本系統(tǒng)的增量式光電編碼器選用Renishaw公司的高精度圓光柵。
    然而,由于機械振動或抖動等原因,增量式編碼器的輸出脈沖會出現(xiàn)抖動毛刺的現(xiàn)象,因此需要在對編碼器輸出脈沖進行計數(shù)的過程中采取有效的方法來去掉抖動干擾。本文介紹的有限狀態(tài)機方法,在FPGA上可以有效消除抖動引起的計數(shù)干擾,提高計數(shù)的精度[1]。
1 方案設計
1.1 系統(tǒng)組成

    激光跟蹤測量系統(tǒng)的核心處理模塊主要由ARM處理器,F(xiàn)PGA組成。為了充分利用ARM9微處理器的運算能力和FPGA的高速邏輯處理能力,在設計中對功能的實現(xiàn)進行了劃分。ARM9 用于運動控制平臺的控制并且與FPGA一起形成一個完整的應用平臺。FPGA主要完成編碼器的精確計數(shù)功能、與ARM9處理器數(shù)據(jù)通信、與激光測距儀數(shù)據(jù)通信功能。系統(tǒng)的組成框圖如圖1所示。本文重點介紹在FPGA上實現(xiàn)編碼器的輸出脈沖計數(shù)與角度測量。

 

1.2 增量式編碼器原理
    增量型編碼器通常有3路信號輸出:A、B和Z,每路都是差分信號,共6路信號,信號采用TTL電平,A脈沖在前,B脈沖在后,A、B脈沖相差90°,每旋轉一圈發(fā)出一個基準脈沖Z,作為參考機械零位。Z相的波形中心對準A相輸出的波形中心。利用A相B相的相位差來進行判相,A超前B 90°為正轉,反之B超前A 90°為反轉。
    由于增量式編碼器不帶記憶功能,因此對外界因素引起的干擾非常敏感,在實際應用中,由于機械振動、工作環(huán)境,電機負載等都無可避免地會產(chǎn)生震動,編碼器會在某一相的脈沖邊緣的地方出現(xiàn)抖動的情況,因此有效濾掉脈沖的抖動和毛刺,是提高計數(shù)精度的關鍵技術。編碼器輸出真實信號的波形如圖2所示[2-3]。

 

 


2 理論分析與算法
2.1 有限狀態(tài)機原理

    在編碼器的一個輸出周期內(nèi),A、B兩相輸出信號共產(chǎn)生4個跳變沿,在A、B方波信號的上升沿和下降沿分別計數(shù),從而實現(xiàn)四倍頻計數(shù)的操作。本文通過有限狀態(tài)機FSM,對原始信號進行四倍頻采樣控制,狀態(tài)機外加的一路高速同步時鐘信號作為狀態(tài)機的驅動時鐘信號,從而有效濾掉抖動干擾。
  有限狀態(tài)機FSM(Finite State Machine)是一種時序電路,是數(shù)字系統(tǒng)中實現(xiàn)高效率可靠性邏輯控制的重要方法。標準狀態(tài)機可分為摩爾型Moore和米利型Mealy兩種類型。Mealy狀態(tài)機的輸出是當前狀態(tài)和輸入信號的函數(shù)。在本設計中,對編碼器輸出信號進行計數(shù),采用的計數(shù)器是雙向計數(shù)器,既與當前編碼器所處于的電平組合有關,又與前一個狀態(tài)有關。因此本設計采用Mealy狀態(tài)機。Mealy狀態(tài)機比Moore狀態(tài)機在狀態(tài)切換時提前一個同步時鐘, 因而具有較高的實時性。A、B兩相信號轉換狀態(tài)如圖3所示[4]。


3 系統(tǒng)設計與實現(xiàn)
3.1 軟硬件平臺

    根據(jù)以上分析,編碼器輸出的原始信號經(jīng)過有限狀態(tài)機處理后,得到了四倍頻的輸出信號。本系統(tǒng)采用FPGA實現(xiàn)四倍頻控制和計數(shù)功能,與用分立器件構成的倍頻計數(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)機編輯工具來完成。本設計采用硬件描述語言來實現(xiàn)狀態(tài)機設計。
3.2 程序設計
    為了提高系統(tǒng)的實用性和穩(wěn)定性,濾掉信號上的毛刺,在A、B相信號進入狀態(tài)機前,先設計一個濾波器進行初次濾波,每個信號用4個D觸發(fā)器和1個判決器來濾波;觸發(fā)器由時鐘SCLK驅動。小于一個SCLK時鐘周期的毛刺,都被濾波器濾掉了。濾波器的原理圖如圖5所示[6-7]。

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

    本文提出了一種基于有限狀態(tài)機的高精度測量系統(tǒng),在FPGA上用有限狀態(tài)機實現(xiàn)了編碼器輸出脈沖的去抖,并通過32位計數(shù)器實現(xiàn)精確計數(shù)。最終在ARM處理器上完成角度的計算。通過大量反復試驗,試驗結果表明本文介紹的方法具有精度高、成本低、接口兼容性高、可靠性高、可移植性好等優(yōu)點,可以有效抑制噪聲干擾,獲得高精度的角度數(shù)據(jù)。該方法已經(jīng)成功應用在激光跟蹤測量系統(tǒng)中,該技術的推廣可以取得良好的經(jīng)濟效益,具有重要實用意義。
參考文獻
[1] 侯鴻斌,陳安,高妍.基于有限狀態(tài)機的高精度周期可變編碼器計數(shù)器設計[J].福建電腦, 2010(1):1-2.
[2] 方華松,丁望來.基于FPGA的抗編碼器抖動干擾的高精 度編碼技術[J].船電技術,2009(7):15-18.
[3] 閆莎莎,朱世強.基于CPLD 的光電編碼器測量系統(tǒng)[J]. 機電工程,2009(26):77-79.
[4] 蔣晶,蔣東方,高航.高可靠性增量式光電編碼器接口電路設計[J].測控技術,2009,28(2):1-3.
[5] 鈔靖,王小椿,姜虹. 基于FPGA 的光電編碼器四倍頻電路設計[J].儀表技術, 2007(6):17-21.
[6] 王彩霞,李梅.基于FPGA的增量式光電角度編碼 器信號處理系統(tǒng)[J].微計算機信息,2010,26(8-2):125-     126.
[7] 韓黨群,肖軍.基于狀態(tài)機描述的光電編碼器四倍頻電路設計[J].西安航空技術高等??茖W校學報,2008,9(5):
23-25.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。