課程設(shè)計(jì)頻率測量儀設(shè)計(jì)_第1頁
課程設(shè)計(jì)頻率測量儀設(shè)計(jì)_第2頁
課程設(shè)計(jì)頻率測量儀設(shè)計(jì)_第3頁
課程設(shè)計(jì)頻率測量儀設(shè)計(jì)_第4頁
課程設(shè)計(jì)頻率測量儀設(shè)計(jì)_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘要本文介紹了一種自頂向下分層設(shè)計(jì)多功能數(shù)字頻率計(jì)的設(shè)計(jì)方法。該頻率計(jì)采用VHDL硬件描述語言編程以MAX+PLUS為開發(fā)環(huán)境,極大地減少了硬件資源的占用。數(shù)字頻率計(jì)模塊劃分的設(shè)計(jì)具有相對獨(dú)立性,可以對模塊單獨(dú)進(jìn)行設(shè)計(jì)、調(diào)試和修改,縮短了設(shè)計(jì)周期。該數(shù)字頻率計(jì)的測量范圍為l0Hz10MHz,響應(yīng)時(shí)間小于等于15秒;其測試結(jié)果由4只七段數(shù)碼管穩(wěn)定顯示,測量誤差小于等于1 。仿真波形與分析結(jié)果表明,所設(shè)計(jì)的電路通過硬件仿真能夠滿足數(shù)字頻率計(jì)的功能要求,具有理論與實(shí)踐意義,實(shí)現(xiàn)了電子電路自動化的過程。數(shù)字頻率計(jì)模塊劃分的設(shè)計(jì)具有相對獨(dú)立性,可以對模塊單獨(dú)進(jìn)行設(shè)計(jì)、調(diào)試和修改,縮短了設(shè)計(jì)周期。關(guān)鍵詞:

2、VHDL 數(shù)字頻率計(jì) EDA MAX+PLUS第一章 概述第一節(jié) 課題研究背景數(shù)字頻率計(jì)是電子測量與儀表技術(shù)最基礎(chǔ)的電子儀表類別之一, 數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器,而且它是數(shù)字電壓必不可少的部件。當(dāng)今數(shù)字頻率計(jì)不僅是作為電壓表、計(jì)算機(jī)、天線電廣播通訊設(shè)備、工藝過程自動化裝置。多種儀表儀器與家庭電器等許多電子產(chǎn)品中的數(shù)據(jù)信息輸出顯示器反映到人們眼簾。集成數(shù)字頻率計(jì)由于所用元件少、投資少,體積小,功耗低,且可靠性高,功能強(qiáng),易于設(shè)計(jì)和研發(fā),使得它具有技術(shù)上的實(shí)用性和應(yīng)用的廣泛性。不論從我們用的彩色電視機(jī)、電冰箱,DVD,還有我們現(xiàn)在家庭常用到的數(shù)字電壓表

3、數(shù)字萬用表等等都包含有頻率計(jì)?,F(xiàn)在頻率計(jì)已是向數(shù)字智能方向發(fā)展,即可以很精確的讀數(shù)也精巧易于控制。數(shù)字頻率計(jì)已是現(xiàn)在頻率計(jì)發(fā)展的方向,它不僅可以很方便的讀數(shù),而且還可以使頻率的測量范圍和測量準(zhǔn)確度上都比模擬先進(jìn).而且頻率計(jì)的使用已是很多的方面,數(shù)字衛(wèi)星、數(shù)字通訊等高科技的領(lǐng)域都有應(yīng)用,今天數(shù)字頻率計(jì)的發(fā)展已經(jīng)不僅僅是一個(gè)小電子產(chǎn)品的發(fā)展也是整個(gè)民族乃至整個(gè)國家的發(fā)展,所以頻率計(jì)的發(fā)展是一個(gè)整體的趨勢。而從民族產(chǎn)業(yè)上來說,我們在這種產(chǎn)業(yè)中還落后于西方發(fā)達(dá)國家,這將會關(guān)系到民族產(chǎn)業(yè)的興衰。所以我們必須很重視當(dāng)前的情況,學(xué)習(xí)發(fā)達(dá)國家的先進(jìn)技術(shù)以發(fā)展本國的產(chǎn)業(yè)。第二節(jié) 設(shè)計(jì)概述所謂頻率,就是周期信號在

4、單位時(shí)間(1s)里變化的次數(shù)。本數(shù)字頻率計(jì)的設(shè)計(jì)思路是:(一) 根據(jù)頻率計(jì)的測頻原理,可以選擇合適的時(shí)基信號對輸入被測信號脈沖進(jìn)行計(jì)數(shù),實(shí)現(xiàn)測頻的目的。(二) 根據(jù)數(shù)字頻率計(jì)的基本原理,本文設(shè)計(jì)方案的基本思想是分為三個(gè)模塊來實(shí)現(xiàn)其功能,即時(shí)基產(chǎn)生與測頻時(shí)序控制電路模塊、待測信號脈沖計(jì)數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊,并且分別用VHDL對其進(jìn)行編程,實(shí)現(xiàn)計(jì)數(shù)電路、鎖存電路、顯示電路等。第三節(jié) 設(shè)計(jì)原理眾所周知,頻率信號易于傳輸,抗干擾性強(qiáng),可以獲得較好的測量精度。因此,頻率檢測是電子測量領(lǐng)域最基本的測量之一。頻率計(jì)的基本原理是用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對比測量其他信號的頻率。

5、通常情況下計(jì)算每秒內(nèi)待測信號的脈沖個(gè)數(shù),即閘門時(shí)間為1s。閘門時(shí)間越長,得到的頻率值就越準(zhǔn)確,但閘門時(shí)間越長,則每測一次頻率的間隔就越長。閘門時(shí)間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。一般取1s作為閘門時(shí)間。數(shù)字頻率計(jì)的關(guān)鍵組成部分包括測頻控制信號發(fā)生器、計(jì)數(shù)器、鎖存器、譯碼驅(qū)動電路和顯示電路,其原理框圖如圖1. 1所示。計(jì)數(shù)器鎖存器譯碼驅(qū)動電路數(shù)碼管顯示測頻控制信號發(fā)生器圖1.1 原理框圖待測信號第二章 VHDL程序語言和FPGA簡介一 VHDL程序語言介紹:VHDL語言描述能力強(qiáng),覆蓋面廣,抽象能力強(qiáng),可讀性好,既能被人容易讀懂又能被計(jì)算機(jī)識別。VHDL語言中設(shè)計(jì)實(shí)體,程

6、序包,涉及庫,為設(shè)計(jì)人員重復(fù)利用別人的設(shè)計(jì)提供了技術(shù)手段。當(dāng)電路系統(tǒng)采用VHDL語言設(shè)計(jì)其硬件時(shí),與傳統(tǒng)的電路設(shè)計(jì)方法相比較,具有如下的特點(diǎn):一 采用自上而下的設(shè)計(jì)方法。即從系統(tǒng)總體要求出發(fā),自上而下地逐步將設(shè)計(jì)的內(nèi)容細(xì)化,最后完成系統(tǒng)硬件的整體設(shè)計(jì)。在設(shè)計(jì)的過程中,對系統(tǒng)自上而下分成三個(gè)層次進(jìn)行設(shè)計(jì):第一層次是行為描述。第二層次是RTL方式描述。第三層次是邏輯綜合。二.系統(tǒng)可大量采用PLD芯片。利用VHDL語言設(shè)計(jì)數(shù)字系統(tǒng)時(shí),可以根據(jù)硬件電路的設(shè)計(jì)需要,自行利用PLD設(shè)計(jì)自用的ASIC芯片,而無須受通用元器件的限制。三.采用系統(tǒng)早期仿真。在系統(tǒng)設(shè)計(jì)過程中要進(jìn)行三級仿真。這三級仿真貫穿系統(tǒng)設(shè)計(jì)

7、的全過程,從而可以在系統(tǒng)設(shè)計(jì)的早期發(fā)現(xiàn)設(shè)計(jì)中存在的問題,大大縮短系統(tǒng)設(shè)計(jì)的周期。四.降低了硬件電路設(shè)計(jì)難度。在傳統(tǒng)的設(shè)計(jì)方法中,往往要求設(shè)計(jì)者在設(shè)計(jì)電路之前寫出該電路的邏輯表達(dá)式或真值表(或時(shí)序電路的狀態(tài)表)。而利用VHDL語言設(shè)計(jì)硬件電路時(shí),就可以使設(shè)計(jì)者免除編寫邏輯表達(dá)式或真值表之苦,從而大大縮短了設(shè)計(jì)的周期。五.主要設(shè)計(jì)文件是用VHDL語言編寫的源程序。與傳統(tǒng)的電路原理圖相比,使用VHDL源程序有許多好處:其一是資料量小,便于保存。其二是可繼承性好。其三是閱讀方便。二 FPGA 簡介FPGA是英文Field Programmable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它是在

8、PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。FPGA的基本特點(diǎn)主要有:1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。2)FPGA可做其它全定制或半定制A

9、SIC電路的中試樣片。3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。4)FPGA是ASIC電路中設(shè)計(jì)周期最短、開發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。5)FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。三 VHDL 在FPGA中的運(yùn)用近30年來,由于微電子學(xué)和計(jì)算機(jī)科學(xué)的迅速發(fā)展,給EDA(電子設(shè)計(jì)自動化)行業(yè)帶來了巨大的變化。可以說EDA產(chǎn)業(yè)已經(jīng)成為電子信息類產(chǎn)品的支柱產(chǎn)業(yè)。就FPGA和CPLD開發(fā)而言,比較流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因適合標(biāo)準(zhǔn)化的發(fā)展方向而最終成為IEEE標(biāo)準(zhǔn)。隨著

10、電子技術(shù)的高速發(fā)展,CPLD的出現(xiàn)以其高速、高可靠性、串并行工作方式等突出優(yōu)點(diǎn)在電子設(shè)計(jì)中廣泛應(yīng)用,并代表著未來EDA設(shè)計(jì)的方向。CPLD的設(shè)計(jì)采用了高級語言(如VHDL語言),進(jìn)一步打破了軟硬件之間的界限,加速了產(chǎn)品的開發(fā)過程。采用先進(jìn)的CPLD(復(fù)雜可編程邏輯器件)取代傳統(tǒng)的標(biāo)準(zhǔn)集成電路、接口電路也是電子技術(shù)發(fā)展的必然趨勢。EDA(電子設(shè)計(jì)自動化) 代表了當(dāng)今電子設(shè)計(jì)技術(shù)的最新發(fā)展方向,它的基本特征是:設(shè)計(jì)人員按照“自頂向下”的設(shè)計(jì)方法,對整個(gè)系統(tǒng)進(jìn)行方案設(shè)計(jì)和功能劃分,系統(tǒng)的關(guān)鍵電路用一片或幾片專用集成電路(ASIC) 實(shí)現(xiàn),然后采用硬件描述語言(HDL) 完成系統(tǒng)行為級設(shè)計(jì),最后通過綜

11、合器和適配器生成最終目標(biāo)器件。 采用VDHL 編程設(shè)計(jì)實(shí)現(xiàn)的數(shù)字頻率計(jì), 除被測信號的整形部分、鍵輸入部分和數(shù)碼顯示部分以外, 其余全部在一片F(xiàn)PGA 芯片上實(shí)現(xiàn), 整個(gè)設(shè)計(jì)過程變得十分透明、快捷和方便。四 軟件組成MAX+PLUS軟件采用模塊化結(jié)構(gòu),包括設(shè)計(jì)輸入、項(xiàng)目處理、項(xiàng)目校驗(yàn)和器件編程4個(gè)部分,所有這些部分都集成在一個(gè)可視化的操作環(huán)境下。(一) 設(shè)計(jì)輸入MAX+PLUS的設(shè)計(jì)輸入方法有多種,主要包括文本設(shè)計(jì)輸入、原理圖輸入、波形設(shè)計(jì)輸入等多種方式。另外,還可以利用第三方EDA工具生成的網(wǎng)表文件輸入(二) 項(xiàng)目處理設(shè)計(jì)處理的任務(wù)就是對項(xiàng)目進(jìn)行編譯(Compile),編譯實(shí)際就是將設(shè)計(jì)者編

12、寫的設(shè)計(jì)改為可以用于生產(chǎn)的“語言”。編譯器通過讀入設(shè)計(jì)文件并產(chǎn)生用于編程、仿真和定時(shí)分析的輸出文件來完成編譯工作。MAX+PLUS提供的編譯軟件,只需簡單的操作。(三) 項(xiàng)目校驗(yàn)MAX+PLUS提供的設(shè)計(jì)校驗(yàn)過程包括仿真和定時(shí)分析,項(xiàng)目編譯后,為確保設(shè)計(jì)無誤,要再用專用軟件進(jìn)行仿真。如果發(fā)現(xiàn)了錯(cuò)誤,則應(yīng)對設(shè)計(jì)輸入進(jìn)行部分修改直至無誤。(四) 器件編程MAX+PLUS通過編程器(Device Programmer)將編譯器生成的編程文件編程或配置到Altera CPLD器件中,然后加入實(shí)際激勵(lì)信號進(jìn)行測試,檢查是否達(dá)到了設(shè)計(jì)要求?在設(shè)計(jì)過程中,如果出現(xiàn)錯(cuò)誤,則需要重新回到設(shè)計(jì)輸入階段,改正錯(cuò)誤或

13、調(diào)整電路后重復(fù)上述過程。五 設(shè)計(jì)流程使用MAX+PLUS進(jìn)行可編程邏輯器件開發(fā)主要包括4個(gè)階段:設(shè)計(jì)輸入、編譯處理、驗(yàn)證(包括功能仿真、時(shí)序仿真、和定時(shí)分析)和器件編程,流程如圖設(shè)計(jì)要求設(shè)計(jì)輸入編譯處理驗(yàn)證器件編程器件測試系統(tǒng)產(chǎn)品設(shè)計(jì)修改圖2.1 設(shè)計(jì)流程圖第三章 系統(tǒng)分析第一節(jié) 數(shù)字頻率計(jì)的設(shè)計(jì)任務(wù)及要求設(shè)計(jì)一個(gè)四位十進(jìn)制的數(shù)字頻率計(jì),要求具有以下功能:(一) 測量范圍:1Hz10kHz。(二) 測量誤差1%。(三) 響應(yīng)時(shí)間15s。(四) 顯示時(shí)間不少于1s。(五) 具有記憶顯示的功能,即在測量的過程中不刷新數(shù)據(jù),等數(shù)據(jù)過程結(jié)束后才顯示測量結(jié)果,給出待測信號的頻率值,并保存到下一次測量結(jié)束

14、。等精度測量法等精度測量法的機(jī)理是在標(biāo)準(zhǔn)頻率比較測量法的基礎(chǔ)上改變計(jì)數(shù)器的計(jì)數(shù)開始和結(jié)束與閘門門限的上升沿和下降沿的嚴(yán)格關(guān)系。當(dāng)閘門門限的上升沿到來時(shí),如果待測量信號的上升沿未到時(shí)兩組計(jì)數(shù)器也不計(jì)數(shù),只有在待測量信號的上升沿到來時(shí),兩組計(jì)數(shù)器才開始計(jì)數(shù);當(dāng)閘門門限的下降沿到來時(shí),如果待測量信號的一個(gè)周期未結(jié)束時(shí)兩組計(jì)數(shù)器也不停止計(jì)數(shù),只有在待測量信號的一個(gè)周期結(jié)束時(shí)兩組計(jì)數(shù)器才停止計(jì)數(shù)。這樣就克服了待測量信號的脈沖周期不完整的問題,其誤差只由標(biāo)準(zhǔn)頻率信號產(chǎn)生,與待測量信號的頻率無關(guān)。最大誤差為正負(fù)一個(gè)標(biāo)準(zhǔn)頻率周期,即t=±1/f0。由于一般標(biāo)準(zhǔn)信號頻率都在幾十兆赫茲以上,因此誤差小于

15、 10-6HZ??紤]到精度問題這次我們選擇了等精度方法,具體實(shí)現(xiàn)邏輯框圖如圖一圖一首先按鍵發(fā)出一個(gè)清零信號CLR,使2個(gè)32 bit的計(jì)數(shù)器和D觸發(fā)器置0,然后按鍵再發(fā)出允許測頻命令,即使預(yù)置門控信號GATE為高電平,這時(shí)D觸發(fā)器要一直等到被測信號的上升沿通過時(shí),Q端才被置1,即使計(jì)數(shù)器1和計(jì)數(shù)器2的EN同時(shí)為1,將啟動計(jì)算器計(jì)數(shù),系統(tǒng)進(jìn)入計(jì)算允許周期。這時(shí),計(jì)數(shù)器1和2分別對被測信號和標(biāo)準(zhǔn)頻率信號同時(shí)計(jì)數(shù)。當(dāng)Tc秒過后,預(yù)置門控信號被D觸發(fā)器置為低電平,但此時(shí)2個(gè)32 bit的計(jì)數(shù)器仍然沒有停止計(jì)數(shù),一直等到隨后而至的被測信號的上升沿到來時(shí),才通過D觸發(fā)器將這2個(gè)計(jì)算器同時(shí)關(guān)閉。由圖所示的測

16、頻時(shí)序圖可見,GATE的寬度和發(fā)生的時(shí)間都不會影響計(jì)數(shù)使能信號允許計(jì)數(shù)的周期總是恰好等于待測信號XCLK的完整周期,這正是確保XCLK在任何頻率條件下都能保持恒定測量精度的關(guān)鍵。因?yàn)椋藭r(shí)GATE的寬度Tc改變以及隨機(jī)的出現(xiàn)時(shí)間造成的誤差最多只有基準(zhǔn)時(shí)鐘BCLK信號的一個(gè)時(shí)鐘周期。第二節(jié) 模塊的劃分根據(jù)系統(tǒng)設(shè)計(jì)要求,系統(tǒng)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,系統(tǒng)的組成框圖如圖3. 1所示,包括時(shí)基產(chǎn)生與測頻時(shí)序控制電路模塊,以及待測信號脈沖計(jì)數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊。時(shí)基產(chǎn)生與測頻時(shí)序控制電路待測信號脈沖計(jì)數(shù)電路鎖存與譯碼顯示電路ENCLRLOCKq0:15z10:6z20:6z30:6z

17、40:6待測信號F_IN標(biāo)準(zhǔn)時(shí)鐘CLK圖3.1 數(shù)字頻率計(jì)的組成框圖(一) 時(shí)基產(chǎn)生與測頻時(shí)序控制電路模塊時(shí)基產(chǎn)生與測頻時(shí)序控制電路的主要產(chǎn)生計(jì)數(shù)允許信號EN、清零信號CCLR和鎖存信號LOCK。(二) 待測信號脈沖計(jì)數(shù)電路模塊待測信號脈沖計(jì)數(shù)電路是對待測脈沖信號的頻率進(jìn)行測量,它可由4個(gè)十進(jìn)制加法計(jì)數(shù)器組成,其中EN為計(jì)數(shù)選通控制信號,CLR為計(jì)數(shù)器清零信號。在計(jì)數(shù)器清零信號CLR清零后,當(dāng)計(jì)數(shù)選通控制信號EN有效時(shí),開始對待測信號進(jìn)行計(jì)數(shù)。如果計(jì)數(shù)選通控制信號EN的寬度為1s,那么計(jì)數(shù)結(jié)果就為待測信號的頻率;如果計(jì)數(shù)選通信號EN的寬度為100ms,那么待測信號的頻率等于計(jì)數(shù)結(jié)果10。(三)

18、 鎖存與譯碼顯示控制電路模塊鎖存與譯碼顯示控制電路用于實(shí)現(xiàn)記憶顯示,在測量過程中不刷新新的數(shù)據(jù),直到測量過程結(jié)束后,鎖存顯示測量結(jié)果,并且保存到下一次測量結(jié)束。鎖存與譯碼顯示電路的功能是對四位BCD碼進(jìn)行鎖存,并轉(zhuǎn)換為對應(yīng)的4組七段碼,用于驅(qū)動數(shù)碼管。四Bin轉(zhuǎn)BCD碼模塊由于要求數(shù)碼管10進(jìn)制輸出,因此需要一個(gè)二進(jìn)制轉(zhuǎn)bcd碼的模塊。操作是這樣的:用兩個(gè)寄存器,一個(gè)32bit,一個(gè)40bit,分別存bin碼和有待實(shí)現(xiàn)的bcd碼。接下來,逐位將BIN的最高位移入BCD的最低位。同時(shí),將BCD的40位寄存器按每四位劃成一塊,我們稱之為個(gè)十百千好了。但記住,個(gè),十,百,千等都有4個(gè)bit位。1.將

19、bin31(bin是bin31:0)移入bcd0。這樣,bin31就變成了原來的bin30,bin0=0。2.分別檢查個(gè)十百千里存的數(shù)是不是大于等于5(按二進(jìn)制換十進(jìn)制那樣換算),如果是,加3。3.重做1,2直到全部移進(jìn)去。第三節(jié) 設(shè)計(jì)分析一 測頻模塊邏輯結(jié)構(gòu)利用VHDL程序設(shè)計(jì)的測頻模塊邏輯結(jié)構(gòu)如圖所示,其中有關(guān)的接口信號規(guī)定如下:TP(P2.7):TF=0 時(shí)等精度測頻;TF=1 時(shí)測脈寬;CLR/TRIG(P2.6):當(dāng)TF=0 時(shí)系統(tǒng)全清零功能;當(dāng)TF=1 時(shí)CLRTRIG 的上跳沿將啟動CNT2 ,進(jìn)行脈寬測試計(jì)數(shù);ENDD (P2.4):脈寬計(jì)數(shù)結(jié)束狀態(tài)信號,ENDD=1計(jì)數(shù)結(jié)束;

20、CHOICE(P3.2):自校/測頻選擇,CHOICE=1 測頻;CHOICE=0自校;START(P2.5):當(dāng)TF=0 時(shí),作為預(yù)置門閘,門寬可通過鍵盤由單片機(jī)控制,START=1時(shí)預(yù)置門開;當(dāng)TF=1時(shí),START有第二功能,此時(shí),當(dāng)START=0時(shí)測負(fù)脈寬,當(dāng)START=1時(shí)測正脈寬。利用此功能可分別獲得脈寬和占空比數(shù)據(jù)。EEDN(P2.3):等精度測頻計(jì)數(shù)結(jié)束狀態(tài)信號,EEND=0時(shí)計(jì)數(shù)結(jié)束。SELP2.2(P2.2,P2.1,P2.0):計(jì)數(shù)值讀出選通控制;當(dāng)SEL2.0=“000”,“001”,“010”.“111”時(shí),將CNT1,CNT2的計(jì)數(shù)值分8次,每次讀出8位,并傳達(dá)到單

21、片機(jī)的P0口。圖4.1 測頻模塊邏輯圖二 各模塊功能和工作步驟如下:(一) 測頻/測周期的實(shí)現(xiàn)被測信號脈沖從CONTRL模塊的FIN端輸入,標(biāo)準(zhǔn)頻率信號從CONTRL 的FSD端輸入,CONTRL的CLR是此模塊電路的工作初始化信號輸入端。在進(jìn)行頻率或周期測量時(shí),其工作步驟如下:令TF=0,選擇等精度測頻,然后再CONTRL的CLR端加一正脈沖信號以完成測試電路狀態(tài)的初始化。由預(yù)置門控信號將CONTRL的START端置高電平,預(yù)置門開始定時(shí),此時(shí)由被測信號的上沿打開計(jì)數(shù)器CNT1進(jìn)行計(jì)數(shù),同時(shí)使標(biāo)準(zhǔn)頻率信號進(jìn)入計(jì)數(shù)器CNT2。預(yù)置門定時(shí)結(jié)束信號把CONTRL的START端置為低電平(由單片機(jī)來

22、完成),在被測信號的下一次脈沖的上沿到來時(shí),CNT1停止計(jì)數(shù),同時(shí)關(guān)斷CNT2對FS的計(jì)數(shù)。計(jì)數(shù)結(jié)束后,CONTRL的EEND端將輸出低電平來指示測量計(jì)數(shù)結(jié)束,單片機(jī)得到此信號后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分別讀回CNT1 和CNT2的計(jì)數(shù)值,并根據(jù)精度測量公式進(jìn)行運(yùn)算,計(jì)算出被測信號的頻率或周期值。(二) 控制部件設(shè)計(jì)如圖所示,當(dāng)D觸發(fā)器的輸入端START為高電平時(shí),若FIN端來一個(gè)上升沿,則Q端變?yōu)楦唠娖?,?dǎo)通FIN-CLK1和FSD-CLK2,同時(shí)EEND被置為高電平作為標(biāo)志;當(dāng)D觸發(fā)器的輸入端START為低電平時(shí),若FIN端輸入一個(gè)脈沖上沿

23、,則FIN-CLK1與FSD-CLK2的信號通道被切斷。圖4.2 測頻與測周期控制部分電路計(jì)數(shù)部件設(shè)計(jì) 圖中的計(jì)數(shù)器CNT1/CNT2是32位二進(jìn)制計(jì)數(shù)器,通過DSEL模塊的控制,單片機(jī)可分4次將其32位數(shù)據(jù)全部讀數(shù)。(三) 脈沖寬度測量和占空比測量模塊設(shè)計(jì) 根據(jù)上述脈寬測量原理,設(shè)計(jì)如圖(CONTRL)所示的電路原理示意圖。該信號的上沿和下沿信號對應(yīng)于未經(jīng)處理時(shí)的被測信號50%幅度時(shí)的上沿和下沿.被測信號從FIN端輸入,CLR為初始化信號<START為工作使能信號.CONTRL2模塊的PUL端與GATE的輸入端PUL連接.圖4.3 脈沖寬度測量原理圖測量脈沖寬度的工作步驟如下: 向CO

24、NTRL的CLR端送一個(gè)脈沖以便進(jìn)行電路的工作狀態(tài)初始化. 將GATE的CNL端置高電平,表示開始脈沖寬度測量,這時(shí)CNT2的輸入信號為FSD. 在被測脈沖的上沿到來時(shí),CONTRL2的PUL端輸出高電平,標(biāo)準(zhǔn)頻率信號進(jìn)入計(jì)數(shù)器CNT2. 在被測脈沖的下沿到來時(shí),CONTRL2的PUL端輸出低電平,計(jì)數(shù)器CNT2被關(guān)斷. 由單片機(jī)讀出計(jì)數(shù)器CNT2的結(jié)果,并通過上述測量原理公式計(jì)算出脈沖寬度.(四) 電路顯示模塊系統(tǒng)硬件電路中,單片機(jī)MCU與FPGA進(jìn)行數(shù)據(jù)交換占用了P0口、P1口和P3口,因此數(shù)據(jù)顯示電路的設(shè)計(jì)采用靜態(tài)顯示的方式,顯示電路由8個(gè)共陽極七段數(shù)碼管和8片1位串入8位并出的74LS

25、164芯片組成。圖4.4 顯示電路圖這種顯示方式不僅占用單片機(jī)端口少,而且充分利用了單片機(jī)的資源,容易掌握其編碼規(guī)律,簡化了軟件編程,在實(shí)驗(yàn)過程中,也體現(xiàn)出較高的可靠性。數(shù)據(jù)顯示電路如圖4.4所示。第四章 各功能模塊基于VHDL的設(shè)計(jì)第一節(jié) 時(shí)基產(chǎn)生與測頻時(shí)序控制電路模塊的VHDL源程序程序ctrl.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL IS PORT(CLK: IN STD_LOGIC; -系統(tǒng)時(shí)鐘 LOCK: OUT STD_LOGIC; -鎖存信號 E

26、N: OUT STD_LOGIC; -計(jì)數(shù)允許信號 CLR: OUT STD_LOGIC); -清零信號END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定義變量BEGINPROCESS(CLK)BEGINIF(CLK'EVENT AND CLK='1')THEN -檢測時(shí)鐘上升沿IF Q="1111"THENQ<="0000" -計(jì)數(shù)大于15,清零ELSEQ<=Q+'1' -允許計(jì)數(shù)END IF;END I

27、F;EN<=NOT Q(3);LOCK<=Q(3) AND NOT(Q(2) AND Q(1);CLR<=Q(3) AND Q(2) AND NOT(Q(1);END PROCESS;END ART;程序主要講述了由時(shí)鐘信號產(chǎn)生計(jì)數(shù)允許信號、清零信號和鎖存信號,而且限定了響應(yīng)時(shí)間為不超過15s。第二節(jié) 待測信號脈沖計(jì)數(shù)電路模塊的VHDL源程序一 十進(jìn)制加法計(jì)數(shù)器的VHDL源程序程序cb10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 ISPORT

28、(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -計(jì)數(shù)輸信號END CB10;ARCHITECTURE ART OF CB10 IS -結(jié)構(gòu)體BEGIN PROCESS(CLK,CLR,EN)BEGINIF CLR='1' THENCOUNT10<="0000" -計(jì)數(shù)器清零ELSIF RISING_EDGE(CLK) THEN -檢測時(shí)鐘上升沿IF(EN='1') THEN -檢測是否允許計(jì)數(shù)IF COUNT10="1001&q

29、uot; THENCOUNT10<="0000" -計(jì)數(shù)值滿9清零ELSECOUNT10<=COUNT10+'1' -允許計(jì)數(shù)END IF;END IF;END IF;END PROCESS;END ART;程序主要講述了十進(jìn)制加法計(jì)數(shù)器的使用,在符合了一定的標(biāo)準(zhǔn)以后十進(jìn)制的使用,在計(jì)數(shù)器滿9后清零。二 待測信號脈沖計(jì)數(shù)器的VHDL源程序程序count.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT(C

30、LK: IN STD_LOGIC; -待測時(shí)鐘信號 EN: IN STD_LOGIC; -計(jì)數(shù)選通控制信號 CLR: IN STD_LOGIC; -計(jì)數(shù)器清零信號 QA,QB,QC,QD:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -結(jié)果輸出信號END;ARCHITECTURE ART OF COUNT ISCOMPONENT CB10 -元件CB10引用說明語句PORT(CLK,EN,CLR: IN STD_LOGIC;COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -計(jì)數(shù)輸出信號END COMPONENT;SIGNA

31、L CLK2: STD_LOGIC;SIGNAL CLK3: STD_LOGIC;SIGNAL CLK4: STD_LOGIC;BEGINCLK2<=NOT QA(3);CLK3<=NOT QB(3);CLK4<=NOT QC(3);U1:CB10 PORT MAP(CLK,EN,CLR,QA); -元件引用例示U2:CB10 PORT MAP(CLK2,EN,CLR,QB); -元件引用例示U3:CB10 PORT MAP(CLK3,EN,CLR,QC); -元件引用例示U4:CB10 PORT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;第三節(jié)

32、 鎖存與譯碼顯示控制電路模塊的VHDL源程序一 譯碼顯示電路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD輸入信號 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段譯碼輸出信號END;ARCHITECTURE ART OF BCD7 ISBEGINLED<="0111111" WHEN BCD="0000" ELSE -

33、對照七段字形顯示譯碼器真值表 "0000110" WHEN BCD="0001" ELSE "1011011" WHEN BCD="0010" ELSE "1001111" WHEN BCD="0011" ELSE "1100110" WHEN BCD="0100" ELSE "1101101" WHEN BCD="0101" ELSE "1111101" WHEN BCD=&

34、quot;0110" ELSE "0000111" WHEN BCD="0111" ELSE "1111111" WHEN BCD="1000" ELSE "1101111" WHEN BCD="1001" ELSE "0000000"END ART;程序主要講述了七段譯碼器的顯示問題,對應(yīng)的給出了信號輸入過程中七段譯碼器的各種顯示。二 鎖存與譯碼顯示控制模塊的VHDL源程序程序lock.vhdLIBRARY IEEE;USE IEEE.STD_

35、LOGIC_1164.ALL;ENTITY LOCK ISPORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-頻率計(jì)數(shù)輸出END;ARCHITECTURE ART OF LOCK ISSIGNAL QAL,QBL,QCL,QDL: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT BCD7 -元件BCD7引用說明語句PORT(BCD: IN STD_LOGIC_VECTO

36、R(3 DOWNTO 0);LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT;BEGIN PROCESS(LOCK)BEGINIF(LOCK'EVENT AND LOCK='1')THEN -檢測時(shí)鐘上升沿QAL<=QA;QBL<=QB;QCL<=QC;QDL<=QD;END IF;END PROCESS;U0: BCD7 PORT MAP(QAL,LEDA); -元件引用例示U1: BCD7 PORT MAP(QBL,LEDB); -元件引用例示U2: BCD7 PORT MAP(QCL,L

37、EDC); -元件引用例示U3: BCD7 PORT MAP(QDL,LEDD); -元件引用例示END ART;程序主要講述了調(diào)用七段譯碼器的顯示,將輸入的信號經(jīng)過譯碼之后在七段譯碼器上進(jìn)行顯示。第四節(jié) 頂層電路的VHDL源程序程序pinlvji.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PINLVJI ISPORT(F_IN,CLK: IN STD_LOGIC;ENT,LOCKT,CLRT: BUFFER STD_LOGIC;Z1,Z2,Z3,Z4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END PIN

38、LVJI;ARCHITECTURE ART OF PINLVJI ISSIGNAL ENS,LOCKS,CLRS: STD_LOGIC;SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT CTRL -元件CTRL引用說明語句PORT(CLK: IN STD_LOGIC;EN,LOCK,CLR: OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT -元件COUNT引用說明語句PORT(CLK,EN,CLR: IN STD_LOGIC;QA,QB,QC,QD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT LOCK -元件LOCK引用說明語句PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0);LEDA,

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論