畢業(yè)設(shè)計論文基于FPGA數(shù)字頻率計的設(shè)計_第1頁
畢業(yè)設(shè)計論文基于FPGA數(shù)字頻率計的設(shè)計_第2頁
畢業(yè)設(shè)計論文基于FPGA數(shù)字頻率計的設(shè)計_第3頁
畢業(yè)設(shè)計論文基于FPGA數(shù)字頻率計的設(shè)計_第4頁
畢業(yè)設(shè)計論文基于FPGA數(shù)字頻率計的設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、摘摘 要要數(shù)字頻率計是電子測量與儀表技術(shù)最基礎(chǔ)的電子儀表之一,也是計算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。 本文主要介紹一種以 fpga(field programmable gate array)為核心,基于硬件描述語言 vhdl 的數(shù)字頻率計設(shè)計與實(shí)現(xiàn)。并在 eda(電子設(shè)計自動化)工具的幫助下,用大規(guī)??删幊踢壿嬈骷?fpga/cpld)實(shí)現(xiàn)數(shù)字頻率計的設(shè)計原理及相關(guān)程序。特點(diǎn)是:無論底層還是頂層文件均用 vhdl 語言編寫,避免了用電路圖形式設(shè)計時所引起的毛刺現(xiàn)象;改變了以往數(shù)字電路小規(guī)模多器件組合的設(shè)計方法,整個頻率計設(shè)計在一塊 fpga/cpld 芯片上,與用其

2、他方法做成的頻率計相比,體積更小,性能更可靠。關(guān)鍵詞關(guān)鍵詞:fpga 頻率計 電子設(shè)計自動化 目目 錄錄摘摘 要要.i目目 錄錄.ii第一章第一章 緒論緒論.11.1 課題研究背景.11.2 研究目的和意義.1第二章第二章 系統(tǒng)方案的設(shè)計系統(tǒng)方案的設(shè)計.22.1 問題引入.22.2 設(shè)計目的.22.3 設(shè)計內(nèi)容.22.3.1 數(shù)字頻率計的基本原理.22.3.2 實(shí)際電路.2第三章第三章 系統(tǒng)硬件電路的設(shè)計系統(tǒng)硬件電路的設(shè)計.53.1 設(shè)計要求.53.1.1 所需儀器儀表.53.2 系統(tǒng)框圖.53.2.1 電源與整流穩(wěn)壓電路.53.2.2 全波整流與波形整形電路.53.2.3 分頻器.63.2.

3、4 信號放大、波形整形電路.63.2.5 控制門.73.2.6 計數(shù)器.73.2.7 鎖存器.73.2.8 顯示譯碼器與數(shù)碼管.7第四章第四章 軟件設(shè)計軟件設(shè)計.84.1 設(shè)計要求.84.2 模塊及模塊的功能.8第五章第五章 基于基于 fpga 數(shù)字頻率計的設(shè)計與仿真數(shù)字頻率計的設(shè)計與仿真.145.1 同步測周期頻率計的原理.145.2 數(shù)字頻率計的 vhdl 實(shí)現(xiàn) .145.3 頻率計的仿真驗(yàn)證.15第六章第六章 總結(jié)與展望總結(jié)與展望.16致致 謝謝.17參考文獻(xiàn)參考文獻(xiàn).18第一章第一章 緒論緒論1.1 課題研究背景數(shù)字頻率計是一種基礎(chǔ)測量儀器,到目前為止已有 30 多年的歷史,早起設(shè)計師

4、們追求的目標(biāo)主要是擴(kuò)展測量范圍,再加上提高測量的精度、穩(wěn)定度等,這些也是人們衡量數(shù)字頻率計的技術(shù)水平,決定數(shù)字頻率計價格高低的主要依據(jù)。目前這些基本技術(shù)日益完善,成熟。應(yīng)用現(xiàn)代技術(shù)可以輕松的將數(shù)字頻率計的測頻上限擴(kuò)展到微波頻段。當(dāng)今數(shù)字頻率計不僅是作為電壓表、計算機(jī)、天線電廣播通訊設(shè)備、工藝工程自動化裝置。多種儀表儀器與家庭電器等許多電子產(chǎn)品中的數(shù)據(jù)信息輸出顯示器反映到人們眼簾。集成數(shù)字頻率計由于所用元件投資體積小、功耗低,且可靠性高,功能強(qiáng),易于設(shè)計和研發(fā),使得它具有技術(shù)上的實(shí)用性和應(yīng)用的廣泛性。而從民族產(chǎn)業(yè)上來說,我們在這種產(chǎn)業(yè)中還落后于西方發(fā)達(dá)國家,這將會關(guān)系到民族產(chǎn)業(yè)的興衰。所以我們必

5、須很重視當(dāng)前的情況。學(xué)習(xí)發(fā)達(dá)國家的先進(jìn)技術(shù)以發(fā)展本國的產(chǎn)業(yè)。1.2 研究目的和意義數(shù)字頻率計是計算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測量儀器。隨著人們文化生活水平的提高,加上現(xiàn)在中國國力的上升,人民在不斷的追求高質(zhì)量生活的同時大都在密切的關(guān)注著我們的民族產(chǎn)業(yè)的發(fā)展前景。而頻率計的發(fā)在雖是一個極小部分但也可以反映出我國民族產(chǎn)業(yè)發(fā)展的現(xiàn)狀。我國在很多的方面都已不是過去那個很貧窮落后的國家,但是關(guān)系著我們國計民生的民族產(chǎn)業(yè)的發(fā)展卻是不盡人意,不能不成為今天令人注目的焦點(diǎn)。本論文主要講述了使用 fpga 實(shí)現(xiàn)的數(shù)字頻率計,它采用 vhdl 語言編程,用 maxplusii 集成開發(fā)環(huán)境進(jìn)行

6、波形仿真,編譯,并下載到 fpga 中。正是因?yàn)閿?shù)字頻率計的應(yīng)用是如此的廣泛,才使得它的作用是如此的重要,所以更應(yīng)該去關(guān)注和研究。 第二章第二章 系統(tǒng)方案的設(shè)計系統(tǒng)方案的設(shè)計2.1 問題引入在許多情況下,要對信號的頻率進(jìn)行測量,利用示波器可以粗略測量被測信號的頻率,精確測量則要用到數(shù)字頻率計。2.2 設(shè)計目的本設(shè)計與制作項(xiàng)目可以進(jìn)一步加深我們對數(shù)字電路應(yīng)用技術(shù)方面的了解與認(rèn)識,進(jìn)一步熟悉數(shù)字電路系統(tǒng)設(shè)計、制作與調(diào)試的方法和步驟。2.3 設(shè)計內(nèi)容2.3.1 數(shù)字頻率計的基本原理數(shù)字頻率計的主要功能是測量周期信號的頻率。頻率是單位時間( 1s )內(nèi)信號發(fā)生周期變化的次數(shù)。如果我們能在給定的 1s

7、時間內(nèi)對信號波形計數(shù),并將計數(shù)結(jié)果顯示出來,就能讀取被測信號的頻率。數(shù)字頻率計首先必須獲得相對穩(wěn)定與準(zhǔn)確的時間,同時將被測信號轉(zhuǎn)換成幅度與波形均能被數(shù)字電路識別的脈沖信號,然后通過計數(shù)器計算這一段時間間隔內(nèi)的脈沖個數(shù),將其換算后顯示出來。這就是數(shù)字頻率計的基本原理。2.3.2 實(shí)際電路對 100hz 全波整流輸出信號的分頻采用 7 位二進(jìn)制計數(shù)器 74hc4024 組成 100 進(jìn)制計數(shù)器來實(shí)現(xiàn)。計數(shù)脈沖下降沿有效。在 74hc4024 的 q7 、 q6 、 q3 端通過與門加入反饋清零信號,當(dāng)計數(shù)器輸出為二進(jìn)制數(shù) 1100100 (十進(jìn)制數(shù)為 100 )時,計數(shù)器異步清零。實(shí)現(xiàn) 100 進(jìn)

8、制計數(shù)。為了獲得穩(wěn)定的分頻輸出,清零信號與輸入脈沖“與”后再清零,使分頻輸出脈沖在計數(shù)脈沖為低電平時保持一段時間( 10ms )為高電平。圖 4 數(shù)字頻率計電路圖電路中采用雙 jk 觸發(fā)器 74hc109 中的一個觸發(fā)器組成 觸發(fā)器,它將分頻輸出脈沖整形為脈寬為 1s 、周期為 2s 的方波。從觸發(fā)器 q 端輸出的信號加至控制門,確保計數(shù)器只在 1s 的時間內(nèi)計數(shù)。從觸發(fā)器 端輸出的信號作為數(shù)據(jù)寄存器的鎖存信號。 被測信號通過 741 組成的運(yùn)算放大器放大 20 倍后送施密特觸發(fā)器整形,得到能被計數(shù)器有效識別的矩形波輸出,通過由 74hc11 組成的控制門送計數(shù)器計數(shù)。為了防止輸入信號太強(qiáng)損壞

9、集成運(yùn)放,可以在運(yùn)放的輸入端并接兩個保護(hù)二極管。 頻率計數(shù)器由兩塊雙十進(jìn)制計數(shù)器 74hc4511 組成,最大計數(shù)值為 9999hz 。由于計數(shù)器受控制門控制,每次計數(shù)只在 jk 觸發(fā)器 q 端為高電平時進(jìn)行。當(dāng) jk 觸發(fā)器 q 端跳變至低電平時,端的由低電平向高電平跳變,此時, 8d 鎖存器 74hc374 (上升沿有效)將計數(shù)器的輸出數(shù)據(jù)鎖存起來送顯示譯碼器。計數(shù)結(jié)果被鎖存以后,即可對計數(shù)器清零。由于 74hc4518 為異步高電平清零,所以將 jk 觸發(fā)器的 同 100hz 脈沖信號“與”后的輸出信號作為計數(shù)器的清零脈沖。由此保證清零是在數(shù)據(jù)被有效鎖存一段時間( 10ms )以后再進(jìn)行

10、。第三章第三章 系統(tǒng)硬件電路的設(shè)計系統(tǒng)硬件電路的設(shè)計3.1 設(shè)計要求設(shè)計并制作出一種數(shù)字頻率計,其技術(shù)指標(biāo)如下: (1)頻率測量范圍: 10 9999hz 。 (2)輸入電壓幅度 300mv 。 (3)輸入信號波形:任意周期信號。 (4)顯示位數(shù): 4 位。 (5)電源: 220v 、 50hz3.1.1 所需儀器儀表示波器、音頻信號發(fā)生器、邏輯筆、萬用表、數(shù)字集成電路測試儀、直流穩(wěn)壓電源。3.2 系統(tǒng)框圖從數(shù)字頻率計的基本原理出發(fā),根據(jù)設(shè)計要求,得到如圖 8.3 所示的電路框圖。 下面介紹框圖中各部分的功能及實(shí)現(xiàn)方法 3.2.1 電源與整流穩(wěn)壓電路 框圖中的電源采用 50hz 的交流市電。市

11、電被降壓、整流、穩(wěn)壓后為整個系統(tǒng)提供直流電源。系統(tǒng)對電源的要求不高,可以采用串聯(lián)式穩(wěn)壓電源電路來實(shí)現(xiàn)。 3.2.2 全波整流與波形整形電路 本頻率計采用市電頻率作為標(biāo)準(zhǔn)頻率,以獲得穩(wěn)定的基準(zhǔn)時間。按國家標(biāo)準(zhǔn),市電的頻率漂移不能超過 0.5hz ,即在 1 的范圍內(nèi)。用它作普通頻率計的基準(zhǔn)信號完全能滿足系統(tǒng)的要求。全波整流電路首先對 50hz 交流市電進(jìn)行全波整流,得到如圖 1 所示 100hz圖 1 數(shù)字頻率計框圖的全波整流波形。波形整形電路對 100hz 信號進(jìn)行整形,使之成為如圖 2 所示 100hz 的矩形波。 圖 2 全波整流與波形整形電路的輸出波形 波形整形可以采用過零觸發(fā)電路將全波

12、整流波形變?yōu)榫匦尾ǎ部刹捎檬┟芴赜|發(fā)器進(jìn)行整形。 3.2.3 分頻器 分頻器的作用是為了獲得 1s 的標(biāo)準(zhǔn)時間。電路首先對圖 1 所示的 100hz 信號進(jìn)行 100 分頻得到如圖 2( a )所示周期為 1s 的脈沖信號。然后再進(jìn)行二分頻得到如圖 8.5 ( b )所示占空比為 50 脈沖寬度為 1s 的方波信號,由此獲得測量頻率的基準(zhǔn)時間。利用此信號去打開與關(guān)閉控制門,可以獲得在 1s 時間內(nèi)通過控制門的被測脈沖的數(shù)目。 分頻器可以采用第 5 章介紹過的方法,由計數(shù)器通過計數(shù)獲得。二分頻可以采用 觸發(fā)器來實(shí)現(xiàn)。 3.2.4 信號放大、波形整形電路 為了能測量不同電平值與波形的周期信號的頻

13、率,必須對被測信號進(jìn)行放大與整形處理,圖 3 分頻器的輸出波形使之成為能被計數(shù)器有效識別的脈沖信號。信號放大與波形整形電路的作用即在于此。信號放大可以采用一般的運(yùn)算放大電路,波形整形可以采用施密特觸發(fā)器。 3.2.5 控制門 控制門用于控制輸入脈沖是否送計數(shù)器計數(shù)。它的一個輸入端接標(biāo)準(zhǔn)秒信號,一個輸入端接被測脈沖??刂崎T可以用與門或或門來實(shí)現(xiàn)。當(dāng)采用與門時,秒信號為正時進(jìn)行計數(shù),當(dāng)采用或門時,秒信號為負(fù)時進(jìn)行計數(shù)。 3.2.6 計數(shù)器 計數(shù)器的作用是對輸入脈沖計數(shù)。根據(jù)設(shè)計要求,最高測量頻率為 9999hz ,應(yīng)采用 4 位十進(jìn)制計數(shù)器??梢赃x用現(xiàn)成的 10 進(jìn)制集成計數(shù)器。 3.2.7 鎖存

14、器 在確定的時間( 1s )內(nèi)計數(shù)器的計數(shù)結(jié)果(被測信號頻率)必須經(jīng)鎖定后才能獲得穩(wěn)定的顯示值。鎖存器的作用是通過觸發(fā)脈沖控制,將測得的數(shù)據(jù)寄存起來,送顯示譯碼器。鎖存器可以采用一般的 8 位并行輸入寄存器,為使數(shù)據(jù)穩(wěn)定,最好采用邊沿觸發(fā)方式的器件。 3.2.8 顯示譯碼器與數(shù)碼管 顯示譯碼器的作用是把用 bcd 碼表示的 10 進(jìn)制數(shù)轉(zhuǎn)換成能驅(qū)動數(shù)碼管正常顯示的段信號,以獲得數(shù)字顯示。 選用顯示譯碼器時其輸出方式必須與數(shù)碼管匹配。第四章第四章 軟件設(shè)計軟件設(shè)計4.1 設(shè)計要求頻率計共分四檔: 一檔: 0 9999hz ; 二檔: 10 99.99khz ; 三檔: 100.0 999.9kh

15、z ; 四檔: 1.000 9.999mhz ; 在此頻率計的換檔程序設(shè)計中,突破了以往常用的改變閘門時間的方法,使自動換檔的實(shí)現(xiàn)簡單可靠??傮w框圖如圖 1 所示4.2 模塊及模塊的功能(1)模塊 fen 見圖 1.1 ,通過對 4mhz 時鐘進(jìn)行分頻以獲得 0.5 hz 時鐘,為核心模塊 corna 提供 1 的閘門時間。library ieee; use ieee.std_logic_1164.all; entity fen is port(clk:in std_logic; q:out std_logic); end fen; architecture fen_arc of fen is

16、 begin process(clk) variable cnt: integer range 0 to 3999999; variable x:std_logic; variable x:std_logic; begin if clkevent and clk=1then if cnt3999999 then cnt:=cnt+1; else cnt:=0; x:=not x; end if; end if; q=x; end process; end fen_arc; (2)模塊 sel 見圖 1.2,該模塊產(chǎn)生數(shù)碼管的片選信號。library ieee; use ieee.std_log

17、ic_1164.all; use ieee.std_logic_unsigned.all; entity sel is port(clk:in std_logic; sel:out std_logic_vector(2 downto 0); end sel; architecture sel_arc of sel is begin process(clk) variable cnt:std_logic_vector(2 downto 0); begin if clkevent and clk=1then cnt:=cnt+1; end if; sel=cnt; end process; end

18、 sel_arc; (3)核心模塊 corna 見圖 1.3,該模塊是整個程序的核心,它能在 1 的閘門時間里完成對被測信號頻率計數(shù)的功能,并通過選擇輸出數(shù)據(jù)實(shí)現(xiàn)自動換檔的功能。library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity corna is port(clr,sig,door:in std_logic; alm:out std_logic; q3,q2,q1,q0,dang:out std_logic_vector(3 downto 0); end corna; archit

19、ecture corn_arc of corna is begin process(door,sig) variable c0,c1,c2,c3,c4,c5,c6:std_logic_vector(3 downto 0); variable x:std_logic; begin if sigevent and sig=1then if door=1then if c01001then c0:=c0+1; else c0:=0000; if c11001then c1:=c1+1; else c1:=0000; if c21001then c2:=c2+1; else c2:=0000; if

20、c31001then c3:=c3+1; else c3:=0000; if c41001then c4:=c4+1; else c4:=0000; if c51001then c5:=c5+1; else c5:=0000; if c61001then c6:=c6+1; else c6:=0000; alm=1; end if; end if; end if; end if; end if; end if; end if; else if clr=0then alm=0; end if; c6:=0000; c5:=0000; c4:=0000; c3:=0000; c2:=0000; c

21、1:=0000; c0:=0000; end if; if c6/=0000then q3=c6; q2=c5; q1=c4; q0=c3; dang=0100; elsif c5/=0000then q3=c5; q2=c4; q1=c3; q0=c2; dang=0011; elsif c4/=0000then q3=c4; q2=c3; q1=c2; q0=c1; dang=0010; elsif c3/=0000then q3=c3; q2=c2; q1=c1; q0=c0; dang=0001; end if; end if; end process; end corn_arc; (

22、4)模塊 lock 見圖 1.4,該模塊實(shí)現(xiàn)鎖存器的功能,在信號 l 的下降沿到來時將信號 a4、a3、a2、a1 鎖存。library ieee; use ieee.std_logic_1164.all; entity lock is port(l:in std_logic; a4,a3,a2,a1,a0:in std_logic_vector(3 downto 0); q4,q3,q2,q1,q0:out std_logic_vector(3 downto 0); end lock; architecture lock_arc of lock is begin process(l) var

23、iable t4,t3,t2,t1,t0:std_logic_vector(3 downto 0); begin if levent and l=0then t4:=a4; t3:=a3; t2:=a2; t1:=a1; t0:=a0; end if; q4=t4; q3=t3; q2=t2; q1=t1; q0qqqqqqqqqqqqqqqqq=0000000; end case; end process; end disp_arc;第五章第五章 基于基于 fpgafpga 數(shù)字頻率計的設(shè)計與仿真數(shù)字頻率計的設(shè)計與仿真5.1 同步測周期頻率計的原理頻率信號的一個周期為時限進(jìn)行脈沖計數(shù)傳統(tǒng)的測

24、周期計數(shù)器采用門控計數(shù)器來實(shí)現(xiàn),即采用一個同被測頻率信號周期寬度相同的門控脈沖來控制計數(shù)器的計停其缺點(diǎn)在于無法實(shí)現(xiàn)對被測在數(shù)字頻率計中,測周期計數(shù)器是主要的電路,其功能是:使用標(biāo)準(zhǔn)時鐘以被測信號的連續(xù)測周期計數(shù) 本文設(shè)計的同步測周期計數(shù)器假設(shè)其計數(shù)時鐘為 clk0, 頻率為 f0;被測信號為 clkx,頻率為fx采用一個 d 觸發(fā)器對輸入的被測信號 clkx 進(jìn)行同步。在 clk0 的上升沿到來之前,如果 clkx 出現(xiàn)了上升跳變,則 le 信號變?yōu)楦唠娖?,計?shù)器 ct 的重載信號和鎖存器 cout 的使能信號有效當(dāng) clk0 的上升沿到來時,計數(shù)器的計數(shù)值鎖存,同時計數(shù)器重載為 1,重新開始

25、計數(shù) le 變?yōu)榈碗娖接嫈?shù)器在其他時間里進(jìn)行加 1 計數(shù),鎖存器的值則保持不變該測周期計數(shù)器能在 clkx 的每個上升沿之后輸出計數(shù)值,實(shí)現(xiàn)了對被測信號進(jìn)行測周期計數(shù),并始終輸出其最新一個周期的計數(shù)值,cint 端輸出一個 clk0 周期寬度的高脈沖,用于指示新的計數(shù)值鎖存。5.2 數(shù)字頻率計的 vhdl 實(shí)現(xiàn)同步測周期計數(shù)器的 vhdl 描述如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity freq_count

26、 is -實(shí)體定義 port( reset: in std_logic; clk0 : in std_logic; clkx : in std_logic; cint : out std_logic; cout : out std_logic_vector(23 downto 0); end entity freq_count; architecture ar of freq_count is signal s0 : std_logic; signal ct : std_logic_vector(23 downto 0); begin p0: process(reset clk0) -計數(shù)器進(jìn)

27、程 begin if reset=0 then s0=0; cint=1; cout=conv_std_logic_vector(0 24); else if clk0event and clk0=1 then s0=clkx; if s0=0 and clkx=1 then cout=ct; cint=0; ct=conv_std_logic_vector(1 24); else cint=1; ct=ct+1; end if; end if; end if; end process p0; end ar; 此外,為了使頻率計的設(shè)計更加靈活,頻率計中分頻器的分頻系數(shù)也可改為由外部輸入。在頻率計運(yùn)行期間,由外部控制器設(shè)置不同的分頻系數(shù) co,這樣可實(shí)現(xiàn)更寬范圍的頻率測量。5.3 頻率計的仿真驗(yàn)證此頻率計的 vhdl 設(shè)計在 altera 公司的 quartus ii 開發(fā)平臺下進(jìn)行了編譯和仿真,它是在 clk0 輸入 10 mhz 方波,clkx 輸入周期為 156ms(頻率為 6.41khz) 方波,分

溫馨提示

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

評論

0/150

提交評論