電子系統(tǒng)課程設(shè)計(jì)——簡易頻率計(jì)_第1頁
電子系統(tǒng)課程設(shè)計(jì)——簡易頻率計(jì)_第2頁
電子系統(tǒng)課程設(shè)計(jì)——簡易頻率計(jì)_第3頁
電子系統(tǒng)課程設(shè)計(jì)——簡易頻率計(jì)_第4頁
電子系統(tǒng)課程設(shè)計(jì)——簡易頻率計(jì)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課 程 設(shè) 計(jì) 說 明 書課程名稱 現(xiàn)代電子系統(tǒng)課程設(shè)計(jì)題 目簡易數(shù)字頻率計(jì)設(shè)計(jì)學(xué) 院 電子信息工程學(xué)院班 級(jí) 學(xué)生姓名 指導(dǎo)教師日 期 2011年12月16日 課程設(shè)計(jì)任務(wù)書(指導(dǎo)教師填寫)課程設(shè)計(jì)名稱 現(xiàn)代電子系統(tǒng)課程設(shè)計(jì) 學(xué)生姓名專業(yè)班級(jí)設(shè)計(jì)題目簡易數(shù)字頻率計(jì)設(shè)計(jì)一、 課程設(shè)計(jì)目的掌握高速AD的使用方法;掌握頻率計(jì)的工作原理;掌握GW48_SOPC實(shí)驗(yàn)箱的使用方法;了解基于FPGA的電子系統(tǒng)的設(shè)計(jì)方法。二、 設(shè)計(jì)內(nèi)容、技術(shù)條件和要求設(shè)計(jì)一個(gè)具有如下功能的簡易頻率計(jì)。(1)基本要求:a被測(cè)信號(hào)的頻率范圍為120kHz,用4位數(shù)碼管顯示數(shù)據(jù)。b測(cè)量結(jié)果直接用十進(jìn)制數(shù)值顯示。c被測(cè)信號(hào)可以是正

2、弦波、三角波、方波,幅值13V不等。d具有超量程警告(可以用LED燈顯示,也可以用蜂鳴器報(bào)警)。e當(dāng)測(cè)量脈沖信號(hào)時(shí),能顯示其占空比(精度誤差不大于1%)。(2)發(fā)揮部分a修改設(shè)計(jì),實(shí)現(xiàn)自動(dòng)切換量程。b構(gòu)思方案,使整形時(shí),以實(shí)現(xiàn)擴(kuò)寬被測(cè)信號(hào)的幅值范圍。三、 時(shí)間進(jìn)度安排布置課題和講解:1天 查閱資料、設(shè)計(jì):4天實(shí)驗(yàn):3天 撰寫報(bào)告:2天四、 主要參考文獻(xiàn)指導(dǎo)教師簽字: 2011年 11月 28日摘要頻率計(jì)是數(shù)字電路中的一個(gè)典型應(yīng)用,是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測(cè)量儀器,頻率測(cè)量在科技研究和實(shí)際應(yīng)用中的作用日益重要。數(shù)字頻率計(jì)是數(shù)字電路中的一個(gè)典型應(yīng)用,實(shí)際的硬件設(shè)計(jì)用到的

3、器件較多,連線比較復(fù)雜,而且會(huì)產(chǎn)生比較大的延時(shí),造成測(cè)量誤差、可靠性差。隨著復(fù)雜可編程邏輯器件(CPLD)的廣泛應(yīng)用,以EDA工具作為開發(fā)手段,運(yùn)用VHDL語言。將使整個(gè)系統(tǒng)大大簡化。提高整體的性能和可靠性。在本文中,我們?cè)O(shè)計(jì)了一個(gè)簡易數(shù)字頻率計(jì)。主要分為如下幾個(gè)部分:l A/D模塊:用VHDL語言寫一個(gè)狀態(tài)機(jī),控制ADC0809芯片正常工作,使輸入的被測(cè)模擬信號(hào)經(jīng)過ADC0809芯片處理,轉(zhuǎn)化為數(shù)字信號(hào)。l 比較整形模塊:將A/D轉(zhuǎn)換出來的數(shù)字信號(hào)通過比較,高于閾值的為1低于閾值的為0從而將八位數(shù)字信號(hào)轉(zhuǎn)換為脈沖便于頻率計(jì)算。l 頻率測(cè)量模塊:常用的頻率測(cè)量方法有很多。有計(jì)數(shù)法和計(jì)時(shí)法等,具

4、體的方案論證將在下面進(jìn)行。l 占空比計(jì)算模塊:計(jì)算脈沖波占空比,具體的方案論證將在下面進(jìn)行。l 選擇顯示模塊:設(shè)置一個(gè)二選一電路,通過一個(gè)按鍵控制四位數(shù)碼管顯示的內(nèi)容是頻率還是占空比。關(guān)鍵詞:數(shù)字頻率計(jì)、模塊、占空比、數(shù)字信號(hào)、測(cè)量、閾值目錄任務(wù)解析.3總體方案與比較論證4方案選擇6頻率測(cè)量方法方案論證.6系統(tǒng)結(jié)構(gòu).9A/D模塊設(shè)計(jì).10比較整形模塊設(shè)計(jì).12頻率測(cè)量模塊設(shè)計(jì).13占空比計(jì)算模塊設(shè)計(jì).14選擇顯示模塊設(shè)計(jì).15硬件驗(yàn)證.16誤差分析.17心得體會(huì).18參考文獻(xiàn).19任務(wù)解析本次課程設(shè)計(jì)的主要任務(wù)就是利用VHDL語言設(shè)計(jì)一個(gè)簡易數(shù)字頻率計(jì)。頻率計(jì)主要用于測(cè)量正弦波、矩形波、三角波

5、和尖脈沖等周期信號(hào)的頻率值及脈沖的占空比。其擴(kuò)展功能可以實(shí)現(xiàn)自動(dòng)切換量程,使整形時(shí),以實(shí)現(xiàn)擴(kuò)寬被測(cè)信號(hào)的幅值范圍。數(shù)字頻率計(jì)的整體系統(tǒng)原理框圖如圖1,被測(cè)信號(hào)為外部輸入信號(hào),送入測(cè)量電路經(jīng)過數(shù)字整形、測(cè)量計(jì)算、數(shù)據(jù)鎖存和送顯。就完成了頻率計(jì)的基本功能,控制選擇用來實(shí)現(xiàn)頻率的計(jì)算頻率和計(jì)算占空比功能的選擇。圖1根據(jù)簡易頻率計(jì)設(shè)計(jì)的任務(wù)書可知這次的頻率計(jì)的性能指標(biāo)如下:一、信號(hào)波形:正弦波、三角波和矩形波。二、率范圍分二檔:Hz檔 和kHz檔a被測(cè)信號(hào)的頻率范圍為120kHz,用4位數(shù)碼管顯示數(shù)據(jù)。b測(cè)量結(jié)果直接用十進(jìn)制數(shù)值顯示。c被測(cè)信號(hào)可以是正弦波、三角波、方波,幅值13V不等。d具有超量程警

6、告(可以用LED燈顯示,也可以用蜂鳴器報(bào)警)。e當(dāng)測(cè)量脈沖信號(hào)時(shí),能顯示其占空比(精度誤差不大于1%)。三、發(fā)揮部分a修改設(shè)計(jì),實(shí)現(xiàn)自動(dòng)切換量程。b構(gòu)思方案,使整形時(shí),以實(shí)現(xiàn)擴(kuò)寬被測(cè)信號(hào)的幅值范圍總體方案與比較論證數(shù)字頻率計(jì)在具體是現(xiàn)實(shí)時(shí),可以采用單片機(jī)或者FPGA來實(shí)現(xiàn),具體有如下方案:方案一:采用FPGA與單片機(jī)為核心來實(shí)現(xiàn),可以利用FPGA來實(shí)現(xiàn)在單片機(jī)系統(tǒng)中的計(jì)數(shù)部分。這樣可以節(jié)省單片機(jī)的系統(tǒng)資源,考慮到在下面的相移網(wǎng)絡(luò)設(shè)計(jì)中也需要利用單片機(jī)和FPGA,但單片機(jī)的系統(tǒng)資源相對(duì)有限,因此我們建議在這里單片機(jī)主要用于控制,而FPGA則可以用來進(jìn)行計(jì)數(shù)之類的事情。簡單原理圖如圖2圖2方案二:

7、分離元件設(shè)計(jì)方案:本方案利用大量數(shù)字芯片,通過各種邏輯關(guān)系構(gòu)成,但由于芯片無編程性,實(shí)現(xiàn)難度較大,只能完成部分功能,同時(shí)電路復(fù)雜。在實(shí)際應(yīng)用中存在很多問題。方案三:全部利用FPGA來實(shí)現(xiàn),即利用FPGA產(chǎn)生時(shí)鐘。由于FPGA的工作頻率比單片機(jī)的高很多,因此可以考慮直接利用FPGA產(chǎn)生信號(hào)的高頻參考頻率,F(xiàn)PGA處理速度快,得到的頻率,占空比相對(duì)穩(wěn)定,精度高,容易實(shí)現(xiàn)高頻測(cè)量。缺點(diǎn)是硬件較為復(fù)雜,實(shí)現(xiàn)控制相對(duì)復(fù)雜。簡單原理圖如圖3圖3方案選擇:方案一雖然可行,但是由于在實(shí)驗(yàn)室現(xiàn)有的FPGA實(shí)驗(yàn)板上無法將單片機(jī)運(yùn)用在系統(tǒng)中,因此不能用。方案二在理論上和現(xiàn)有的硬件基礎(chǔ)上都能實(shí)現(xiàn),但是復(fù)雜度高因此也不

8、能用。方案三不僅符合此次課程設(shè)計(jì)的要求,且在實(shí)驗(yàn)室的條件下均能實(shí)現(xiàn),所以我們選擇方案三作為本次課程設(shè)計(jì)的方案。頻率測(cè)量方法方案論證數(shù)字頻率測(cè)量的基本原理是用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量其他信號(hào)的頻率。通常情況下有兩種測(cè)量方法:一種方法是計(jì)數(shù)法,就是在一定閘門時(shí)間內(nèi)測(cè)量被測(cè)信號(hào)的脈沖個(gè)數(shù);另外一種是計(jì)時(shí)法。方案一: 計(jì)數(shù)法計(jì)數(shù)法是將被測(cè)信號(hào)通過一個(gè)定時(shí)閘門加到計(jì)數(shù)器進(jìn)行計(jì)數(shù)的方法,如果閘門打開的時(shí)間為T,計(jì)數(shù)器得到的計(jì)數(shù)值為N1,則被測(cè)頻率為f=N1/T。改變時(shí)間T,則可改變測(cè)量頻率范圍。如圖4所示。計(jì)數(shù)值N1T被測(cè)信號(hào)標(biāo)準(zhǔn)閘門圖4設(shè)在T期間,計(jì)數(shù)器的精確計(jì)數(shù)值應(yīng)為N,根據(jù)計(jì)數(shù)

9、器的計(jì)數(shù)特性可知,N1的絕對(duì)誤差是N1=N+1,N1的相對(duì)誤差為N1=(N1-N)/N=1/N。由N1的相對(duì)誤差可知,N的數(shù)值愈大,相對(duì)誤差愈小,成反比關(guān)系。因此,在f以確定的條件下,為減少N的相對(duì)誤差,可通過增大T的方法來降低測(cè)量誤差。當(dāng)T為某確定值時(shí)(通常取1s),則有f1=N1,而f=N,故有f1的相對(duì)誤差:f1=(f1-f)/f=1/f從上式可知f1的相對(duì)誤差與f成反比關(guān)系,即信號(hào)頻率越高,誤差越小;而信號(hào)頻率越低,則測(cè)量誤差越大。因此測(cè)頻法適合用于對(duì)高頻信號(hào)的測(cè)量,頻率越高,測(cè)量精度也越高。方案二: 計(jì)時(shí)法計(jì)時(shí)法又稱為測(cè)周期法,計(jì)時(shí)法是用被測(cè)信號(hào)來控制閘門的開閉,而將標(biāo)準(zhǔn)時(shí)基脈沖通過

10、閘門加到計(jì)數(shù)器,閘門在外信號(hào)的一個(gè)周期內(nèi)打開,這樣計(jì)數(shù)器得到的計(jì)數(shù)值就是標(biāo)準(zhǔn)時(shí)基脈沖外信號(hào)的周期值,然后求周期值的倒數(shù),就得到所測(cè)頻率值。首先把被測(cè)信號(hào)通過二分頻,獲得一個(gè)高電平時(shí)間是一個(gè)信號(hào)周期T的方波信號(hào);然后用一個(gè)一直周期T1的高頻方波信號(hào)作為計(jì)數(shù)脈沖,在一個(gè)信號(hào)周期T的時(shí)間內(nèi)對(duì)T1信號(hào)進(jìn)行計(jì)數(shù),如圖5所示。圖5若在T時(shí)間內(nèi)的計(jì)數(shù)值為N2,則有:T2=N2*T1 f2=1/T2=1/(N2*T1)=f1/N2 N2的絕對(duì)誤差為N2=N+1。N2的相對(duì)誤差為N2=(N2-N)/N=1/NT2的相對(duì)誤差為T2=(T2-T)/T=(N2*T1-T)/T=f/f1從T2的相對(duì)誤差可以看出,周期測(cè)

11、量的誤差與信號(hào)頻率成正比,而與高頻標(biāo)準(zhǔn)計(jì)數(shù)信號(hào)的頻率成反比。當(dāng)f1為常數(shù)時(shí),被測(cè)信號(hào)頻率越低,誤差越小,測(cè)量精度也就越高。根據(jù)本設(shè)計(jì)要求的性能與技術(shù)指標(biāo),首先需要確定能滿足這些指標(biāo)的頻率測(cè)量方法。有上述頻率測(cè)量原理與方法的討論可知,計(jì)時(shí)法適合于對(duì)低頻信號(hào)的測(cè)量,而計(jì)數(shù)法則適合于對(duì)較高頻信號(hào)的測(cè)量。但由于用計(jì)時(shí)法所獲得的信號(hào)周期數(shù)據(jù),還需要求倒數(shù)運(yùn)算才能得到信號(hào)頻率,而求倒數(shù)運(yùn)算用VHDL語言實(shí)現(xiàn)起來更占用系統(tǒng)資源且可能帶來更大誤差,因此,計(jì)時(shí)法不適合本實(shí)驗(yàn)要求。測(cè)頻法的測(cè)量誤差與信號(hào)頻率成反比,信號(hào)頻率越低,測(cè)量誤差就越大,信號(hào)頻率越高,其誤差就越小。如果用測(cè)頻法所獲得的測(cè)量數(shù)據(jù),將閘門時(shí)間設(shè)

12、置為一秒時(shí),不需要進(jìn)行任何換算,計(jì)數(shù)器所計(jì)數(shù)據(jù)就是信號(hào)頻率。用VHDL語言實(shí)現(xiàn)起來更加容易,調(diào)整時(shí)也更為方便。因此,本次課程設(shè)計(jì)所用的頻率測(cè)量方法是計(jì)數(shù)法。系統(tǒng)結(jié)構(gòu) 根據(jù)本次課程設(shè)計(jì)的要求,我將這次的頻率計(jì)功能實(shí)現(xiàn)分為五個(gè)模塊:1、A/D模塊2、比較整形模塊3、頻率測(cè)量模塊4、占空比計(jì)算模塊5、選擇顯示模塊系統(tǒng)結(jié)構(gòu)如圖6:圖6為了節(jié)省系統(tǒng)資源我們的頻率測(cè)量模塊與占空比計(jì)算模塊都用頻率為3MHz的基準(zhǔn)信號(hào)。下面是各個(gè)模塊的具體描述與功能:A/D模塊設(shè)計(jì)A/D模塊的主要功能就是控制ADC0809芯片正常工作進(jìn)行被測(cè)模擬信號(hào)的采集和數(shù)字化的過程,ADC0809是美國國家半導(dǎo)體公司生產(chǎn)的CMOS工藝8

13、通道,8位逐次逼近式A/D轉(zhuǎn)換器。其內(nèi)部有一個(gè)8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號(hào),只選通8路模擬輸入信號(hào)中的一個(gè)進(jìn)行A/D轉(zhuǎn)換。是目前國內(nèi)應(yīng)用最廣泛的8位通用A/D芯片。其主要控制信號(hào):START是轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效;ALE是3位通道選擇地址信號(hào)的鎖存信號(hào)。當(dāng)模擬量送至某一輸入端,由3位地址信號(hào)選擇,而地址信號(hào)由ALE鎖存;EOC是轉(zhuǎn)換情況狀態(tài)信號(hào);在EOC的上升沿后,若使輸出使能信號(hào)OE為高電平,則打開三態(tài)緩沖期,把轉(zhuǎn)換好的8位數(shù)據(jù)結(jié)果輸至數(shù)據(jù)總線。其實(shí)按照本次課程設(shè)計(jì)的要求,此次頻率計(jì)應(yīng)該使用一個(gè)高速AD芯片,但是由于實(shí)驗(yàn)條件,我們只能用0809這個(gè)慢速的AD,所以本次

14、課程設(shè)計(jì)的測(cè)頻范圍就大大縮小了,測(cè)頻范圍大概只能從1Hz到4KHz。ADC0809的工作過程:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) AD轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到AD轉(zhuǎn)換完成,EOC變?yōu)楦唠娖?,指示AD轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平 時(shí),輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上,至此ADC0809的一次轉(zhuǎn)換結(jié)束。下面是控制ADC0809采樣狀態(tài)圖:st0st1st2st3st4對(duì)0809初始化啟動(dòng)A/D轉(zhuǎn)換采

15、樣周期中等待EOC=0正在轉(zhuǎn)換EOC=1轉(zhuǎn)換結(jié)束OE=1數(shù) 據(jù) 輸 出 有 效LOCK:0->1由LOCK信號(hào)鎖存轉(zhuǎn)換好的數(shù)據(jù)圖7用VHDL語言寫了一個(gè)狀態(tài)機(jī)來控制ADC0809正常工作采集轉(zhuǎn)化被測(cè)信號(hào),下面是A/D模塊的封裝圖以及仿真波形圖:圖8圖9 由仿真圖可也看出狀態(tài)機(jī)能夠控制ADC0809芯片正常工作完成被測(cè)信號(hào)的數(shù)字化處理。比較整形模塊設(shè)計(jì)比較整形模塊的輸入信號(hào)是經(jīng)過0809數(shù)字化的被測(cè)信號(hào)。比較整形模塊的作用就是將輸入的八位信號(hào)轉(zhuǎn)化為誤差較小的高低電平,形成脈沖信號(hào)。原理就是在設(shè)置一個(gè)閾值,當(dāng)輸入的信號(hào)高于這個(gè)閾值時(shí)輸出高電平,當(dāng)輸入的信號(hào)低于閾值時(shí)輸出低電平。這樣就可以把被

16、測(cè)的信號(hào)轉(zhuǎn)化為脈沖信號(hào),然后送入頻率計(jì)算電路就能方便地計(jì)算出被測(cè)信號(hào)的頻率。閾值的設(shè)置與被測(cè)信號(hào)的幅度有關(guān),任務(wù)書要求幅值是1-3V,所以我們?nèi)?V設(shè)置閾值,當(dāng)1V滿足時(shí),3V也自然滿足。因?yàn)?/5*255=51,所以我們將閾值設(shè)為00100000,小于50,滿足設(shè)計(jì)要求。其形成的封裝圖及仿真波形圖如下:圖10D為八位輸入CLKIN為輸出信號(hào)圖11圖12如圖11、圖12所示,當(dāng)輸入信號(hào)高于00100000 時(shí),輸出信號(hào)CLKIN是高電平,當(dāng)輸入信號(hào)低于00100000 時(shí),輸出信號(hào)CLKIN是低電平。所以比較整形模塊能夠正常工作,完成輸入信號(hào)的整形轉(zhuǎn)化為脈沖信號(hào)。頻率測(cè)量模塊設(shè)計(jì)頻率測(cè)量模塊有

17、兩個(gè)輸入信號(hào),一個(gè)是從比較整形電路輸出的整形后的脈沖信號(hào),這個(gè)是被測(cè)信號(hào)。另外一個(gè)是基準(zhǔn)頻率,用來進(jìn)行測(cè)量被測(cè)頻率使用。頻率測(cè)量模塊的工作過程大致是:將基準(zhǔn)頻率進(jìn)行分頻,得到一個(gè)周期為2秒的方波,利用方波的電平為正的半個(gè)周期作為閘門信號(hào),在半個(gè)周期內(nèi)利用計(jì)數(shù)器計(jì)算被測(cè)頻率的個(gè)數(shù),所得的脈沖個(gè)數(shù)就是被測(cè)信號(hào)的頻率。然后將所得個(gè)數(shù)送出給后面的選擇模塊。其中頻率計(jì)數(shù)具有自動(dòng)切換量程的功能,有兩個(gè)檔位一個(gè)是Hz檔,一個(gè)是KHz檔。因?yàn)橛盟膫€(gè)數(shù)碼管顯示但是ADC0809是慢速芯片,頻率范圍1Hz到4KHz,所以為了實(shí)現(xiàn)自動(dòng)換量程功能,當(dāng)被測(cè)頻率超過1000Hz就切換為KHz檔了,所以在實(shí)驗(yàn)箱上驗(yàn)證時(shí)最高

18、位的數(shù)碼管一般不會(huì)顯示數(shù)字。下面是模塊的封裝圖以及波形仿真圖:圖13圖14 由于軟件工具的限制,測(cè)頻功能的自動(dòng)換擋功能仿真起來比較困難,要求的頻率過高,軟件仿真較慢,易出錯(cuò),所以僅仿真驗(yàn)證了了頻率計(jì)數(shù)的功能。占空比計(jì)算模塊設(shè)計(jì)占空比計(jì)算模塊是用來計(jì)算被測(cè)信號(hào)為方波時(shí)的占空比。占空比為在一串理想的脈沖周期序列中(如方波),正脈沖的持續(xù)時(shí)間與脈沖總周期的比值。這個(gè)模塊我是這么實(shí)現(xiàn)的,將比較整形后的方波信號(hào)作為一個(gè)輸入信號(hào),再輸入一個(gè)高頻脈沖信號(hào)作為基準(zhǔn)信號(hào),最好要遠(yuǎn)遠(yuǎn)高于被測(cè)信號(hào)的頻率,這樣才能更好更準(zhǔn)確測(cè)量被測(cè)脈沖信號(hào)的占空比。將被測(cè)信號(hào)輸入后二分頻后得到一個(gè)周期是原被測(cè)信號(hào)二倍的信號(hào),然后利用

19、原被測(cè)信號(hào)的半個(gè)周期的高電平以及二分頻后的信號(hào)的半個(gè)周期的高電平作為兩個(gè)閘門信號(hào)T1、T2,分別記錄這兩個(gè)閘門信號(hào)下基準(zhǔn)信號(hào)的個(gè)數(shù)A1、A2,然后用A1除以A2就能得到被測(cè)脈沖信號(hào)的占空比了。特別注意的是這個(gè)模塊內(nèi)要加入一個(gè)鎖存器,否則占空比計(jì)算后的數(shù)值輸出到數(shù)碼管會(huì)不停的閃爍。下面是占空比模塊的封裝圖以及波形仿真圖:圖15圖16輸入信號(hào)是占空比為72%的脈沖信號(hào),仿真結(jié)果為72%,占空比計(jì)算模塊能夠正常工作。選擇顯示模塊設(shè)計(jì)選擇顯示模塊就是一個(gè)二選一電路,頻率測(cè)量模塊的四個(gè)輸出以及占空比計(jì)算模塊的兩個(gè)輸出都作為選擇顯示模塊的輸入,還有一個(gè)輸入信號(hào)由按鍵控制。用來控制選擇顯示模塊的輸出是頻率測(cè)

20、量模塊的輸出信號(hào)還是占空比計(jì)算模塊的兩個(gè)輸出。選擇顯示模塊的作用就是,因?yàn)閷?shí)驗(yàn)箱在模式5的狀態(tài)下,由于適用ADC0809,占用了三個(gè)數(shù)碼管,所以占空比及頻率不能同時(shí)用數(shù)碼管顯示,要用四個(gè)數(shù)碼管顯示頻率就必須通過選擇顯示模塊來控制。當(dāng)按鍵沒有按下的時(shí)候四個(gè)數(shù)碼管顯示的是頻率,當(dāng)按鍵按下后數(shù)高兩位數(shù)碼管顯示占空比,低兩位數(shù)碼管為零。下面是選擇顯示模塊的封裝圖以及波形仿真圖:圖17圖18由圖可以看到二選一模塊能夠完成既定功能。硬件驗(yàn)證:一、 頻率測(cè)量波形 方波 正弦波 三角波輸入頻率(hz) 輸出頻率(hz) 10 10 11 15 500 500 501 501 3000 3000 2998 25

21、88二、 占空比測(cè)試輸入占空比(%) 顯示占空比(%)70706059505040413032誤差分析1、頻率測(cè)量誤差分析:由于ADC0809芯片是一個(gè)低速的AD芯片,所以方波的頻率在4khz以下,測(cè)量較為準(zhǔn)確,超過4khz就會(huì)出現(xiàn)較大的誤差。正弦波的頻率在11hz-3000hz之間測(cè)量的較為準(zhǔn)確。三角波的頻率在15hz-1800hz之間測(cè)量的較為準(zhǔn)確。這與AD的轉(zhuǎn)換速度及精度有一定關(guān)系,頻率的測(cè)量方法也影響著頻率測(cè)量的精確度。所以如果使用高速AD,并且測(cè)量高頻與低頻時(shí)使用適用與不同情況的頻率測(cè)量方法,可以有效降低誤差。 2、占空比測(cè)量誤差分析:由表可見,占空比整體測(cè)量比較準(zhǔn)確,誤差并不是特別

22、大。通過提高占空比計(jì)算模塊的基準(zhǔn)頻率,增長閘門時(shí)間可以減小誤差。心得體會(huì)這次現(xiàn)代電子系統(tǒng)課程設(shè)計(jì)的題目是簡易數(shù)字頻率計(jì)。通過這次的課程設(shè)計(jì),我對(duì)頻率計(jì)以及硬件描述語言的應(yīng)用有了更深的認(rèn)識(shí)。雖然以前的數(shù)字邏輯電路的課程設(shè)計(jì)也是頻率計(jì),但那個(gè)頻率計(jì)是通過芯片與電路的連接實(shí)現(xiàn)的最基本的頻率計(jì)功能,并沒有更深入去考慮一個(gè)頻率計(jì)需要注意的各種問題例如如何完美實(shí)現(xiàn)頻率計(jì)各項(xiàng)性能指標(biāo)還有頻率計(jì)精度提高的問題等。這次課程設(shè)計(jì)與開學(xué)之初的電子設(shè)計(jì)自動(dòng)化的課程設(shè)計(jì)雖然有類似之處,但是比開學(xué)的那個(gè)課程設(shè)計(jì)要求要更高。我在開學(xué)初的課程設(shè)計(jì)的題目是利用FPGA實(shí)現(xiàn)一個(gè)數(shù)字鐘。在那次設(shè)計(jì)中,我遇到非常多的問題,基本模塊都

23、是磕磕絆絆寫了出來,而且在寫頂層文件的時(shí)候,我用的是元件例化語句將各個(gè)模塊連接起來,中間用到了三十多個(gè)中間信號(hào),自己記起來亂七八糟的,最后還是都寫到了一張紙上才全部分清,勉強(qiáng)將數(shù)字鐘的功能實(shí)現(xiàn)。所以這個(gè)課程設(shè)計(jì),我先將各個(gè)模塊一一認(rèn)真實(shí)現(xiàn),然后將各個(gè)模塊生成封裝,然后用原理圖連線的方法完成了總體的連線。這個(gè)方法既簡單又清晰,能夠看清整個(gè)頻率計(jì)工作流程原理,十分容易理解以及修改,不必再去用復(fù)雜的元件例化語句節(jié)省了我不少的時(shí)間。當(dāng)然在這次實(shí)驗(yàn)過程中也暴露出不少問題,頻率測(cè)量方法選擇不恰當(dāng),測(cè)量的誤差較大,比較整形模塊的閾值設(shè)置我想了好久都沒有想明白,最后還是在同學(xué)的耐心講解下才明白了閾值的選擇規(guī)則

24、。最后頻率計(jì)完成前的最后一個(gè)問題就是占空比的顯示問題,當(dāng)時(shí)做好之后一看占空比顯示不停閃爍,本來沒什么思路,后來聽老師給另外一個(gè)同學(xué)講解的時(shí)候說是加一個(gè)寄存器就能解決了,給占空比計(jì)算模塊加入了鎖存器果然解決了占空比閃爍的問題??偟膩碚f,這次的課設(shè)過程中遇到了不少的問題,但還是完成了任務(wù)書要求的功能。最大的收獲就是,我對(duì)VHDL語言的應(yīng)用更加熟悉,大學(xué)四年來我覺得我學(xué)的最好的就是C語言和VHDL硬件描述語言了,并且語言的應(yīng)用也在實(shí)驗(yàn)與課程設(shè)計(jì)中不斷進(jìn)步。參考文獻(xiàn):(1)現(xiàn)代電子系統(tǒng)設(shè)計(jì) 浙江大學(xué)出版社 何小艇主編 (2)EDA技術(shù)使用教程 科學(xué)出版社 潘松 編著(3)VHDL硬件描述語言與數(shù)字邏輯

25、電路設(shè)計(jì) 西安電子科技大學(xué)出版社 侯伯亨 劉凱 顧新 編著 (4)現(xiàn)代電子系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)書 河南科技大學(xué) 齊晶晶 李娜主編 附錄課程設(shè)計(jì)程序:AD模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY AD0809 ISPORT( CLK,EOC: IN STD_LOGIC;D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);ALE,START,OE,ADDA,LOCK0:OUT STD_LOGIC;-ADDA位地址輸入線,用于選通8路模擬輸入中的一路-ALE:地址鎖存

26、允許信號(hào),輸入,高電平有效-START: AD轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖(至少100ns寬)使其啟動(dòng)(脈沖上升沿使0809復(fù)位,下降沿啟動(dòng)A/D轉(zhuǎn)換)-OE:數(shù)據(jù)輸出允許信號(hào),輸入,高電平有效。當(dāng)AD轉(zhuǎn)換結(jié)束時(shí),此端輸入一個(gè)高電平,才能打開輸出三態(tài)門,輸出數(shù)字量Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END AD0809;ARCHITECTURE BEHAV OF AD0809 ISTYPE STATES IS (ST0,ST1,ST2,ST3,ST4);SIGNAL CURRENT_STATE,NEXT_STATE:STATES:=ST0;SIGNAL

27、REGL:STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL LOCK:STD_LOGIC;BEGINADDA<='1'Q<=REGL;LOCK0<=LOCK;COM: PROCESS(CURRENT_STATE,EOC)BEGINCASE CURRENT_STATE ISWHEN ST0=>ALE<='0'START<='0'LOCK<='0'OE<='0'NEXT_STATE<=ST1;WHEN ST1=>ALE<='

28、1'START<='1'LOCK<='0'OE<='0'NEXT_STATE<=ST2;WHEN ST2=>ALE<='0'START<='0'LOCK<='0'OE<='0'IF (EOC='1') THEN NEXT_STATE<=ST3;ELSE NEXT_STATE<=ST2;END IF;WHEN ST3=>ALE<='0'START<='0&

29、#39;LOCK<='0'OE<='1'NEXT_STATE<=ST4;WHEN ST4=>ALE<='0'START<='0'LOCK<='1'OE<='1'NEXT_STATE<=ST0;WHEN OTHERS=>NEXT_STATE<=ST0;END CASE;END PROCESS COM;REG:PROCESS(CLK)BEGINIF (CLK'EVENT AND CLK='1') THEN CURR

30、ENT_STATE<=NEXT_STATE;END IF;END PROCESS REG;LATCH1:PROCESS(LOCK)BEGINIF LOCK='1' AND LOCK'EVENT THEN REGL<=D;END IF;END PROCESS LATCH1;END BEHAV;比較整形模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY BJ ISPORT(D:IN STD_LO

31、GIC_VECTOR(7 DOWNTO 0);CLKIN:OUT STD_LOGIC);END ENTITY BJ ;ARCHITECTURE ONE OF BJ ISBEGINPROCESS(D)BEGINIF D>"00010000"THEN CLKIN<='1'ELSE CLKIN<='0'END IF;END PROCESS; END ONE;頻率測(cè)量模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD

32、_LOGIC_UNSIGNED.ALL;ENTITY PL ISPORT(CLK3M:IN STD_LOGIC;CLKIN:IN STD_LOGIC;SMG1,SMG2,SMG3,SMG4:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-SMG1,SMG2,SMG3,SMG4為記數(shù)碼管的khz,hz的三位BEEF,HZ,KHZ:OUT STD_LOGIC:='0');END ENTITY PL ;ARCHITECTURE ONE OF PL ISSIGNAL CLKOUT:STD_LOGIC;SIGNAL S0,S1,S2,S3,S4,S5:STD_LOGI

33、C_VECTOR(3 DOWNTO 0);SIGNAL Q0,Q1,Q2,Q3,Q4,Q5:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL GATE:STD_LOGIC;SIGNAL CNT0:INTEGER RANGE 0 TO 3000000;BEGIN PROCESS(CLK3M)-將時(shí)基信號(hào)分頻BEGINIF(RISING_EDGE(CLK3M)THEN IF(CNT0=3000000)THEN CNT0<=0;GATE<=NOT GATE;ELSE CNT0<=CNT0+1;END IF;END IF;END PROCESS;PROCESS(

34、CLKIN)-計(jì)數(shù)器BEGIN IF(RISING_EDGE(CLKIN)THEN IF GATE='1'THENIF S0="1001"THEN S0<="0000"-0個(gè)位IF S1="1001"THEN S1<="0000"-1十位IF S2="1001"THEN S2<="0000"-2百位IF S3="1001"THEN S3<="0000"-3千位IF S4="1001&qu

35、ot;THEN S4<="0000"S5<="1111"-4萬位ELSE S4<=S4+'1'END IF;ELSE S3<=S3+'1'END IF;ELSE S2<=S2+'1'END IF;ELSE S1<=S1+'1'END IF;ELSE S0<=S0+'1'END IF;ELSIF S0/="0000" OR S1/="0000" OR S2/="0000" OR

36、 S3/="0000" OR S4/="0000" OR S5/="0000"THEN Q0<=S0;Q1<=S1;Q2<=S2;Q3<=S3;Q4<=S4;Q5<=S5;S0<="0000" S1<="0000" S2<="0000" ; S3<="0000" ; S4<="0000" ; s5<="0000"END IF;END IF;END

37、 PROCESS;PROCESS(Q0,Q1,Q2,Q3,Q4,Q5,CLK3M,S5)BEGINIF(Q3>"0000" OR Q4>"0000")THEN SMG4<=Q4;SMG3<=Q3;SMG2<=Q2;SMG1<=Q1;HZ<='0'KHZ<='1'ELSE SMG4<=Q3;SMG3<=Q2;SMG2<=Q1;SMG1<=Q0;HZ<='1'KHZ<='0'END IF;IF (S5="

38、;1111")THEN -超量程警告BEEF<='1'ELSE BEEF<='0'END IF;END PROCESS;END ONE;占空比計(jì)算模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ZK ISPORT(CLKIN,CLK3M:IN STD_LOGIC; ZKOUT0,ZKOUT1:OUT STD_LOGIC_VECTOR(3DOWNTO 0);END ZK;ARCHITECTURE ONE OF ZK ISSIGNAL ZKB:INTEGER RANGE 0 TO 99;-占空比SIGNAL CNT1:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CNQ1:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CNT2:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CNQ2:I

溫馨提示

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

評(píng)論

0/150

提交評(píng)論