基于fpga的數(shù)字頻率計設(shè)計_第1頁
基于fpga的數(shù)字頻率計設(shè)計_第2頁
基于fpga的數(shù)字頻率計設(shè)計_第3頁
基于fpga的數(shù)字頻率計設(shè)計_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

基于fpga的數(shù)字頻率計設(shè)計

0fpga頻率計系統(tǒng)的特點電子技術(shù)和計算機科學(xué)的快速發(fā)展使現(xiàn)代網(wǎng)絡(luò)系統(tǒng)的設(shè)計和應(yīng)用進入了一個新時代。高性能但結(jié)構(gòu)簡單的電子技術(shù)產(chǎn)品已經(jīng)成為了市場的主體。這次數(shù)字頻率計的設(shè)計就是迎合了簡單化結(jié)構(gòu)但擁有較高的整體性能和可靠性的特點,利用了一片F(xiàn)PGA芯片來實現(xiàn)頻率測量、周期測量和占空比測量,測量誤差≤0.1%,并能實現(xiàn)測量中各量程之間的自動轉(zhuǎn)換。本文采用了QuartusⅡ軟件作為開發(fā)環(huán)境,以VHDL語言作為編程語言,并使用北京掌宇金儀科教儀器設(shè)備有限公司的TREXC1FPGA多媒體開發(fā)平臺作為下載平臺,使頻率計在一個先進的環(huán)境中實現(xiàn)。1測量誤差測試利用QuartusⅡ開發(fā)軟件,并使用一片F(xiàn)PGA芯片下載設(shè)計實現(xiàn)一數(shù)字頻率計,該數(shù)字頻率計應(yīng)具有頻率測量、周期測量和占空比測量,頻率測量范圍為1Hz~1MHz,周期測量范圍為1μs~1s,占空比測量范圍為10%~90%,其測試結(jié)果由3只七段數(shù)碼管穩(wěn)定顯示,測試量程可自動切換,測量誤差≤0.1%。2系統(tǒng)的概念2.1數(shù)字頻率計的確定在頻率測量方法中,常用的有直接測頻法、倍頻法和等精度測頻法。這三種方案各有利弊,其中直接測頻法是依據(jù)頻率的含義把被測頻率信號加到閘門的輸入端,只有在閘門開通時間T(以1s計)內(nèi),被測(計數(shù))的脈沖送到十進制計數(shù)器進行計數(shù)。設(shè)計數(shù)器的計數(shù)值為N,則可得到被測信號頻率為f=N。但是由于閘門的開通、關(guān)閉的時間與被測頻率信號的跳變難以同步,因此采用此測量方法在低頻段的相對測量誤差可能達到50%,即在低頻段不能滿足設(shè)計要求。但根據(jù)三個方案的分析,直接測頻法比其他兩個方案更加簡單方便可行,直接測頻法雖然在低頻段測量時誤差較大,但在低頻段我們可以采用直接測周法測量,這樣就可以提高測量精度了。直接周期測量法是用被測周期信號直接控制計數(shù)門控電路,使主門開放時間等于Tx,時標為Ts的脈沖在主門開放時間進入計數(shù)器。設(shè)在Tx期間計數(shù)值為N,可以根據(jù)Tx=N×Ts來算得被測信號周期。與直接測頻法相似,經(jīng)誤差分析,用該測量法測量時,被測信號的周期越短,測量誤差越大。也就是說,直接周期測量法在高頻段時誤差較大,但同樣可以在高頻段采用直接測頻法來提高測量精度。占空比測量是分別測被測信號的上升沿脈寬Tw和周期T,并分別將兩數(shù)值直接顯示出來,以示占空比:Q=Tw∶T(1)Q=Τw∶Τ(1)脈沖寬度測量時,測量電路在檢測到脈沖信號的上升沿時打開計數(shù)器,在下降沿時關(guān)閉計數(shù)器。設(shè)脈沖寬度為Twx,計數(shù)時鐘周期為TS=1/fs,計數(shù)結(jié)果為N,則根據(jù)Twx=N/fs=NTS就可得出測量結(jié)果。這種脈寬測量方法與周期測量方法基本相同。根據(jù)測頻、測周誤差分析,在不同的測量檔位,選擇合理的時基信號頻率,可以降低測量誤差,在此給出數(shù)字頻率計的量程檔位與時基信號分配,如表1所示。本文將數(shù)字頻率計分成6個量程檔位,在1MHz、100kHz、10kHz量程檔位完成頻率測量;在1ms、10ms、100ms量程檔位完成周期測量。2.2狀態(tài)機狀態(tài)轉(zhuǎn)換電路數(shù)字頻率計的系統(tǒng)結(jié)構(gòu)如圖1所示,本設(shè)計選擇了TREXC1FPGA多媒體開發(fā)板中的50MHz晶振、AlteraCyclone1C6FPGA芯片、多個發(fā)光二極管、兩位DIP開關(guān)、三位七段數(shù)碼管。為了在設(shè)計過程中方便檢查問題,在FPGA芯片中設(shè)計了11個模塊,它們分別是分頻器、狀態(tài)機、測頻(測周)計數(shù)器、測脈寬計數(shù)器、2個鎖存器、2個選擇器、欠量程信號同步整形電路、超量程信號同步整形電路、七段數(shù)碼顯示電路。由50MHz晶振送入分頻器,分出各檔時基信號和其它模塊所需的觸發(fā)信號,分頻器將各檔時基信號傳給狀態(tài)機,同時待測信號進入狀態(tài)機,狀態(tài)機進行狀態(tài)轉(zhuǎn)換,將量程溢出信號和狀態(tài)顯示信號表征在發(fā)光二極管上,并將待計數(shù)時鐘和計數(shù)時鐘分別傳給測頻測周計數(shù)器和測脈寬計數(shù)器。這時如果開關(guān)向下處于“0”狀態(tài),則測頻測周計數(shù)器工作(兩個選擇器都選擇測頻測周計數(shù)器傳出的結(jié)果),控制狀態(tài)機狀態(tài)的轉(zhuǎn)換;若有欠或超量程的信號就將該信號送入信號同步整形電路再傳給狀態(tài)機,用于改變量程;若在合適量程范圍內(nèi)計數(shù)器才將計數(shù)值傳給鎖存器,鎖存器將頻率值或周期值傳給七段數(shù)碼顯示電路,并顯示到七段數(shù)碼管上。這時如果開關(guān)向上處于“1”狀態(tài),則測脈寬計數(shù)器工作(兩個選擇器都選擇測脈寬計數(shù)器傳出的結(jié)果),控制狀態(tài)機狀態(tài)的轉(zhuǎn)換;若有欠量程或超量程的信號就將該信號送入信號同步整形電路再傳給狀態(tài)機,用于改變量程;若在合適量程范圍內(nèi)計數(shù)器才將計數(shù)結(jié)果傳給鎖存器,鎖存器將脈寬值傳給七段數(shù)碼顯示電路,并顯示到七段數(shù)碼管上。3狀態(tài)機模塊3.1超有智慧意識狀態(tài)轉(zhuǎn)換狀態(tài)機是這個頻率計系統(tǒng)的核心,先將其確定以后,再補充其它模塊就容易了。系統(tǒng)的狀態(tài)機是用來自動切換量程的,那么有必要在寫程序之前,先將狀態(tài)機的狀態(tài)名定下來,并確定好狀態(tài)轉(zhuǎn)移的條件。在此設(shè)立了8個狀態(tài),頻率計的量程及各量程對應(yīng)的狀態(tài)名和各量程相應(yīng)的測量方法如表2所示。根據(jù)設(shè)計方案,狀態(tài)間的轉(zhuǎn)移是由超量程信號Over和欠量程信號Low決定(超量程信號Over和欠量程信號Low是由測量用計數(shù)器輸出的),狀態(tài)轉(zhuǎn)換圖如圖2所示。首先對系統(tǒng)復(fù)位,此時狀態(tài)機的初始狀態(tài)為F10k,若超量程信號送入狀態(tài)機,則狀態(tài)轉(zhuǎn)換到F100k,如果仍有超量程信號則狀態(tài)轉(zhuǎn)換到F1M,如果仍有超量程信號則狀態(tài)轉(zhuǎn)換到OverError產(chǎn)生高溢出信號;若欠量程信號送入狀態(tài)機,則狀態(tài)轉(zhuǎn)換到P1ms,如果有超量程信號則狀態(tài)轉(zhuǎn)換到P10ms,如果仍有超量程信號則狀態(tài)轉(zhuǎn)換到P100ms,如果仍有超量程信號則狀態(tài)轉(zhuǎn)換到LowError產(chǎn)生低溢出信號。3.2ettraft據(jù)狀態(tài)轉(zhuǎn)換圖,這里將狀態(tài)機的程序分成兩個進程,進程1完成狀態(tài)轉(zhuǎn)移過程,進程2控制各狀態(tài)下的輸出值。因源程序較長,故只給出部分注解程序:所設(shè)計的狀態(tài)機模塊如圖3所示。待測信號從Clocktested端輸入狀態(tài)機;由分頻器分出的1Hz信號由Clock端送入狀態(tài)機,作為鎖存器的觸發(fā)信號;由分頻器分出的10Hz信號由Clock10Hz端送入狀態(tài)機,作為第1路時基信號;Clock100Hz端作第2路時基信號;依次至Clock100kHz端作第5路時基信號;測量用計數(shù)器送出的欠量程信號由Low端送入狀態(tài)機,測量用計數(shù)器送出的超量程信號由Over端送入狀態(tài)機,用于量程轉(zhuǎn)換控制;Reset是狀態(tài)機的復(fù)位端。狀態(tài)機通過dp1、dp2端將百位和十位小數(shù)點顯示信號送出并連接到七段數(shù)碼管的小數(shù)點位上;通過Lowlight端將低于總量程信號送出,并連接到第1只發(fā)光二極管上;通過Overlight端將高于總量程信號送出,并連接到第2只發(fā)光二極管上;通過Period端測量狀態(tài)信號(當Period=0時為測頻狀態(tài),當Period=1時為測周狀態(tài))送出,并連接到第3只發(fā)光二極管上;通過Timebase端將待測的計數(shù)信號送出給測量用計數(shù)器;通過Timecounter端將計數(shù)時鐘送出給測量用計數(shù)器。當測量用計數(shù)器有超量程信號Over或欠量程信號Low送入狀態(tài)機時,狀態(tài)機進行狀態(tài)轉(zhuǎn)換,直到?jīng)]有超量程信號Over或欠量程信號Low送入,狀態(tài)穩(wěn)定在該固定狀態(tài)上,并且輸出在此狀態(tài)的信息。當狀態(tài)停留在量程范圍內(nèi)的狀態(tài)時,Lowlight=0,Overlight=0,表示沒有超過量程范圍:當dp1=0,dp2=0時,表示顯示的值在100~999之間,連接百位、十位的發(fā)光二極管都不亮起;當dp1=0,dp2=1時,表示顯示的值在10~99.9之間,連接十位的發(fā)光二極管亮起,連接百位的發(fā)光二極管不亮;當dp1=1,dp2=0時,表示顯示的值在1~9.99之間,連接百位的發(fā)光二極管亮起,連接十位的發(fā)光二極管不亮;當Period=0時,表示現(xiàn)在處于測頻狀態(tài),顯示的數(shù)值為頻率值,連接測量狀態(tài)的發(fā)光二極管不亮,待計數(shù)信號Timebase等于時基信號,計數(shù)信號Timecounter等于待測信號;當Period=1時,表示現(xiàn)在處于測周狀態(tài),顯示的數(shù)值為周期值,連接測量狀態(tài)的發(fā)光二極管亮起,待計數(shù)信號Timebase等于待測信號,計數(shù)信號Timecounter等于時基信號。當狀態(tài)停留在超出量程范圍的狀態(tài)時,若Lowlight=0、Overlight=1,表示超過數(shù)字頻率計的最高量程,高于總量程信號連接的發(fā)光二極管亮起;當狀態(tài)停在超出量程范圍的狀態(tài)時,若Lowlight=1、Overlight=0,表示低于數(shù)字頻率計的最低量程,低于總量程信號連接的發(fā)光二極管亮起。3.3狀態(tài)機編碼轉(zhuǎn)換狀態(tài)機仿真如圖4所示。此時輸入一個50kHz的待測信號。50kHz應(yīng)該在10~99.9kHz量程范圍內(nèi),在該量程范圍內(nèi)的時基信號是Clock100Hz,處于測頻狀態(tài)。初始,沒有給出超量程信號,狀態(tài)在1~9.99量程范圍內(nèi),該量程范圍內(nèi)的時基信號是Clock10Hz;當給出超量程信號后,狀態(tài)將自動轉(zhuǎn)移到1~99.9量程范圍內(nèi),在該量程范圍內(nèi)的時基信號是Clock100Hz。我們可以從圖中看出Lowlight=0、Overlight=0,被測信號沒有超出頻率計測量范圍,Period=0現(xiàn)在處于測頻狀態(tài),Timecounter計數(shù)時鐘等于50kHz的待測信號。當沒有給出超量程信號Over時,Timebase待計數(shù)信號等于Clock10Hz;當在狀態(tài)機時鐘Clock100kHz的上升沿時給一個超量程信號Over后,Timebase待計數(shù)信號變?yōu)镃lock100Hz,并且dp2=1十位小數(shù)點亮起,說明狀態(tài)機進行了狀態(tài)轉(zhuǎn)換,從1~9.99量程范圍轉(zhuǎn)移到了1~99.9量程范圍。通過狀態(tài)機波形仿真圖,可以看出狀態(tài)機設(shè)計成功。除此之外其他模塊也很重要,在實際應(yīng)用中,外部輸入的異步信號常常需要進行同步化(與系統(tǒng)時鐘同步)和整形(將輸入信號整形為一個時鐘周期長的信號脈沖)。所以在設(shè)計中,超、欠量程信號同步整形電路也顯得尤為重要。在編寫好各個模塊后,要編寫一個頂層文件將各個模塊合并成一個整體系統(tǒng),這里采用的是圖形與VHDL語言混編,沒有用元件例化,只是為了更加直觀。得到其對應(yīng)的系統(tǒng)芯片如圖5所示,輸入/輸出引腳及作用如表3所示。4實驗驗證及結(jié)果該

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論