等精度測頻論畢業(yè)論文.doc_第1頁
等精度測頻論畢業(yè)論文.doc_第2頁
等精度測頻論畢業(yè)論文.doc_第3頁
等精度測頻論畢業(yè)論文.doc_第4頁
等精度測頻論畢業(yè)論文.doc_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘 要頻率 是 電 子 技 術(shù)領(lǐng)域內(nèi)的一個基本參數(shù),同時也是一個非常重要的參數(shù)。穩(wěn)定的時鐘在高性能電子系統(tǒng)中有著舉足輕重的作用,直接決定系統(tǒng)性能的優(yōu)劣。隨著電子技術(shù)的發(fā)展,測頻系統(tǒng)使用時鐘的提高,測頻技術(shù)有了相當大的發(fā)展,但不管是何種測頻方法,士1個計數(shù)誤差始終是限制測頻精度進一步提高的一個重要因素。本 設(shè)計采用等精度頻率設(shè)計原理和8051軟核做微處理器。通過分析士1個計數(shù)誤差的來源得出了一種新的測頻方法:檢測被測信號,時基信號的相位,當相位同步時開始計數(shù),相位再次同步時停止計數(shù),通過相位同步來消除計數(shù)誤差,然后再通過運算得到實際頻率的大小。充分利用8051軟核簡化外圍電路及降低系統(tǒng)設(shè)計的復(fù)雜度。采用VHDL語言,成功的編寫出了設(shè)計程序,并在Qutus II軟件環(huán)境中,對編寫的VHDL程序進行了仿真,得到了很好的效果。最,給出了較詳細的設(shè)計方法和完整的程序設(shè)計以及調(diào)試結(jié)果。關(guān)鍵詞:EDA、FPGA、全同步、數(shù)字頻率計、VHDL語言、8051ABSTRACTFrequency is a basic parameter of elcetornics field,meanwhile,itsaverimportant Param ete.Stable clock is very important in high electronics syetem.determining the syetem perfermance directly.With the development of technology of electronics,the frequency measurement System using higher clock,the frequency measurement technology has very nice development .In despite of using all other advanced ftequency measurement methods,the Positive and negativel errors was a very important factor that stop frequency measurement precision improving all through. This design uses the design principle and the frequency of such precision 8051 soft nuclear do microprocessors.Through analyzing the origin of the Positive and negative got a new frequency measurement methods: checkingt measured and standard signals Phase,if the Phase is synchronous.then the counters start counting when the signals Phase is synchronous again. The counters to stopping workingby Phase in一Phase to eliminate counting erors,then getting the real frequency through calculating. Make full use of the 8051 soft IP simplified peripheral circuit and reduce the complexity of the system design. the design of complete digital cymometer was successful using VHDL language, successful writing out design program, and in Qutus II software environment ,and procedures obtained good effect. The detail is presented, the design method and program design and commissioning of full results.Keywords:EDA、FPGA、Complete ln-phase、DigtaICymomcter、VHDL、8051目 錄摘 要IABSTRACTIII緒 論1第一章 系統(tǒng)分析與方案論證3第二章 微處理器的簡介52.1 FPGA簡介52.1.1 FPGA的工作原理52.1.2 FPGA配置模式62.2 8051單片機IP軟核應(yīng)用系統(tǒng)構(gòu)建72.2.1 8051單片機IP軟核應(yīng)用系統(tǒng)構(gòu)建72.2.2 K8051單片機軟核基本功能和結(jié)構(gòu)7第三章 頻率計的工作原理113.1測頻原理介紹113.2測周原理13第四章 系統(tǒng)硬件的設(shè)計與實現(xiàn)144.1 系統(tǒng)的整體框圖144.2 K8051單片機軟核實用系統(tǒng)構(gòu)建和軟件測試144.3 測頻模塊的設(shè)計及調(diào)試15第五章 系統(tǒng)軟件設(shè)計225.1 系統(tǒng)軟件總體設(shè)計225.2 測頻及測周程序設(shè)計225.3 顯示程序設(shè)計24第六章 系統(tǒng)整體調(diào)試25結(jié)束語26致 謝27參考文獻28附錄29附件1.總體硬件圖29附件2 單片機控制程序30緒 論隨著 數(shù) 字 電路應(yīng)用越來越廣泛,傳統(tǒng)的通用數(shù)字集成電路芯片已經(jīng)很難滿足系統(tǒng)功能的要求,而且隨著系統(tǒng)復(fù)雜程度的不斷增加,所需通用集成電路的數(shù)量呈爆炸性增長,使得電路板的體積迅速膨脹,系統(tǒng)可靠性難以保證。此外,現(xiàn)代電子產(chǎn)品的生命周期都很短,一個電路可能要在很短的時間內(nèi)作改進以滿足新的功能要求,對于通用集成電路來說則意味著重新設(shè)計和重新布線。而可編程邏輯器件克服了上述缺點,它把通用集成電路通過編程集成到一塊尺寸很小的硅片上,成倍縮小了電路的體積,同時由于走線短,減少了干擾,提高了系統(tǒng)的可靠性,又由于VHDL語言和verilog語言易于掌握與使用,設(shè)計相當靈活,極大地縮短了產(chǎn)品的開發(fā)周期。本設(shè)計在FPCA技術(shù)越來越成熟,應(yīng)用越來越廣泛的情況下,使用成熟的FPGA技術(shù)來實現(xiàn)目前還不是很成熟的全同步數(shù)字頻率計。此設(shè)計具有重要的研究價值。由于 社 會 發(fā)展和科技發(fā)展的需要,信息傳輸和處理的要求的提高,對頻率的測量精度也提出了更高的要求,需要更高準確度的時頻基準和更精密的測量技術(shù)。而頻率測量所能達到的精度,主要取決于作為標準頻率源的精度以及所使用的測量設(shè)備和測量方法。目前,國內(nèi)外使用的測頻的方法有很多,有直接測頻法、內(nèi)插法、游標法、時間一電壓變化法、事周期同步法、頗率倍增法、頗籌倍增注以及相橋比較法等等。直接測頻的方法較簡單,但精度不高。內(nèi)插法和游標法都是采用模擬的方法,雖然精度提高了,但是電路設(shè)計卻很復(fù)雜時間一電壓變化法是利用電容的充放電時間進行測量,由于經(jīng)過A/D轉(zhuǎn)換,速度較慢,且抗干擾能力較弱。多周期同步法精度較高的一種。為了進一步的提高精度,通常采用模擬內(nèi)插法或游標法與多周期同步法結(jié)合使用,雖然精度有了進一步的提高,但始終未解決士1個字的計數(shù)誤差,而且這些方法設(shè)備復(fù)雜,不利于推廣。頻率誤差倍增法可以減小計數(shù)器的士1個字的誤差,提高測量精度。但用這種方法來提高測量精度是有限的,因為如要得到2x10-13一招的測量精度,就要把被測頻率倍頻到=1/2Hz=5000MHz,這無論是對倍頻技術(shù),還是對目前的計數(shù)器都是很難實現(xiàn)的。頻差倍增一多周期法是一種頻差倍增法和差拍法相結(jié)合的測量方法。這種方法是將被測信號和參考信號經(jīng)經(jīng)頻差倍增使被測信號的相位起伏擴大,在通過混頻器獲得差拍信號,用電子計數(shù)器在低頻下進行多周期測量,能在較少的倍增次數(shù)和同樣的取樣時間情況下,得到比測頻法更高的系統(tǒng)分辨率和測量精度。但是仍然存在著時標不穩(wěn)而引入的誤差和一定的觸發(fā)誤差。以上只是對現(xiàn)存的幾種主要的測頻方法的概述,很顯然從以上的分析中知道: 不同的測頻方法在不同的應(yīng)用條件下是具有一定的優(yōu)勢的,而在本論文中,我主要在多周期同步法的基礎(chǔ)上,采用了全同步的測頻方法。主要是消除了士1個字的對時標信號的計數(shù)誤差,而且在FPGA/CPLD芯片上實現(xiàn),具有很大的優(yōu)勢.總之 , 頻 率(時間)測量技術(shù)發(fā)展非???在頻標方面,一方面是追求新的更高穩(wěn)定度和準確度的新型頻標,據(jù)報道,實驗室中做出頻率準確度優(yōu)于1丁3的頻標。一方面是提供便于工業(yè)、科研應(yīng)用的商品化頻標,如小艷鐘、鉚頻標、新型高穩(wěn)定度晶體振蕩器等這些工作多在計量研究與工業(yè)部門進行。大量的工作在改進、創(chuàng)造新的測頻原理、方法和儀器,以便以更高的精度、速度,自動進行測量和數(shù)據(jù)處理,并向多功能、小型化、高性價比方向發(fā)展。在提高測頻精度方面,值得特別提出的有全同步取樣技術(shù)和可校準通用電子計數(shù)器技術(shù),它們使測頻精度提高到一個新的水平。本文正是介紹了基于FPGA和8051軟核單片機,利用EDA技術(shù)開發(fā)的等精度頻率計。第一章 系統(tǒng)分析與方案論證頻率 是 電 子技術(shù)領(lǐng)域永恒的話題,電子技術(shù)領(lǐng)域離不開頻率,一旦離開頻率電子技術(shù)的發(fā)展是不可想象的,就像現(xiàn)在的人離不開電一樣。為了得到性能更好的電子系統(tǒng),科研人員在不斷地研究著頻率,CPU就是用頻率的高低來評價其性能好壞,速度的高低,可見頻率在電子系統(tǒng)中是多么重要.如何才能知道頻率的數(shù)值呢?當然是用頻率計來測量。為了準確的測出頻率的多少,人們研究出了很多測頻率的方法。根據(jù)測頻工作原理可將頻率測量方法分成以下幾類:一、 是 利 用電路的某種頻率響應(yīng)特性來測量頻率,諧振測頻法和電橋測頻法是這類測量方法的典型代表:前者常用于低頻段的測量,后者主要用于高頻或微波頻段的測量。諧振法的優(yōu)點是體積小、重要輕、不要求電源等,目前仍獲得廣泛應(yīng)用。二 、是 利 用標準頻率與被測頻率進行比較來測量頻率,采用比較法測量頻率,其準確度取決于標準頻率的準確度。拍頻法、示波器法以及差頻法等均屬此類方法。拍頻法和示波器法主要用于低頻段的測量,差頻法則用于高頻段的頻率測量,它的顯著優(yōu)點是測試靈敏度高。以上 兩 種 方法適合于模擬電路中實現(xiàn),但是模擬電路沒有數(shù)字電路穩(wěn)定,因此數(shù)字電路出現(xiàn)后,馬上就出現(xiàn)了數(shù)字頻率計。目前廣泛使用的計數(shù)測頻法則適合于數(shù)字電路實現(xiàn)。該方法是根據(jù)頻率的定義,記下單位時間內(nèi)周期信號的重復(fù)次數(shù),因此又稱為電子計數(shù)器測頻法。常用 數(shù) 字 頻率測量方法有H法,T法和M/T 法。M法是在給定的閘門時間內(nèi),測量被測信號的脈沖個數(shù)再進行換算得出被測信號的頻率,其測量精度取決于閘門時間的準確度和被測信號頻率。當被測信號頻率較低時將產(chǎn)生較大誤差,除非閘門時間取得很大。T法是通過測量被測信號的周期,然后換算得出被測信號的頻率。其測量精度取決于被測信號的周期和計時精度,測信號頻率較高時,對計時精度的要求就很高。幼/T法具有以上2種方法的優(yōu)點,當他通過測量被測信號數(shù)個周期的計數(shù)次數(shù),然后換算得出被測信號的頻率,可兼顧低頻與高頻信號,提高了測量精度。但是,M法,T法和M/T 法都存在士1計數(shù)誤差問題。M法在規(guī)定閘門時間內(nèi)存在士1個被測信號的脈沖計數(shù)誤差,T法或M/T 法也存在士1個字的計時誤差。這個問題成為限制測量精度提高的一個重要原因。本設(shè)計在研究總結(jié)上述方法的基礎(chǔ)上,得出了一種新的頻率測量方法,該方法利用相位全同步方法消除限制測量精度提高的士1個數(shù)字誤差問題,從而使頻率測量的精度和性能大為改善。然 而一 種 新的方法的實際應(yīng)用比提出來更難,要考慮各種可能的問題,首先就是由于采用的新的設(shè)計方法使得電路的復(fù)雜程度成倍增加,因此如果還采用傳統(tǒng)數(shù)字電路來實現(xiàn)則將使PCB板面積變得異常龐大與復(fù)雜。信號走線長,導(dǎo)致系統(tǒng)誤差增大,難以提高系統(tǒng)的工作頻率,此外,PCB板的集成度不高還將導(dǎo)致高頻信號容易受到外界的干擾,反而可能降低測頻精度。由于可編程邏輯器件能很好地克服了以上缺點,大大提高系統(tǒng)時鐘,因此本設(shè)計將介紹由現(xiàn)場可編程邏輯器件(FPGA) 來實現(xiàn)全同步數(shù)字頻率計,本設(shè)計除了相位檢測電路不在可編程電路之中,其余的電路都集成在可編程邏輯器件中。本設(shè) 計 消 除了土1誤差,但由于相位檢測電路不可避免有誤差,系統(tǒng)誤差不可避免,因此,全同步數(shù)字頻率計的主要問題是如何減小相位檢測電路的誤差以及提高標準時基晶振的穩(wěn)定性。本設(shè)計使用著名的ALTERA公司的軟件平臺Qutus II并采用VHDL語言來設(shè)計實現(xiàn)。采用8051單片機IP軟核控制器控制頻率測量模塊并計算和顯示頻率值。并且去掉了傳統(tǒng)的AT89C51微控制器,大大簡化了外圍電路。第二章 微處理器的簡介 2.1 FPGA簡介FPGA(FieldProgrammable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。目前以硬件描述語言(Verilog 或 VHDL)所完成的電路設(shè)計,可以經(jīng)過簡 單的綜合與布局,快速的燒錄至 FPGA 上進行測試,是現(xiàn)代 IC 設(shè)計驗證的技術(shù)主流。這些可編輯元件可以被用來實現(xiàn)一些基本的邏輯門電路(比如AND、OR、XOR、NOT)或者更復(fù)雜一些的組合功能比如解碼器或數(shù)學(xué)方程式。在大多數(shù)的FPGA里面,這些可編輯的元件里也包含記憶元件例如觸發(fā)器(Flipflop)或者其他更加完整的記憶塊。 系統(tǒng)設(shè)計師可以根據(jù)需要通過可編輯的連接把FPGA內(nèi)部的邏輯塊連接起來,就好像一個電路試驗板被放在了一個芯片里。一個出廠后的成品FPGA的邏輯塊和連接可以按照設(shè)計者而改變,所以FPGA可以完成所需要的邏輯功能。 FPGA一般來說比ASIC(專用集成芯片)的速度要慢,無法完成復(fù)雜的設(shè)計,而且消耗更多的電能。但是他們也有很多的優(yōu)點比如可以快速成品,可以被修改來改正程序中的錯誤和更便宜的造價。廠商也可能會提供便宜的但是編輯能力差的FPGA。因為這些芯片有比較差的可編輯能力,所以這些設(shè)計的開發(fā)是在普通的FPGA上完成的,然后將設(shè)計轉(zhuǎn)移到一個類似于ASIC的芯片上。另外一種方法是用CPLD(復(fù)雜可編程邏輯器件備)。早在1980年代中期,F(xiàn)PGA已經(jīng)在PLD設(shè)備中扎根。CPLD和FPGA包括了一些相對大數(shù)量的可以編輯邏輯單元。CPLD邏輯門的密度在幾千到幾萬個邏輯單元之間,而FPGA通常是在幾萬到幾百萬。 CPLD和FPGA的主要區(qū)別是他們的系統(tǒng)結(jié)構(gòu)。CPLD是一個有點限制性的結(jié)構(gòu)。這個結(jié)構(gòu)由一個或者多個可編輯的結(jié)果之和的邏輯組列和一些相對少量的鎖定的寄存器。這樣的結(jié)果是缺乏編輯靈活性,但是卻有可以預(yù)計的延遲時間和邏輯單元對連接單元高比率的優(yōu)點。而FPGA卻是有很多的連接單元,這樣雖然讓它可以更加靈活的編輯,但是結(jié)構(gòu)卻復(fù)雜的多。 CPLD和FPGA另外一個區(qū)別是大多數(shù)的FPGA含有高層次的內(nèi)置模塊(比如加法器和乘法器)和內(nèi)置的記憶體。一個因此有關(guān)的重要區(qū)別是很多新的FPGA支持完全的或者部分的系統(tǒng)內(nèi)重新配置。允許他們的設(shè)計隨著系統(tǒng)升級或者動態(tài)重新配置而改變。一些FPGA可以讓設(shè)備的一部分重新編輯而其他部分繼續(xù)正常運行。2.1.1 FPGA的工作原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點主要有: 1)采用FPGA設(shè)計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。 4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用最低、風險最小的器件之一。 5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。 可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。 FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。 加電時,F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程器即可。當需要修改FPGA功能時,只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。2.1.2 FPGA配置模式FPGA有多種配置模式:并行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式可以支持一片PROM編程多片F(xiàn)PGA;串行模式可以采用串行PROM編程FPGA外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對其編程。如何實現(xiàn)快速的時序收斂、降低功耗和成本、優(yōu)化時鐘管理并降低FPGA與PCB并行設(shè)計的復(fù)雜性等問題,一直是采用FPGA的系統(tǒng)設(shè)計工程師需要考慮的關(guān)鍵問題。如今,隨著FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向發(fā)展,系統(tǒng)設(shè)計工程師在從這些優(yōu)異性能獲益的同時,不得不面對由于FPGA前所未有的性能和能力水平而帶來的新的設(shè)計挑戰(zhàn)。 例如,領(lǐng)先FPGA廠商Xilinx最近推出的Virtex-5系列采用65nm工藝,可提供高達33萬個邏輯單元、1,200個I/O和大量硬IP塊。超大容量和密度使復(fù)雜的布線變得更加不可預(yù)測,由此帶來更嚴重的時序收斂問題。此外,針對不同應(yīng)用而集成的更多數(shù)量的邏輯功能、DSP、嵌入式處理和接口模塊,也讓時鐘管理和電壓分配問題變得更加困難。 幸運地是,F(xiàn)PGA廠商、EDA工具供應(yīng)商正在通力合作解決65nm FPGA獨特的設(shè)計挑戰(zhàn)。不久以前,Synplicity與Xilinx宣布成立超大容量時序收斂聯(lián)合工作小組,旨在最大程度幫助地系統(tǒng)設(shè)計工程師以更快、更高效的方式應(yīng)用65nm FPGA器件。設(shè)計軟件供應(yīng)商Magma推出的綜合工具Blast FPGA能幫助建立優(yōu)化的布局,加快時序的收斂。最近FPGA的配置方式已經(jīng)多元化!本系統(tǒng)選用EP2C5TP144C8芯片。 2.2 8051單片機IP軟核應(yīng)用系統(tǒng)構(gòu)建2.2.1 8051單片機IP軟核應(yīng)用系統(tǒng)構(gòu)建MCS51系列單片機的CPU也屬于CISC CPU。本節(jié)將介紹與此系列單片機完全兼容的K8051單片機IP軟核,及其應(yīng)用系統(tǒng)的構(gòu)建和軟硬件開發(fā)。K8051單片機是以由VQM原碼(Verilog Quartus Mapping File)表達的,在QuartusII環(huán)境下能與VHDL、Verilog等其他硬件描述語言混合編譯綜合,并在單片F(xiàn)PGA中實現(xiàn)全部硬件系統(tǒng),并完成軟件調(diào)試。2.2.2 K8051單片機軟核基本功能和結(jié)構(gòu)與前面介紹的CPU相同,K8051單片機核也含有8位復(fù)雜指令CPU,存儲器采用哈佛結(jié)構(gòu),其結(jié)構(gòu)框圖如圖5-23所示。K8051的指令系統(tǒng)與8051/2、8031/2等完全兼容,硬件部分也基本相同,例如可接64KB外部存儲器,可接256字節(jié)內(nèi)部數(shù)據(jù)RAM,含兩個16位定時/計數(shù)器,全雙工串口,含節(jié)省功耗工作模式,中斷響應(yīng)結(jié)構(gòu)等等。不同之處主要有:1、K8051是以網(wǎng)表文件的方式存在的,只有通過編譯綜合,并載入FPGA中才以硬件的方式工作,而普通8051總是以硬件方式存在的;2、K8051無內(nèi)部ROM和RAM,所有程序ROM和內(nèi)部RAM都必須外接。從圖5-23可見,它包含了“數(shù)據(jù)RAM端口”和“程序存儲器端口”,是連接外接ROM、RAM的專用端口(此ROM和RAM都能用LPM_ROM和LPM_RAM在同一片F(xiàn)PGA中實現(xiàn))。然而普通8051芯片的內(nèi)部RAM是在芯片內(nèi)的,而外部ROM的連接必須以總線方式與其P0、P2口相接(AT89S51的ROM在芯片內(nèi),CPU核外)。3、以軟核方式存在能進行硬件修改和編輯;能對其進行仿真和嵌入式邏輯分析儀實現(xiàn)實時時序測試;能根據(jù)設(shè)計者的意愿將CPU、RAM、ROM、硬件功能模塊和接口模塊等實現(xiàn)于同一片F(xiàn)PGA中(即SOC)。4、與普通8051不同,K8051的4個I/O口是分開的。例如P1口,其輸入端P1I和輸出端P1O是分開的,如果需要使用P1口的雙向口功能,必須外接一些電路才能實現(xiàn)。圖5-24是K8051單片機的原理圖實體圖,下方是輸入端,上方是輸出端。其主要端口的功能如表5-10所示。注意其中的雙向口的表達方式。圖5-26所示的是單片機中的一個端口構(gòu)成的雙向口(P1口)電路連接方法。圖中電路調(diào)用了幾個輔助元件,其中RTI是三態(tài)控制門,WIRE是普通接線,主要用于網(wǎng)絡(luò)名轉(zhuǎn)換。其中P1E是三態(tài)門控制信號,當執(zhí)行從P1口的輸入指令時,P1E7.0輸出全為高電平,外部數(shù)據(jù)可以通過雙向口P17.0進入單片機的P1口的輸入口P1I7.0,而當執(zhí)行向P1口輸出的指令時,若P1口的輸出口P1O7.0中的位為低電平,則控制信號P1E7.0中對應(yīng)的位也為低,故信號能順利輸出P1口;但當輸出信號P1O7.0中的位為高電平時,則控制信號P1E7.0中對應(yīng)的位也為高電平,故這時除非P17.0對應(yīng)的FPGA的外部端口被上拉,否則將呈現(xiàn)純高阻態(tài)。因此,當使用單片機的雙向口時須設(shè)置FPGA的端口為上拉!設(shè)置方法是,選擇Assignmemts菜單中的settings項(圖1-3),選擇左欄的Fitter Settings項,再點擊右側(cè)的More Settings按紐,在彈出的窗口(圖1-3右側(cè)圖)下欄中選擇Weak PullUp Resistor,并于上方的Setting欄選擇On。注意,如果選擇了Enable Bus-Hold Circuitry為ON,則不能選上拉為ON,前者是選擇輸出總線的最后輸出為鎖定。 圖1-1 K8051結(jié)構(gòu)模塊框圖 圖1-2 K8051原理圖元件表1-1 K8051單片機核信號端口功能明單片機信號端口類型功能說明ROMadr15.0輸 出程序存儲器地址總線ROMdaO7.0輸 入程序存儲器數(shù)據(jù)總線NMOE輸 出程序存儲器輸出使能,低電平有效RAMadr7.0輸 出片內(nèi)RAM地址總線RAMdaI7.0輸 出片內(nèi)RAM數(shù)據(jù)輸入總線(由單片機核輸出)RAMdaO7.0輸 入片內(nèi)RAM數(shù)據(jù)輸出總線FOE輸 出片內(nèi)RAM數(shù)據(jù)輸出使能,低電平有效FWE輸 出片內(nèi)RAM數(shù)據(jù)寫入使能,低電平有效SFROE輸 出外部特殊寄存器輸出使能,低電平有效SFRWE輸 出外部特殊寄存器寫入使能,低電平有效NESFR輸入如果沒有外部特殊寄存器,拉高此電平P0O7.0輸出P0口數(shù)據(jù)輸出端,8位P1O7.0輸出P1口數(shù)據(jù)輸出端,8位P2O7.0輸出P2口數(shù)據(jù)輸出端,8位P3O7.0輸出P3口數(shù)據(jù)輸出端,8位P0I7.0輸入P0口數(shù)據(jù)輸入端,8位P1I7.0輸入P1口數(shù)據(jù)輸入端,8位P2I7.0輸入P2口數(shù)據(jù)輸入端,8位P3I7.0輸入P3口數(shù)據(jù)輸入端,8位P0E7.0輸出P0口作為雙向口的控制信號8位,執(zhí)行輸出指令時,為低電平P1E7.0輸出P1口作為雙向口的控制信號8位,執(zhí)行輸出指令時,為低電平P2E7.0輸出P2口作為雙向口的控制信號8位,執(zhí)行輸出指令時,為低電平P3E7.0輸出P3口作為雙向口的控制信號8位,執(zhí)行輸出指令時,為低電平NEA輸入使能程序計數(shù)器的值進入P0和P2口X1輸入單片機工作時鐘輸入端X2輸入單片機工作時鐘輸入端,但在進入休閑狀態(tài)時可控制停止RESET輸入復(fù)位信號線ALE輸出地址鎖存信號PSEN輸出外部程序存儲器使能,低電平有效ALEN輸出對ALE和PSEN信號的雙向控制信號,低電平允許輸出XOFF輸出振蕩器禁止信號,用于省電模式IDLE輸出在休閑模式中,可通過外部控制NX2的時鐘輸入圖1-3 設(shè)置FPGA的總線口輸出為上拉 圖1-4 K8051單片機I/O口設(shè)置成雙向口的電路第三章 頻率計的工作原理3.1測頻原理介紹常用的直接測頻方法主要有測頻法和測周期法兩種。測頻法就是在確定的閘門時間Tw內(nèi),記錄被測信號的變化周期數(shù)(或脈沖個數(shù))Nx,則被測信號的頻率為:fx=Nx/Tw。測周期法需要有標準信號的頻率fs,在待測信號的一個周期Tx內(nèi),記錄標準頻率的周期數(shù)Ns,則被測信號的頻率為:fx=fs/Ns。這兩種方法的計數(shù)值會產(chǎn)生1個字誤差,并且測試精度與計數(shù)器中記錄的數(shù)值Nx或Ns有關(guān)。為了保證測試精度,一般對于低頻信號采用測周期法;對于高頻信號采用測頻法,因此測試時很不方便,所以人門提出等精度測頻方法。多周 期 同 步測頻是在直接測頻基礎(chǔ)上發(fā)展起來的,在目前的測頻系統(tǒng)中得到了越來越廣泛的應(yīng)用。它在測頻時,閘門時間不是固定的,而是被測信號的整數(shù)倍,即與被測信號保持同步,因此消除了對被測信號計數(shù)所產(chǎn)生的士1個數(shù)字誤差,使測量精度大為提高,測量原理框圖如圖3-1,測量原理的波形如圖3-2。圖3-1多周期同步測頻原理框圖圖3-2等精度測頻原理波形圖在測量過程中,有兩個計數(shù)器分別對標準信號和被測信號同時計數(shù)。首先給出閘門開啟信號(預(yù)置閘門上升沿),此時計數(shù)器并不開始計數(shù),而是等到被測信號的上升沿到來時,計數(shù)器才真正開始計數(shù)。然后預(yù)置閘門關(guān)閉信號(下降沿)到時,計數(shù)器并不立即停止計數(shù),而是等到被測信號的上升沿到來時才結(jié)束計數(shù),完成一次測量過程??梢钥闯?,實際閘門時間與預(yù)置閘門時間1并不嚴格相等,但差值不超過被測信號的一個周期 設(shè)在一次實際閘門時間中計數(shù)器對被測信號的計數(shù)值為Nx,對標準信號的計數(shù)值為Ns。標準信號的頻率為fs,則被測信號的頻率為由式(1)可知,若忽略標頻fs的誤差,則等精度測頻可能產(chǎn)生的相對誤差為=(|fxc-fx|/fxe)100% (2)其中fxe為被測信號頻率的準確值。在測量中,由于fx計數(shù)的起停時間都是由該信號的上升測觸發(fā)的,在閘門時間內(nèi)對fx的計數(shù)Nx無誤差(=NxTx);對fs的計數(shù)Ns最多相差一個數(shù)的誤差,即|Ns|1,其測量頻率為fxe=Nx/(Ns+Ns)/fs (3)將式(1)和(3)代入式(2),并整理得:=|Ns|/Ns1/Ns=1/(fs)(4)=|Ns|/Ns1/Ns=1/(fs)(5)由上式可以看出,測量頻率的相對誤差與被測信號頻率的大小無關(guān),僅與閘門時間和標準信號頻率有關(guān),即實現(xiàn)了整個測試頻段的等精度測量。閘門時間越長,標準頻率越高,測頻的相對誤差就越小。標準頻率可由穩(wěn)定度好、精度高的高頻率晶體振蕩器產(chǎn)生,在保證測量精度不變的前提下,提高標準信號頻率,可使閘門時間縮短,即提高測試速度。 閘門時間/s標準頻率為10KHz的精度標準頻率為100MHz的精度0.0110-210-60.110-310-7110-410-81010-510-9上表所列為標頻在10KHz和100MHz時閘門時間與最大允許誤差的對應(yīng)關(guān)系。等精度測頻的實現(xiàn)方法可簡化為下圖所示的框圖 圖3-3 等精度測頻原理CNT1和CNT2是兩個可控計數(shù)器,標準頻率(fs)信號從CNT1的時鐘輸入端CLK輸入;經(jīng)整形后的被測信號(fx)從CNT2的時鐘輸入端CLK輸入。每個計數(shù)器中的CEN輸入端為時鐘使能端控制時鐘輸入。當預(yù)置門信號為高電平(預(yù)置時間開始)時,被測信號的上升沿通過D觸發(fā)器的輸出端,同時啟動兩個計數(shù)器計數(shù);同樣,當預(yù)置門信號為低電平(預(yù)置時間結(jié)束)時,被測信號的上升沿通過D觸發(fā)器的輸出端,同時關(guān)閉計數(shù)器的計數(shù)。系統(tǒng)由分頻器、計數(shù)器1、計數(shù)器2、D觸發(fā)器等組成。分頻器出來的信號作為等精度測頻原理的預(yù)置閘門信號。其中D觸發(fā)器,計數(shù)器2和計數(shù)器1的作用與前2頁圖中所示相同。運算模塊就是完成公式(1)的運算。復(fù)位主要對分頻、計數(shù)器1和計數(shù)器2進行清零操作。3.2測周原理由于周期和頻率互為倒數(shù),因此在測頻的原理中對換一下待測信號和時基信號的輸入通道就能完成周期的測量。待測信號Tx通過脈沖形成電路取出一個周期方波信號加到門控電路,由上圖電路對被測信號的高電平計數(shù)為N1和低電平計數(shù)為N2??捎上旅娴墓降茫篢1=T0/(N1+N2)(6)由該電路可以對相位差進行測量,由下面公式得:相位差 = (7)如果將該模塊和計數(shù)器連用,可以直接測頻、測周、測相。第四章 系統(tǒng)硬件的設(shè)計與實現(xiàn)4.1 系統(tǒng)的整體框圖采用等精度測頻原理的頻率計系統(tǒng)組成方框圖(如圖4-1),其中FPGA完成基本的測頻、測周模塊及8051軟核等功能。整形模塊對輸入波形進行整形。按鍵來選擇測頻、測周及占空比。通過對8051軟核進行編寫程序?qū)y頻和測周模塊的數(shù)據(jù)進行處理,并通過按鍵對測頻、測周及占空比的選擇。8051將計算的數(shù)據(jù)送到液晶屏上進行顯示。通過1602顯示頻率值、周期值及占空比。圖4-1等精度測頻原理的頻率計系統(tǒng)組成方框圖4.2 K8051單片機軟核實用系統(tǒng)構(gòu)建和軟件測試K8051核在接上了ROM和RAM后就成為一個完整的8051或8052單片機了,圖4-2是K8051核實用系統(tǒng)的最基本構(gòu)建頂層原理圖,主要由4個部件構(gòu)成:1、K8051核。圖中的CPU_Core即K8051單片機核,由VQM原碼表述:CPU_Core.vqm,可以直接調(diào)用。該元件可以與其他不同語言表述的元件一同綜合與編譯。2、嵌入式鎖相環(huán)PLL50。鎖相環(huán)的調(diào)用方法可參考第3章,其輸入頻率設(shè)置為20MHz,輸出頻率所在90MHz上,K8051能接受的工作時鐘頻率上限取決于FPGA的速度級別。3、程序ROM,LPM_ROM。采用ROM容量的大小也取決于FPGA所含的嵌入RAM的大小。圖5-27中設(shè)置的ROM容量是4K字節(jié),對于一般的應(yīng)用足夠了。此ROM可以加載HEX格式文件作為單片機的程序代碼。HEX程序代碼可以直接使用普通8051單片機程序編譯器生成(設(shè)已加載了TEST1.HEX)。4、數(shù)據(jù)RAM,LPM_RAM。圖5-27中設(shè)置的LPM_RAM容量是256字節(jié)。高128字節(jié)須用間接尋址方式訪問。這里的LPM_ROM和LPM_RAM調(diào)用方法其它資料。圖5-27中,P0I7.0、P1I7.0、P2I7.0、P3I7.0分別為P0、P1、P2、P3口的輸入口;P0O7.0、P1O7.0、P2O7.0、P3O7.0分別為P0、P1、P2、P3口的輸出口。用QuartusII打開的工程,在工程管理窗,雙擊圖左側(cè)rom4KB,在右側(cè)出現(xiàn)該元件文件,其初始化文件路徑指示在TEST1.HEX上(圖4-3)。下載SOF文件后可以測試圖4-2系統(tǒng)的軟硬件功能了。2修改匯編程序test1.asm(圖4-2),編譯,并用“Tools”菜單中的工具:In-System Memory Content Editor(圖4-4)下載編譯代碼:test1.hex,再觀察軟硬件的工作情況。注意,K8051的軟件調(diào)試也可以使用In-System Memory Content Editor來完成。 圖4-2 K8051基本實用電路 圖4-3 TEST1.asm匯編程序圖4-4 ROM初始化文件路徑圖4-5 利用In-System Memory Content Editor下載匯編程序HEX代碼4.3 測頻模塊的設(shè)計及調(diào)試4.3.1本系統(tǒng)采用如圖4-6的整體系統(tǒng)進行設(shè)計,具體代碼如下:圖4-6RTL圖LIBRARY IEEE; -等精度頻率計FPGA設(shè)計部分USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY etester IS PORT (BCLK : IN STD_LOGIC; -標準頻率時鐘信號clock2,50MHZ TCLK : IN STD_LOGIC; -待測頻率時鐘信號CLR : IN STD_LOGIC; -清零和初始化信號CL : IN STD_LOGIC; -當SPUL為高電平時,CL為預(yù)置門控信號,用于測頻計數(shù)-時間控制當SPUL為低電平時,CL為測脈寬控制信號,-CL高電平時測高電平脈寬而當CL為低電平時,測低電平脈寬。 SPUL : IN STD_LOGIC; -測頻或測脈寬控制 START : OUT STD_LOGIC;-起始計數(shù)標志信號 EEND : OUT STD_LOGIC; -由低電平變到高電平時指示脈寬計數(shù)結(jié)束, SEL : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -數(shù)據(jù)讀出選同控制 DATA : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位數(shù)據(jù)讀出END etester;ARCHITECTURE behav OF etester ISSIGNAL BZQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -標準計數(shù)器SIGNAL TSQ : STD_LOGIC_VECTOR(31 DOWNTO 0); -測頻計數(shù)器SIGNAL ENA : STD_LOGIC; -計數(shù)使能SIGNAL MA, CLK1, CLK2, CLK3 : STD_LOGIC;SIGNAL Q1, Q2, Q3,BENA, PUL : STD_LOGIC;SIGNAL SS: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGINSTART = ENA ;DATA = BZQ(7 DOWNTO 0) WHEN SEL=000 ELSE - 標準頻率計數(shù)低8位輸出 BZQ(15 DOWNTO 8) WHEN SEL=001 ELSE BZQ(23 DOWNTO 16) WHEN SEL=010 ELSE BZQ(31 DOWNTO 24) WHEN SEL=011 ELSE - 標準頻率計數(shù)最高8位輸出 TSQ(7 DOWNTO 0) WHEN SEL=100 ELSE -待測頻率計數(shù)值最低8位輸出 TSQ(15 DOWNTO 8) WHEN SEL=101 ELSE TSQ(23 DOWNTO 16) WHEN SEL=110 ELSE TSQ(31 DOWNTO 24) WHEN SEL=111 ELSE -待測頻率計數(shù)值最高8位輸出 TSQ(31 DOWNTO 24) ;BZH : PROCESS(BCLK, CLR) -標準頻率測試計數(shù)器,標準計數(shù)器BEGIN IF CLR = 1 THEN BZQ 0 ) ; ELSIF BCLKEVENT AND BCLK = 1 THEN IF BENA = 1 THEN BZQ = BZQ + 1; END IF; END IF; END PROCESS;TF : PROCESS(TCLK, CLR, ENA) -待測頻率計數(shù)器,測頻計數(shù)器 BEGIN IF CLR = 1 THEN TSQ 0 ); ELSIF TCLKEVENT AND TCLK = 1 THEN IF ENA = 1 THEN TSQ = TSQ + 1; END IF; END IF;END PROCESS;PROCESS(TCLK,CLR) BEGIN IF CLR = 1 THEN ENA = 0 ; ELSIF TCLKEVENT AND TCLK=1 THEN ENA = CL ; END IF;END PROCESS; MA=(TCLK AND CL) OR NOT(TCLK OR CL) ; -測脈寬邏輯 CLK1=NOT MA ; CLK2=MA AND Q1 ; CLK3=NOT CLK2; SS=Q2 & Q3 ; DD1: PROCESS(CLK1,CLR) BEGIN IF CLR = 1 THEN Q1 = 0 ; ELSIF CLK1EVENT AND CLK1 = 1 THEN Q1 = 1 ; END IF; END PROCESS;DD2: PROCESS(CLK2,CLR) BEGIN IF CLR = 1 THEN Q2 = 0 ; ELSIF CLK2EVENT AND CLK2 = 1 THEN Q2 = 1 ; END IF; END PROCESS; DD3: PROCESS(CLK3,CLR) BEGIN IF CLR = 1 THEN Q3 = 0 ; ELSIF CLK3EVENT AND CLK3 = 1 THEN Q3 = 1 ; END IF; END PROCESS;PUL=1 WHEN SS=10 ELSE -當SS=“10”時,PUL高電平,允許標準計數(shù)器計數(shù), 0 ; -禁止計數(shù)EEND=1 WHEN SS=11 ELSE -EEND為低電平時,表示正在計數(shù),由低電平變到高電平 0 ; -時,表示計數(shù)結(jié)束,可以從標準計數(shù)器中讀數(shù)據(jù)了BENA=ENA WHEN SPUL=1 ELSE -標準計數(shù)器時鐘使能控制信號,當SPUL為1時,測頻率 PUL WHEN SPUL=0 ELSE -當SPUL為0時,測脈寬和占空比 PUL ;END behav;4.3.2頻率計的時序仿真在Qutus II RTL如圖4-7。圖4-7 RTL圖在Qutus II測頻仿真時序如圖4-7.圖4-7 等精度頻率計測頻時序圖在Qutus II測頻仿真時序如圖4-8.圖4-8等精度頻率計測周時序圖4.4 1602顯示模塊介紹一、1602里的存儲器有三種:CGROM、CGRAM、DDRAM。CGROM保存了廠家生產(chǎn)時固化在LCM中的點陣型顯示數(shù)據(jù),CGRAM是留給用戶自己定義點陣型顯示數(shù)據(jù)的,DDRAM則是和顯示屏的內(nèi)容對應(yīng)的。1602內(nèi)部的DDRAM有80字節(jié),而顯示屏上只有2行16列,共32個字符,所以兩者不完全一一對應(yīng)。默認情況下,顯示屏上第一行的內(nèi)容對應(yīng)DDRAM中80H到8FH的內(nèi)容,第二行的內(nèi)容對應(yīng)DDRAM中CH到CFH的內(nèi)容。DDRAM中90H到A7H、D0H到E7H的內(nèi)容是不顯示在顯示屏上的,但是在滾動屏幕的情況下,這些內(nèi)容就可能被滾動顯示出來了。注:這里列舉的DDRAM的地址準確來說應(yīng)該是DDRAM地址+80H之后的值,因為在向數(shù)據(jù)總線寫數(shù)據(jù)的時候,命令字的最高位總是為1。 二、1602使用三條控制線:EN、RW、RS。其中EN起到類似片選和時鐘線的作用,RW和RS指示了讀、寫的方向和內(nèi)容。在讀數(shù)據(jù)(或者Busy標志)期間,EN線必須保持高電平;而在寫指令(或者數(shù)據(jù))過程中,EN線上必須送出一個正脈沖。RW、RS的組合一共有四種情況,分別對應(yīng)四種操作: RS0、RW0表示向LCM寫入指令RS0、RW1表示讀取Busy標志RS1、RW0表示向LCM寫入數(shù)據(jù)RS1、RW1表示從LCM讀取數(shù)據(jù) 三、LCD在使用的過程中,可以在RS0、RW0的情況下,向LCM寫入一個字節(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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論