基于FPGA 和PCI 的高測速板卡的設(shè)計與實(shí)現(xiàn)-設(shè)計應(yīng)用_第1頁
基于FPGA 和PCI 的高測速板卡的設(shè)計與實(shí)現(xiàn)-設(shè)計應(yīng)用_第2頁
基于FPGA 和PCI 的高測速板卡的設(shè)計與實(shí)現(xiàn)-設(shè)計應(yīng)用_第3頁
基于FPGA 和PCI 的高測速板卡的設(shè)計與實(shí)現(xiàn)-設(shè)計應(yīng)用_第4頁
基于FPGA 和PCI 的高測速板卡的設(shè)計與實(shí)現(xiàn)-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

精品文檔-下載后可編輯基于FPGA和PCI的高測速板卡的設(shè)計與實(shí)現(xiàn)-設(shè)計應(yīng)用摘要:經(jīng)典的碼盤數(shù)字測速方法有M法、T法、M/T法,但都有一定的不足。為了克服原有方法的不足,設(shè)計并實(shí)現(xiàn)了一種在較大速度范圍都有良好精度和良好快速性的測速方法。電路采用FPGA實(shí)現(xiàn),測速得到的數(shù)據(jù)通過PCI總線從設(shè)備控制器實(shí)現(xiàn)與控制計算機(jī)通信。從而根據(jù)實(shí)際傳輸?shù)男枰?,簡化了PCI從設(shè)備控制器,實(shí)現(xiàn)了PCI總線I/O普通讀與猝發(fā)讀數(shù)據(jù)的功能。

0引言

增量式碼盤是一種原理簡單,抗干擾能力強(qiáng),可靠性高,適合于長距離傳輸?shù)奈恢门c速度測量裝置,已成功應(yīng)用于大量的控制系統(tǒng)中,極大地提高了其位置控制精度。理論上,只要測得碼盤輸出信號的頻率,即可得到被測軸的轉(zhuǎn)速,并且可以得到比模擬方法更高的測量精度。本文以增量式碼盤為基礎(chǔ),設(shè)計實(shí)現(xiàn)一種在較寬速度范圍都有較高精度并且有良好反應(yīng)速度的速度、位置測量裝置。

利用增量式碼盤的反饋脈沖信號測量速度的典型方法有3種:M法、T法和M/T法。其中,M法是直接計取給定采樣周期內(nèi)的反饋脈沖數(shù)來測量速度的,低速時會因?yàn)槊}沖數(shù)少而影響測速精度;T法是通過測量兩個相鄰反饋脈沖的間隔時間來測量速度的,高速時則因?yàn)槊}沖間隔短而導(dǎo)致精度不高;M/T法結(jié)合了前兩種方法的優(yōu)點(diǎn),在大致相等的采樣間隔內(nèi),計取Cm個反饋脈沖,并同時計取這Cm個反饋脈沖間隔內(nèi)插入的高頻時標(biāo)信號數(shù)Cf,經(jīng)計算得到速度測量值。M/T法雖然克服了前兩種方法的缺點(diǎn),但仍存在低速時采樣時機(jī)不確定,精度不高等問題,這給定周期采樣的數(shù)字伺服控制系統(tǒng)帶來很大的不便,所以又出現(xiàn)了變M/T法等方法,以進(jìn)一步改善M/T法的性能和實(shí)用性[12]。

本文利用FPGA實(shí)現(xiàn)了一種改進(jìn)的M/T法,克服經(jīng)典M/T法的不足,其測速電路與控制器間的數(shù)據(jù)接口形式有PCI總線和雙端口RAM,便于在高性能控制系統(tǒng)中使用。

1總體方案

根據(jù)控制系統(tǒng)的實(shí)際情況,所設(shè)計的測速板具有位置測量和速度測量功能,如圖1所示,由倍頻辨向模塊、改進(jìn)M/T法測速模塊、PCI從設(shè)備控制器三個部分組成。

圖1總體設(shè)計方案。

1.1倍頻辨向

增量式碼盤的典型輸出是兩個相位差為90°的方波信號A,B以及零位脈沖信號Z(見圖2)。

圖2增量式碼盤輸出。

A,B之間的相位關(guān)系標(biāo)志被測軸的轉(zhuǎn)向,即當(dāng)正轉(zhuǎn)時A相超前B相90°,反轉(zhuǎn)時B相超前A相90°。對于每個確定的碼盤,其脈沖周期T對應(yīng)的碼盤角位移固定為,故其量化誤差為/2。如果能將A,B信號四倍頻,則計數(shù)脈沖的周期將減小到T/4,量化誤差下降為θ/8,從而使增量式碼盤的角位移測量精度提高4倍。從圖2可知,根據(jù)A,B兩方波信號之間相位關(guān)系的4次變化,即可產(chǎn)生四倍頻信號和辨向信號,這樣就可以實(shí)現(xiàn)增量式碼盤測量精度的提高。

1.2改進(jìn)的M/T測速算法

圖3展示了改進(jìn)M/T法的電路原理,這是實(shí)現(xiàn)高精度的硬件基礎(chǔ)。圖4為改進(jìn)M/T法的時序圖。

圖3改進(jìn)M/T法電路原理圖。

圖4改進(jìn)M/T法時序圖。

對圖3及其時序圖4的分析可以看出:本測速電路在每個反饋脈沖時鎖存高頻時鐘的計數(shù)值,兩個采樣周期間的高頻時標(biāo)增量值Ct實(shí)際表示為T2前一個反饋脈沖上升沿到T4前一個反饋脈沖上升沿的高頻時標(biāo)增量,而在采樣周期內(nèi)每個反饋脈沖到來都對反饋脈沖計數(shù)器計數(shù),兩個采樣脈沖采得反饋脈沖增量值Cm實(shí)際表示為T1~T3之間的反饋脈沖增量值,位置的反饋脈沖增量值Cm‘則是在Cm的基礎(chǔ)上考慮方向得到的,那么結(jié)合32位浮點(diǎn)運(yùn)算,這種測速方法就解決了采樣時機(jī)不確定的缺點(diǎn)。

根據(jù)上述分析,通過差分處理就可得到當(dāng)前實(shí)際采樣間隔內(nèi)的反饋脈沖增量值Cm和高頻時標(biāo)增量值Ct:

這樣得到的速度是當(dāng)前實(shí)際采樣間隔內(nèi)的平均速度:

式中:KR為反饋信號脈沖當(dāng)量;f0為高頻時標(biāo)頻率。

在實(shí)際采樣點(diǎn)T2處,高頻時標(biāo)信號f0的邊沿不能總與反饋脈沖信號plus的邊沿保持一致,因而會產(chǎn)生?1個高頻時標(biāo)當(dāng)量的計數(shù)誤差,從而影響這種測速算法的測速精度。因此高精度數(shù)字測速算法的測速相對誤差為:

動態(tài)位置算法不僅關(guān)注已經(jīng)發(fā)生的反饋脈沖數(shù)量,也關(guān)注反饋脈沖的發(fā)生時刻,其硬件基礎(chǔ)是依據(jù)圖3所示邏輯電路的。根據(jù)當(dāng)前有效采樣周期的定周期采樣點(diǎn)和實(shí)際采樣點(diǎn)之間的時間差:

并根據(jù)改進(jìn)的M/T法得到被測對象的平均速度vn,由vn和Tn相乘就可以計算出時間差T(n)中所包含的動態(tài)位置信息,因此由當(dāng)前有效采樣周期內(nèi)的增量式高精度動態(tài)位置信息可以得出位置量:

可根據(jù)這種方法完成測位置的功能。

2各個模塊VHDL實(shí)現(xiàn)

根據(jù)圖1的總體設(shè)計方案,使用VHDL語言設(shè)計實(shí)現(xiàn)如下幾個模塊。

2.1倍頻辨向模塊

為便于使用VHDL語言描述,對圖2的碼盤信號作如下分析:

(1)當(dāng)碼盤正轉(zhuǎn)時,在一個周期T內(nèi),A,B兩相信號共有4次相對變化:00→10→11→01。這樣,根據(jù)前和當(dāng)前的信號,就可以判斷方向,并產(chǎn)生四倍頻脈沖。

(2)同理當(dāng)碼盤反轉(zhuǎn)時,也根據(jù)A,B兩相信號的4次相對變化:00→01→11→10,可以判斷方向,并產(chǎn)生四倍頻脈沖信號。

(3)當(dāng)線路受到干擾或出現(xiàn)故障時,則可能出現(xiàn)其他狀態(tài)轉(zhuǎn)換過程,此時不產(chǎn)生脈沖。

根據(jù)上述分析就可以設(shè)計出測速辨向模塊,當(dāng)判斷正轉(zhuǎn)時,把方向輸出置“1”,反向時置“0”。

2.2改進(jìn)M/T法測速模塊

如圖3所示可以看出,本部分的VHDL設(shè)計分成兩個模塊:計數(shù)器模塊與鎖存器模塊。

其中,計數(shù)器模塊分為兩種:高頻時標(biāo)計數(shù)器和反饋脈沖計數(shù)器。高頻時標(biāo)計數(shù)器在每個高頻時標(biāo)的上升沿都做+1計數(shù),在每個反饋脈沖的上升沿對計數(shù)值鎖存。反饋脈沖計數(shù)器,需要兩個輸出:反饋脈沖計數(shù)值Cm、位置反饋脈沖計數(shù)值Cm’。其中,Cm的增量值用于速度的計算,所以在每一個反饋脈沖到來時,計數(shù)器都+1;Cm‘的計數(shù)值用于位置的計算,所以它是在Cm的基礎(chǔ)上考慮了碼盤方向得到的計數(shù)值,在正轉(zhuǎn)時反饋脈沖計數(shù)器+1,反轉(zhuǎn)時-1,當(dāng)零位脈沖Z有效時,對其置0。然后分別輸出Cm,Cm’,由此就可以得到反饋脈沖計數(shù)器模塊。

在每個采樣周期的上升沿還要鎖存Cm,Ct的增量值和Ct‘與Ct的差值,由于都做了差分處理,所以這三個鎖存器使用雙字就能滿足設(shè)計要求,而Cm’鎖存器在零位信號Z后不進(jìn)行差分處理,若采用36000刻增量式碼盤,并進(jìn)行10000倍頻,位置范圍為±720°,那么需要的計數(shù)值為:

可見,雙字鎖存器也能滿足設(shè)計要求。

綜上所述,本設(shè)計設(shè)置了4個雙字信號鎖存器Cm,Cm’,Ct,Ct‘,同時還需要對其控制輸出,所以在PCI從設(shè)備控制器中為I/O分配4個雙字的地址空間。然后根據(jù)PCI總線給出的地址信號PCI_AD[3:2]和數(shù)據(jù)輸出使能信號DATA_EN對這4個雙字寄存器尋址輸出。

2.3PCI接口控制器

PCI的時序規(guī)則和PCI的總線協(xié)議由PCI接口控制器實(shí)現(xiàn),同時它還負(fù)責(zé)傳遞地址和數(shù)據(jù)輸出使能信號給測速模塊,實(shí)現(xiàn)I/O口的基本讀與猝發(fā)讀數(shù)據(jù)功能。

從設(shè)備控制器包括2個部分:奇偶校驗(yàn)?zāi)K和PCI從設(shè)備狀態(tài)機(jī)。

2.3.1奇偶校驗(yàn)?zāi)K

PCI的奇偶校驗(yàn)提供了一種機(jī)制來決定一件作業(yè)。

該作業(yè)判斷主設(shè)備是否成功地尋址相應(yīng)的從設(shè)備,且數(shù)據(jù)是否正確地在它們之間傳輸。通過該模塊完成數(shù)據(jù)傳輸過程中PCI_AD和PCI_CBE的偶校驗(yàn)。偶校驗(yàn)的輸出信號在地址和數(shù)據(jù)周期有效,其產(chǎn)生的規(guī)則是使偶校驗(yàn)輸出、PCI_CBE、PCI_AD各位的“1”的個數(shù)為偶數(shù)。那么采用把PCI_AD與PCI_CBE各位異或的方法,就可以實(shí)現(xiàn)偶校驗(yàn)的功能。

2.3.2PCI從設(shè)備狀態(tài)機(jī)

PCI從設(shè)備控制器是PCI接口設(shè)計的模塊,按功能來說,它要產(chǎn)生奇偶校驗(yàn)和數(shù)據(jù)的使能信號,并根據(jù)PCI_AD和PCI_CBE產(chǎn)生讀地址,完成主從設(shè)備的握手信號,并且實(shí)現(xiàn)從設(shè)備狀態(tài)機(jī)在各個狀態(tài)之間的轉(zhuǎn)換。

由于本設(shè)計只需要完成I/O讀操作,本狀態(tài)機(jī)設(shè)計配置空間的功能放在了從設(shè)備控制器來完成,同時刪去了PCI操作中對存儲器空間、配置空間的操作,結(jié)合PCI總線的傳輸時序,如圖5給出了其基本結(jié)構(gòu)。

(1)空閑狀態(tài)為PCI從設(shè)備的初始狀態(tài),在沒有任何操作的時候,PCI從設(shè)備將始終保持這個狀態(tài);(2)每次數(shù)據(jù)傳輸時首先傳出地址和命令字,根據(jù)地址和命令字確定是不是對本設(shè)備的訪問,并確定訪問的首地址;從設(shè)備則從命令字中識別該訪問是讀操作還是寫操作;(3)讀訪問只有在信號IRDY,TRDY,DEVSEL都為低狀態(tài)時才能進(jìn)行;(4)猝發(fā)傳輸需要通過地址遞增邏輯來實(shí)現(xiàn)地址的自動遞加,其地址遞增的周期為數(shù)據(jù)周期和傳輸周期總和,在等待周期暫停遞增;(5)主從設(shè)備中任一方?jīng)]有準(zhǔn)備好,操作中都需要能夠引起等待狀態(tài)插入的活動;(6)讀操作還有一個中間準(zhǔn)備過程。

圖5讀狀態(tài)機(jī)結(jié)構(gòu)。

那么完成本狀態(tài)機(jī)需要6個狀態(tài):idle表示空閑狀態(tài);addr表示地址周期;turnad表示讀轉(zhuǎn)換周期;data表示數(shù)據(jù)傳輸周期;lasttra表示傳輸周期;wait表示等待周期;在各個狀態(tài)到來時還要對中間信號、輸出信號和本地信號執(zhí)行相應(yīng)的操作:

(1)idle,addr,turnad周期對PCI_TRDYn和PCI_DEVSELn置高電平;addr周期依據(jù)地址信號確定是否選中本機(jī),識別是否為讀操作;addr周期輸出PCI_AD[3:2]對寄存器進(jìn)行尋址,實(shí)現(xiàn)讀操作。

(2)data,lasttra周期對PCI_TRDYn和PCI_DEVSELn置低電平;data,lasttra周期置DATA_EN有效并輸出。

(3)addr,data,lasttra周期置奇偶校驗(yàn)有效。

(4)等待周期置PCI_TRDYn和PCI_DEVSELn低電平。

根據(jù)對PCI總線傳輸時序的分析,影響各個狀態(tài)相互轉(zhuǎn)化的因素是:幀同步信號PCI_FRAMEn、主設(shè)備準(zhǔn)備好信號PCI_IRDYn、讀識別信號READn。其中,READn用來標(biāo)識狀態(tài)addr產(chǎn)生的中間識別信號。

3測試平臺與仿真測試

這種改進(jìn)M/T數(shù)字測速及位置檢測算法的硬件采用Xilinx公司的FPGAXC3S400。使用36000刻的增量式碼盤,速度環(huán)采樣周期T設(shè)定為1ms,高頻時標(biāo)信號的頻率為40MHz,結(jié)合PC運(yùn)算的數(shù)字測速算法可以在速度0.001~150(?)/s的范圍內(nèi)獲得?2.5(10-5s的測速精度。與此同時,高精度動態(tài)位置檢測算法可以使位置反饋的動態(tài)測量分辨率提高到10-2~10-5個脈沖當(dāng)量。

對編寫好的VHDL程序采用ISE進(jìn)行綜合,并編寫測試平臺,用ModelSim對其進(jìn)行仿真測試。圖6為PCI控制器的仿真圖,圖中state表示狀態(tài)機(jī)在內(nèi)部轉(zhuǎn)換的過程,狀態(tài)1表示空閑狀態(tài),狀態(tài)2表示地址周期,狀態(tài)4表示讀轉(zhuǎn)換周期,狀態(tài)8表示傳輸周期,狀態(tài)9表示猝發(fā)讀寫周期。

圖6I/O讀操作。

該I/O讀操作,將地址為1的寄存器讀出。這里設(shè)定I/O地址為0X200~0X20F這4個雙字空間,那么在地址周期中地址0X204的2~3位尋址于寄存器的個雙字,其后緊跟的是讀的轉(zhuǎn)換周期,猝發(fā)讀寫周期和一位讀寫周期??梢钥闯?,這兩個周期都對這個寄存器進(jìn)行了讀操作。

4結(jié)語

本文介紹了使用FPGA設(shè)計和實(shí)現(xiàn)基于PCI總線傳輸?shù)母倪M(jìn)型M/T法測速電路,它克服了經(jīng)典

溫馨提示

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

評論

0/150

提交評論