新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA和PCI的高精度測速板卡的設(shè)計(jì)與實(shí)現(xiàn)

基于FPGA和PCI的高精度測速板卡的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2011-01-24 來源:網(wǎng)絡(luò) 收藏

2 各個(gè)模塊VHDL實(shí)現(xiàn)
根據(jù)圖1的總體設(shè)計(jì)方案,使用VHDL語言設(shè)計(jì)實(shí)現(xiàn)如下幾個(gè)模塊。
2.1 倍頻辨向模塊
為便于使用VHDL語言描述,對圖2的碼盤信號作如下分析:
(1)當(dāng)碼盤正轉(zhuǎn)時(shí),在一個(gè)周期T內(nèi),A,B兩相信號共有4次相對變化:00→1O→11→01。這樣,根據(jù)前一次和當(dāng)前的信號,就可以判斷方向,并產(chǎn)生四倍頻脈沖。
(2)同理當(dāng)碼盤反轉(zhuǎn)時(shí),也根據(jù)A,B兩相信號的4次相對變化:00→01→11→10,可以判斷方向,并產(chǎn)生四倍頻脈沖信號。
(3)當(dāng)線路受到干擾或出現(xiàn)故障時(shí),則可能出現(xiàn)其他狀態(tài)轉(zhuǎn)換過程,此時(shí)不產(chǎn)生脈沖。
根據(jù)上述分析就可以設(shè)計(jì)出辨向模塊,當(dāng)判斷正轉(zhuǎn)時(shí),把方向輸出置‘1’,反向時(shí)置‘O’。
2.2 改進(jìn)M/T法模塊
如圖3所示可以看出,本部分的VHDL設(shè)計(jì)分成兩個(gè)模塊:計(jì)數(shù)器模塊與鎖存器模塊。
其中,計(jì)數(shù)器模塊分為兩種:高頻時(shí)標(biāo)計(jì)數(shù)器和反饋脈沖計(jì)數(shù)器。高頻時(shí)標(biāo)計(jì)數(shù)器在每個(gè)高頻時(shí)標(biāo)的上升沿都做+1計(jì)數(shù),在每個(gè)反饋脈沖的上升沿對計(jì)數(shù)值鎖存。反饋脈沖計(jì)數(shù)器,需要兩個(gè)輸出:反饋脈沖計(jì)數(shù)值Cm、位置反饋脈沖計(jì)數(shù)值。其中,Cm的增量值用于速度的計(jì)算,所以在每一個(gè)反饋脈沖到來時(shí),計(jì)數(shù)器都+1;的計(jì)數(shù)值用于位置的計(jì)算,所以它是在Cm的基礎(chǔ)上考慮了碼盤方向得到的計(jì)數(shù)值,在正轉(zhuǎn)時(shí)反饋脈沖計(jì)數(shù)器+1,反轉(zhuǎn)時(shí)-1,當(dāng)零位脈沖Z有效時(shí),對其置0。然后分別輸出Cm,,由此就可以得到反饋脈沖計(jì)數(shù)器模塊。
在每個(gè)采樣周期的上升沿還要鎖存Cm,Ct的增量值和與Ct的差值,由于都做了差分處理,所以這三個(gè)鎖存器使用雙字就能滿足設(shè)計(jì)要求,而鎖存器在零位信號Z后不進(jìn)行差分處理,若采用36 000刻增量式碼盤,并進(jìn)行10 000倍頻,位置范圍為±720°,那么需要的最大計(jì)數(shù)值為:
(36 000×10 000×720×2)/360=1 440 000 000
可見,雙字鎖存器也能滿足設(shè)計(jì)要求。
綜上所述,本設(shè)計(jì)設(shè)置了4個(gè)雙字信號鎖存器Cm,,Ct,,同時(shí)還需要對其控制輸出,所以在從設(shè)備控制器中為I/O分配4個(gè)雙字的地址空間。然后根據(jù)總線給出的地址信號_AD[3:2]和數(shù)據(jù)輸出使能信號DATA_EN對這4個(gè)雙字寄存器尋址輸出。
2.3 PCI接口控制器
PCI的時(shí)序規(guī)則和PCI的總線協(xié)議由PCI接口控制器實(shí)現(xiàn),同時(shí)它還負(fù)責(zé)傳遞地址和數(shù)據(jù)輸出使能信號給模塊,實(shí)現(xiàn)I/O口的基本讀與猝發(fā)讀數(shù)據(jù)功能。
從設(shè)備控制器包括2個(gè)部分:奇偶校驗(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’的個(gè)數(shù)為偶數(shù)。那么采用把PCI_AD與PCI_CBE各位異或的方法,就可以實(shí)現(xiàn)偶校驗(yàn)的功能。
2.3.2 PCI從設(shè)備狀態(tài)機(jī)
PCI從設(shè)備控制器是PCI接口設(shè)計(jì)的核心模塊,按功能來說,它要產(chǎn)生奇偶校驗(yàn)和數(shù)據(jù)的使能信號,并根據(jù)PCI_AD和PCI_CBE產(chǎn)生讀地址,完成主從設(shè)備的握手信號,并且實(shí)現(xiàn)從設(shè)備狀態(tài)機(jī)在各個(gè)狀態(tài)之間的轉(zhuǎn)換。
由于本設(shè)計(jì)只需要完成I/0讀操作,本狀態(tài)機(jī)設(shè)計(jì)配置空間的功能放在了從設(shè)備控制器來完成,同時(shí)刪去了PCI操作中對存儲器空間、配置空間的操作,結(jié)合PCI總線的傳輸時(shí)序,如圖5給出了其基本結(jié)構(gòu)。

h.JPG



關(guān)鍵詞: FPGA PCI 高精度 測速

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉