基于單片機與FPGA的等精度頻率計的設計單片機部分_第1頁
基于單片機與FPGA的等精度頻率計的設計單片機部分_第2頁
基于單片機與FPGA的等精度頻率計的設計單片機部分_第3頁
基于單片機與FPGA的等精度頻率計的設計單片機部分_第4頁
基于單片機與FPGA的等精度頻率計的設計單片機部分_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

PAGEPAGE68畢業(yè)設計論文題目:基于單片機與FPGA的等精度頻率計的設計單片機部分內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文)基于單片機與FPGA的等精度頻率計的設計單片機部分摘要本設計課題為基于單片機與FPGA的等精度頻率計的設計。本設計以AT89C51單片機作為系統(tǒng)的主控部件,實現整個電路的信號控制、數據運算處理等功能;一片現場可編程邏輯器件FPGA芯片FLEXEPF10K20RC208-4完成各種時序邏輯控制、計數功能。本文詳細論述了等精度數字頻率計的測頻原理、硬件電路的組成、設計和單片機軟件編程設計、系統(tǒng)的誤差分析。其中硬件電路包括鍵盤控制模塊、顯示模塊和測量模塊,鍵盤模塊采用獨立式的鍵盤,實現了測頻功能,還實現了周期、脈寬、占空比測量等功能的選擇;顯示模塊采用靜態(tài)顯示方式,因此電路結構簡單,顯示方便;AT89C51單片機的軟件編程采用靈活易讀的C語言。本設計將AT89C51單片機的控制靈活性和FPGA芯片的現場可編程性相結合,不但大大縮短了開發(fā)研制周期,而且使本系統(tǒng)具有結構緊湊、體積小、可靠性高、測頻范圍寬、精度高等優(yōu)點。關鍵詞:EDA技術;單片機;頻率計;FPGA內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文)BasedontheMCUandFPGAsuchasthefrequencyaccuracyofdesignSCMpartAbstractThedesignissuesforthefrequencyofsuchasthefrequencyaccuracyofdesignwhichbasedontheMCUandFPGA.InthedesignAT89C51asamaincomponent,completedthewholecircuit’ssignalcontrol,thedataprocessingfunctionsandsoon;afieldprogrammablelogicdeviceFPGAandchipFLEXEPF10K20RC208-4completedlogiccontrolingandcountingfunction.Thispaperdiscussesindetailtheaccuracyofthefiguressuchasthefrequencyinfrequencymeasurementprinciple,hardwarecircuitcomponents,designandmicrocontrollersoftwaredesign.Circuitincludeshardwarekeyboardcontrolmodule,moduleandmeasurementmodulekeyboardmoduleofsixkeyschoice,itnotonlycompletesthefunctionaltestfrequencybutalsocompletesthecycle,pulsewidth,dutycyclemeasurementfunctionofchoice;Modulestaticdisplaymodemadethecircuitsimple,andconventiontoshow;AT89C51flexiblesoftwareprogramminginClanguageaccessibility.ThedesignwhichcombinatedAT89C51controlflexibilityandFPGAFieldProgrammablePhasenotonlygreatlyshortensthedevelopmentcycletime,butalsomakesthesystemhavetheadvantagesofcompact,smallsize,highreliability,Measuringfrequencyrange,thehigherprecision.Keywords:EDAtechnology;Microcontroller;Cymometer;FPGA內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文)目錄摘要 IAbstract II第一章引言 11.1研究背景與意義 11.2頻率計的發(fā)展概況 11.3論文所做的工作與研究內容 2第二章等精度數字頻率計測頻原理與設計方法 42.1等精度數字頻率計測頻原理 42.1.1數字頻率計的測頻方法簡介 42.1.2等精度測頻原理 52.2等精度數字頻率計的設計方法 72.2.1電子系統(tǒng)的設計方法 7第三章主要芯片及設計工具簡介 83.1主要芯片性能介紹 83.1.1AT89C51單片機性能介紹 83.1.2FLEX10K系列芯片性能介紹 113.2MAX+PLUSII概述 143.3KEILC51語言簡介 143.4VHDL語言簡介 16第四章硬件電路設計 184.1系統(tǒng)組成 184.2鍵盤接口電路 194.3顯示電路 204.3.1LED顯示模塊 204.3.2顯示模塊 214.4測量電路 234.4.1測量與自校選擇電路 244.4.2測頻/測周電路 254.4.3脈寬控制電路 274.5硬件電路的VHDL語言描述 284.5.1D觸發(fā)器 284.5.232位計數器 304.5.3MUX64-8多路選擇器 314.5.4MUX2-1選擇器 314.5.5時鐘發(fā)生器 324.5.6單片機主控電路 32第五章軟件設計 345.1單片機主程序 345.2復位自檢程序 355.3鍵盤程序 365.4測頻子程序 375.5測周期子程序 385.6測脈寬子程序 385.7占空比子程序 385.8顯示子程序 39第六章系統(tǒng)性能分析 406.1占空比子程序 406.1.1低端頻率 406.1.2高端頻率 406.2頻率測量精度分析 41結論 43參考文獻 44附錄A系統(tǒng)原理圖 45附錄BAT89C51單片機內部框圖 46附錄C硬件電路的VHDL描述 47附錄D單片機C語言程序清單 54致謝 67內蒙古科技大學畢業(yè)設計說明書(畢業(yè)論文)引言研究背景與意義隨著科學技術與計算機應用的不斷發(fā)展,以單片機作為核心的測量控制系統(tǒng)層出不窮。在被測信號中,較多的是模擬和數字開關信號,此外還經常遇到以頻率為參數的測量信號,例如流量、轉速、晶壓力傳感器以及經過參變量―頻率轉換后的信號等等。頻率信號抗干擾性強,易于傳輸,可以獲得較高的測量精度,所以研究測頻方法是電子測量領域的重要內容。傳統(tǒng)的數字頻率計一般由分離元件搭接而成,其測量范圍、測量精度和測量速度都受到很大的限制。雖然單片機的發(fā)展與應用改善了這一缺陷,但由于單片機本身也受到工作頻率及內部計數器位數等因素的限制,所以無法在此領域取得突破性的進展。隨著新型可編程邏輯器件FPGA技術的發(fā)展,能夠將大量的邏輯功能集成在單個器件中,FPGA根據不同的需要所提供的門數可以從幾百萬到上百萬門,從根本上解決了單片機的先天性不足。本課題所設計的等精度數字頻率計不但集成度遠遠超過了以往的數字頻率計,而且在標準頻率等外部條件的允許下,可以根據不同場合的精度要求,對硬件描述語言進行一定的改動,使系統(tǒng)在精度提高的同時,而不增加系統(tǒng)硬件,從而降低系統(tǒng)的整體造價。此外,系統(tǒng)芯片(SCO)的發(fā)展也要求其包含頻率測量的功能,所以用FPGA實現數字頻率計也是實現系統(tǒng)芯片的前提條件。該數字頻率計的設計及實現應用計數器法,基于上述優(yōu)勢開發(fā)的頻率計具有良好的應用價值和推廣前景。頻率計的發(fā)展概況傳統(tǒng)的數字頻率計可以通過普通的硬件電路組合來實現,一般由分離元件搭接而成,其開發(fā)過程、調試過程十分繁瑣,而且由于電子器件之間的互相干擾,影響頻率計的精度,體積較大,已不適應電子設計的發(fā)展要求[1][2]。MSC-51系列單片機具有體積小、功能強、性能價格比高等特點,廣泛應用于工業(yè)測量、控制和智能化儀器、儀表等領域。以MSC-51系列單片機為核心的頻率計設計,較分離元件搭接而成的頻率計改善了性能、提高了可靠性,并可以采用軟件實現各種頻率測量方法[3]。但由于受到單片機本身特性的影響,其晶振最大只能為24MHz,以單片機為核心的頻率計的測頻范圍及精度受到很大的制約。隨著EDA技術的發(fā)展,現代頻率計的設計多采用基于FPGA芯片的方法來實現頻率計的設計,即通過VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage)硬件描述語言的設計,用FPGA來實現。FPGA(FieldProgrammableGateArray)即現場可編程邏輯器件是由存放在片內RAM中的程序來設置其工作狀態(tài)的,因此工作時需要對片內的RAM進行編程。用戶可以根據不同的配置模式,采用不同的編程方式。加電時,FPGA芯片將EPROM中數據讀入片內編程RAM中,培植完成后,FPGA進入工作狀態(tài)。掉電后,FPGA恢復成白片,內部邏輯關系消失,因此FPGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只需使用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片FPGA,不同的編程數據,可以產生不同的電路功能。因此,FPGA的使用非常靈活。同時EDA開發(fā)工具的通用性、設計語言(本設計為VHDL)的標準化以及設計過程幾乎與所用器件的硬件結構無關,所以設計成功的各類邏輯功能塊軟件有很好的兼容性和可移植性,可以在很短的時間內完成十分復雜的系統(tǒng)設計。論文所做的工作與研究內容隨著EDA(ElectronicsDesignAutomation)技術的發(fā)展和可編程邏輯器件的廣泛應用,傳統(tǒng)的自下而上的數字電路設計方法、工具、器件已遠遠落后于當今技術的發(fā)展?;贓DA技術正在承擔起越來越多的數字系統(tǒng)設計任務。本設計主要論述了利用FPGA進行測頻計數,單片機實施控制,實現多功能頻率計的過程,使得頻率計具有了測量精度高、功能豐富、控制靈活等特點。該頻率計依照等精度的測量原理,克服了傳統(tǒng)計數器測頻原理隨被測信號頻率下降而降低的缺點。等精度測量方法不但具有較高的精度,而且在整個頻率域保持恒定的測量精度。該頻率計利用FPGA來實現對頻率、周期、脈寬、占空比的測量計數,由單片機實現對系統(tǒng)的控制、數據的顯示、數據運算及數制轉換等功能。本設計的主要工作包括以下幾項內容:⑴簡述了當今頻率計的發(fā)展狀況,對幾種常用的測頻方法進行了介紹和對比。⑵詳細地論述了等精度頻率計的測頻原理。在FPGA和單片機的基礎上采用等精度的測量方法,實現了高精度的頻率、周期、脈寬和占空比的測量。⑶采用MSC-51單片機來實現對功能鍵的控制、數據運算、碼制轉換、數據顯示等功能。⑷完成了頻率計的系統(tǒng)硬件電路的設計,同時完成了基于數字硬件電路設計平臺Max+plusⅡ的FPGA硬件電路設計,FPGA模塊用來完成高速計數器的功能;單片機完成測試控制、數據處理等功能,并對整個系統(tǒng)進行總體控制。⑸對頻率計的系統(tǒng)性能進行分析,分別分析了低端頻率和高端頻率得出本設計的測頻范圍是0.01Hz~40MHz,同時分析了測量精度。本文分6章介紹了基于FPGA和單片機的等精度數字頻率計的設計原理、設計方法、開發(fā)步驟,并且對頻率計的測量結果和實際輸入頻率進行比較,分析了本設計影響測量精度的主要因素。等精度數字頻率計測頻原理與設計方法等精度數字頻率計測頻原理數字頻率計的測頻方法簡介目前數字頻率計的測頻方法可以有以下幾種實現方法:⑴直接測量法直接測量法是把頻率信號經脈沖形成電路后加閘門的一個輸入端,只有在閘門開通時間T(以秒計)內,計數脈沖被送到十進制計數器進行計數。設計數器的值為N,由頻率定義可以計算得到被測信號頻率為:(2-1)經分析,此種測量在低頻段的相對測量誤差較大。增大T可以提高測量精度,但在低頻段仍不能滿足任務要求。⑵組合法直接測量周期法在低頻段精度高。組合法是指在低頻時采用直接測量周期法測量信號的周期,然后換算成頻率。這種方法在一定程度上可以彌補方法⑴的不足,電路實現較為復雜。⑶倍頻法直接測量法在高頻段有著很高的精度??梢园杨l率測量范圍分為多個頻段,使用倍頻技術,根據頻段設置倍頻系數將經整形的低頻信號進行倍頻后進行測量,高頻段則進行直接測量。⑷直接測量周期法用被測信號經放大整形后形成的方波信號直接控制計門控電路,使主門開放時間等于信號周期,時標為Ts的脈沖在主門開放時間進入計數器。設T為被測周期,Ts為時標,在Tx時間計數值為N,可以根據以下公式來算得被測信號周期:(2-2)此種方法,被測信號頻率越高,測量誤差越大。采用多個周期進行計數取平均值的方法雖可提高精度,每一次的等待時間較長,顯然是不可取的[4]。本課題測頻原理為等精度測頻原理[5],下面就等精度測頻原理進行具體敘述。等精度測頻原理等精度測頻法的最大特點是在整個被測頻率范圍內都能達到相同的測量精度,而與被測信號頻率大小無關。其原理圖如圖2.1所示。圖2.1等精度測頻原理圖圖2.2等精度頻率計測頻波形時序圖當方波預置門控信號CL可由單片機發(fā)出,CL的時間寬度對測頻精度影響較小,所以可以在1秒至0.1秒間選擇,在此設其寬度為Tpr。BZH和TF模塊是兩個可控的32位高速計數器,BENA和ENA分別是它們的計數允許信號端,高電平有效。標準頻率信號從BZH的時鐘輸入端BCLK輸入,設其頻率為Fs;經整形后的被測信號從與BZH相似的32位計數器TF的時鐘輸入端TCLK輸入,設其真實頻率為Fxe,被測頻率為Fx。測頻原理說明如下:測頻開始前,首先發(fā)出一個清零信號CLR,使兩個計數器和D觸發(fā)器置零,同時通過信號ENA禁止兩個計數器計數。這是一個初始化操作。然后由單片機發(fā)出允許測頻命令,即令預置門控信號CL為高電平,這時D觸發(fā)器要一直等到被測信號的上升沿通過時Q端才被置1,與此同時,將同時啟動計數器BZH和TF,進入“計數允許周期”。在此期間,BZH和TF分別對標準頻率信號(頻率為Fs)和被測信號(頻率為Fx)同時計數。當Tpr秒后,預置門控信號CL被單片機置為低電平,但此時兩個計數器仍沒有停止計數,一直等到隨后而至的被測信號的上升沿到來時,才通過D觸發(fā)器將把這兩個計數器同時關閉。設Fx為整形后的被測信號頻率,Fs為基準信號頻率,設在一次預置門時間Tpr中對被測信號的計數值為Nx,對標準頻率信號的計數值為Ns,則有下式成立:(2-3)不難得到測得的頻率為:(2-4)最后通過控制SEL選擇信號和64位至8位的多路選擇器MUX64-8,將計數器BZH和TF中的兩個32位數據分8次讀入單片機并按式(2-4)進行計算和結果的顯示。等精度數字頻率計的設計方法電子系統(tǒng)的設計方法現代電子系統(tǒng)一般由模擬子系統(tǒng)、數字子系統(tǒng)和微處理器子系統(tǒng)三大部分組成。從概念上講,凡是利用數字技術處理和傳輸信息的電子系統(tǒng)都可以稱為數字系統(tǒng)。傳統(tǒng)的數字系統(tǒng)設計只能對電路板進行設計,通過設計電路板來實現系統(tǒng)功能。利用EDA工具,采用可編程器件,通過設計芯片來實現系統(tǒng)功能,這種方法稱為基于芯片的設計方法。新的設計方法能夠由設計者定義器件的內部邏輯,將原來由電路板設計完成的大部分工作放在芯片的設計中進行。這樣不僅可以通過芯片設計實現多種數字邏輯系統(tǒng),而且由于管腳定義的靈活性,大大減輕了電路圖設計和電路板設計的工作量和難度,從而有效的增強了設計的靈活性,提高了工作效率。同時,基于芯片的設計可以減少芯片的數量,縮小系統(tǒng)體積,降低能源消耗。圖2-2所示為電子系統(tǒng)的傳統(tǒng)設計方法和基于芯片的設計方法。圖2-2(a)傳統(tǒng)設計方法(b)基于芯片設計方法可編程邏輯器件和EDA技術給今天的硬件系統(tǒng)設計者提供了強有力的工具,使得電子系統(tǒng)的設計方法發(fā)生了質的變化?,F在,只要擁有一臺計算機、一套相應的EDA軟件和空白的可編程邏輯器件芯片,在實驗室里就可以完成數字系統(tǒng)的設計和生產。主要芯片及設計工具簡介主要芯片性能介紹AT89C51單片機性能介紹圖3-1AT89C51引腳圖AT89C51是一個內含4K字節(jié)可編程可擦除的快閃存儲器(FlashMemory)和128個字節(jié)RAM,低電壓,高性能CMOS結構的8位單片機。采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和快閃存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。⑴AT89C51的主要特性如下:●與MCS-51兼容●4K字節(jié)可編程快閃存儲器●壽命:1000次寫/擦●數據保留時間:十年●128*8位內部RAM●32可編程I/0線●兩個16位定時器/計數器●五個中斷源●可編程串行通道●低功耗的閑置和掉電模式●片內振蕩器和時鐘電路⑵其管腳的具體說明如下:VCC:供電電壓GND:接地P0口:P0口為一個8位漏級開路雙向I/O口,每個引腳可驅動8個TTL門電流。當P1口的管腳輸入數據時,應先把口置‘1’P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能驅動4個TTL門。P1口管腳寫入‘1’P2口:P2口是一個內部提供上拉電阻的8位雙向I/0口,P2口緩沖器可驅動4個TTL門電流,當P2口被寫‘1’P1口當用作外部程序存儲器或外部數據存儲器進行存取時,P2口輸出16位地址的高八位。在給出地址“1”P3口:P3口管腳是八個帶內部上拉電阻的雙向I/O口,可驅動4個TTL門電流。當P3口寫入‘1’P3口也可作為AT89C51的一些特殊功能。如下表所示:管腳備選功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2(外部中斷0)P3.3(外部中斷1)P3.4T0(計時器0外部輸入)P3.5T1(計對器1外部輸入)P3.6(外部數據存儲器寫選通)P3.7〔外部數據存儲器讀選通)P3口同時為快閃編程和編程校驗接收一些控制信號。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。EA/VPP:外部程序存儲選擇信號,輸入,低電平有效。當保持低電平時,則在此期間外部存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式為1時,將內部鎖定為RESET;當端保持高電平時,將從內部程序存儲器讀取指令碼,只有當程序計數器PC大于內部程序存儲器地址空間時,才從外部程序存儲器讀取指令碼,因此在沒有內部ROM或不適用內部ROM的系統(tǒng)中,/VPP引腳一律接地。XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。⑶振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩都可以采用。如采用外部時鐘源驅動器件,XTAL2應不接。由于輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。⑷芯片擦除:整個EPROM陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持ALE管腳處于低電平10ms來完成。在芯片擦除操作中,代碼陣列全被寫“1”且在任何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。此外,AT89C51設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM、定時器、計數器、串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的內容并且凍結振蕩器,禁止所有其它芯片的功能,直到下一個硬件復位為止[6]。FLEX10K系列芯片性能介紹隨著電子技術的發(fā)展,電子系統(tǒng)的設計方法也發(fā)生了很大的變化。傳統(tǒng)的設計方法正逐步退出歷史舞臺,而基于EDA技術的芯片設計正在成為電子系統(tǒng)設計的主流。大規(guī)??删幊踢壿嬈骷﨏PLD和FPGA是當今應用最廣泛的兩類可編程專用集成電路(ASIC)??删幊踢壿嬈骷?0世紀70年代發(fā)展起來的一種新型邏輯器件,是一種由用戶編程來實現某種邏輯功能的新型器件,芯片內的邏輯門、觸發(fā)器等硬件資源可由用戶配置來連接實現專用的用戶邏輯功能。它是大規(guī)模集成電路技術飛速發(fā)展與計算機輔助設計、計算機輔助生產和計算機輔助測試相結合的一種產物,是現代數字系統(tǒng)向超高集成度、超低功耗、超小封裝和專用化方向發(fā)展的重要基礎。它的應用和發(fā)展不僅簡化了電路設計,降低了成本、提高了系統(tǒng)的可靠性和保密性,而且給數字系統(tǒng)的設計方法帶來了革命性的變化。目前常用的可編程邏輯器件從結構上可劃分為兩大類:CPLD和現場可編程門陣列FPGA。FPGA是20世紀80年代中期出現的可編程邏輯器件,其結構類似于掩膜可編程門陣列(MPGA),它由許多獨立的可編程模塊構成,用戶可以通過編程將這些模塊連接起來實現不同的設計。FPGA兼容了MPGA和PLD兩者的優(yōu)點,因而具有更高的集成度、更強的邏輯實現能力和更好的設計靈活性。FPGA具有掩膜可編程門陣列(MPGA)的通用結構,它由邏輯功能塊排成陣列組成,并由可編程的互連資源連接這些邏輯功能塊以及相應的輸入/輸出單元來實現不同的設計。其中FPGA的功能由邏輯結構的配置數據決定。工作時這些配置數據存放在片內的SRAM或熔絲上?;赟RAM的FPGA器件在工作前需要從芯片外部加載配置數據。用戶可以控制加載過程,在現場修改器件的邏輯功能,即所謂的現場編程。FLEX(FlexiblLogicElementMatrix)10K系列芯片是ALTERA公司新近推出的PLD產品。與ALTERA公司先前推出的MAX7000系列EPLD相比,FLEX10K(以下簡稱10K)系列具有更加豐富的內部資源(最多可達10萬門),更加充裕的可配置的I/O管腳(最多達406條)。再加上其低廉的價格,使得10K系列芯片受到越來越多用戶的歡迎。由于10K系列芯片是以可重新配置的CMOS靜態(tài)RAM單元為基礎構成的,因此必須在每次開機時對芯片進行配置。本測頻系統(tǒng)選用FPGA器件是Alter公司所生產的FLEX10KEPF1020RC(208-4)。FLEX10K系列是第一款多達25萬門的嵌入式PLD,FLEX10K具有高密度和意欲在設計中實現復雜宏函數和存儲器的特點,因此可以適應系統(tǒng)級設計的要求。每個FLEX10K器件都包含一個嵌入式陣列,它為設計者提供了有效的嵌入式門陣列和靈活的可編程邏輯。另外,FLEX10K器件也提供多電壓I/O接口,它允許器件橋接在不同電壓工作系統(tǒng)中。FLEX10K還具有多個低失真時鐘,以及時鐘鎖定和時鐘自舉鎖相環(huán)電路,內部三態(tài)總線等特性。其具體性能特點如下:⑴工業(yè)界第一種嵌入式PLD系列,具有在單個器件中系統(tǒng)集成的能力,具有實現宏函數的嵌入式陣列和實現普通功能的邏輯陣列。⑵高密度具有10000到250000個可用門,高達40960位內部RAM。⑶系統(tǒng)級特點支持多電壓I/O接口;低功耗,維持狀態(tài)時電流小于0.5mA,遵守PCI總線規(guī)定;內置JTAG邊界掃描測試電路;器件采用先進SRAM工藝制造;通過外部EPROM、集成控制器或JTAG接口電路實現電路可重構(ICR);時鐘鎖定和時鐘自舉有助于減少時鐘延遲/變形和對時鐘進行倍頻;器件內低變形時鐘樹形分布;所有器件都經過100%的性能測試。⑷靈活的內部連接快速通道連續(xù)式布線結構帶來快速可預測的連線延時;具有可以用來實現快速加法器、計數器和比較器的專用位鏈;具有實現告訴、多輸入邏輯函數專用級連鏈;模仿三態(tài)功能可以是內部三態(tài)總線;6個全局時鐘信號和4個全局清除信號。⑸功能強大的I/O引腳每個引腳都有一個獨立的三態(tài)輸出使能控制;每個I/O引腳都有漏極開路選擇;可編程輸出電壓擺率控制可以減小開關噪聲。⑹具有快速建立時間和時鐘到輸出的外部寄存器。⑺多樣的封裝形式84到600引腳的各種封裝,封裝形式有TQFP、PQFP、BGA和PLC等;同一種封裝中的各種FLEX10K器件的引腳兼容。⑻具有良好的軟件設計支持和布局布線的能力。⑼能夠與其他公司的多種EDA工具接口[7]。MAX+PLUSII概述MAX+plusⅡ的全稱是MultipleArrayMatrixandProgrammableLogicUserSystemⅡ(多陣列矩陣既可編程邏輯用戶系統(tǒng)Ⅱ)。MAX+plusⅡ是一個完全集成化的可編程邏輯設計環(huán)境,能滿足用戶各種各樣的設計需要。它具有的強大功能能夠極大地減輕設計者的負擔,是設計者可以快速的完成所需的設計。MAX+plusⅡ開發(fā)系統(tǒng)具有很多突出的優(yōu)點,這使他深受用戶的青睞。⑴開放式的界面。Altera公司與EDA的各個開發(fā)商緊密合作,使MAX+plusⅡ可以與其他工業(yè)標準的設計輸入、綜合、校驗工具相聯接。當前MAX+plusⅡ軟件提供與多種第三方EDA工具的接口。⑵設計與結構無關。MAX+plusⅡ支持Altera公司的多種可編程邏輯器件,提供了工業(yè)界真正與結構無關的可編程邏輯設計環(huán)境。⑶可在多種平臺上運行。⑷完全集成化。MAX+plusⅡ軟件的設計輸入、處理、檢驗功能完全集成于可編程邏輯開發(fā)工具內,從而可以更快的進行調試,縮短開發(fā)周期。⑸模塊化工具。⑹支持硬件描述語言。MAX+plusⅡ支持多種HDL的設計輸入,包括標準的VHDL、VerilogHDL以及Altera公司自己開發(fā)的硬件描述語言AHDL。 KEILC51語言簡介C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。目前,使用C語言進行程序設計已經成為軟件開發(fā)的一個主流。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強程序的可讀性,便于改進和擴充。而針對8051的C語言日趨成熟,成為了專業(yè)化的實用高級語言。C語言作為一種非常方便的語言而得到廣泛的支持,國內最通用的是KeilC51。C語言程序本身不依賴于機器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機中移植過來。C提供了很多數學函數并支持浮點運算,開發(fā)效率高,故可縮短開發(fā)時間,增加程序可讀性和可維護性。C-51與ASM-51相比,有如下優(yōu)點:1.

對單片機的指令系統(tǒng)不要求了解,僅要求對8051的存貯器結構有初步了解;2.

寄存器分配、不同存貯器的尋址及數據類型等細節(jié)可由編譯器管理;3.

程序有規(guī)范的結構,可分成不同的函數,這種方式可使程序結構化;4.

具有將可變的選擇與特殊操作組合在一起的能力,改善了程序的可讀性;5.

提供的庫包含許多標準子程序,具有較強的數據處理能力;6.

由于具有方便的模塊化編程技術,使已編好程序可容易地移植;KeilC51μVision2集成開發(fā)環(huán)境是KeilSoftware,Inc/KeilElektronikGmbH開發(fā)的基于80C51內核的微處理器軟件開發(fā)平臺,內嵌多種符合當前工業(yè)標準的開發(fā)工具,可以完成從工程建立到管理、編譯、連接、目標代碼的生成、軟件仿真和硬件仿真等完整的開發(fā)流程。尤其C編譯工具在產生代碼的準確性和效率方面達到了較高的水平,而且可以附加靈活的控制選項,在開發(fā)大型項目時非常理想。KeilC51集成開發(fā)環(huán)境的主要功能有以下幾點:μVision2forWindowsTM:是一個集成開發(fā)環(huán)境,它將項目管理、源代碼編輯和程序調試等組合在一個功能強大的環(huán)境中;C51國際標準化C交叉編譯器:從C源代碼產生可重定位的目標模塊;A51宏匯編器:從80C51匯編源代碼產生可重定位的目標模塊;BL51連接/定位器:組合由C51和A51產生的可重定位的目標模塊,生成絕對目標模塊;LIB51庫管理器:從目標模塊生成鏈接器可以使用的庫文件;OH51目標文件至HEX格式的轉換器:從絕對目標模塊生成IntelHEX文件;RTX-51實時操作系統(tǒng):簡化了復雜的實時應用軟件項目的設計。本設計采用的是C51的語言,因為C語言的可讀性好、通俗易懂。VHDL語言簡介美國國防部在20世紀70年代末和80年代初提出了VHSIC(VeryHighSpeedIntegratedCircuit)計劃,VHSIC計劃的目標是為下一代集成電路的生產、實現階段性的工藝極限以及完成10萬門級以上的設計建立一項新的描述方法。1981年美國國防部提出了一種新的硬件描述語言HDL,稱為“超高速集成電路硬件描述語言”,簡稱VHDL(VHISCHardwareDescriptionLanguage)語言。VHDL語言是IEEE標準化的硬件描述語言,并且已經成為系統(tǒng)描述的國際公認標準。VHDL語言的特點決定了它的地位,它的特點主要有:⑴強大的功能和靈活性。VHDL語言具有功能強大的語言結構,可以用簡明明確的程序來描述復雜的邏輯控制。為了有效控制設計的實現,它具有多層次的設計描述功能,支持設計庫和可重復使用的元件生成;而且它還支持階層設計和提供模塊設計的創(chuàng)建。⑵獨立于器件的設計。⑶可進行程序移植。VHDL語言的移植能力就是指同一個設計的VHDL語言描述可以從一個模擬工具移植到另一個模擬工具、從一個綜合工具移植到另一個綜合工具或者從一個工作平臺移植到另一個工作平臺。⑷性能評估能力。⑸易于ASIC移植。⑹VHDL語言標準、規(guī)范,易于共享和復用。VHDL語言的語法規(guī)范、標準,可讀性強。用VHDL語言書寫的代碼文件既是程序,又是文檔;既是設計人員進行設計成果交流的交流文件,也可以作為合約簽約者之間的合同文本。盡管VHDL語言作為IEEE的工業(yè)標準具有許多其它硬件描述語言所不具有的主要優(yōu)勢,同時他也存在著一些不足之處。具體表現在:⑴需要了解較多的硬件電路知識。⑵VHDL語言的描述會與實際硬件電路的工作方式不符。⑶不具有描述模擬電路的能力[7]。硬件電路設計系統(tǒng)組成本設計的核心部件為AT89C51單片機和現場可編程芯片FPGA,所有信號包括標準頻率信號,被測信號,自校信號均可在AT89C51單片機的控制下送到FPGA芯片中,單片機將每次測試結果讀入內存RAM中,經運算處理后,由RXD口以BCD碼的形式送入數碼管顯示電路顯示。整個系統(tǒng)在硬件上可分為顯示模塊、鍵盤輸入模塊和測頻模塊三個部分。鍵盤控制命令直連單片機,快速的實現測頻、測周期、測脈寬、測占空比及復位等功能的控制。該設計以FPGA系統(tǒng)外接的40MHz晶振作為標準頻率,單片機由外接的12MHz標準晶振提供時鐘電路。等精度測頻框圖如圖4.1所示。圖4.1等精度測頻系統(tǒng)框圖鍵盤接口電路本設計采用獨立式鍵盤,其一般應用在按鍵數量比較少的系統(tǒng)中。鍵盤控制命令由鍵盤掃描譯碼電路讀入,當有按鍵按下時向單片機發(fā)出中斷請求讀取鍵值。鍵盤譯碼電路的ky引腳接單片機的外部中斷0輸入引腳,用于向單片機發(fā)出中斷請求讀取鍵值。沒有按鍵按下時,鍵盤譯碼電路的ky為高電平;當有按鍵按下時,鍵盤掃描譯碼電路在確定不是干擾后,ky引腳變?yōu)榈碗娖?,向單片機發(fā)出中斷請求讀取鍵值,當按鍵撤銷后,ky恢復高電平。鍵盤譯碼電路的k[0..2]用于向單片機輸入鍵值。由于單片機讀取鍵值的操作是通過外部中斷引起的,這樣在沒有鍵按下時,CPU就不會執(zhí)行掃描程序,提高了CPU工作的效率。鍵盤接口電路如圖4.2所示。圖4.2鍵盤接口電路顯示電路LED顯示模塊發(fā)光二極管LED是一種通電后能發(fā)光的半導體器件,其導電性質與普通二極管類似。LED數碼顯示器就是由發(fā)光二極管組合而成的一種新型顯示器件。在單片機系統(tǒng)中應用非常普遍。LED數碼顯示器是一種由LED發(fā)光二極管組合顯示字符的顯示器件。它使用了8個LED發(fā)光二極管,其中7個用于顯示字符,1個用于顯示小數點。LED數碼顯示器有兩種連接方法:(1)共陽極接法。把發(fā)光二極管的陽極連在一起構成公共陽極,使用時公共陽極接+5V,每個發(fā)光二極管的陰極通過電阻與輸入端相連。當陰極端輸入低電平時,段發(fā)光二極管就導通點亮,而輸入高電平時則不點亮。(2)共陰極接法。把發(fā)光二極管的陰極連在一起構成公共陰極,使用時公共陰極接地。每個發(fā)光二極管的陽極通過電阻與輸入端相連。當陽極端輸入高電平時,段發(fā)光二極管就導通點亮,而輸入低電平時則不點亮。在本設計中所采用的是共陰極接法的LED數碼顯示器,其引腳排列如圖4.3所示:圖4.3LED數碼顯示管示意圖顯示模塊LED數碼管顯示電路采用八片首尾相連的74LS164鎖存器和8個LED數碼管顯示測試結果??紤]到提高單片機IO口的利用率,降低編程復雜性,提高單片機的計算速度以及降低數碼顯示器對主系統(tǒng)的干擾,采用串行靜態(tài)顯示方式。八片首尾相連的74LS164作為LED數碼管的靜態(tài)顯示鎖存器,芯片74LS164為TTL單向8位移位寄存器,可實現串行輸入,并行輸出。其中A、B(第1、2管腳)為串行數據輸入端,2個引腳按邏輯與運算規(guī)律輸入信號,公用一個輸入信號時可并接,本次設計中將其接到AT89C51的RxD端,CLK(第8管腳)為時鐘輸入端,連接到AT89C51的TxD端。每一個時鐘信號的上升沿加到CLK端時,移位寄存器移一位,8個時鐘脈沖過后,8位二進制數全部移入74LS164中。(第9管腳)為復位端,當=0時,移位寄存器各位復0,只有當=1時,時鐘脈沖才起作用。由于74LS164芯片輸出低電平時具有8mA的灌電流能力,在靜態(tài)顯示方式下足以保證顯示亮度。因為74LS164輸出沒有鎖存功能,所以在傳送信號時輸出端數碼管會有瞬間閃爍,但由于系統(tǒng)采用12HMz晶振,傳送波特率高達1M,且一次發(fā)送數據較少,故閃爍并不明顯[9]。表4-1是七段數碼管可以顯示的字符。表4-1七段數碼管可以顯示的字符字符b7b6b5b4b3b2b1b0共陰筆端碼0110000003FH11111100106H2101001005BH3101100004FH41001100166H5100100106DH6100000107DH71111100007H8100000007FH9100100006FHA1000100077HB100000117CHC1110011039HD101000015EHE1000011079HF1000111071Hp1000110073HH1000100176HY100100016EH不顯示1111111100H測量電路測量電路是由測頻與自校選擇模塊、脈寬控制模塊和測頻/測周期模塊組成。其中測頻與自校選擇模塊是在系統(tǒng)自檢時,將標準頻率作為被測頻率信號送給系統(tǒng),而在系統(tǒng)正常測量時,將被測信號送給系統(tǒng)。脈寬控制模塊和測頻/測周期模塊是根據按鍵鍵值共同控制選擇被測量。其中管腳Spul為脈寬和測頻/測周期的選擇輸入信號,由單片機根據需要發(fā)出。當Spul為高電平時,測頻/測周期模塊的32位計數器的輸入使能由D觸發(fā)器控制,其測量預置門控時間為被測信號周期的整數倍,此時計數值用來計算被測信號的頻率;當SPUL為低電平時,標準計數器的輸入使能由附加模塊的PL輸出來控制,測量門控時間為被測信號的一個正脈寬的時間或一個負脈寬的時間寬度,此時標準計數器的計數值用來測量被測信號的脈寬寬度。CLR為低電平時,計數器使能端BENA為低電平,測頻/測周期電路不工作,系統(tǒng)清零。Spul為1時,系統(tǒng)測量被測信號的頻率,當CL變?yōu)楦唠娖綍r,在隨后到來的TCLK的上升沿BENA及START引腳變?yōu)楦唠娖?,計數器開始計數;當CL變?yōu)榈碗娖綍r,在隨后到來的TCLK上升沿BENA變?yōu)榈碗娖?,計數器停止計數。同時START引腳變?yōu)榈碗娖接靡酝ㄖ獑纹瑱C計數結束。在單片機發(fā)出的sel2~sel0控制下通過data7~data0分8次將計數器的計數值讀入單片機[8]。測量電路原理圖如圖4.4所示,測量電路波形圖如圖4.5所示。圖4.4測量電路原理圖圖4.5測量電路波形圖測量與自校選擇電路測頻與自校選擇電路采用的是圖形輸入方式,其原理圖如圖4.6所示。As為自校與測頻選擇,接單片機的P2.7引腳,FX接標準頻率輸入,FS接被測頻率輸入。測頻與自校選擇電路用于系統(tǒng)自檢,當as為高電平時,系統(tǒng)自檢開始,FOUT輸出標準頻率BCLK,將標準頻率作為被測頻率進行測量,根據測量結果來判斷系統(tǒng)運行是否正常;當as為低電平時,系統(tǒng)自檢結束,FOUT輸出被測頻率TCLK。標準頻率取自FPGA的外部晶振。選擇控制信號as為高電平時,輸出端為BCLK;as為低電平時,輸出端為TCLK。測頻與自校選擇電路波形圖如圖4.7所示。圖4.6測頻與自校選擇電路原理圖圖4.7測頻與自校選擇電路波形圖測頻/測周電路測頻原理圖如圖4.8所示。測頻/測周期電路是由兩個32位計數器、一個D觸發(fā)器和一片MUX64-8選擇器組成。BCLK管腳為標準頻率信號的輸入引腳,TCLK管腳為被測頻率信號的輸入引腳;CL管腳為預置門控信號輸入引腳;CLR為計數器清零信號輸入引腳,每次新的測量開始時都要將計數器清零,以免產生錯誤;sel2~sel0管腳為單片機讀入數據時的數據選擇信號輸入,以便單片機分八次將兩個32位計數器的計數值讀入。圖4.8等精度測頻原理圖當系統(tǒng)開始測量被測信號的頻率時,首先由單片機將CLR端置為高電平,完成測試電路的初始化。接下來,單片機將門控信號CL置為高電平,由被測信號的上升沿將兩個計數器同時打開,對被測頻率和標準頻率同時進行計數。門控時間結束后,單片機將門控信號CL置為低電平,在被測信號的下一個脈沖的上升沿到來時,兩個計數器將同時停止工作。計數結束后,由START端輸出的低電平來指示計數的結束,通過sel信號和MUX64-8多路選擇器將計數器中得到的64位數據分8次讀入單片機并按下式計算和結果顯示。設標準信號的頻率為Fs,被測信號的頻率為Fx,在一次預置門控時間內,對被測信號的計數器為Nx,對標準信號的計數值為Ns,則下式成立:(4-1)兩計數器的計數周期總是等于被測信號TCLK周期的整數倍,這是確保TCLK在任何頻率下測頻結果都能保持恒定精度的關鍵。測頻模塊的波形圖如圖4.9所示,CLR為低電平時,計數器使能端BENA為低電平,測頻電路不工作。當CLR和CL均為高電平后,在隨后到來的TCLK上升沿使BENA變?yōu)楦唠娖?,計數器開始計數;當CL便為低電平后,在隨后到來的TCLK上升沿使BENA變?yōu)榈碗娖剑嫈灯魍V褂嫈?,同時START引腳變?yōu)榈碗娖?,通知單片機計數已結束。在單片機發(fā)出的sel2~sel0控制下通過data7~data0分8次將計數器的計數值讀入單片機。圖4.9測頻模塊的波形圖脈寬控制電路脈寬控制電路原理圖如圖4.10所示。該電路采用的是圖形輸入法。CL為單片機發(fā)出的預置門控信號,CLR為單片機發(fā)出的復位信號,TCLK為被測信號的輸入,1引腳始終接高電平。輸出引腳PL有兩個作用:一是在某些情況下作為標準頻率計數器的使能控制信號;二是作為計數器計數結束信號通知單片機讀取數據。CLR為低電平時,輸出PL為低電平,CL與SPUL聯合控制實現其功能。CL=0時,PL輸出一個寬度為被測信號負脈沖的脈沖;CL=1時,PL輸出一個寬度為被測信號正脈沖的脈沖。此脈沖作為計數器的計數使能信號,控制計數的起止。當計數結束后,由PL輸出的計數結束信號(低電平)通知單片機讀取數據。圖4.10脈寬控制電路原理圖脈寬控制電路波形圖如圖4.11所示,其中1引腳始終為高電平,當CL為高電平時,PL引腳輸出寬度TCLK高(正)脈沖寬度的脈沖;CL為低電平時,PL輸出寬度為TCLK低(負)脈沖寬度的脈沖。圖4.11脈寬控制電路波形圖硬件電路的VHDL語言描述D觸發(fā)器D觸發(fā)器是現代數字系統(tǒng)中最基本的時序單元和低層元件,許多功能電路都有其構成,D觸發(fā)器因不同的應用場合的設計是十分必要的。本設計中的D觸發(fā)器為帶有異步清零功能的D觸發(fā)器。當復位信號RESET為低電平時,D觸發(fā)器的輸出端Q和Qb分別輸出邏輯0和1,與其他輸出無關。當復位信號RESET為高電平時,每當時鐘輸入CLK有一個上升沿時,輸出端Q便轉換為與輸入信號D相同的邏輯值,輸出端Qb的值始終與Q端相反。D觸發(fā)器真值表如表4-2所示:表4-2D觸發(fā)器真值表RESETDCLKQQb0X↑011X↑X其工作波形如圖4.12所示:圖4.12D觸發(fā)器工作波形圖D觸發(fā)器邏輯符號如圖4.13所示:圖4.13D觸發(fā)器邏輯符號圖D觸發(fā)器硬件描述語言VHDL語言描述見附錄C(1)。32位計數器計數器就是指能夠記憶時鐘信號脈沖個數的時序邏輯電路,它是數字電路中應用極其廣泛的一種基本邏輯單元,不僅能用于對時鐘脈沖計數,還可以用于分頻、定時、產生節(jié)拍脈沖和脈沖序列以及進行數字運算等。本設計用到的兩個32位計數器分別用于計標準頻率信號和被測頻率信號的周期數。計數器是以二進制數據的形式計數,由于標準頻率信號的頻率為40MHz,為了提高測量精度,因此將計數器的位數設為32位。在計數器使能端ENA為高電平有效的情況下,每當被測頻率信號CLR有一個上升沿到達時,計數器的值便加1,直至使能端ENA變?yōu)榈碗娖?。CLR信號為低電平時,計數器的值清零。Q[31..0]顯示的數值即為計數器的計數值,Q[31..0]引腳的作用是將計數器的值送到MUX64-8多路選擇器以便單片機將計數值讀入。32位計數器工作波形圖如圖4.14所示:圖4.1432位計數器工作波形圖32位計數器的邏輯符號如圖4.15所示:圖4.1532位計數器的邏輯符號32位計數器的硬件描述語言VHDL語言描述見附錄C(2)。MUX64-8多路選擇器因為單片機的數據總線有限,不可能一次性將兩個計數器的值讀入。MUX64-8多路選擇器的作用就是將兩個計數器的64位計數值暫時存儲,然后在單片機發(fā)出的選擇信號sel2~sel0的控制下分8次將計數值讀入。MUX64-8多路選擇器的波形圖如圖4.16所示:圖4.16MUX64-8多路選擇器的波形圖MUX64-8多路選擇器的邏輯符號圖如圖4.17所示:圖4.17MUX64-8多路選擇器的邏輯符號圖MUX64-8多路選擇器硬件描述語言VHDL語言描述見附錄C(3)。MUX2-1選擇器MUX2-1選擇器芯片的功能是在選擇信號S的控制下輸出端Z輸出不同的信號。當S為邏輯1時輸出端與輸入信號B相同,當S為邏輯0時,輸出信號Z與輸入信號A相同,其工作波形圖如圖4.18所示。MUX2-1選擇器硬件描述語言VHDL描述語言見附錄C(4)。圖4.18MUX2-1選擇器工作波形圖時鐘發(fā)生器時鐘發(fā)生器即分頻器,它的作用是將頻率較高的信號轉換為用戶所需的低頻信號,實質就是一個計數器。每當輸入時鐘的上升沿到達時,計數器的值CNT便加1,在計數器計數值為一半時輸出信號取反,當計數器計數滿時輸出信號再次取反,計數器每計數滿一次就是用戶所需低頻信號的一個周期。時鐘發(fā)生器的波形圖如圖4.19所示。圖4.19時鐘發(fā)生器的波形圖時鐘發(fā)生器硬件描述語言VHDL語言描述見附錄C(5)。單片機主控電路單片機測頻控制電路附錄圖所示,由單片機控制FPGA完成整個系統(tǒng)的電路測試、數據處理和顯示輸出等各種功能。單片機引腳分配如下:⑴sel2~sel0:單片機的數據總線為8位,但是系統(tǒng)的兩個計數器的總位數為64位,因此單片機需要分8次將計數器的結果讀入。sel[2..0]引腳的作用就是控制多路通道的數據選擇。當sel分別為“000”、“001”、“010”、“011”時,由低8位到高8位讀取標準頻率計數值;當sel分別為“100”、“101”、“110”、“111”時,由低8位到高8位讀取被測頻率計數值。sel2~sel0分別接單片機P2口的2、3、4引腳。⑵spul:此引腳的作用是控制系統(tǒng)選擇測頻或測脈寬,spul接單片機P2.6引腳控制。當spul=0時,測脈寬;spul=1時,等精度測頻。⑶clr:系統(tǒng)全清零功能,高電平有效。每一測頻周期開始時,都應該首先清零。由單片機的P2.1口控制。⑷start:計數結束信號,用來通知單片機計數器計數結束,此信號接單片機外部中斷1(INT1)輸入引腳。⑸cl:cl和spul協(xié)同控制操作。即當spul為‘1’時,cl作為預置門控信號,用于測頻計數的時間控制(本設計取0.5秒);當spul為‘0’時,cl作為測脈寬控制信號。這時,cl若為‘1’,測TCLK的高電平脈寬,而當cl為‘0’時,則測TCLK的低電平脈寬。然后分別從data7~data0數據口讀出BZH對標準頻率的計數,即只需令sel的取值分別為“000”、“001”、“”010、“011”即可。⑹k[0..2]:鍵盤譯碼,接單片機的P1[0..2]。⑺ky:按鍵標志信號,用來通知單片機有鍵按下。接單片機的外部中斷0(INT0)輸入引腳。⑻data7~data0:單片機與FPGA之間的數據總線,負責讀取測頻數據,接單片機P0口。⑼as:測頻與自校選擇控制,接單片機P2.7口。as=0時用于自校;as=1適用于測頻。軟件設計單片機主程序單片機主程序流程圖如圖5.1所示。系統(tǒng)上電后,單片機內部首先開始執(zhí)行的是復位自檢程序。自檢程序結束后,如果系統(tǒng)正常,則8片LED顯示“88888888”,否則顯示“--------”,等待用戶檢修。在自檢正常后,系統(tǒng)就開始無限循環(huán)等待有鍵按下進行測量。圖5.1主程序流程圖復位自檢程序因為器件的不足,在本系統(tǒng)中沒有設硬件復位電路,采用的是軟件復位。當復位鍵按下后就開始執(zhí)行此程序。首先是對系統(tǒng)進行初始化,此部分包括對各個控制信號初值的設置、各個特殊寄存器的初值設置以及定時器、串行口的初始化等等。在進行初始化攝制完畢以后就開始進行自檢。自檢結束后,如果系統(tǒng)正常則8片LED顯示“88888888”,否則顯示“--------”,等待用戶自修。在自檢正常以后單片機便繼續(xù)執(zhí)行下面的程序。復位自檢程序流程圖如圖5.2所示。圖5.2復位自檢程序流程圖鍵盤程序鍵盤主要的作用有:對鍵盤進行防抖動的處理,當有鍵按下時將其轉換為相對應的鍵值,在確認有鍵按下并且不是干擾后向單片機發(fā)出讀取鍵值的請求。本設計采用的是軟件防抖方法。當第一次檢測到有鍵按下時,先用軟件延時10ms,而后再確認該鍵電平是否仍維持閉合狀態(tài)電平。若保持閉合狀態(tài)電平,則確認此鍵確已按下,從而消除了抖動的影響。鍵值讀取是通過中斷來實現的。外部有鍵按下時且有效時是通過外部中斷0請求,來通知單片機讀取鍵值。單片機讀取并判斷鍵值,根據鍵值的不同調用不同功能的模塊,從而實現不同的功能。鍵盤程序的流程圖如圖5.3所示。圖5.3鍵盤程序流程圖測頻子程序測頻子程序的流程圖如圖5.4所示。測頻子程序先置測頻控制位CLR(P2.1)將FPGA內的計數器清零,然后通過鍵盤將預置門CL的時間值讀入單片機,打開預置門CL進行測頻計數,等預置門CL時間到后,關斷預置門CL,FPGA關斷預置門CL后將給單片機一個結束信號,單片機讀到結束信號后,通過SEL的不同值分8次將測頻結果的64位數據讀入單片機,計算后將結果轉換為BCD碼送LED顯示輸出。圖5.4測頻子程序流程圖測周期子程序首先先來了解一下周期測量原理。我們知道,周期為頻率的倒數,因此完全可以利用頻率測量原理來測量信號周期,只要把相應的公式改動一下。公式如下:(5-1)其中Tx為被測頻率信號的周期個數,Nx為被測頻率信號的計數值,Ns為標準信號的計數值,Fs為標準信號的頻率。測周期時只要把計算結果由頻率值取倒轉換為周期值即可。測脈寬子程序脈寬的測量子程序與周期測量子程序基本一致,只是脈寬測量是在被測信號的脈寬內對標準頻率進行計數,所以FPGA內要有對上下沿的處理過程,而且技術結果為一組數據,不像測頻和測周期一樣同時對被測信號和標準信號進行計數。占空比子程序占空比子程序是在脈沖子程序的基礎上,先對一個脈寬進行計數,測得計數值為N1,然后將輸入信號反相,再測其脈沖寬度,測得計數值為N2,則可以計算出:占空比=(5-2)占空比測量程序是本設計中的一個重要的功能,當調用占空比程序時就開始實現本功能。此程序首先將脈寬高低控制位置1,然后調用脈寬測量程序,測出被測信號的高電平脈寬寬度并讀取計數器計數值;然后將脈寬控制位置0,測出被測信號低電平脈寬寬度并讀取計數器計數值,占空比測量結束。占空比測量程序流程圖如圖5.5所示。顯示子程序此次設計采用8位LED顯示,LED顯示器工作在靜態(tài)方式,通過74LS164與單片機相連。進入顯示子程序后,首先要從顯示緩沖區(qū)取數,然后送段選碼,位選碼進行顯示,等待八位都顯示結束后便結束此子程序。圖5.5占空比測量程序流程圖圖5.6顯示子程序流程圖系統(tǒng)性能分析任何儀器設備都會有測量范圍限制和測量精度問題的考慮,二者是相互影響,并且與很多因素相關。下面就針對于這兩個方面進行簡單的分析。占空比子程序本設計中影響測量范圍的因素主要有標準頻率信號的頻率、顯示電路和門控時間。下面具體對測量范圍進行分析(被測信號與標準信號均不進行分頻和倍頻處理)。低端頻率本設計中所采用的標準頻率信號頻率為40MHz,七段LED顯示位數為6位十進制數據。決定低端頻率信號的是計數器的最大計數值,因為測量時間為被測信號周期的整數倍,本設計采用的計數器時32位二進制計數器,其最大計數值為232,即為4294967296,由測頻公式:(6-1)由公式可知,當Nx為1,Ns為最大值,即4294967296時,被測信號的頻率為低端頻率,此時Fx小于0.01,因此此設計的低端頻率信號理論上可達到0.01Hz。其中Fx為被測信號的測量頻率,Fs為標準信號的頻率,Nx為被測信號計數器的計數器,Ns為標準信號計數器的計數器。高端頻率由測頻公式(6-1)由公式可知,影響測量信號高端頻率值的主要因素是測量精度問題的考慮,假設系統(tǒng)設定門控時間為1s,此時影響測量精度的因素只有標準頻率信號自身的頻率及被測信號的頻率大小。當被測信號頻率小于標準信號頻率時,測量精度不變;當被測信號頻率大于標準信號頻率時,測量精度隨著被測信號頻率值的增加而下降。因此,在理論上被測信號的高端頻率與標準信號的頻率相同,即為40MHz。頻率測量精度分析由第一部分所述測量原理可知,系統(tǒng)的測頻公式為:(6-1)其誤差分析如下:設所測頻率值為Fx,其真值為Fxe,標準頻率為Fs。在一次測量中,由于Fx計數的起停時間都是由該信號的上升沿觸發(fā)的,在Tpr時間內對Fx的計數Nx無誤差;在此時間內Fs的計數Ns最多相差一個脈沖,即|△et|≤1,則下式成立:(6-2)(6-3)所以有:(6-4)根據相對誤差公式有:(6-5)代入整理得:(6-6)又因為:|△et|≤1所以:|△et|/Ns≤1/Ns(6-7)即:|δ|=(6-8)其中:(6-9)由以上推導結果可得出下面結論:(1)相對測量誤差與被測頻率無關,而只與Ns有關。(2)增大Tpr或提高Fs,可以增大Ns,降低測量誤差。當Ns足夠大,則可以保證相對誤差足夠小,進而提高測量精度。(3)標準頻率誤差為△Fs/Fs,由于設計時使用的晶振的穩(wěn)定度很高,標準頻率誤差可以進行校準。(4)等精度測頻方法測量精度與預置門寬度和標準頻率有關,與被測信號的頻率無關。在預置門控信號持續(xù)時間不變的情況下,無論被測信號頻率是否發(fā)生變化,等精度測頻方法的測量精度不變。結論經過幾個月的設計,終于完成了本次設計。在老師的指導和同學的幫助下,按時完成了此次設計任務。整個設計過程可分為前期的資料查詢、相關知識的學習、文獻綜述的編寫,中期設計整體的框架、軟硬件設計,后期的調試及畢業(yè)論文的編寫三個階段。前期的工作為中后期設計方案的選定及軟硬件的設計奠定了一定的基礎,為論文的編寫鋪好了道路。中期的軟硬件設計是整個設計過程中最關鍵的階段。后期的硬件調試是對前面所做的所有工作的驗證,畢業(yè)論文的編寫是對整個設計的總結。我的設計課題是基于單片機和FPGA的等精度頻率計的設計單片機部分。等精度頻率計的特點是在整個測量頻段內的測量精度是相同的,與被測信號頻率的大小無關。本設計采用AT89C51單片機和可編程芯片FPGA相結合,縮短了開發(fā)研制周期,使系統(tǒng)具有結構緊湊、體積小、可靠性高、測頻范圍寬、精度高等優(yōu)點。采用AT89C51單片機來實現功能鍵的控制、數據的運算、碼制的轉換、數據的顯示等功能,完成了頻率計的系統(tǒng)硬件電路的設計;采用可編程芯片FPGA實現計數的功能;對頻率計的軟硬件進行了調試和試驗,給出了頻率測量的結果,分析了測量的精度。論文分為6章,介紹了基于單片機和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論