基于FPGA和PCI的高精度測(cè)速板卡的設(shè)計(jì)與實(shí)現(xiàn)
(1)空閑狀態(tài)為PCI從設(shè)備的初始狀態(tài),在沒有任何操作的時(shí)候,PCI從設(shè)備將始終保持這個(gè)狀態(tài);
(2)每次數(shù)據(jù)傳輸時(shí)首先傳出地址和命令字,根據(jù)地址和命令字確定是不是對(duì)本設(shè)備的訪問,并確定訪問的首地址;從設(shè)備則從命令字中識(shí)別該訪問是讀操作還是寫操作;
(3)讀訪問只有在信號(hào)IRDY,TRDY,DEVSEL都為低狀態(tài)時(shí)才能進(jìn)行;
(4)猝發(fā)傳輸需要通過地址遞增邏輯來實(shí)現(xiàn)地址的自動(dòng)遞加;其地址遞增的周期為數(shù)據(jù)周期和最后傳輸周期總和,在等待周期暫停遞增;
(5)主從設(shè)備中任一方?jīng)]有準(zhǔn)備好,操作中都需要能夠引起等待狀態(tài)插入的活動(dòng);
(6)讀操作還有一個(gè)中間準(zhǔn)備過程。
那么完成本狀態(tài)機(jī)需要6個(gè)狀態(tài):idle表示空閑狀態(tài);addr表示地址周期;turnad表示讀轉(zhuǎn)換周期;data表示數(shù)據(jù)傳輸周期;lasttra表示最后傳輸周期;wait表示等待周期;在各個(gè)狀態(tài)到來時(shí)還要對(duì)中間信號(hào)、輸出信號(hào)和本地信號(hào)執(zhí)行相應(yīng)的操作:
(1)idle,addr,turnad周期對(duì)PCI_TFRDYn和PCIDEVSELn置高電平;addr周期依據(jù)地址信號(hào)確定是否選中本機(jī),識(shí)別是否為讀操作;addr周期輸出PCI_AD[3:2]對(duì)寄存器進(jìn)行尋址,實(shí)現(xiàn)讀操作。
(2)data,lasttra周期對(duì)PCI_TRDYn和PCI_DEVSELn置低電平;data,lasttra周期置DATA_EN有效并輸出。
(3)addr,data,lasttra周期置奇偶校驗(yàn)有效。
(4)等待周期置PCI_TRDYn和PCI_DEVSELn低電平。
根據(jù)對(duì)PCI總線傳輸時(shí)序的分析,影響各個(gè)狀態(tài)相互轉(zhuǎn)化的因素是:幀同步信號(hào)PCI_FRAMEn、主設(shè)備準(zhǔn)備好信號(hào)PCI_IRDYn、讀識(shí)別信號(hào)READn。其中,READn用來標(biāo)識(shí)狀態(tài)addr產(chǎn)生的中間識(shí)別信號(hào)。本文引用地址:http://m.butianyuan.cn/article/191386.htm
3 測(cè)試平臺(tái)與仿真測(cè)試
這種改進(jìn)M/T數(shù)字測(cè)速及位置檢測(cè)算法的硬件采用Xilinx公司的FPGA XC3S400。使用36 000刻的增量式碼盤,速度環(huán)采樣周期T設(shè)定為1 ms,高頻時(shí)標(biāo)信號(hào)的頻率為40 MHz,結(jié)合PC運(yùn)算的數(shù)字測(cè)速算法可以在速度O.001~150(°)/s的范圍內(nèi)獲得±2.5×10-5 s的測(cè)速精度。與此同時(shí),高精度動(dòng)態(tài)位置檢測(cè)算法可以使位置反饋的動(dòng)態(tài)測(cè)量分辨率提高到10-2~10-6個(gè)脈沖當(dāng)量。
對(duì)編寫好的VHDL程序采用ISE進(jìn)行綜合,并編寫測(cè)試平臺(tái),用ModelSim對(duì)其進(jìn)行仿真測(cè)試。圖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ā)讀寫周期。
該I/O讀操作,將地址為1的寄存器讀出。這里設(shè)定I/O地址為0X200~0X20F這4個(gè)雙字空間,那么在地址周期中地址0X204的2~3位尋址于寄存器的第一個(gè)雙字,其后緊跟的是讀的轉(zhuǎn)換周期,猝發(fā)讀寫周期和最后一位讀寫周期。可以看出,這兩個(gè)周期都對(duì)這個(gè)寄存器進(jìn)行了讀操作。
4 結(jié)語
本文介紹了使用FPGA設(shè)計(jì)和實(shí)現(xiàn)基于PCI總線傳輸?shù)母倪M(jìn)型M/T法測(cè)速電路,它克服了經(jīng)典測(cè)速方法的幾個(gè)缺點(diǎn),在較大速度范圍內(nèi)都具有良好的精度。同時(shí)使用FPGA設(shè)計(jì)和實(shí)現(xiàn)了PCI從設(shè)備控制器,使得測(cè)速電路的設(shè)計(jì)與PCI總線的設(shè)計(jì)成為一個(gè)整體,節(jié)省了板上器件,也使得整個(gè)設(shè)計(jì)信號(hào)在FPGA內(nèi)部流動(dòng),具有更加良好的抗干擾能力和穩(wěn)定性。
評(píng)論