基于FPGA與FSM的高精度測角系統(tǒng)設(shè)計與實現(xiàn)
摘 要: 介紹了一種基于有限狀態(tài)機(jī)(FSM)的高精度角度測量系統(tǒng)。該系統(tǒng)采用Renishaw高精度增量式光電編碼器作為位置傳感器來測量角度,在FPGA上用VHDL語言描述與仿真有限狀態(tài)機(jī),實現(xiàn)信號濾波與去抖,從而保證了計數(shù)器計數(shù)的正確性。在ARM9處理器上實現(xiàn)角度的實時計算,并控制轉(zhuǎn)臺旋轉(zhuǎn)。在激光跟蹤測量系統(tǒng)的工程應(yīng)用中驗證了該系統(tǒng)的正確性和有效性。
關(guān)鍵詞: 有限狀態(tài)機(jī); FPGA; 增量式光電編碼器; EP1C12Q240
激光跟蹤測量系統(tǒng)(Laser Tracker System)是工業(yè)測量系統(tǒng)中常用的一種高精度的測量儀器,是近十年發(fā)展起來的新型大尺寸空間測量儀器,不僅對靜止目標(biāo)可以測量,而且對運(yùn)動目標(biāo)也可以進(jìn)行跟蹤測量。它集合了激光測距技術(shù)、光電技術(shù)、精密機(jī)械技術(shù)、計算機(jī)及控制技術(shù)等各種先進(jìn)技術(shù),對空間運(yùn)動目標(biāo)進(jìn)行跟蹤并實時測量目標(biāo)的空間三維坐標(biāo)。它具有快速、動態(tài)、精度高等優(yōu)點,適合于大尺寸工件配裝測量。在航空航天、機(jī)械制造、核工業(yè)、現(xiàn)代軍事等測量領(lǐng)域得到廣泛的應(yīng)用。該系統(tǒng)的跟蹤精度在很大程度上依賴于轉(zhuǎn)臺的旋轉(zhuǎn)角度的測量精度。
為了提高系統(tǒng)轉(zhuǎn)臺旋轉(zhuǎn)角度測量的精度,本系統(tǒng)采用高分辨率的光電編碼器來測量角度。光電編碼器是利用光柵衍射原理實現(xiàn)位移數(shù)字變換的,光電編碼器作為一種高精度的測角傳感器已普遍應(yīng)用于伺服跟蹤系統(tǒng)中,它具有精度高、響應(yīng)快、性能穩(wěn)定可靠等優(yōu)點。光電編碼器按編碼方式主要分為兩類:增量式與絕對式。由于增量式光電編碼器成本低、測角的精度高,因此本系統(tǒng)的增量式光電編碼器選用Renishaw公司的高精度圓光柵。
然而,由于機(jī)械振動或抖動等原因,增量式編碼器的輸出脈沖會出現(xiàn)抖動毛刺的現(xiàn)象,因此需要在對編碼器輸出脈沖進(jìn)行計數(shù)的過程中采取有效的方法來去掉抖動干擾。本文介紹的有限狀態(tài)機(jī)方法,在FPGA上可以有效消除抖動引起的計數(shù)干擾,提高計數(shù)的精度[1]。
1 方案設(shè)計
1.1 系統(tǒng)組成
激光跟蹤測量系統(tǒng)的核心處理模塊主要由ARM處理器,F(xiàn)PGA組成。為了充分利用ARM9微處理器的運(yùn)算能力和FPGA的高速邏輯處理能力,在設(shè)計中對功能的實現(xiàn)進(jìn)行了劃分。ARM9 用于運(yùn)動控制平臺的控制并且與FPGA一起形成一個完整的應(yīng)用平臺。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°,每旋轉(zhuǎn)一圈發(fā)出一個基準(zhǔn)脈沖Z,作為參考機(jī)械零位。Z相的波形中心對準(zhǔn)A相輸出的波形中心。利用A相B相的相位差來進(jìn)行判相,A超前B 90°為正轉(zhuǎn),反之B超前A 90°為反轉(zhuǎn)。
由于增量式編碼器不帶記憶功能,因此對外界因素引起的干擾非常敏感,在實際應(yīng)用中,由于機(jī)械振動、工作環(huán)境,電機(jī)負(fù)載等都無可避免地會產(chǎn)生震動,編碼器會在某一相的脈沖邊緣的地方出現(xiàn)抖動的情況,因此有效濾掉脈沖的抖動和毛刺,是提高計數(shù)精度的關(guān)鍵技術(shù)。編碼器輸出真實信號的波形如圖2所示[2-3]。