基于vhdl頻率計(jì)畢業(yè)論文_第1頁
已閱讀1頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  本科生畢業(yè)論文(設(shè)計(jì))</p><p>  題 目: 基于VHDL的頻率計(jì)設(shè)計(jì) </p><p>  專業(yè)代碼: </p><p>  作者姓名:    </p><p>  學(xué) 號:

2、 </p><p>  單 位: </p><p>  指導(dǎo)教師:        </p><p>  目錄 </p><p><b>  引 言1</b></p><p>  1 EDA

3、技術(shù)發(fā)展概況1</p><p>  1.1 VHDL 軟件設(shè)計(jì)簡介1</p><p>  1.2 VHDL的開發(fā)流程3</p><p>  1.3 MAX+PLUSⅡ 開發(fā)工具概述4</p><p><b>  2設(shè)計(jì)實(shí)現(xiàn)5</b></p><p>  2.1數(shù)字頻率計(jì)概述5</

4、p><p>  2.2數(shù)字頻率計(jì)的基本設(shè)計(jì)原理7</p><p>  2.3測頻專用模塊功能描述及VHDL程序10</p><p>  2.3.1基準(zhǔn)脈沖信號產(chǎn)生模塊10</p><p>  2.3.2 測頻時(shí)序控制電路模塊13</p><p>  2.3.3計(jì)數(shù)模塊15</p><p>

5、  2.3.4鎖存器模塊18</p><p>  2.3.5七段顯示譯碼器20</p><p>  2.3.6動(dòng)態(tài)掃描顯示模塊22</p><p>  2.3.7頂層文件設(shè)計(jì)25</p><p><b>  3總結(jié)27</b></p><p><b>  4致謝28</

6、b></p><p><b>  5參考文獻(xiàn)29</b></p><p><b>  6附錄30</b></p><p><b>  摘 要</b></p><p>  隨著計(jì)算機(jī)技術(shù)超大規(guī)模集成電路EDA(Electronics Design Automation

7、)技術(shù)的發(fā)展和可編程邏輯器件的廣泛應(yīng)用,傳統(tǒng)的自下而上的數(shù)字電路設(shè)計(jì)方法、工具器件已遠(yuǎn)遠(yuǎn)落后于當(dāng)今信息技術(shù)的發(fā)展?;贓DA技術(shù)和硬件描述語言的自上而下的設(shè)計(jì)技術(shù)正在承擔(dān)起越來越多的數(shù)字系統(tǒng)設(shè)計(jì)任務(wù)。在電子技術(shù)中,頻率是最基本的參數(shù)之一,并且與許多電參量的測量方案、測量結(jié)果都有十分密切的關(guān)系,因此頻率的測量就顯得更為重要。測量頻率的方法有多種,其中電子計(jì)數(shù)器測量頻率具有精度高、使用方便、測量迅速,以及便于實(shí)現(xiàn)測量過程自動(dòng)化等優(yōu)點(diǎn),是頻率

8、測量的重要手段之一。電子計(jì)數(shù)器測頻有兩種方式:一是直接測頻法,即在一定閘門時(shí)間內(nèi)測量被測信號的脈沖個(gè)數(shù);二是間接測頻法,如周期測頻法。直接測頻法適用于高頻信號的頻率測量,間接測頻法適用于低頻信號的頻率測量。本論文采用自上向下的設(shè)計(jì)方法,基于VHDL硬件描述語言設(shè)計(jì)了一種數(shù)字頻率計(jì),并在Max+plusⅡ平臺上進(jìn)行了仿真。</p><p>  關(guān)鍵詞:EDA;VHDL;數(shù)字頻率計(jì);CPLD</p>&

9、lt;p><b>  Abstract</b></p><p>  With the development of computer,VHDL and EDA and the application of programmable logic devices,the traditional bottom-up design method, tools and devices have

10、been far behind the development of information technology. The top-down design method based on the EDA technology and VHDL is used to design the digital system. Be one of the most fundamental parameter in electron techno

11、logy medium frequency, parameter measurement scheme, measurement result all have very close something to do with a lot o</p><p>  Key words:EDA;VHDL;Digital Frequency Count;CPLD</p><p>  基于VHDL

12、的頻率計(jì)設(shè)計(jì)</p><p><b>  引 言</b></p><p>  頻率是電子測量中一個(gè)最為基本的參量,在信號發(fā)生器以及振蕩器、各種倍頻和分頻電路的輸出信號中,都要進(jìn)行頻率的測量。作為用十進(jìn)制數(shù)字顯示被測信號頻率的數(shù)字頻率計(jì),是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的電子測量儀器。與傳統(tǒng)的頻率計(jì)相比,數(shù)字頻率計(jì)具有精度高、測量范圍大、可靠性好等優(yōu)

13、點(diǎn)。傳統(tǒng)的數(shù)字頻率計(jì)是由中大規(guī)模集成電路構(gòu)成,但這類頻率計(jì)會產(chǎn)生比較大的延時(shí),測量范圍較小,精度不高,可靠性差且電路復(fù)雜。隨著集成電路技術(shù)的發(fā)展,可以將整個(gè)系統(tǒng)集成到一個(gè)塊上,實(shí)現(xiàn)所謂的片上系(SOC)。片上系統(tǒng)的實(shí)現(xiàn)將大大減小系統(tǒng)的體積,降低系統(tǒng)的成本,提高系統(tǒng)的處理速度和可靠性。隨著可編程邏輯器件(CPLD)的廣泛應(yīng)用,以EDA工具為開發(fā)平臺,利用VHDL(Very High Speed Integrated Circuit Har

14、dware Description Language)工業(yè)標(biāo)準(zhǔn)硬件描述語言,采用自頂向下(Top to Down)和基于庫(Library-based的設(shè)計(jì),設(shè)計(jì)者不但可以不必了解硬件結(jié)構(gòu)設(shè)計(jì),而且將使系統(tǒng)大大簡化。提高整體的性能和可靠性。本文用VHDL在CPLD器件上</p><p>  1 EDA 技術(shù)發(fā)展概況</p><p>  1.1 VHDL 軟件設(shè)計(jì)簡介</p>

15、<p>  VHDL全名Very High Speed Integrated Circuit Hardware Description Language ,VHDL語言是一種在80年代的后期出現(xiàn)用于電路設(shè)計(jì)的高級語言,最初是由美國國防部開發(fā)出來供美軍用來提高設(shè)計(jì)的可靠性和縮減開發(fā)周期的一種使用范圍較小的設(shè)計(jì)語言。VHDL翻譯成中文就是超高速集成電路硬件描述語言,主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國的應(yīng)用多數(shù)是用FP

16、GA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC。 </p><p>  VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式、描述風(fēng)格以及語法是十分類似于一般的計(jì)算機(jī)高級語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部

17、分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。</p><p>  系統(tǒng)電路的軟件設(shè)計(jì)可采用工具軟件Maxplus II,Maxplus II 作為Altera的上一代PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II

18、 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap II、Chip Editor和RTL Viewer的設(shè)計(jì)輔助工具,集成了SOPC和HardCopy設(shè)計(jì)流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。用該工具軟件所支持的語言----硬件描述語言VHDL,以文本的方式進(jìn)行編程輸入。在編程時(shí)分別對控制、計(jì)數(shù)、鎖

19、存、譯碼、動(dòng)態(tài)掃描等電路模塊進(jìn)行VHDL文本描述, 使每個(gè)電路模塊以及器件都以文本的形式出現(xiàn),然后通過編譯、波形仿真、調(diào)試來完善每個(gè)器件的功能。單個(gè)器件制作完成后,然后將它們生成庫文件,并產(chǎn)生相應(yīng)的符號,最后用語言將各個(gè)已生成庫文件的器件的各個(gè)端口連接在一起,從而形成了系統(tǒng)主電路的軟件結(jié)構(gòu)。在連接器件時(shí),也可以采用圖形輸入方式,即在圖形輸入界面中調(diào)出先制作</p><p><b>  VHDL語言優(yōu)勢:

20、</b></p><p> ?。?)與其他的硬件描述語言相比,VHDL具有更強(qiáng)的行為描述能力,從而決 </p><p>  定了他成為系統(tǒng)設(shè)計(jì)領(lǐng)域最佳的硬件描述語言。強(qiáng)大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計(jì)大規(guī)模電子系統(tǒng)的重要保證。 </p><p> ?。?)VHDL豐富的仿真語句和庫函數(shù),使得在任何大系統(tǒng)的設(shè)計(jì)早期就能查驗(yàn)設(shè)計(jì)

21、系統(tǒng)的功能可行性,隨時(shí)可對設(shè)計(jì)進(jìn)行仿真模擬。 </p><p> ?。?)VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計(jì)的分解和已有設(shè)計(jì)的再利用功能。符合市場需求的大規(guī)模系統(tǒng)高效,高速的完成必須有多人甚至多個(gè)代發(fā)組共同并行工作才能實(shí)現(xiàn)。 </p><p>  (4)對于用VHDL完成的一個(gè)確定的設(shè)計(jì),可以利用EDA工具進(jìn)行邏輯綜合和優(yōu)化,并自動(dòng)的把VHDL描述設(shè)計(jì)轉(zhuǎn)變成門級

22、網(wǎng)表。 </p><p> ?。?)VHDL對設(shè)計(jì)的描述具有相對獨(dú)立性,設(shè)計(jì)者可以不懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計(jì)實(shí)現(xiàn)的目標(biāo)器件是什么,而進(jìn)行獨(dú)立的設(shè)計(jì)。</p><p>  1.2 VHDL的開發(fā)流程</p><p>  VHDL作為一種標(biāo)準(zhǔn)化的硬件描述語言,在對硬件電路進(jìn)行描述的過程中應(yīng)該遵循一定的流程,主要包括以下幾步: </p><p

23、> ?、僭谶M(jìn)行硬件電路系統(tǒng)設(shè)計(jì)之前,首先作出總體設(shè)計(jì)方案;然后給出相應(yīng)的硬件電路系統(tǒng)設(shè)計(jì)指標(biāo);最后將總體方案中的各個(gè)部分電路設(shè)計(jì)任務(wù)及設(shè)計(jì)要求給相應(yīng)的設(shè)計(jì)部門。 </p><p> ?、?具體電路功能。接受相應(yīng)的電路設(shè)計(jì)任務(wù)后,首先要對電路的設(shè)計(jì)任務(wù)和設(shè)計(jì)要求進(jìn)行具體分析,確定設(shè)計(jì)電路所要實(shí)現(xiàn)的具體功能。 </p><p> ?、?劃分模塊、編寫程序。利用VHDL設(shè)計(jì)硬件電路通常采用

24、自頂向下的設(shè)計(jì)方法。這種設(shè)計(jì)方法的總體思路是:首先確定頂層模塊并進(jìn)行頂層模塊的設(shè)計(jì);然后將頂層模塊中的邏輯功能劃分為不同的功能模塊,再進(jìn)行功能模塊的詳細(xì)設(shè)計(jì)。 </p><p>  ④ VHDL程序模擬。在設(shè)計(jì)過程中,往往先采用模擬器(或稱為仿真器)對VHDL程序進(jìn)行模擬(或稱為仿真)。這樣做的目的是可以在設(shè)計(jì)的早期發(fā)現(xiàn)電路設(shè)計(jì)上的缺陷和錯(cuò)誤,從而節(jié)省電路設(shè)計(jì)的時(shí)間,縮短開發(fā)周期。 </p><

25、;p>  ⑤ 綜合、優(yōu)化和布局布線。綜合是將電路設(shè)計(jì)的VHDL描述轉(zhuǎn)換成底層電路表示;優(yōu)化是將電路設(shè)計(jì)的時(shí)延縮到最小和有效利用資源;布局布線是將通過綜合和優(yōu)化所得到的邏輯,安防到一個(gè)邏輯器件之中的過程。 </p><p>  ⑥ 布局布線后的程序模擬。與VHDL程序模擬不同,只是對設(shè)計(jì)的邏輯功能進(jìn)行模擬, </p><p> ?、?生成器件編程文件。生成器件編程文件的作用是將VHDL

26、描述經(jīng)過模擬、綜合、優(yōu)化和布局布線的結(jié)果,經(jīng)過一定的映射轉(zhuǎn)換成一個(gè)器件編程所用的數(shù)據(jù)文件格式。 </p><p><b> ?、?進(jìn)行器件編程。</b></p><p>  1.3 MAX+PLUSⅡ 開發(fā)工具概述</p><p>  MAX+PLUSⅡ(Multiple Array and Programming Logic User S

27、ystem)開發(fā)工具是Altera公司推出的一種EDA工具,具有靈活高效、使用便捷和易學(xué)易用等特點(diǎn)。Altera公司在推出各種CPLD的同時(shí),也在不斷地升級相應(yīng)的開發(fā)工具軟件,已從早起的第一代A+PLUS、第二代MAX+PLUS發(fā)展到第三代MAX+PLUSⅡ和第四代Quartus。使用MAX+PLUSⅡ軟件,設(shè)計(jì)者無需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),只需用業(yè)已熟悉的設(shè)計(jì)輸入工具,如硬件描述語言、原理圖等進(jìn)行輸入即可,MAX+PLUSⅡ就會自動(dòng)將

28、設(shè)計(jì)轉(zhuǎn)換成目標(biāo)文件下載到器件中去。</p><p>  MAX+PLUSⅡ開發(fā)系統(tǒng)具有以下特點(diǎn): </p><p> ?。?) 多平臺。MAX+PLUSⅡ軟件可以在基于PC機(jī)的操作系統(tǒng)如Windows95、</p><p>  Windows98、Windows2000、Windows NT下運(yùn)行,也可以在Sun SPAC station</p>&l

29、t;p><b>  等工作站上運(yùn)行。 </b></p><p>  (2) 開放的界面。MAX+PLUSⅡ提供了與其他設(shè)計(jì)輸入、綜合和校驗(yàn)工具的接口,借口符合EDIF 200/300、LPM、VHDL、Verilog-HDL等標(biāo)準(zhǔn)。目前MAX+PLUS</p><p> ?、蛩С值闹髁鞯谌紼DA工具主要有Synopsys、Viewlogic、Mentor、G

30、raphics、Cadence、OrCAD、Xilinx等公司提供的工具。 </p><p> ?。?) 模塊組合式工具軟件。MAX+PLUSⅡ具有一個(gè)完整的可編程邏輯設(shè)計(jì)環(huán)境,包括設(shè)計(jì)輸入、設(shè)計(jì)處理、設(shè)計(jì)校驗(yàn)和下載編程4個(gè)模塊,設(shè)計(jì)者可以按設(shè)計(jì)流程選擇工作模塊。 </p><p> ?。?) 與結(jié)構(gòu)無關(guān)。MAX+PLUSⅡ開發(fā)系統(tǒng)的核心——Compiler(編譯器)能夠自動(dòng)完成邏輯綜合和

31、優(yōu)化,它支持Altera的Classic、MAX7000、FLEX8000和FLEX10K等可編程器件系列,提供一個(gè)與結(jié)構(gòu)無關(guān)的PLD開發(fā)環(huán)境。 </p><p> ?。?) 支持硬件描述語言。MAX+PLUSⅡ支持各種HDL設(shè)計(jì)輸入語言,包括VHDL、</p><p>  Verilog-HDL和Altera的硬件描述語言AHDL。 </p><p> ?。?)

32、豐富的設(shè)計(jì)庫。MAX+PLUSⅡ提供豐富的庫單元供設(shè)計(jì)者調(diào)用,其中包括一些基本的邏輯單元,74系列的器件和多種特定功能的宏功能模塊以及參數(shù)化的</p><p>  兆功能模塊。調(diào)用庫單元進(jìn)行設(shè)計(jì),可以大大減輕設(shè)計(jì)人員的工作量,縮短設(shè)計(jì)周期。</p><p>  數(shù)字頻率計(jì)是數(shù)字電路中的一個(gè)典型應(yīng)用,傳統(tǒng)的數(shù)字頻率計(jì)一般由分離元件搭接而成,實(shí)際的硬件設(shè)計(jì)用到的器件較多,連線比較復(fù)雜,其測量范

33、圍、測量精度和測量速度都受到很大的限制。隨著新型可編程邏輯器件FPGA技術(shù)的發(fā)展,能夠?qū)⒋罅康倪壿嫻δ芗捎谝粋€(gè)單個(gè)器件中,根據(jù)不同的需要所提供的門數(shù)可以從幾百萬到上百萬門,不但集成度遠(yuǎn)遠(yuǎn)超過了以往的數(shù)字頻率計(jì),而且在基準(zhǔn)頻率及精度等外部條件的允許下,根據(jù)不同場合的精度要求,對硬件描述語言進(jìn)行一定的改動(dòng),使系統(tǒng)在精度提高的同時(shí),用較少的器件來實(shí)現(xiàn)系統(tǒng)的功能,從而降低系統(tǒng)的整體造價(jià)。 此外,系統(tǒng)芯片(SOC)的發(fā)展也要求其包含頻率測量的功

34、能,所以用FPGA實(shí)現(xiàn)數(shù)字頻率計(jì)也是實(shí)現(xiàn)系統(tǒng)芯片的前提條件。</p><p>  本設(shè)計(jì)實(shí)現(xiàn)的數(shù)字頻率計(jì),除被測信號以外,只需要一個(gè)標(biāo)準(zhǔn)時(shí)基信號,其余全部在一片F(xiàn)PGA芯片上實(shí)現(xiàn),系統(tǒng)各功能模塊的實(shí)現(xiàn)全部采用VHDL語言編寫。本設(shè)計(jì)通過用VHDL語言實(shí)現(xiàn)數(shù)字頻率計(jì),用設(shè)計(jì)實(shí)例說明如何采用層次化的設(shè)計(jì)方法實(shí)現(xiàn)較大的數(shù)字系統(tǒng),并強(qiáng)化了使用VHDL語言來實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì)的能力。接下來,在后續(xù)的章節(jié)會介紹硬件描語言VHD

35、L語言的詳細(xì)情況。</p><p><b>  2設(shè)計(jì)實(shí)現(xiàn)</b></p><p>  2.1 數(shù)字頻率計(jì)概述 </p><p>  數(shù)字頻率計(jì)是一種用十進(jìn)制數(shù)字顯示被測信號頻率的數(shù)字測量儀器.它的基本功能是測量正弦信號、方波信號、尖脈沖信號及其他各種單位時(shí)間內(nèi)變化的物理量。當(dāng)今數(shù)字頻率計(jì)不僅是作為電壓表、計(jì)算機(jī)、天線電廣播通訊設(shè)備、工藝過程

36、自動(dòng)化裝置。集成數(shù)字頻率計(jì)由于所用元件少、投資少、體積小、功耗低、且可靠性高、功能強(qiáng)、易于設(shè)計(jì)和研發(fā),使得它具有技術(shù)上的實(shí)用性和應(yīng)用的廣泛性。不論從彩色電視機(jī)、電冰箱、DVD,還是現(xiàn)在家庭常用到的數(shù)字電壓表、數(shù)字萬用表等都包含有頻率計(jì)。在智能化、數(shù)字化科技發(fā)展的今天,數(shù)字頻率計(jì)已成為頻率計(jì)發(fā)展的方向,與傳統(tǒng)的頻率計(jì)相比,數(shù)字頻率計(jì)具有測量速度快、精度高、量程大、設(shè)計(jì)簡單、讀數(shù)方便等優(yōu)點(diǎn)。因此數(shù)字頻率計(jì)的發(fā)展對整個(gè)電子產(chǎn)品的發(fā)展起著舉足輕

37、重的作用。</p><p>  隨著社會和科技的發(fā)展,信息傳輸和處理的要求的提高,對頻率的測量精度也提出了更高的要求,需要更高準(zhǔn)確度的時(shí)頻基準(zhǔn)和更精密的測量技術(shù)。而頻率測量所能達(dá)到的精度,主要取決于作為標(biāo)準(zhǔn)頻率源的精度以及所使用的測量設(shè)備和測量方法。頻率測量技術(shù)的發(fā)展非???。一方面是追求新的更高穩(wěn)定度和準(zhǔn)確度的新型頻標(biāo);另一方面是提供便于工業(yè),科研應(yīng)用的商品化頻標(biāo),如小銫鐘,新型高穩(wěn)定度晶體振蕩器等這些工作多在計(jì)

38、量研究與工業(yè)部門進(jìn)行。在頻率測量的研究上,改進(jìn),創(chuàng)造新的測頻原理,方法和儀器,以便以更高的精度,速度,自動(dòng)進(jìn)行測量和數(shù)據(jù)處理,并向多功能,小型化,高性價(jià)比發(fā)展是其主要的發(fā)展方向。</p><p>  目前國內(nèi)外使用的測頻的方法有很多,如直接測頻法,內(nèi)插法,游標(biāo)法,時(shí)間—電壓變化法,多周期同步法,頻率倍增法,頻差倍增法以及相位比較法等測頻方法。直接測頻的方法較簡單,但精度不高。內(nèi)插法和游標(biāo)法都是采用模擬的方法,而且

39、多用于測量時(shí)間間隔,從而進(jìn)行轉(zhuǎn)換得出,雖然精度提高了,但是電路設(shè)計(jì)卻很復(fù)雜。時(shí)間—電壓變化法是利用電容的充放電時(shí)間進(jìn)行測量,由于經(jīng)過A/D轉(zhuǎn)換,速度較慢,且抗干擾能力較弱,多周期同步法其方法是:首先由控制線路給出閘門開啟信號,此時(shí)計(jì)數(shù)器并不開始計(jì)數(shù),而是等到被測信號的上升沿到來時(shí),才真正開始計(jì)數(shù)。然后,兩組計(jì)數(shù)器分別對被測信號和標(biāo)準(zhǔn)信號進(jìn)行計(jì)數(shù),要等到被測信號下降沿到來時(shí)才真正結(jié)束計(jì)數(shù),完成一次測量過程。計(jì)數(shù)器的開閉與被測信號是完全同步

40、的。為了進(jìn)一步的提高精度,通常采用模擬內(nèi)插法或游標(biāo)法與多周期同步法結(jié)合使用,雖然精度有了進(jìn)一步的提高,但始終未解決士1的計(jì)數(shù)誤差,而且這些方法設(shè)備復(fù)雜,不利于推廣。頻率誤差倍增法就是使用2個(gè)標(biāo)稱值一樣的頻標(biāo)信號,通過多次倍頻,混頻,濾波以及放大把2個(gè)頻標(biāo)信號的頻差加以放大的方法。它的優(yōu)點(diǎn)是把差頻放大后,便于使用簡單的儀器來獲得測量精度的測量結(jié)</p><p>  在結(jié)合前面多種方法的基礎(chǔ)上做了改進(jìn),等精度測量不但

41、有很高的測量精度。且在整個(gè)頻率區(qū)域能保持恒定的測量精度。</p><p>  數(shù)字頻率計(jì)的設(shè)計(jì)手段也是多種多樣的。大體上分為利用數(shù)字電路設(shè)計(jì),單片機(jī)設(shè)計(jì),DSP進(jìn)行設(shè)計(jì)和硬件描述語言的設(shè)計(jì)。采用數(shù)字電路的頻率計(jì)因其電路極為復(fù)雜,抗干擾能力和穩(wěn)定性較差,因此使用較少。</p><p>  采用單片機(jī)設(shè)計(jì)具有一定的優(yōu)勢,如以AT89C51單片機(jī)和MSP430F449單片機(jī)的頻率計(jì)設(shè)計(jì),總體來看

42、,這些具有結(jié)構(gòu)簡單,功能齊全,使用方便的特點(diǎn)。但其在電路硬件級的描述上不足,使得其更適合做控制方面,結(jié)合硬件描述進(jìn)行設(shè)計(jì),采用TMS320F2812DSP 芯片為控制單元,在無需任何門控器件控制的情況下,利用DSP2812豐富的軟件資源可以實(shí)現(xiàn)等精度測量。它根據(jù)每個(gè)門閘時(shí)間內(nèi)高頻標(biāo)準(zhǔn)脈沖的個(gè)數(shù)與已知被測信號的個(gè)數(shù),求的被測信號的頻率,再通過多次平均得到最終結(jié)果。但由于DSP定時(shí)器在計(jì)數(shù)時(shí)存在計(jì)數(shù)飽和的情況,因此在實(shí)現(xiàn)該精度測量時(shí)存在上限

43、,即當(dāng)被測測信號頻率填充脈沖的頻率時(shí),該方法就不能實(shí)現(xiàn)等精度了,采用硬件描述語言進(jìn)行設(shè)計(jì)是目前最多也是最好的設(shè)計(jì)方法。</p><p>  近年來,我國在數(shù)字頻率計(jì)研究領(lǐng)域發(fā)展迅速。目前,數(shù)字頻率計(jì)的設(shè)計(jì)可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下的逐層完成相應(yīng)的描述、綜合、優(yōu)化、仿真與驗(yàn)證,直到生成器件。 </p><p>  2.2數(shù)字頻率計(jì)的基本設(shè)計(jì)原理</p>

44、;<p>  所謂頻率,就是周期信號在單位時(shí)間1s里變化的次數(shù)。常用的直接測頻法有兩種:一種是測周期法;一種是測頻率法。測周期法需要有基準(zhǔn)系統(tǒng)時(shí)鐘頻率Fs,在待測信號一個(gè)周期Tx內(nèi),記錄基準(zhǔn)系統(tǒng)時(shí)鐘頻率的周期數(shù)Ns,則被測頻率可表示為: Fx=Fs/Ns 。 </p><p>  測頻率法就是在一定時(shí)間間隔Tw(該時(shí)間定義為閘門時(shí)間)

45、內(nèi),測得這個(gè)周期性信號的重復(fù)變換次數(shù)為Nx,則其頻率可表示為: </p><p>  Fx=Nx/Tw 。 </p><p>  這兩種方法的計(jì)數(shù)值會產(chǎn)生正負(fù)一個(gè)字的誤差,并且被測精度與計(jì)數(shù)器中記錄的數(shù)值Nx有關(guān),為保證測試精度,一般對于低頻信號采用測周期法,對于高頻信號采用測頻率法。</p><

46、p>  直接測頻法的一般思路是:在精確規(guī)定計(jì)數(shù)允許周期T內(nèi)使能計(jì)數(shù)器,對被測信號的周期(脈沖)數(shù)進(jìn)行計(jì)數(shù),計(jì)數(shù)允許周期T的長度決定了被測信號頻率的范圍。較長的計(jì)數(shù)允許周期T對低頻信號而言有利于改善測量精度,但對于高頻信號來說,則會產(chǎn)生溢出;較短的計(jì)數(shù)允許周期T對低頻信號的測量,雖然精度降低,但能測量的最大頻率較高,且不會產(chǎn)生溢出。</p><p>  在本設(shè)計(jì)中,用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,通過

47、對來臨的待測信號的上升沿在設(shè)定的計(jì)數(shù)允許周期T內(nèi)計(jì)數(shù),這個(gè)計(jì)數(shù)允許周期T就是所謂的閥門。閘門時(shí)間可以根據(jù)需要取值大于或小于1 s都可以。閘門時(shí)間越長,得到的頻率值就越準(zhǔn)確,但閘門時(shí)間越長,則每測一次頻率的間隔就越長。閘門時(shí)間越短,測得的頻率值刷新就越快,但測得的頻率精度就受影響。通常情況下計(jì)算每秒內(nèi)待測信號的脈沖個(gè)數(shù)即閘門時(shí)間為1s?;诖怂悸罚傻玫綌?shù)字式頻率計(jì)系統(tǒng)組成框圖如圖2.0。</p><p>  圖2

48、.0數(shù)字式頻率計(jì)的原理方框圖</p><p>  系統(tǒng)設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,包括脈沖發(fā)生器電路模塊與測頻控制信號發(fā)生器電路模塊 ,以及待測信號脈沖計(jì)數(shù)電路模塊和鎖存與譯碼顯示控制電路模塊。該數(shù)字式頻率計(jì)的精度取決于系統(tǒng)基準(zhǔn)時(shí)鐘,實(shí)際設(shè)計(jì)可采用石英晶體振蕩器電路,以便為閘門控制電路產(chǎn)生精確的系統(tǒng)基準(zhǔn)時(shí)鐘。并且分別用VHDL硬件描述語言對其編程,實(shí)現(xiàn)了閘門控制信號、計(jì)數(shù)電路、鎖存電路、顯示電路等。</p&

49、gt;<p>  根據(jù)數(shù)字頻率計(jì)的系統(tǒng)原理方框圖(圖2.0)設(shè)計(jì)系統(tǒng)的頂層電路圖如圖2.1所示,A模塊為基準(zhǔn)脈沖信號產(chǎn)生模塊,B模塊為測頻時(shí)序控制電路模塊,C模塊為計(jì)數(shù)模塊,D模塊為40位鎖存器模塊,E模塊為七段譯碼顯示模塊,F(xiàn)模塊為動(dòng)態(tài)掃描模塊。</p><p>  圖2.1十位十進(jìn)制頻率計(jì)頂層原理圖</p><p>  2.3測頻專用模塊功能描述及VHDL程序</p

50、><p>  2.3.1基準(zhǔn)脈沖信號產(chǎn)生模塊</p><p>  當(dāng)系統(tǒng)正常工作時(shí),脈沖發(fā)生器提供標(biāo)準(zhǔn)1HZ的輸入信號,經(jīng)過測頻時(shí)序控制信號發(fā)生器進(jìn)行信號的變換,產(chǎn)生計(jì)數(shù)信號。測量信號時(shí),將被測信號送入計(jì)數(shù)模塊。先使計(jì)數(shù)模塊對輸入的矩形波進(jìn)行計(jì)數(shù),將計(jì)數(shù)結(jié)果送入鎖存器中,保證系統(tǒng)可以穩(wěn)定顯示數(shù)據(jù),然后將計(jì)數(shù)結(jié)果送入動(dòng)態(tài)掃描電路進(jìn)行選擇輸出,輸出結(jié)果由顯示譯碼驅(qū)動(dòng)電路將計(jì)數(shù)結(jié)果轉(zhuǎn)換成相應(yīng)的能夠在

51、七段數(shù)碼顯示管上可以顯示的十進(jìn)制結(jié)果,在七段數(shù)碼顯示管可以看到計(jì)數(shù)結(jié)果。</p><p>  圖2.2基準(zhǔn)脈沖信號產(chǎn)生模塊</p><p>  基準(zhǔn)脈沖信號產(chǎn)生模塊的工作過程為:由外部時(shí)鐘提供的10MHZ 標(biāo)準(zhǔn)脈沖信號,經(jīng)分頻器兩次分頻以后得到1HZ 基準(zhǔn)脈沖信號。在CLK10M模塊,輸入為由外部時(shí)鐘提供的CLK脈沖信號,頻率為10MHZ ,經(jīng)過10000分頻,輸出為信號CLK500,頻率

52、為500HZ,該時(shí)鐘信號可作為動(dòng)態(tài)掃描顯示模塊的掃描時(shí)鐘信號,時(shí)鐘信號CLK500經(jīng)過CLKGEN模塊,經(jīng)過250分頻,輸出為基準(zhǔn)脈沖信號NECLK ,頻率為1HZ.</p><p>  CLK10M模塊的源程序?yàn)椋?lt;/p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p>&

53、lt;p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CLK10M IS</p><p>  PORT( CLK :IN STD_LOGIC ; 外部時(shí)鐘提供的10MHZ標(biāo)準(zhǔn)脈沖信號</p><p>  CLK500: OUT STD_LOGIC); 10000分頻后的時(shí)

54、鐘信號</p><p>  END CLK10M;</p><p>  ARCHITECTURE ART OF CLK10M IS</p><p>  SIGNAL CNTER:STD_LOGIC_VECTOR(24 DOWNTO 0);</p><p>  SIGNAL CNTEER:STD_LOGIC;</p><p&

55、gt;<b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF (CLK'EVENT AND CLK='1') THEN</p><p>  IF CNTER=9999 THEN

56、 </p><p>  CNTER<="0000000000000000000000000"; </p><p>  CNTEER<=NOT CNTEER; </p><p>  ELSE CNTER<=CNTER+1;<

57、;/p><p><b>  END IF ;</b></p><p><b>  END IF ;</b></p><p>  END PROCESS;</p><p>  CLK500<=CNTEER;</p><p><b>  END ART;</b&

58、gt;</p><p>  CLKGEN模塊的源程序?yàn)椋?lt;/p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CLKGEN I

59、S</p><p>  PORT( CLK :IN STD_LOGIC ;</p><p>  NEWCLK: OUT STD_LOGIC);</p><p>  END CLKGEN;</p><p>  ARCHITECTURE ART OF CLKGEN IS</p><p>  SIGNAL CNTER:ST

60、D_LOGIC_VECTOR(24 DOWNTO 0);</p><p>  SIGNAL CNTEER:STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><

61、p>  IF (CLK'EVENT AND CLK='1') THEN</p><p>  IF CNTER=249 THEN</p><p>  CNTER<="0000000000000000000000000";</p><p>  CNTEER<=NOT CNTEER;</p>&l

62、t;p>  ELSE CNTER<=CNTER+1;</p><p><b>  END IF ;</b></p><p><b>  END IF ;</b></p><p>  END PROCESS;</p><p>  NEWCLK<=CNTEER;</p>

63、<p><b>  END ART;</b></p><p>  仿真后得到的波形圖如圖2.3所示:</p><p>  仿真分析:輸入信號CLK 的頻率為10MHZ,輸出信號CLK500的頻率為500HZ。圖2.3CLK500分頻模塊仿真波形</p><p>  圖2. 4CLKGEN 分頻模塊仿真波形</p><

64、;p>  仿真分析:輸入信號CLK的頻率為500HZ,輸出NEWCLK的頻率為1HZ。</p><p>  測頻時(shí)序控制電路模塊</p><p>  圖2.5測頻時(shí)序控制電路模塊框圖</p><p>  測頻時(shí)序控制電路模塊框圖如圖2.5所示,CLK為由基準(zhǔn)脈沖信號產(chǎn)生模塊產(chǎn)生的頻率為1HZ的標(biāo)準(zhǔn)時(shí)鐘信號NEWCLK,測頻時(shí),將頻率為1HZ的標(biāo)準(zhǔn)時(shí)鐘信號NEW

65、CLK送入控制電路輸入端CLK,輸出端包括一個(gè)計(jì)數(shù)使能輸出端TSTEN,一個(gè)是清零信號輸入端CLR_CNT和一個(gè)數(shù)據(jù)鎖存輸出端LOAD。使能信號TSTEN對頻率計(jì)中10個(gè)十進(jìn)制計(jì)數(shù)器的使能端ENA進(jìn)行同步控制,當(dāng)TSTEN為高電平時(shí)允許計(jì)數(shù),低電平時(shí)停止計(jì)數(shù),停止計(jì)數(shù)期間,測頻時(shí)序控制模塊TESTCTL的鎖存信號LOAD端輸出上升沿,將計(jì)數(shù)值鎖存到REG40B鎖存器中。測頻控制模塊TESTCTL的CLR_CNT端產(chǎn)生一個(gè)上升沿,對計(jì)數(shù)器

66、進(jìn)行清零。為下一秒的計(jì)數(shù)操作做準(zhǔn)備。</p><p>  圖2.6測頻時(shí)序模塊波形圖</p><p>  為了實(shí)現(xiàn)系統(tǒng)功能,測頻時(shí)序控制模塊TESTCTL,計(jì)數(shù)器CNT10,以及鎖存器REG40B存在一個(gè)工作時(shí)序的問題,設(shè)計(jì)時(shí)需要綜合考慮。為了產(chǎn)生如圖2.6所示的時(shí)序圖,首先要有一個(gè)D觸發(fā)器構(gòu)成二分頻器,在每次時(shí)鐘CLK上升沿到來使其值翻轉(zhuǎn)。觸發(fā)器的輸出高電平正好是1S,即測頻時(shí)序控制模塊

67、TESTCTL的TSTEN端時(shí)鐘脈沖信號的脈寬為1S,并對頻率計(jì)的每一計(jì)數(shù)器CNT10的ENA使能端進(jìn)行同步控制。而LOAD信號正好是TSTEN端信號的翻轉(zhuǎn)。在計(jì)數(shù)結(jié)束后半個(gè)CLK周期,CLK與TSTEN都為低電平,這時(shí)CLR_CNT產(chǎn)生一個(gè)上升沿作為清零信號。</p><p>  圖2.7測頻時(shí)序模塊仿真波形 </p><p>  測頻時(shí)序控制電路模塊源程序:</p>&l

68、t;p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY TESTCTL IS</p><p>  PORT(CLK:IN STD_LOGIC;</p&

69、gt;<p>  TSTEN:OUT STD_LOGIC;</p><p>  CLR_CNT:OUT STD_LOGIC;</p><p>  LOAD: OUT STD_LOGIC);</p><p>  END TESTCTL;</p><p>  ARCHITECTURE ART OF TESTCTL IS</p&

70、gt;<p>  SIGNAL Div2CLK:STD_LOGIC;</p><p><b>  BEGIN</b></p><p>  PROCESS(CLK)</p><p><b>  BEGIN</b></p><p>  IF CLK'EVENT AND CLK=&#

71、39;1' THEN</p><p>  Div2CLK<=NOT Div2CLK;</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  PROCESS(CLK,Div2CLK)</p><p><b>  

72、BEGIN</b></p><p>  IF CLK='0'AND Div2CLK='0'THEN</p><p>  CLR_CNT<='1';</p><p>  ELSE CLR_CNT<='0';</p><p><b>  END IF

73、 ;</b></p><p>  END PROCESS;</p><p>  LOAD<=NOT Div2clk;</p><p>  TSTEN<=Div2CLK;</p><p><b>  END ART;</b></p><p><b>  2.3.3計(jì)

74、數(shù)模塊</b></p><p>  該計(jì)數(shù)模塊主要有10個(gè)十進(jìn)制計(jì)數(shù)器CNT10級聯(lián)而成,具有復(fù)位和使能控制功能,主要是在閥門時(shí)間內(nèi)對被測信號FSIN頻率進(jìn)行計(jì)數(shù)。</p><p>  圖2.8計(jì)數(shù)模塊框圖</p><p>  測頻時(shí), 測頻時(shí)序控制電路模塊TESTCTL的TSTEN端時(shí)鐘脈沖信號的脈寬為1S,并對頻率計(jì)的如圖2.8的計(jì)數(shù)模塊每一計(jì)數(shù)器C

75、NT10的ENA使能端進(jìn)行同步控制,TSTEN高電平期間允許各個(gè)計(jì)數(shù)器工作,低電平期間停止計(jì)數(shù)并保持計(jì)數(shù)值。測頻控制模塊TESTCTL的CLR_CNT端產(chǎn)生一個(gè)上升沿,并對頻率計(jì)的每一計(jì)數(shù)器CNT10的CLR端進(jìn)行同步控制,對計(jì)數(shù)器進(jìn)行清零。當(dāng)測頻時(shí)序控制模塊TESTCTL的鎖存信號LOAD端輸出上升沿時(shí),將計(jì)數(shù)值DIN(39 DOWNTO 0)鎖存到REG40B鎖存器中.此計(jì)數(shù)器從個(gè)位開始到高位分別計(jì)數(shù),使低位計(jì)數(shù)器CNT10的CAR

76、RY_OUT端與高位計(jì)數(shù)器CNT10的輸入時(shí)鐘位CLK相連。首個(gè)計(jì)數(shù)器CNT10的CLK端外接被測信號FSIN,該計(jì)數(shù)模塊的輸出信號為有低位到高位的10組4位二進(jìn)制表示的十進(jìn)制數(shù),用來分別表示被測信號的個(gè)、十、百、千等位的數(shù)值。位數(shù)越高頻率測量的范圍也越寬,此測量范圍由計(jì)數(shù)電路內(nèi)部的十進(jìn)制計(jì)數(shù)器的個(gè)數(shù)來決定。</p><p>  圖2.9具有同步使能端的十進(jìn)制計(jì)數(shù)器 元件符號圖</p><p

77、>  具有同步使能端的十進(jìn)制計(jì)數(shù)器如圖2.9所示,CARRY_OUT 是計(jì)數(shù)器進(jìn)位輸出;COUNT10(3 DOWNTO 0)是計(jì)數(shù)器的狀態(tài)輸出;CLK是時(shí)鐘輸入端;ENA是使能控制輸入端,當(dāng)ENA=1時(shí),計(jì)數(shù)器計(jì)數(shù),當(dāng)ENA=0時(shí),計(jì)數(shù)器保持狀態(tài)不變。</p><p>  具有同步使能端的十進(jìn)制計(jì)數(shù)器源程序?yàn)椋?lt;/p><p>  LIBRARY IEEE;</p>

78、<p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY CNT10 IS</p><p>  PORT( CLK:IN STD_LOGIC; 計(jì)數(shù)時(shí)鐘信號</p><p> 

79、 CLR:IN STD_LOGIC; 清零信號</p><p>  ENA:IN STD_LOGIC; 計(jì)數(shù)使能信號</p><p>  COUNT10:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); 4位計(jì)數(shù)結(jié)果輸出</p><p>  CARRY_OUT:OUT ST

80、D_LOGIC 計(jì)數(shù)進(jìn)位</p><p><b>  );</b></p><p>  END CNT10;</p><p>  ARCHITECTURE ART OF CNT10 IS</p><p>  SIGNAL CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);</p>

81、;<p><b>  BEGIN </b></p><p>  PROCESS(CLK,CLR,ENA)</p><p><b>  BEGIN</b></p><p>  IF CLR='1'THEN CQI<="0000"; 計(jì)數(shù)器

82、異步清零</p><p>  ELSIF CLK'EVENT AND CLK='1'THEN</p><p>  IF ENA='1'THEN</p><p>  IF CQI="1001"THEN</p><p>  CQI<="0000";

83、 等于9,則計(jì)數(shù)器清零</p><p>  ELSE CQI<=CQI+'1';</p><p><b>  END IF;</b></p><p><b>  END IF;</b></p><p><b>  END IF;</b&

84、gt;</p><p>  END PROCESS;</p><p>  PROCESS(CQI)</p><p><b>  BEGIN</b></p><p>  IF CQI="1001"THEN CARRY_OUT<='1'; 進(jìn)位輸出<

85、;/p><p>  ELSE CARRY_OUT<='0';</p><p><b>  END IF;</b></p><p>  END PROCESS;</p><p>  COUNT10<=CQI;</p><p><b>  END ART;</b

86、></p><p>  圖2.10具有使能端的十進(jìn)制計(jì)數(shù)器的仿真波形</p><p>  仿真分析:在使能端ENA高電平期間,清零信號CLR為低電平時(shí),CNT10計(jì)數(shù)器以十進(jìn)制計(jì)數(shù),計(jì)數(shù)到9后,進(jìn)位CARRY_OUT輸出為高電平,在下一個(gè)時(shí)鐘信號CLK上升沿到來時(shí),計(jì)數(shù)器清零。在使能端ENA為低電平時(shí),計(jì)數(shù)器不能啟動(dòng)。當(dāng)清零信號CLR為高電平時(shí),計(jì)數(shù)器清零。</p>&

87、lt;p>  2.3.4 鎖存器模塊</p><p>  圖2.11鎖存器元件符號</p><p>  鎖存器模塊元件符號如圖2.11所示,主要作用為鎖存計(jì)數(shù)器的計(jì)數(shù)值。設(shè)置鎖存器可以使數(shù)據(jù)顯示穩(wěn)定可靠,不會由于周期性的清零信號而使數(shù)碼管不斷閃爍。測頻時(shí)序控制模塊TESTCTL的鎖存信號LOAD端輸出上升沿,將計(jì)數(shù)值鎖存到REG40B鎖存器中,并由REG40B的輸出端輸出。</

88、p><p>  鎖存器模塊的源程序:</p><p>  LIBRARY IEEE;</p><p>  USE IEEE.STD_LOGIC_1164.ALL;</p><p>  ENTITY REG40B IS</p><p>  PORT( LOAD :IN STD_LOGIC;

89、 鎖存信號時(shí)鐘</p><p>  DIN: IN STD_LOGIC_VECTOR(39 DOWNTO 0); 鎖存器輸入信號</p><p>  DOUT: OUT STD_LOGIC_VECTOR(39 DOWNTO 0) 鎖存器輸出信號</p><p><b>  );</b></p

90、><p>  END REG40B;</p><p>  ARCHITECTURE ART OF REG40B IS</p><p><b>  BEGIN</b></p><p>  PROCESS(LOAD,DIN)</p><p><b>  BEGIN</b></p

91、><p>  IF LOAD'EVENT AND LOAD='1' THEN DOUT<=DIN; LOAD上升沿到來后</p><p>  END IF; 鎖存</p><p>  END PROCESS;

92、 </p><p><b>  END ART;</b></p><p>  圖2.12REG40B 波形仿真</p><p>  REG40B波形仿真分析:輸入信號DIN為40位數(shù)據(jù)0000 0000 0000 0000 0000 0000 0000 0000

93、0001 1000,測頻時(shí)序控制模塊TESTCTL的鎖存信號LOAD端輸出上升沿時(shí),將計(jì)數(shù)值鎖存到REG40B鎖存器中,輸出信號DOUT為40位數(shù)據(jù)0000 0000 0000 0000 0000 0000 0000 0000 0001 1000.</p><p>  2.3.5七段顯示譯碼器</p><p>  數(shù)字邏輯系統(tǒng)中常用的顯示器件是數(shù)碼管,半導(dǎo)體數(shù)碼管的外形

94、和等效電路如圖2.13所示,每一個(gè)字段都是一個(gè)發(fā)光二極管,因而也稱之為LED數(shù)碼管或LED顯示器。LED數(shù)碼管用七段發(fā)光二極管(帶小數(shù)點(diǎn)時(shí)為8段)來顯示數(shù)字,每一段都是一個(gè)發(fā)光二極管,一般把所有段的相同的一端相連,連接到地(共陰極接法)或者是連接到電源(共陽極接法)。共陰極LED數(shù)碼管的公共端連接到地,另一端分別接一個(gè)限流電阻后再接到控制電路的信號端,當(dāng)信號端為高電平時(shí),該段即被點(diǎn)亮,否則不亮。共陽極接法則相反,公共端連接到電源,另一端

95、分別接一個(gè)限流電阻后再接到控制電路的信號端,只有信號端為低電平時(shí)才被點(diǎn)亮,否則不亮。</p><p>  圖2.13數(shù)碼管的外形和等效電路</p><p>  在數(shù)字邏輯電路中,數(shù)碼管可以用TTL或CMOS集成電路來直接驅(qū)動(dòng),其驅(qū)動(dòng)方式有BCD碼驅(qū)動(dòng)和直接驅(qū)動(dòng)。BCD碼驅(qū)動(dòng)方式是用74LS48(共陽極七段顯示驅(qū)動(dòng)器)、74LS49(共陰極七段顯示驅(qū)動(dòng)器)譯碼驅(qū)動(dòng)電路來控制數(shù)碼管顯示。直接驅(qū)

96、動(dòng)方式是直接對數(shù)碼管相應(yīng)的字段給出驅(qū)動(dòng)電平,以顯示電平。 74LS48是一種實(shí)現(xiàn)碼型轉(zhuǎn)換的譯碼芯片。碼型轉(zhuǎn)化就是將一種編碼的輸入轉(zhuǎn)換為另一種編碼輸出。74LS48就是將BCD碼轉(zhuǎn)換成為7段數(shù)碼管顯示編碼。它是共陰極驅(qū)動(dòng)芯片,也就是在輸出高電平時(shí),該芯片具有較強(qiáng)的電流輸出能力。</p><p>  圖2.14七段顯示譯碼器模塊元件符號</p><p>  七段顯示譯碼模塊將鎖存器送過來的4位

97、BCD數(shù)字符譯成七段碼。頻率測量中,共要10個(gè)七段顯示譯碼模塊BCD。鎖存器模塊輸出的40位數(shù)據(jù),從低位到高位以4位二進(jìn)制數(shù)據(jù)為一組分別送入顯示譯碼模塊的輸入端口BCD(3 DOWNTO 0)。每個(gè)顯示譯碼模塊的輸出端LED(6 DOWNTO 0)從低位高位送入動(dòng)態(tài)掃描模塊的10個(gè)7位數(shù)據(jù)輸入端口。</p><p>  七段顯示譯碼模塊的源程序:</p><p>  LIBRARY IEE

98、E; </p><p>  USE IEEE.STD_LOGIC_1164.ALL; </p><p>  ENTITY BCD7 IS </p><p>  PORT(BCD:IN STD_LOGIC_VECTOR(3 DOWNTO 0); 輸入的4位BCD 數(shù)字符</p><p>  LED: OUT STD_LOGIC_VECTOR(

99、6 DOWNTO 0)); 輸出七段碼</p><p><b>  END; </b></p><p>  ARCHITECTURE ART OF BCD7 IS </p><p><b>  BEGIN </b></p><p>  LED<="0111111" W

100、HEN BCD="0000" ELSE 0 LED 為共陰極</p><p>  "0000110" WHEN BCD="0001" ELSE 1</p><p>  "1011011" WHEN BCD="0010" ELSE 2<

101、/p><p>  "1001111" WHEN BCD="0011" ELSE 3</p><p>  "1100110" WHEN BCD="0100" ELSE 4</p><p>  "1101101" WHEN BCD="01

102、01" ELSE 5</p><p>  "1111101" WHEN BCD="0110" ELSE 6</p><p>  "0000111" WHEN BCD="0111" ELSE 7</p><p>  "11111

103、11" WHEN BCD="1000" ELSE 8</p><p>  "1101111" WHEN BCD="1001" ELSE 9</p><p>  "0000000"; </p><p>  END ART; </p&

104、gt;<p>  圖2.15七段顯示譯碼器模塊仿真波形</p><p>  仿真波形分析:在七段顯示譯碼器模塊仿真中,輸入信號BCD的值為 0001時(shí),輸出信號LED 的值為0000110,當(dāng)輸入信號BCD的值為1110時(shí),輸出信號LED的值為0000000。因?yàn)樵摂?shù)字頻率計(jì)要求的為10進(jìn)制計(jì)數(shù),則該七段顯示譯碼器只對0到9的二進(jìn)制數(shù)進(jìn)行譯碼,輸入其他的二進(jìn)制數(shù)時(shí),譯碼輸出為0000000。<

105、/p><p>  2.3.6動(dòng)態(tài)掃描顯示模塊</p><p>  在CPLD或FPGA驗(yàn)證設(shè)計(jì)結(jié)果時(shí),數(shù)碼管的兩種驅(qū)動(dòng)方式BCD碼驅(qū)動(dòng)和直接驅(qū)動(dòng)兩種方法均可采用,10個(gè)LED數(shù)碼管以靜態(tài)方式顯示時(shí),需要用到8×10條引腳線,在較為復(fù)雜的系統(tǒng)中,CPLD或FPGA的引腳資源有限的。因此對于多個(gè)LED數(shù)碼管顯示,可以采用動(dòng)態(tài)掃描方式來實(shí)現(xiàn)LED數(shù)碼管動(dòng)態(tài)顯示。實(shí)現(xiàn)方法是將頻率計(jì)的10個(gè)數(shù)

106、碼管的相應(yīng)字段并聯(lián)起來,由CPLD或FPGA 的輸出信號a,b,c,d,e,f,g直接驅(qū)動(dòng)相應(yīng)字段,由片選信號S1,S2,S3,S4,S5,S6,S7,S8,S9,S10依次點(diǎn)亮各個(gè)LED數(shù)碼管,循環(huán)顯示,即一個(gè)數(shù)碼管顯示之后另一個(gè)數(shù)碼管馬上顯示,利用人眼的視覺的暫留特性,可以看大多個(gè)數(shù)碼管同時(shí)顯示的效果。采用掃描方式來實(shí)現(xiàn)LED數(shù)碼管動(dòng)態(tài)顯示,控制好數(shù)碼管之間的延時(shí)相當(dāng)重要。根據(jù)人眼的視覺暫留原理,LED數(shù)碼管每秒導(dǎo)通16次以上,人眼

107、就無法分辨LED數(shù)碼管短暫的不亮,認(rèn)為是一直亮的(其實(shí)LED數(shù)碼管是以一定頻率在閃動(dòng)的)。如果延時(shí)控制的不好則會出現(xiàn)閃動(dòng),或者亮度不夠。據(jù)經(jīng)驗(yàn),延時(shí)2ms可以達(dá)到滿意的效果。另外,顯示的字符有變化時(shí),可在延時(shí)到達(dá)后送一個(gè)低電平(共陰極數(shù)碼管</p><p>  圖2.16動(dòng)態(tài)掃描顯示模塊元件圖</p><p>  動(dòng)態(tài)掃描模塊如圖2.16所示,時(shí)鐘信號CLK端外接 CLK500分頻模塊輸出

108、信號CLK500,復(fù)位信號RESET端接復(fù)位信號RESET,當(dāng)時(shí)鐘信號CLK上升沿到來時(shí),片選信號S1,S2,S3,S4,S5,S6,S7,S8,S9,S10依次點(diǎn)亮各個(gè)LED數(shù)碼管,循環(huán)顯示,即一個(gè)數(shù)碼管顯示之后另一個(gè)數(shù)碼管馬上顯示。</p><p>  動(dòng)態(tài)掃描顯示模塊的源程序?yàn)椋?lt;/p><p>  LIBRARY IEEE;</p><p>  USE IE

109、EE.STD_LOGIC_1164.ALL;</p><p>  USE IEEE.STD_LOGIC_ARITH.ALL;</p><p>  USE IEEE.STD_LOGIC_UNSIGNED.ALL;</p><p>  ENTITY DYNAMIC IS</p><p>  PORT(CLK:IN STD_LOGIC;

110、 動(dòng)態(tài)掃描時(shí)鐘信號</p><p>  RESET:IN STD_LOGIC; 復(fù)位信號</p><p>  DIN0,DIN1,DIN2,DIN3,DIN4,DIN5,DIN6,DIN7,DIN8,DIN9:IN STD_LOGIC_VECTOR(6 DOWNTO 0); 譯

111、碼后的數(shù)據(jù)信號輸入</p><p>  SHIFT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0); 位選信號 </p><p>  BUS4 :OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); 段選信號</p><p>  END DYNAMIC;</p><p>  ARCHITECT

112、URE ART OF DYNAMIC IS</p><p>  SIGNAL SCAN_CLK: STD_LOGIC_VECTOR( 3 DOWNTO 0);</p><p><b>  BEGIN </b></p><p>  P1:PROCESS(CLK,SCAN_CLK,RESET)</p><p>  VARIA

113、BLE SCAN:STD_LOGIC_VECTOR(17 DOWNTO 0);</p><p><b>  BEGIN</b></p><p>  IF RESET='1' THEN </p><p>  SCAN:="000000000000000000";</p><p>  S

114、CAN_CLK<="0000";</p><p>  ELSIF CLK'EVENT AND CLK='1'THEN</p><p>  SCAN:=SCAN+1;</p><p><b>  END IF;</b></p><p>  SCAN_CLK<=SCAN

115、(3 DOWNTO 0);</p><p>  END PROCESS P1;</p><p>  P2:PROCESS(SCAN_CLK,DIN0,DIN1,DIN2,DIN3,DIN4,DIN5,DIN6,DIN7,DIN8,DIN9)</p><p>  BEGIN

溫馨提示

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

評論

0/150

提交評論