版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 本文主要論述了利用FPGA(Field Programmable Gate Array,現(xiàn)場可編程門陣列)進行測頻計數(shù),單片機實施控制實現(xiàn)頻率計的設(shè)計過程。該頻率計利用等精度的設(shè)計方法,克服了基于傳統(tǒng)測頻原理的頻率計的測量精度隨被測信號頻率的下降而降低的缺點。等精度的測量方法不但具有較高的測量精度,而且在整個頻率區(qū)域保持恒定
2、的測試精度。</p><p> 設(shè)計中用一塊FPGA芯片(型號為CycloneⅡ的EP2C5T144C8N)完成各種時序邏輯控制、計數(shù)功能。在QuartusⅡ平臺上,用VHDL語言編程完成了FPGA的軟件設(shè)計、編譯、調(diào)試、仿真和下載。用STC89C52RC單片機作為系統(tǒng)的主控部件,實現(xiàn)整個電路的測試信號控制,數(shù)據(jù)運算處理和控制數(shù)碼管的顯示輸出。系統(tǒng)將單片機的控制靈活性及FPGA芯片的現(xiàn)場可編程性相結(jié)合,不但大大
3、縮短了開發(fā)研制周期,而且使本系統(tǒng)具有結(jié)構(gòu)緊湊、體積小,可靠性高,測頻范圍寬、精度高等優(yōu)點。</p><p> 文章詳細論述了系統(tǒng)自上而下的設(shè)計方法及各部分硬件電路組成及單片機、FPGA的軟件編程設(shè)計。使用杭州康芯KX-7C5T型EDA實驗開發(fā)與電子設(shè)計學(xué)習(xí)板為主的實驗環(huán)境下,配合單片機最小系統(tǒng)對軟硬件進行仿真和驗證,達到了較高的測量精度和測量速度。</p><p> 關(guān)鍵詞:FPGA,
4、VHDL,頻率計,單片機,STC89C52RC</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p><b> 第一章 概 論1</b></p><p> 1.1課題研究的目的和意義1</p>&
5、lt;p> 1.2 測量原理1</p><p> 1.3 系統(tǒng)設(shè)計指標3</p><p> 第二章 硬件電路設(shè)計5</p><p> 2.1 系統(tǒng)頂層電路設(shè)計5</p><p> 2.2 FPGA測頻模塊邏輯設(shè)計5</p><p> 2.3 單片機主控模塊6</p><
6、p> 2.4 外圍電路設(shè)計8</p><p> 第三章 軟件設(shè)計11</p><p> 3.1 Quartus II概述11</p><p> 3.2 VHDL語言簡介12</p><p> 3.3 頻率計FPGA模塊的頂層設(shè)計12</p><p> 3.4 頻率計FPGA模塊的仿真14&
7、lt;/p><p> 3.5 單片機的C語言編程15</p><p> 第四章 系統(tǒng)測試17</p><p> 4.1 測頻精度分析17</p><p> 4.2實驗測試數(shù)據(jù)18</p><p><b> 第五章 總結(jié)19</b></p><p><
8、b> 致 謝21</b></p><p><b> 參考文獻23</b></p><p><b> 第一章 概 論</b></p><p> 1.1課題研究的目的和意義</p><p> 測頻一直以來都是電子和通訊系統(tǒng)工作的重要手段之一。高精度的測頻儀有著廣泛的市場
9、前景。以往的測頻儀都是在低頻段利用測周期的方法、高頻段用測頻率的方法,其精度往往會隨著被測頻率的下降而下降。</p><p> 基于傳統(tǒng)測頻原理的頻率計的測量精度將隨被測信號頻率的下降而降低,在實用中有較大的局限性,而等精度頻率計不但具有較高的測量精度,而且在整個測頻區(qū)域內(nèi)保持恒定的測試精度。所以等精度頻率計有研究的價值。</p><p><b> 1.2 測量原理</
10、b></p><p> 等精度測頻法:其實現(xiàn)方法可用主控結(jié)構(gòu)圖1-1和波形圖1-2來說明。</p><p> 圖1-1 等精度頻率計主控結(jié)構(gòu)圖</p><p> 圖1-2 頻率計測控時序</p><p> 圖1-1中的“預(yù)置門信號”CL由單片機發(fā)出,CL的時間寬度對測頻精度幾乎沒有影響,在此設(shè)其寬度為Tpr。BZH和TF模塊是兩
11、個可控的32位高速計數(shù)器,EN為它們的技術(shù)允許信號端,高電平有效。</p><p> 標準頻率信號從BZH的時鐘輸入端BCLK輸入,設(shè)其頻率為Fs;經(jīng)放大整形后的被測信號從與BZH相似的32位計數(shù)器TF的時鐘輸入端TCLK輸入,設(shè)其真實頻率值為Fxe,被測頻率為Fx。測頻原理說明如下:</p><p> 測頻開始前,首先發(fā)出一個清零信號CLR,使兩個計數(shù)器和D觸發(fā)器清零,同時通過信號E
12、N,禁止兩個計數(shù)器計數(shù)。這是一個初始化操作。如果系統(tǒng)啟動不能正常清零,可以由外部的按鍵強制清零。</p><p> 然后由單片機發(fā)出允許測頻信號,即令預(yù)置門控信號CL為高電平(把圖1-1和圖1-2結(jié)合起來看),這時D觸發(fā)器要一直等到被測信號的上升沿通過時Q端才被置1(即令START為高電平),與此同時,將同時啟動計數(shù)器BZH和TF,進入圖1-2所示的“計數(shù)允許周期”。在此期間,BZH和TF分別對被測信號(頻率為
13、Fx)和標準頻率信號(Fs=100MHz)同時計數(shù)。當Tpr秒后,預(yù)置門信號被單片機置為低電平,但此時兩個計數(shù)器仍沒有停止計數(shù),一直等到隨后而至的被測信號的上升沿到來時,才通過D觸發(fā)器將這兩個計數(shù)器同時關(guān)閉。由圖1-2可見,CL的寬度和發(fā)生的時間都不會影響這樣一個事實,計數(shù)使能信號(START)允許計數(shù)的周期總是恰好等于待測信號TCLK的完整周期數(shù),這正是確保TCLK在任何頻率條件下都能保持恒定精度的關(guān)鍵。而且,CL寬度的改變以及隨機的
14、出現(xiàn)時間造成的誤差最多只有BCLK信號的一個時鐘周期,但是BCLK是倍頻后的100MHz信號,則任何時刻的絕對測量誤差只有億分之一秒。</p><p> 被測頻率值為Fx,標準頻率為Fs,設(shè)在一次預(yù)置門時間Tpr中對被測信號計數(shù)值為Nx,對標準信號的計數(shù)值為Ns,則下式成立:</p><p> Nx / Fx = Ns / Fs……………………①</p><p>
15、;<b> 由此式可推得:</b></p><p> Fx = ( Fs×Nx ) / Ns…………………②</p><p> 最后通過控制SEL選擇信號和64位至8位的多路選擇器MUX64-8,將計數(shù)器BHZ和TF中兩個32位數(shù)據(jù)分8次讀入單片機并按式②進行計算和結(jié)果顯示。</p><p> 1.3 系統(tǒng)設(shè)計指標</p
16、><p> 設(shè)計并制作出一種數(shù)字頻率計,其技術(shù)指標如下: </p><p> ?。?)頻率測量范圍: 0.1Hz—128MHz; </p><p> ?。?)輸入電壓幅度: >300mV; </p><p> (3)輸入信號波形:任意周期方波信號;</p><p> ?。?)顯示位數(shù): 8位LED數(shù)碼管顯示;&l
17、t;/p><p> ?。?)電源: 220V、50Hz。</p><p> 第二章 硬件電路設(shè)計</p><p> 2.1 系統(tǒng)頂層電路設(shè)計</p><p> 等精度數(shù)字頻率計涉及到的計算包括加、減、乘、除,耗用的資源比較大,用一般中小規(guī)模的FPGA芯片難以實現(xiàn)。因此,我們選擇單片機和FPGA的結(jié)合來實現(xiàn)。電路系統(tǒng)原理圖如圖2-1所示,其中
18、單片機完成整個測量電路的測試控制、數(shù)據(jù)處理和顯示輸出;FPGA完成測頻功能。顯示電路采用7段LED動態(tài)顯示,由單片機P2口直接驅(qū)動。</p><p> 圖2-1 系統(tǒng)原理圖</p><p> 等精度頻率計主要由由以下幾個部分構(gòu)成:</p><p> ?、傩盘柗糯笳坞娐罚河糜趯Υ郎y信號進行放大整形,以便作為FPGA的輸入信號。</p><p&
19、gt; ②測頻電路:是測頻的核心模塊,由FPGA擔(dān)任。</p><p> ③單片機模塊:用于控制FPGA的測頻操作和讀取測頻數(shù)據(jù),并發(fā)出相應(yīng)數(shù)據(jù)處理。安排單片機的P0口直接讀取測試數(shù)據(jù)??刂泼顝腜1口或是P3的相關(guān)口線發(fā)出。</p><p> ?、?0MHz的標準頻率信號源:本模塊采用倍頻技術(shù),倍頻出一個100MHz標準頻率信號源,產(chǎn)生100MHz的標準頻率給FPGA使用。</
20、p><p> ?、輸?shù)碼管顯示模塊:采用8個7段LED動態(tài)顯示,使用P2口作為段信息的輸出,使用P1口的低四位控制串行移位寄存器的三個輸入及CLK端,實現(xiàn)LED的動態(tài)掃描。</p><p> 2.2 FPGA測頻模塊邏輯設(shè)計</p><p> 根據(jù)圖1-1和圖1-2以及測頻原理說明,可以比較容易地寫出相應(yīng)的VHDL功能描述。圖2-2為VHDL描述的RTL電路圖(圖中s
21、pul為外部清零信號,由按鍵輸入)。</p><p> 與單片機的接口按照如下方式連接:</p><p> 單片機的P0口接8位數(shù)據(jù)DATA[7..0],負責(zé)讀取測頻數(shù)據(jù);</p><p> START信號輸出到單片機的P3.2口線,通過中斷的方式來判斷計數(shù)是否結(jié)束,以確定何時可以讀取數(shù)據(jù);</p><p> P1.6,P1.5和P1
22、.4與SEL[2..0]相接,用于控制多路數(shù)據(jù)選擇器,當SEL分別為“000”、“001”、“010”、“011”時,由低8位到高8位讀出標準頻率計數(shù)值;當SEL分別為“100”、“101”、“110”、“111”時,由低8位到高8位讀出待測頻率計數(shù)值。</p><p> 圖2-2等精度頻率計FPGA部分的RTL電路圖</p><p> P3.3接清零信號CLR,高電平有效。每一個測頻
23、周期開始,都應(yīng)該首先清零。</p><p> P1.7接預(yù)置門控信號CL,CL是由定時器T0產(chǎn)生的一個周期為2S的方波信號,即每隔1S鐘左右測試一次頻率,頻率低于1Hz后,測頻的間隔會大于1S鐘,特別是待測頻率為0.1Hz時,每隔10S鐘測試一次。</p><p> 2.3 單片機主控模塊</p><p> STC89C52RC單片機是宏晶科技推出的新一代超強
24、抗干擾/高速/低功耗的單片機,指令代碼完全兼容傳統(tǒng)的8051單片機,12時鐘/機器周期和6時鐘/機器周期可以任意選擇。其封裝有LQFP44,PDIP40,PLCC44及PQFQ44,本設(shè)計中所使用的是PDIP40封裝,圖形如圖2-3所示。</p><p> 圖2-3 STC89C52RC單片機PDIP40封裝圖</p><p> STC89C52RC單片機特點如下:</p>
25、<p> ?、拧⒃鰪娦?時鐘/機器周期、12時鐘/機器周期任意設(shè)置。</p><p> ?、?、工作電壓:5.5~3.4V(5V單片機)/2.0~3.8V(3V單片機)。</p><p> ?、恰⒐ぷ黝l率:0~40MHz,相當于普通8051單片機;實際使用范圍為0~80MHz。</p><p> ?、?、8KB片內(nèi)Flash程序存儲器,擦寫次數(shù)10萬次以上
26、。</p><p> ⑸、片上集成512B RAM數(shù)據(jù)存儲器。</p><p> ⑹、通用I/O口(32/36個),復(fù)位后為: P1、P2、 P3、P4是弱上拉/準雙向口(與普通MCS-51 I/O口功能一樣);P0口是開漏輸出口,作為總線擴展時用,不用加上拉電阻;P0口作為I/O口用時,需加上拉電阻。</p><p> ?、?、ISP在系統(tǒng)可編程,無需專用編程器
27、/仿真器,可通過串口(P30/ P31)直接下載用戶程序,8KB程序3s即可完成一片。</p><p> ?、?、芯片內(nèi)置EEPROM功能。</p><p> ?、?、硬件看門狗(WDT)。</p><p> ⑽、共3個16位定時器/計數(shù)器,兼容普通MCS-51單片機的定時器,其中定時器T0還可以當成2個8位定時器使用。 </p><p>
28、⑾、外部中斷4路,下降沿中斷或低電平觸發(fā)中斷,掉電模式可由外部中斷喚醒。</p><p> ⑿、全雙工異步串行口(UART),兼容普通8051單片機的串口。</p><p> ⒀、工作溫度范圍:0℃~75℃/-40℃~+85℃。</p><p> 除此之外,STC89C52RC單片機自身還有很多獨特的優(yōu)點:</p><p> ?、拧⒓用?/p>
29、性強, 無法解密。</p><p> ?、?、超強抗干擾。主要表現(xiàn)在:高抗靜電(ESD保護),可以輕松抗御2KV/4KV快速脈沖干擾(EFT測試),寬電壓、不怕電源抖動,寬溫度范圍為-40℃~+85℃,I/O口經(jīng)過特殊處理,單片機內(nèi)部的電源供電系統(tǒng)、時鐘電路、復(fù)位電路及看門狗電路經(jīng)過特殊處理。</p><p> ⑶、三大降低單片機時鐘對外部電磁輻射的措施:禁止ALE 輸出;如選6 時鐘/
30、機器周期,外部時鐘頻率可降一半;單片機時鐘振蕩器增益可設(shè)為1/2gain;</p><p> ?、?、超低功耗:掉電模式,典型電流損耗<0.1μA;空閑模式,典型電流損耗為2mA;正常工作模式,典型電流損耗4mA~7mA。</p><p> 2.4 外圍電路設(shè)計</p><p><b> 1、電源模塊</b></p>&l
31、t;p> 整個電路的供電電源如圖2-4所示,220V交流經(jīng)變壓、整流、濾波后,由一片78L05三端穩(wěn)壓器向系統(tǒng)提供+5V電壓信號。</p><p><b> 圖2-4 電源模塊</b></p><p> 2、LED數(shù)碼管顯示電路</p><p> 本設(shè)計中采用LED數(shù)碼管動態(tài)顯示。8位數(shù)碼管采用兩個4位一體的共陽型數(shù)碼管組成;段信
32、息使用單片機的P2控制;為了節(jié)約口線,在位的控制上,采用了一片74LS138芯片,把A,B,C三個腳分別用P1.0、P1.1及P1.2控制,此外把6號腳接單片機P1.3腳,用來控制數(shù)碼管的亮滅。電路圖如圖2-5所示。</p><p> 圖2-5 LED數(shù)碼管顯示電路</p><p><b> 3、其他電路</b></p><p> 單片機
33、的時鐘電路由12MHz的晶振提供。FPGA的標準頻率信號由20MHz的有源晶振提供。被測信號經(jīng)過放大整形電路調(diào)理后輸入。</p><p><b> 第三章 軟件設(shè)計</b></p><p> 3.1 Quartus II概述</p><p> Quartus II是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界最大可
34、編程邏輯器件供應(yīng)商之一。Quartus II在21世紀初推出,是Altera前一代FPGA/CPLD集成開發(fā)環(huán)境MAX十plus II的更新?lián)Q代產(chǎn)品,其界面友好,使用便捷。在Quartus II上可以完成FPGA開發(fā)的整個流程,它提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程。</p><p> Altera的Quartus II提供了完整的多平臺設(shè)計環(huán)境,能滿足各種特定設(shè)計的
35、需要,也是單芯片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境和SOPC開發(fā)的基本設(shè)計工具,并為Altera DSP開發(fā)包進行系統(tǒng)模型設(shè)計提供了集成綜合環(huán)境。Quartus II設(shè)計工具完全支持VHDL, Verilog的設(shè)計流程,其內(nèi)部嵌有VHDL, Verilog邏輯綜合器。Quartus II也可以利用第三方的綜合工具,如Leonardo Spectrum, Synplify Pro,FPGA Compiler II,并能直接調(diào)用這些工具
36、。同樣,Quartus II具備仿真功能,同時也支持第三方的仿真工具,如ModelSim。此外,QuartusII與MATLAB和DSP Builder結(jié)合,可以進行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關(guān)鍵EDA工具。</p><p> Quartus II包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器(Analysis&Synthesis)、適配器(Fitter)、裝配器(As
37、sembler)、時序分析器(Timing Analyzer)、設(shè)計輔助模塊(Design Assistant)、EDA網(wǎng)表文件生成器(EDA Netlist Writer)和編輯數(shù)據(jù)接口(Compiler Database Interface)等??梢酝ㄟ^選擇Start Compilation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。還可以通過選擇Compiler Tool (Tools菜單),在Compil
38、erTool窗口中運行該模塊來啟動編譯器模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報告文件,或打開其他相關(guān)窗口。</p><p> 此外,Quartos II還包含許多十分有用的LPM (Library of Parameterized Modules)模塊,它們是復(fù)雜或高級系統(tǒng)構(gòu)建的重要組成部分,在SOPC設(shè)計中被大量使用,也可在Quartos II普通設(shè)計文件一起使用。Altera
39、提供的LPM函數(shù)均基于Altera器件的結(jié)構(gòu)做了優(yōu)化設(shè)計。在許多實用情況中,必須使用宏功能模塊才可以使用一些Altera特定器件的硬件功能。例如各類片上存儲器、DSP模塊、LVDS驅(qū)動器、PLL以及SERDES和DDIO電路模塊等。</p><p> Quartus II編譯器支持的硬件描述語言有VHDL(支持VHDL' 87及VHDL' 97標準)、Verilog HDL及AHDL (Alte
40、ra HDL),AHDL是Altera公司自己設(shè)計、制定的硬件描述語言,是一種以結(jié)構(gòu)描述方式為主的硬件描述語言,只有企業(yè)標準。</p><p> Quartus II允許來自第三方的EDIF文件輸入,并提供了很多EDA軟件的接口,Quartus II支持層次化設(shè)計,可以在一個新的編輯輸入環(huán)境中對使用不同輸入設(shè)計方式完成的模塊(元件)進行調(diào)用,從而解決了原理圖與HDL混合輸入設(shè)計的問題。在設(shè)計輸入之后,Quart
41、us II的編譯器將給出設(shè)計輸入的錯誤報告。Quartus II擁有性能良好的設(shè)計錯誤定位器,用于確定文本或圖形設(shè)計中的錯誤。對于使用HDL的設(shè)計,可以使用Quartus II帶有的RTL Viewer觀察綜合后的RTL圖。在進行編譯后,可對設(shè)計進行時序仿真。在作仿真前,需要利用波形編輯器編輯一個波形激勵文件,用于仿真驗證時的激勵。編譯和仿真經(jīng)檢測無誤后,便可以將下載信息通過QuartusII提供的編程器下載入目標器件中了。</p
42、><p> 3.2 VHDL語言簡介</p><p> 20處紀80年代后期,美國國防部開發(fā)的VHDL語言(VHS工C硬件描寫語言,VHSIC是非常高度迅速綜合的電路的縮寫)是工EEE標準化的硬件描述語言,并且已經(jīng)成為系統(tǒng)描述的國際公認標準,得到眾多EDA公司的支持。</p><p> VHDL語言覆蓋面廣,描述能力強,能支持硬件的設(shè)計子驗證、綜合和測試,是一種多
43、層次的硬件描述語言。其設(shè)計描述可以是描述電路具體組成的結(jié)構(gòu)描述,也可以是描述電路功能的行為描述。這些描述可以從最抽象的系統(tǒng)級直到最精確的邏輯級,甚至門級。</p><p> 運用VHDL語言設(shè)計系統(tǒng)一般采用自頂向下分層設(shè)計的方法,首先從系統(tǒng)級功能設(shè)計開始,對系統(tǒng)高層模塊進行行為描述和功能仿真。系統(tǒng)的功能驗證完成后,將抽象的高層設(shè)計自頂向下逐級細化,直到與所用可編程邏輯器件相對應(yīng)的邏輯描述。</p>
44、<p> 3.3 頻率計FPGA模塊的頂層設(shè)計</p><p> 在本測頻系統(tǒng)中,對標準頻率信號和被測信號進行測試功能的工作由FPGA來完成。其硬件電路的實現(xiàn)在前面已述,其軟件部分由VHDL語言實現(xiàn)。下面將給出由VHDL語言實現(xiàn)的頂層模塊程序。</p><p> 頻率計測試模塊GW.VHD</p><p> LIBRARY IEEE;</p
45、><p> USE IEEE.STD_LOGIC_1164.ALL;</p><p> USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p> ENTITY GW IS</p><p> PORT(BCLK:IN STD_LOGIC; --標準頻率時鐘信號</p><p> TCLK
46、:IN STD_LOGIC; --待測頻率時鐘信號</p><p> CLR :IN STD_LOGIC; --清零和初始化信號</p><p> CL :IN STD_LOGIC; --預(yù)置門信號</p><p> SPUL:IN STD_LOGIC; --清零,由按鍵產(chǎn)生信號</p><p> START:OUT STD
47、_LOGIC; --起始計數(shù)標識信號</p><p> SEL: IN STD_LOGIC_VECTOR(2 DOWNTO 0);</p><p> DATA:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)</p><p><b> );</b></p><p><b> END
48、GW;</b></p><p> ARCHITECTURE behav of GW IS</p><p> SIGNAL BZQ:STD_LOGIC_VECTOR(31 DOWNTO 0);</p><p> SIGNAL TSQ:STD_LOGIC_VECTOR(31 DOWNTO 0);</p><p> SIGNAL
49、 ENA,PUL:STD_LOGIC; --計數(shù)使能、脈寬計數(shù)使能</p><p><b> BEGIN</b></p><p> START <=ENA;</p><p> DATA <=BZQ(7 DOWNTO 0) WHEN SEL="000" ELSE</p><p&g
50、t; BZQ(15 DOWNTO 8) WHEN SEL="001" ELSE</p><p> BZQ(23 DOWNTO 16) WHEN SEL="010" ELSE</p><p> BZQ(31 DOWNTO 24) WHEN SEL="011" ELSE</p><p> TSQ(7
51、 DOWNTO 0) WHEN SEL="100" ELSE</p><p> TSQ(15 DOWNTO 8) WHEN SEL="101" ELSE</p><p> TSQ(23 DOWNTO 16) WHEN SEL="110" ELSE</p><p> TSQ(31 DOWNTO 24
52、) WHEN SEL="111" ;</p><p> BZH:PROCESS(SPUL,BCLK,CLR,ENA)</p><p><b> BEGIN</b></p><p> IF(SPUL='1')THEN BZQ<=(OTHERS=>'0');</p>
53、<p> ELSIF(CLR='1')THEN BZQ<=(OTHERS=>'0');</p><p> ELSIF BCLK'EVENT AND BCLK='1' THEN</p><p> IF ENA='1' THEN BZQ<=BZQ + 1 ;</p><
54、;p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p><p> TF: PROCESS(SPUL,TCLK,CLR,ENA)</p><p><b> BEGIN</b>&l
55、t;/p><p> IF(SPUL='1')THEN TSQ<=(OTHERS=>'0');</p><p> ELSIF(CLR='1')THEN TSQ<=(OTHERS=>'0');</p><p> ELSIF TCLK'EVENT AND TCLK='
56、1' THEN</p><p> IF ENA ='1' THEN TSQ<=TSQ + 1;</p><p><b> END IF;</b></p><p><b> END IF;</b></p><p> END PROCESS;</p>
57、<p> PROCESS(TCLK,CLR)</p><p><b> BEGIN</b></p><p> --IF(SPUL='1')THEN ENA<='0';</p><p> IF CLR='1' THEN ENA <='0';</p&
58、gt;<p> ELSIF TCLK'EVENT AND TCLK='1' THEN ENA<=CL;</p><p><b> END IF;</b></p><p> END PROCESS;</p><p> END behav;</p><p> 圖3-1 頻
59、率計測試模塊</p><p> 3.4 頻率計FPGA模塊的仿真</p><p> 對頻率計測試模塊編譯,仿真結(jié)果如圖3-2所示。</p><p> 圖3-2 頻率計測試仿真波形</p><p> 從圖3-2可以看出,CLR一個正脈沖后,系統(tǒng)被初始化。然后CL被置為高電平,但這時兩個計數(shù)器并未開始計數(shù)(start=‘0’),直到此后被
60、測信號TCLK出現(xiàn)一個上升沿,START=‘1’時2個計數(shù)器同時啟動分別對被測信號和標準信號開始計數(shù),其中BZQ和TSQ分別為標準頻率計數(shù)器和被測頻率計數(shù)器的計數(shù)值。由圖可見,在CL變?yōu)榈碗娖胶?,計?shù)器仍未停止,直到TCLK出現(xiàn)一個上升沿為止,這時START=‘0’,可作為單片機了解計數(shù)器結(jié)束的標識信號。仿真波形中TCLK和BCLK的周期分別設(shè)置為10us和500ns。由圖可見,計數(shù)結(jié)果是,對TCLK的計數(shù)值是3,對BCLK的計數(shù)值為6
61、0。通過控制SEL就能按照8個8位將計數(shù)器中的32位數(shù)讀入單片機中進行計算。</p><p> 由公式Fx = ( Fs×Nx ) / Ns=2MHz×3/60=0.1MHz,也就是周期為10us,可以驗證圖1-1描述的等精度測頻的功能完全正確。</p><p> 3.5 單片機的C語言編程</p><p> 單片機在該系統(tǒng)中,主要是完成整
62、個測量電路的測試控制、數(shù)據(jù)處理和顯示輸出。系統(tǒng)啟動后,如不能正常測試,可以由按鍵強制性清零。主程序不斷的掃描顯示程序,并掃描計數(shù)結(jié)束標識START是否為零,一旦為零,立即把FPGA的兩個計數(shù)器技術(shù)結(jié)果取出、計算,把計算的結(jié)果送去顯示。在資源的分配上,除了用于控制FGPA的外,P2口用來進行LED數(shù)碼管段信息的處理;P1口的低四位用來控制LED數(shù)碼管的位(其中P1.0,P1.1,P1.2控制74LS138的三個輸入端A,B,C實現(xiàn)3-8譯
63、碼,P1.3控制74LS138的CLR端,用以實現(xiàn)位的關(guān)和開);P3.5,P3.6,P3.7控制測頻后的單位顯示(P3.5是MHz,P3.6是KHZ)。主程序主要是用來顯示和測頻,流程圖如圖3-3所示。</p><p> 圖3-3 單片機主程序流程圖</p><p><b> 第四章 系統(tǒng)測試</b></p><p> 4.1 測頻精度
64、分析</p><p> 由第一章所述的測量原理可知,本系統(tǒng)的測頻公式為:Fx = ( Fs×Nx ) / Ns</p><p><b> 其誤差分析如下:</b></p><p> 設(shè)所測頻率值為Fx,其真實值為Fxe,標準頻率為Fs。在一次測量中,由于Fx計數(shù)的起停時間都是由該信號的上跳沿觸發(fā)的,在Tpr時間內(nèi)Fx的計數(shù)Nx無
65、誤差;此時內(nèi)的計數(shù)Ns最多相差一個脈沖,即|⊿Ns|≤1則:</p><p> Fx/Nx=Fs/Ns</p><p> Fxe/Nx=Fs/(Ns+⊿Ns)</p><p><b> 由此推得:</b></p><p> Fx=(Fs/Ns)×Nx</p><p> Fxe=
66、[Fs/(Ns+⊿Ns)] ×Nx</p><p> 根據(jù)相對誤差公式有:</p><p> ⊿Fxe/Fxe=|Fxe-Fx|/Fxe</p><p><b> 可以得:</b></p><p> ⊿Fxe/Fxe=|⊿Ns|/Ns</p><p> ∵|⊿Ns|≤1 ∴|⊿
67、Ns|/Ns≤1/Ns</p><p> 即相對誤差⊿Fxe/Fxe≤1/Ns</p><p> 又Ns=Tpr×Fs</p><p><b> 由此可知:</b></p><p> ?。?)相對測量誤差與頻率無關(guān);</p><p> ?。?)增大Tpr或提高Fs,可以增大Ns,減
68、少測量誤差,提高測量精度;</p><p> ?。?)本測頻系統(tǒng)的測量精度與預(yù)置門寬度和標準頻率有關(guān),與被測信號的頻率無關(guān)。</p><p> 在預(yù)置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,本測頻系統(tǒng)所采用的測量方法的測量精度不變。為了恒定測量精度,可采用高頻率穩(wěn)定度和高精度晶體振蕩器作標準頻率發(fā)生器。本系統(tǒng)選用了20MHz的有源晶振,通過倍頻技術(shù)倍頻到100MHz。&l
69、t;/p><p><b> 4.2實驗測試數(shù)據(jù)</b></p><p> 在系統(tǒng)設(shè)計好后,利用FPGA在不同的引腳上發(fā)出標準的頻率值進行測量,結(jié)果如表4-1所示。</p><p> 表4-1:FPGA發(fā)出的標準信號測量結(jié)果</p><p> 測試由信號源發(fā)出的頻率時,測量值如表4-2所示。測量條件:方波,幅度為Vpp
70、=10V。</p><p> 表4-2:SP1641B型函數(shù)信號發(fā)生器發(fā)出的信號測量結(jié)果</p><p> 從測試結(jié)果看,測量TTL電平的方波時,精度還是很高的。由于放大整形電路沒有實現(xiàn),所以暫時無法測試正弦波。</p><p><b> 第五章 總結(jié)</b></p><p> 該測頻系統(tǒng)經(jīng)過軟硬件設(shè)計,經(jīng)過實驗
71、仿真分析及驗證,各項功能達到預(yù)定的設(shè)計指標。在開發(fā)過程中,綜合運用了QuartusII、Keil、Protel99SE等開發(fā)工具,使用了VHDL及C語言,在論文寫作及作圖時還用到了Word、Visio、畫圖板等軟件。</p><p> 該系統(tǒng)的特點是克服了傳統(tǒng)的測頻法或測周法的不足,能在頻率范圍變化較大時,都有比較高的測量精度。具有以下突出特點:</p><p> ?。?)在系統(tǒng)總體設(shè)計
72、方面,充分利用單片機和FPGA各自的優(yōu)勢,將測控的主體分配給FPGA,既可滿足測頻對速度方面的要求和多I/O口的要求,同時利用單片機具有良好的人機接口和控制運算的功能,可以較簡單地實現(xiàn)顯示控制和數(shù)據(jù)處理運算。</p><p> ?。?)在測頻方面,由于采用了等精度測頻法,使該系統(tǒng)具有以下特點:①相對測量誤差與被測頻率的高低無關(guān);②增大Tpr或Fs可以增大Ns,減少測量誤差,提高測量精度;③本測頻系統(tǒng)的測量精度與預(yù)
73、置門寬度和標準頻率有關(guān),與被測信號的頻率無關(guān)。在預(yù)置門時間和常規(guī)測頻閘門時間相同而被測信號頻率不同的情況下,本測頻系統(tǒng)所采用的測量方法的測量精度不變。</p><p> ?。?)在顯示方面,采用動態(tài)顯示,簡化了驅(qū)動電路的設(shè)計。</p><p> 由于時間和實驗條件所限,本系統(tǒng)只能測試方波信號,且信號的幅度要大于3V,這是因為在硬件上存在不足,需要進一步的完善和提高。</p>
74、<p><b> 致 謝</b></p><p> 在論文完成之際,我首先向關(guān)心幫助和指導(dǎo)我的指導(dǎo)老師許金星表示衷心的感謝并致以崇高的敬意!</p><p> 在論文工作中,我遇到了很多問題,論文的格式,專業(yè)的知識部分,一直得到許金星老師的親切關(guān)懷和悉心指導(dǎo),老師淵博的學(xué)識、嚴謹?shù)闹螌W(xué)態(tài)度、求實的工作作風(fēng)一直感染著我,他敏捷專業(yè)的思維給我留下了深刻
75、的印象,我將終生難忘,再一次向許金星老師表示衷心的感謝,感謝他為學(xué)生營造的濃郁學(xué)術(shù)氛圍,以及學(xué)習(xí)、生活上的無私幫助! 值此論文完成之際,謹向許金星老師致以最崇高的謝意!</p><p> 光陰似箭,默然回首,在學(xué)校的學(xué)習(xí)生活即將結(jié)束,回顧兩年多來的學(xué)習(xí)經(jīng)歷,面對現(xiàn)在的收獲,我感到無限欣慰。為此,我向熱心幫助過我的所有老師和同學(xué)表示由衷的感謝!</p><p> 在我即將完成學(xué)業(yè)之際,我
76、深深地感謝我的家人給予我的全力支持!</p><p> 最后,衷心地感謝在百忙之中評閱論文和參加答辯的各位專家、教授!</p><p><b> 參考文獻</b></p><p> [1]潘松,黃繼業(yè). EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2005年.</p><p> [2]朱正偉. EDA技術(shù)及
77、其應(yīng)用[M].北京:清華大學(xué)出版社,2005年.</p><p> [3]延明,張亦華. 數(shù)字電路EDA技術(shù)入門[M].北京:北京郵電大學(xué)出版社,2006年.</p><p> [4]譚會生,張昌凡. EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2004年.</p><p> [5]康華光,陳大欽. 電子技術(shù)基礎(chǔ)數(shù)字部分(第4版)[M].北京:高等教
78、育出版社,1999年.</p><p> [6]王道憲. CPLD/FPGA可編程邏輯器件編程與開發(fā)[M].北京:國防工業(yè)出版社,2004年.</p><p> [7]王振紅. VHDL數(shù)字電路設(shè)計與應(yīng)用實踐教程[M].北京:機械工業(yè)出版社,2003年.</p><p> [8] 趙鑫,蔣亮,齊兆群. VHDL與數(shù)字電路設(shè)計[M].北京:機械工業(yè)出版社, 20
79、05年.</p><p> [9]黃仁欣.EDA技術(shù)使用教程[M].北京:清華大學(xué)出版社,2006年.</p><p> [10]褚振勇,齊亮,田紅心,高楷娟.FPGA設(shè)計及應(yīng)用(第二版)[M].西安:西安電子科技大學(xué)出版社,2006年</p><p> [11]豈興明,唐杰,趙沛等.51單片機編程基礎(chǔ)與開發(fā)實例詳解[M].北京:人民郵電出版社,2008年.&
80、lt;/p><p> [12]劉夫江.基于單片機和CPLD的等精度數(shù)字頻率計設(shè)計[D] :[碩士學(xué)位論文].山東:山東大學(xué),2007年 </p><p> [13]李芳.基于VHDL的多功能數(shù)字頻率及的設(shè)計[D] :[碩士學(xué)位論文].北京:北方工業(yè)大學(xué),2009年 </p><p> [14]包本剛.基于FPGA的全同步數(shù)字頻率計的設(shè)計[D] :[碩士學(xué)位論文].
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于單片機與cpld的等精度頻率計的設(shè)計
- 基于單片機與fpga的等精度頻率計的設(shè)計與研究
- 基于單片機的頻率計設(shè)計
- 基于-單片機頻率計的設(shè)計
- 基于單片機的頻率計設(shè)計設(shè)計
- 基于單片機和CPLD的等精度數(shù)字頻率計設(shè)計.pdf
- 基于fpga等精度頻率計設(shè)計
- 等精度頻率計
- 單片機課程設(shè)計報告--- 基于單片機的頻率計設(shè)計
- 課程設(shè)計--基于單片機的頻率計
- 基于fpga的等精度頻率計設(shè)計
- 基于fpga的等精度頻率計設(shè)計
- atc單片機簡易頻率計設(shè)計
- 單片機頻率計課程設(shè)計
- 基于單片機的頻率計設(shè)計畢業(yè)設(shè)計
- 畢業(yè)設(shè)計----基于單片機的頻率計設(shè)計
- 單片機頻率計課程設(shè)計
- 基于單片機的頻率計的設(shè)計與制作
- 基于單片機的頻率計外文翻譯--快速數(shù)字頻率計
- 基于fpga的等精度頻率計的設(shè)計
評論
0/150
提交評論