新聞中心

EEPW首頁 > 測試測量 > 設計應用 > 基于FPGA的速度和位置測量板卡的設計與實現(xiàn)

基于FPGA的速度和位置測量板卡的設計與實現(xiàn)

作者: 時間:2016-10-18 來源:網(wǎng)絡 收藏

摘要:針對增量式經(jīng)典速度測量算法M/T法低速采樣時間過長和位置測量算法精度不高的問題,本文基于定采樣周期M/T法設計實現(xiàn)了速度和位置測量板卡。采用Xilinx公司的XC3S400 為核心控制芯片進行設計,并設計總線接口實現(xiàn)板卡與控制器的數(shù)據(jù)通信。該板卡接收處理的反饋脈沖得到速度和位置參數(shù),將數(shù)據(jù)通過總線接口傳遞給控制器。實驗表明,板卡的最小采樣時間達到1ms,并且位置測量精度可達5×10-3。

本文引用地址:http://www.butianyuan.cn/article/201610/308996.htm

增量式作為速度和位置傳感器被廣泛應用于伺服系統(tǒng)。理論上,光電編碼器反饋脈沖的頻率對應被測軸轉(zhuǎn)速,反饋脈沖個數(shù)的累加值對應位置信息。經(jīng)典的速度測量方法有M法、T法和M/T法3種:其中M法通過計取固定時間間隔內(nèi)光電編碼器的反饋脈沖數(shù)計算當前轉(zhuǎn)速,適用于高速場合;T法利用高頻脈沖測量相鄰反饋脈沖的時間間隔計算當前轉(zhuǎn)速,適用于低速場合;M/T法不僅測量固定時間間隔內(nèi)反饋脈沖的增量值,而且計數(shù)該時間內(nèi)的高頻脈沖數(shù)。雖然M/T法克服了M法和T法測速范圍有限的缺點,在高速和低速段都具有較高的分辨率及較低的測速誤差,但是存在低速采樣時間過長等問題。經(jīng)典的位置測量方法按轉(zhuǎn)向的正負對反饋脈沖進行增減計數(shù),然后將計數(shù)值乘以脈沖當量K得到當前位置信息,可見其測量精度取決于脈沖當量。

本文以定采樣周期M/T法為基礎,它解決了經(jīng)典M/T法低速檢測時間過長的問題,保證每一固定周期都能采樣到數(shù)據(jù)。此外,該算法充分利用反饋脈沖的位置信息和時間信息,得到了比一個脈沖當量K更為精確的位置信息。本文利用設計實現(xiàn)定采樣周期M/T法,并設計總線接口滿足板卡與控制器數(shù)據(jù)通信的要求。

1 總體方案

速度和位置測量板卡接收光電編碼器的反饋脈沖信號,通過差分電路將其轉(zhuǎn)換為單端信號消除共模干擾,然后在中對脈沖處理得到速度和位置參數(shù),最后將參數(shù)通過PC104數(shù)據(jù)接口傳遞給控制器。速度和位置測量板卡除差分電路以外的功能均通過FPGA設計實現(xiàn)(如圖1所示),因此FPGA是本板卡的核心芯片。速度和位置測量板卡主要包括倍頻辨向模塊、定采樣周期M/T法模塊和PC104數(shù)據(jù)接口模塊。

基于FPGA的速度和位置測量板卡的設計與實現(xiàn)

1. 1 倍頻辨向模塊

光電編碼器的輸出反饋脈沖包括相位差90°的A、B信號以及零位脈沖Z。A、B之間的相位關系標志被測軸的轉(zhuǎn)向,即A相超前B相90°表示正轉(zhuǎn),滯后90°表示反轉(zhuǎn);Z脈沖起到參考零點的作用。一個周期內(nèi)A、B兩路信號的相對位置變換了4次,即正轉(zhuǎn)A、B按00-10-11-01循環(huán)輸出,反轉(zhuǎn)遵循00-01-11-10的規(guī)律。倍頻辨向模塊通過檢測A、B信號的狀態(tài)變化輸出四倍頻及方向信號,不僅提高了速度和位置測量的精度,還起到抗干擾的作用。

1.2 定采樣周期M/T法模塊

定采樣周期M/T法模塊分為速度測量電路和位置測量電路兩部分,圖2給出了該算法的硬件原理及時序圖。定采樣周期M/T法對高頻脈沖fc兩級鎖存的設計確保實際檢測起始點Tk超前于采樣周期Tn,這解決了M/T法在低速時檢測時間過長的問題,保證每個采樣周期內(nèi)都能成功采集到數(shù)據(jù)。

基于FPGA的速度和位置測量板卡的設計與實現(xiàn)

速度測量硬件電路由速度計數(shù)器及其數(shù)據(jù)鎖存器Cm,以及高頻脈沖計數(shù)器及其兩級數(shù)據(jù)鎖存器Cf和Ct構成;其中速度鎖存器Cm和高頻脈沖鎖存器Ct由采樣脈沖觸發(fā),輔助高頻脈沖鎖存器Cf由反饋脈沖觸發(fā)。通過差分處理得到當前周期Tn內(nèi)的轉(zhuǎn)速增量Cm和高頻脈沖增量Ct,并設高頻脈沖的頻率為fc,脈沖當量為K,那么計算可得轉(zhuǎn)速為:

Vn=KxfcxCm/Ct

位置測量硬件電路同樣采用高頻脈沖的兩級鎖存設計,除此之外還包括位置計數(shù)器及其數(shù)據(jù)鎖存器Cmm,以及輔助位置鎖存器Ctt。由圖2可知,dTn-1和dTn這兩個時間差所對應的位置變化小于一個脈沖當量K,位置測量算法將上述時間差內(nèi)的位置變化加入到位置信息中,提高了位置測量的分辨率和精度。dTn通過差分當前周期輔助位置鎖存器Ctt和脈沖鎖存器Ct得到,接著將dTn乘以速度值Vn可得位置變化。位置鎖存器Cmm計取了反饋脈沖的變化值,再加上dTn-1和dTn內(nèi)位置變化,便能計算出精確的位置信息。

dTn=(Ctt(n)-Ct(n))/fc

S=KxCmm+VnxdTn-Vn-1xdTn-1

2 各個模塊Verllog實現(xiàn)

根據(jù)速度和位置測量板卡的總體設計方案,利用Verilog設計實現(xiàn)各模塊。

2.1 倍頻辨向模塊

本模塊在FPGA系統(tǒng)時鐘clk上升沿檢測A、B的電平,并與上一clk記錄的狀態(tài)進比較:當狀態(tài)變化符合00-10、10-11、11-01、01-00時,表明A超前B相90°,并且A或B產(chǎn)生一個邊沿跳變,此時光電編碼器正轉(zhuǎn)那么置1方向信號,同時輸出一個計數(shù)脈沖,這樣一個周期內(nèi)將產(chǎn)生4個計數(shù)脈沖實現(xiàn)了四倍頻;當變化對應00-01、01-11、11-10、10-00時,標志A滯后B相90°,光電編碼器反轉(zhuǎn)則清零方向信號,并輸出一個計數(shù)脈沖;當變化符合00-00、01-01、10-10、11-11時,說明光電編碼器處于換向階段,或者對應正反轉(zhuǎn)的中間狀態(tài),此時保持方向信號并且不輸出計數(shù)脈沖;當變化為00-11、01-10、10-01、11-00時,說明A、B信號受到干擾而產(chǎn)生了錯誤的狀態(tài)翻轉(zhuǎn),此時保持方向信號并且不輸出計數(shù)脈沖,達到了抗干擾的目的。

2.2 定采樣周期M/T法模塊

分析定采樣周期M/T法模塊可知,它主要由計數(shù)器和鎖存器組成,其中計數(shù)器對脈沖個數(shù)進行計數(shù),得到的計數(shù)值存于鎖存器中等待數(shù)據(jù)接口模塊讀取。

按計數(shù)方式的不同,計數(shù)器又可細分為增計數(shù)器和可逆計數(shù)器。其中高頻脈沖計數(shù)器和速度計數(shù)器都采用增計數(shù),在檢測到計數(shù)脈沖有效時加1計數(shù)值。位置計數(shù)器采用可逆計數(shù)的方式,在計數(shù)脈沖有效時通過方向脈沖決定采取增或減計數(shù)。由于對增量式光電編碼器的反饋脈沖計數(shù)只能獲得轉(zhuǎn)臺的相對位置,因此在計數(shù)器斷電或控制系統(tǒng)上電之前,都要對計數(shù)器所存數(shù)值進行校正,即歸零。為了實現(xiàn)歸零操作,計數(shù)器除可逆計數(shù)外還需具備清零以及置數(shù)等功能。

鎖存器在采樣脈沖T有效時,鎖存當前數(shù)據(jù)供接口電路讀取,其中采樣周期大小取決于控制器對速度和位置的讀取頻率??紤]到數(shù)據(jù)讀取的安全性,控制器讀操作前必須首先完成各鎖存器的數(shù)據(jù)鎖存工作,即通過控制器對板卡的寫信號產(chǎn)生采樣脈沖T觸發(fā)鎖存器的鎖存工作。

本模塊設計了4個雙字鎖存器暫存速度和位置參數(shù),因此開辟4個雙字的I/O地址空間??刂破鲗/O地址的讀操作實現(xiàn)鎖存器數(shù)據(jù)的讀取,寫操作為板卡提供清零、置數(shù)及采樣脈沖等信號。

2.3 PC104數(shù)據(jù)接口模塊

PC104總線是一種專為嵌入式控制而定義的工業(yè)控制總線,它具有小尺寸結構、抗震性極佳的堆棧式連接、低功耗總線驅(qū)動等優(yōu)點,廣泛應用于機載設備的開發(fā)中。此外,它是一個8位和16位兼容的總線,本模塊采用8位總線方式,采用以下總線信號完成通信設計:SD7~SD0:數(shù)據(jù)信號;SA9~SA0:地址信號;AEN:地址使能信號;IOR:I/O讀信號;IOW:I/O寫信號;電源信號。

在PC104系統(tǒng)中,為防止I/O地址沖突,每個模塊都必須有一個單獨的基地址。速度和位置測量板卡采用10位地址譯碼,基地址通過板卡上的基地址跳線器進行設置。PC104數(shù)據(jù)接口采用I/O讀寫方式進行通信,利用狀態(tài)機設計實現(xiàn)本模塊如圖3所示。S0為空閑狀態(tài),此狀態(tài)為初始狀態(tài),一旦控制器對板卡進行操作,則進入S1狀態(tài)。S1狀態(tài)記錄控制器的地址、數(shù)據(jù)以及控制信號,并判斷控制器的操作類型。如果是讀操作進入S2狀態(tài),若是寫操作則進入S3狀態(tài)。在S2狀態(tài)中,將對應地址的數(shù)據(jù)給到數(shù)據(jù)線,完成讀操作。在S3狀態(tài),將數(shù)據(jù)寫入對應地址中,完成寫操作。讀操作或者寫操作完成之后,狀態(tài)又重新回到S0,等待控制器下次讀寫。

基于FPGA的速度和位置測量板卡的設計與實現(xiàn)

下面結合PC104的信號說明各狀態(tài)的作用。S0狀態(tài)檢測地址使能信號AEN,當AEN有效并且地址信號SA的高位與基地址一致,說明控制器對本板卡操作,則激活S1狀態(tài)。S1狀態(tài)記錄地址信號SA的低4位和數(shù)據(jù)信號SD,并判斷讀信號IOR或?qū)懶盘朓OW是否有效。當IOR有效說明目前進行讀操作進入S2狀態(tài),而IOW有效表明當前為寫操作進入S3狀態(tài)。S2狀態(tài)對地址進行分支選擇確定欲讀取數(shù)據(jù)的地址,輸出對應地址的數(shù)據(jù)完成讀操作。S3狀態(tài)將數(shù)據(jù)寫入到對應地址完成寫操作。

3 測試平臺與仿真測試

用ISE軟件編程實現(xiàn)各模塊的功能,用ModelSim對其進行仿真測試,圖4為仿真結果。由圖可知,輸入的A、B信號模擬正轉(zhuǎn)、反轉(zhuǎn)及干擾三種狀態(tài),正轉(zhuǎn)和反轉(zhuǎn)下每周期都將輸出四個脈沖,并且正轉(zhuǎn)方向信號置1,反轉(zhuǎn)清零,而在干擾信號下不輸出計數(shù)脈沖,并且方向信號保持不變。速度計數(shù)器在計數(shù)脈沖有效時計數(shù),位置計數(shù)器根據(jù)方向信號對計數(shù)脈沖做增減計數(shù),速度鎖存器Cm、位置鎖存器Cmm在采樣周期有效時鎖存速度和位置值。輔助高頻脈沖鎖存器Cf及高頻脈沖鎖存器Ct對高頻脈沖進行兩級鎖存,保證實際采樣點超前于采樣周期,保證每個周期下都能采樣到數(shù)據(jù)。

基于FPGA的速度和位置測量板卡的設計與實現(xiàn)
基于FPGA的速度和位置測量板卡的設計與實現(xiàn)

設計完成的速度和位置測量板卡如圖5所示,F(xiàn)PGA采用Xilinx公司的XC3S400,控制器部分選用盛博公司的SAT-1040板卡。使用36000刻線的增量式光電編碼器,高頻脈沖由40 MHz晶振提供,最小采樣周期可達1ms,在測量范圍內(nèi)速度、位置測量精度分別達到3x10-5、5x10-5。

4 結束語

文中以FPGA為核心控制芯片設計實現(xiàn)了速度和位置測量板卡,它以定采樣周期M/T法為基礎對光電編碼器的反饋脈沖處理得到表征速度和位置的參數(shù),通過PC104總線接口將數(shù)據(jù)傳遞給控制器計算得到精確的速度和位置信息。整個設計在FPGA內(nèi)完成,故硬件結構簡介,可靠性強,抗干擾能力強;板卡的最小采樣時間達到1 ms,確保每一周期下都能采樣到可靠數(shù)據(jù),并將位置測量精度提高至5x10-5。



評論


相關推薦

技術專區(qū)

關閉