基于FPGA與有限狀態(tài)機(jī)的高精度測(cè)角系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于FPGA與有限狀態(tài)機(jī)的高精度測(cè)角系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于FPGA與有限狀態(tài)機(jī)的高精度測(cè)角系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于FPGA與有限狀態(tài)機(jī)的高精度測(cè)角系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于FPGA與有限狀態(tài)機(jī)的高精度測(cè)角系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

為了提高系統(tǒng)轉(zhuǎn)臺(tái)旋轉(zhuǎn)角度測(cè)量的精度,本系統(tǒng)采用高分辨率的光電編碼器來測(cè)量角度。光電編碼器是利用光柵衍射原理實(shí)現(xiàn)位移數(shù)字變換的,光電編碼器作為一種高精度的測(cè)角傳感器已普遍應(yīng)用于伺服跟蹤系統(tǒng)中,它具有精度高、響應(yīng)快、性能穩(wěn)定可靠等優(yōu)點(diǎn)。光電編碼器按編碼方式主要分為兩類:增量式與絕對(duì)式。由于增量式光電編碼器成本低、測(cè)角的精度高,因此本系統(tǒng)的增量式光電編碼器選用Renishaw公司的高精度圓光柵。

然而,由于機(jī)械振動(dòng)或抖動(dòng)等原因,增量式編碼器的輸出脈沖會(huì)出現(xiàn)抖動(dòng)毛刺的現(xiàn)象,因此需要在對(duì)編碼器輸出脈沖進(jìn)行計(jì)數(shù)的過程中采取有效的方法來去掉抖動(dòng)干擾。本文介紹的有限狀態(tài)機(jī)方法,在FPGA上可以有效消除抖動(dòng)引起的計(jì)數(shù)干擾,提高計(jì)數(shù)的精度[1]。

1方案設(shè)計(jì)

1.1系統(tǒng)組成

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

1.2增量式編碼器原理增量型編碼器通常有3路信號(hào)輸出:A、B和Z,每路都是差分信號(hào),共6路信號(hào),信號(hào)采用TTL電平,A脈沖在前,B脈沖在后,A、B脈沖相差90°,每旋轉(zhuǎn)一圈發(fā)出一個(gè)基準(zhǔn)脈沖Z,作為參考機(jī)械零位。Z相的波形中心對(duì)準(zhǔn)A相輸出的波形中心。利用A相B相的相位差來進(jìn)行判相,A超前B90°為正轉(zhuǎn),反之B超前A90°為反轉(zhuǎn)。

由于增量式編碼器不帶記憶功能,因此對(duì)外界因素引起的干擾非常敏感,在實(shí)際應(yīng)用中,由于機(jī)械振動(dòng)、工作環(huán)境,電機(jī)負(fù)載等都無可避免地會(huì)產(chǎn)生震動(dòng),編碼器會(huì)在某一相的脈沖邊緣的地方出現(xiàn)抖動(dòng)的情況,因此有效濾掉脈沖的抖動(dòng)和毛刺,是提高計(jì)數(shù)精度的關(guān)鍵技術(shù)。編碼器輸出真實(shí)信號(hào)的波形如圖2所示[2-3]。

2理論分析與算法

2.1有限狀態(tài)機(jī)原理

在編碼器的一個(gè)輸出周期內(nèi),A、B兩相輸出信號(hào)共產(chǎn)生4個(gè)跳變沿,在A、B方波信號(hào)的上升沿和下降沿分別計(jì)數(shù),從而實(shí)現(xiàn)四倍頻計(jì)數(shù)的操作。本文通過有限狀態(tài)機(jī)FSM,對(duì)原始信號(hào)進(jìn)行四倍頻采樣控制,狀態(tài)機(jī)外加的一路高速同步時(shí)鐘信號(hào)作為狀態(tài)機(jī)的驅(qū)動(dòng)時(shí)鐘信號(hào),從而有效濾掉抖動(dòng)干擾。

有限狀態(tài)機(jī)FSM(FiniteStateMachine)是一種時(shí)序電路,是數(shù)字系統(tǒng)中實(shí)現(xiàn)高效率可靠性邏輯控制的重要方法。標(biāo)準(zhǔn)狀態(tài)機(jī)可分為摩爾型Moore和米利型Mealy兩種類型。Mealy狀態(tài)機(jī)的輸出是當(dāng)前狀態(tài)和輸入信號(hào)的函數(shù)。在本設(shè)計(jì)中,對(duì)編碼器輸出信號(hào)進(jìn)行計(jì)數(shù),采用的計(jì)數(shù)器是雙向計(jì)數(shù)器,既與當(dāng)前編碼器所處于的電平組合有關(guān),又與前一個(gè)狀態(tài)有關(guān)。因此本設(shè)計(jì)采用Mealy狀態(tài)機(jī)。Mealy狀態(tài)機(jī)比Moore狀態(tài)機(jī)在狀態(tài)切換時(shí)提前一個(gè)同步時(shí)鐘,因而具有較高的實(shí)時(shí)性。A、B兩相信號(hào)轉(zhuǎn)換狀態(tài)如圖3所示[4]。

在理想情況下,若編碼器正向旋轉(zhuǎn),A、B電平的值為:00-10-11-01-00;若編碼器反向旋轉(zhuǎn),則A、B電平的值為:00-01-11-10-00。但是在實(shí)際應(yīng)用中,輸入脈沖含有抖動(dòng)和毛刺,A、B相脈沖的電平狀態(tài)會(huì)在狀態(tài)機(jī)中有效地跳轉(zhuǎn),抖動(dòng)之后,由于計(jì)數(shù)器能夠正反向計(jì)數(shù),因此最終的計(jì)數(shù)值會(huì)保持不變,輸出的結(jié)果也保持不變,達(dá)到了去抖動(dòng)的效果。有限狀態(tài)機(jī)設(shè)置了5個(gè)狀態(tài):IDLE(S0),ALBL(S1),AHBL(S2),AHBH(S3),ALBH(S4)。其中IDLE為初始狀態(tài),用于初始化計(jì)數(shù)器的計(jì)數(shù)器狀態(tài)。狀態(tài)機(jī)的狀態(tài)空間跳轉(zhuǎn)圖如圖4所示[5]。

3系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

3.1軟硬件平臺(tái)

根據(jù)以上分析,編碼器輸出的原始信號(hào)經(jīng)過有限狀態(tài)機(jī)處理后,得到了四倍頻的輸出信號(hào)。本系統(tǒng)采用FPGA實(shí)現(xiàn)四倍頻控制和計(jì)數(shù)功能,與用分立器件構(gòu)成的倍頻計(jì)數(shù)電路相比,具有穩(wěn)定度高,移植性靈活,可靠性好的特點(diǎn)。

硬件采用Altera公司的Cyclone系列FPGA芯片EP1C12Q240,編譯環(huán)境為QuartusII5.1集成開發(fā)環(huán)境。在QuartusII的開發(fā)環(huán)境中,可以通過兩種方法來實(shí)現(xiàn)Mealy有限狀態(tài)機(jī)。第一采用硬件描述語(yǔ)言,第二通過QuartusII中的狀態(tài)機(jī)編輯工具來完成。本設(shè)計(jì)采用硬件描述語(yǔ)言來實(shí)現(xiàn)狀態(tài)機(jī)設(shè)計(jì)。

3.2程序設(shè)計(jì)

為了提高系統(tǒng)的實(shí)用性和穩(wěn)定性,濾掉信號(hào)上的毛刺,在A、B相信號(hào)進(jìn)入狀態(tài)機(jī)前,先設(shè)計(jì)一個(gè)濾波器進(jìn)行初次濾波,每個(gè)信號(hào)用4個(gè)D觸發(fā)器和1個(gè)判決器來濾波;觸發(fā)器由時(shí)鐘SCLK驅(qū)動(dòng)。小于一個(gè)SCLK時(shí)鐘周期的毛刺,都被濾波器濾掉了。濾波器的原理圖如圖5所示[6-7]。

整個(gè)程序的設(shè)計(jì)是采用圖形和語(yǔ)言相結(jié)合的方法來實(shí)現(xiàn)的。頂層設(shè)計(jì)采用圖形文件,頂層模塊的結(jié)構(gòu)圖如圖6所示。

內(nèi)部的狀態(tài)機(jī)模塊采用VHDL語(yǔ)言來實(shí)現(xiàn)。頂層模塊包含兩個(gè)模塊,一個(gè)濾波器模塊,該模塊根據(jù)三選二判決的原理來濾掉毛刺;另一個(gè)模塊是狀態(tài)機(jī)模塊,最終輸出編碼器計(jì)數(shù)的結(jié)果。Input[0]和input[1]輸入引腳分別連接增量型編碼器A相和B相信號(hào)。q[31..0]為32位的計(jì)數(shù)器,輸出當(dāng)前編碼器的計(jì)數(shù)值,dirout是編碼器的旋轉(zhuǎn)方向信號(hào)。

程序設(shè)計(jì)完成后,在仿真工具modelsim下進(jìn)行波形仿真。仿真結(jié)果如圖7所示。從圖中看出,計(jì)數(shù)器能夠?qū)崿F(xiàn)正向與反向計(jì)數(shù),可以有效濾除脈沖上的抖動(dòng),獲得精確的計(jì)數(shù)值。

本文提出了一種基于有限狀態(tài)機(jī)的高精度測(cè)量系統(tǒng),在FPGA上用有限狀態(tài)機(jī)實(shí)現(xiàn)了編碼器輸出脈沖的去抖,并通過32位計(jì)數(shù)器實(shí)現(xiàn)精確計(jì)數(shù)。最終在ARM處理器上完成角度的計(jì)算。通過大量

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論