




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 河南科技大學課 程 設 計 說 明 書 課程名稱 現代電子系統(tǒng)課程設計題 目 簡易數字頻率計設計 學 院 電子信息工程學院班 級 電信科083班 學生姓名 陳真淮 指導教師 齊晶晶、張雷鳴 日 期 2011年12月16日 課程設計任務書(指導教師填寫)課程設計名稱 現代電子系統(tǒng)課程設計學生姓名 陳真淮專業(yè)班級電信科083設計題目 簡易數字頻率計設計 一、 課程設計目的掌握高速AD的使用方法;掌握頻率計的工作原理;掌握GW48_SOPC實驗箱的使用方法;了解基于FPGA的電子系統(tǒng)的設計方法。二、 設計內容、技術條件和要求設計一個具有如下功能的簡易頻率計。(1)基本要求: a被測信號的頻率范圍為
2、120kHz,用4位數碼管顯示數據。b測量結果直接用十進制數值顯示。c被測信號可以是正弦波、三角波、方波,幅值13V不等。d具有超量程警告(可以用LED燈顯示,也可以用蜂鳴器報警)。e當測量脈沖信號時,能顯示其占空比(精度誤差不大于1%)。(2)發(fā)揮部分a修改設計,實現自動切換量程。b構思方案,使整形時,以實現擴寬被測信號的幅值范圍。三、 時間進度安排布置課題和講解:1天 查閱資料、設計:4天實驗:3天 撰寫報告:2天四、 主要參考文獻何小艇 電子系統(tǒng)設計 浙江大學出版社 2008.1潘松 黃繼業(yè) EDA技術實用教程 科學出版社 2006.10指導教師簽字: 2011年 11月 28日摘 要數
3、字頻率計是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的測量儀器。它不僅可以測量正弦波、方波和尖脈沖信號的頻率,還能對占空比、周期、幅值、脈沖寬度等多種物理量進行測量。本設計用VHDL語言在FPGA器件上實現數字頻率計測頻系統(tǒng),能夠用十進制數碼顯示頻率范圍為0-20KHZ被測信號的頻率;能夠測量正弦波、方波和三角波等信號的頻率,并實現自動量程切換;能夠測量的信號的占空比。結合GW48實驗教學系統(tǒng)特定硬件資源,通過五個功能模塊的實現整個系統(tǒng)的設計,分別是:模數轉換模塊:將信號發(fā)生器輸入的模擬信號通過AD0809轉化成數字信號。信號整形模塊:將正弦波、三角波信號轉換為方波信號。頻率測量及報警模
4、塊:利用直接測頻法和測周期法完成被測信號的頻率測量。當被測信號的頻率超過量程時能實現報警功能。占空比測量模塊:本設計通過測信號的脈沖寬度間接實現占空比的測量。顯示模塊:為了提高人機交互的方便性及設備的利用率,設置顯示控制電路用來控制頻率值和占空比值的交換顯示。采用VDHL編程設計實現的數字頻率計,除被測信號的模數轉換部分、鍵輸入部分和數碼顯示部分以外,其余全部在一片FPGA芯片上實現,整個系統(tǒng)非常精簡,而且具有靈活的現場可更改性。在不更改硬件電路的基礎上,對系統(tǒng)進行各種改進還可以進一步提高系統(tǒng)的性能。因此,該數字頻率計具有具有高速、精確、可靠、功耗低、抗干擾性強和現場可編程等優(yōu)點。關鍵詞:頻率
5、計、FPGA、頻率測量、占空比、直接測頻法目 錄一 任務解析51.1 設計目標51.2 性能指標51.3 系統(tǒng)原理框圖5二 系統(tǒng)方案論證52.1 方案比較52.2 方案論證8三 系統(tǒng)結構83.1 系統(tǒng)組成83.2 系統(tǒng)運行原理9四 模數轉換模塊94.1 AD0809工作原理94.2 轉換控制模塊104.3 仿真驗證11五 信號整形模塊115.1 整形電路原理125.2 仿真驗證12六 占空比測量模塊126.1 占空比測量原理126.2 仿真驗證13七 頻率測量及報警模塊147.1 頻率測量原理147.2 測頻模塊設計157.3 仿真驗證12八 顯示模塊168.1 鎖存于顯示電路168.2顯示控
6、制電路178.3 仿真驗證17九 結果與總結189.1 系統(tǒng)仿真189.2 硬件驗證189.3 設計總結19十 心得體會20附錄A 系統(tǒng)原理框圖21附錄B 管腳連接圖22附錄C VHDL源程序23一 任務解析1.1 設計目標本次課程設計的任務是設計一個簡易數字頻率計。用它可以測量正弦波、矩形波、三角波和尖脈沖等周期信號的頻率值。簡易數字頻率計可實現用十進制數字顯示被測信號頻率,具有超量程警告的功能,并能顯示其占空比。經過修改設計后,實現自動切換量程和跳變閾值自動進行調節(jié)。同時通過本次課程設計掌握高速AD的使用方法,掌握頻率計的工作原理,掌握GW48_SOPC實驗箱的使用方法,了解基于FPGA的
7、電子系統(tǒng)的設計方法。1.2 性能指標頻率計主要用于測量正弦波、矩形波、三角波和尖脈沖等周期信號的頻率值。其擴展功能可以實現自動切換量程,使整形時,以實現擴寬被測信號的幅值范圍。此次數字頻率計要達到的基本要求有:被測信號的頻率范圍為120kHz;測量結果直接用十進制數值表示,并用4位數碼管顯示數據;被測信號可以是正弦波、三角波、方波,幅值13V不等;具有超量程警告,可以用LED燈顯示,也可以用蜂鳴器報警來實現;當測量脈沖信號時,能顯示其占空比,精度誤差不大于1%。發(fā)揮部分的要求有:根據測量頻率高低的不同,實現自動切換量程;對信號進行整形時,跳變閾值能自動進行調節(jié),以實現擴寬被測信號的幅值范圍。根
8、據自己情況,可做其它的適當發(fā)揮擴展。1.3 系統(tǒng)原理框圖 數字頻率計的系統(tǒng)原理框圖如圖1所示。圖中被測信號為外部信號,與基準信號一同,送入測量電路進行處理、測量,控制電路用于選擇測試的項目-頻率或占空比,測量電路的輸出信號送到顯示電路進行顯示。圖1-1系統(tǒng)原理框圖二 系統(tǒng)方案論證2.1 方案比較在具體是現實時,又可以采用單片機或者FPGA來實現,具體有如下幾種方案:方案一:系統(tǒng)測頻部分采用FPGA來實現,即利用FPGA產生時鐘并完成測量,用機械式功能轉換開關換檔,完成測頻率功能。由于FPGA的工作頻率比單片機的高很多,因此可以考慮直接利用FPGA產生信號的高頻參考頻率,這樣就可以在一定程度上利
9、用前面講的的測周期法,同時能夠在誤差范圍內滿足誤差要求。此方案對輸入信號作分頻整形處理后,再與1秒脈寬帶信號共同輸入與非門,其輸出作為計數脈沖,由計數器計數,然后鎖存、譯碼輸出到數碼管顯示。其原理框圖如圖2-4所示。圖2-1 基于FPGA方案的原理框圖方案二:采用MCS-51系列單片機,將欲測量的輸入信號(1Hz10MHz)進行限幅、放大、整形和分頻處理,利用單片機進行頻率、周期的測量和計算處理,運算結果并行輸出到數碼顯示。顯然此種方案由于采用單片機技術,利用定時器計時一段時間,在通過計數器在這段時間內計數,實現用計數法測量頻率。單片機AT89C51內部具有2個16位定時計數器,定時計數器的工
10、作可以由編程來實現定時、計數和產生計數溢出時中斷要求的功能。在定時器工作方式下,在被測時間間隔內,每來一個機器周期,計數器自動加1(使用12 MHz時鐘時,每1s加1),這樣以機器周期為基準可以用來測量時間間隔。在計數器工作方式下,加至外部引腳的待測信號發(fā)生從1到0的跳變時計數器加1,這樣在計數閘門的控制下可以用來測量待測信號的頻率。外部輸入在每個機器周期被采樣一次,這樣檢測一次從1到0的跳變至少需要2個機器周期(24個振蕩周期),所以最大計數速率為時鐘頻率的124(使用12 MHz時鐘時,最大計數速率為500 kHz)。定時計數器的工作由運行控制位TR控制,當TR置1,定時計數器開始計數;當
11、TR清0,停止計數。在高頻時,我們可以利用單片機產生一個低頻信號,例如周期為一秒,用來進行測量高頻信號。而在低頻時,我們可以采用單片機發(fā)生一個10K的信號,采用在頻率計原理中所說的第二種方法。其原理框圖如圖2-3所示。圖2-2 基于單片機方案框圖方案三:采用FPGA和單片機組合電路設計。利用FPGA進行測頻計數,單片機實施控制實現多功能頻率計的設計。外圍信號輸入電路經放大整形調理,該頻率計利用FPGA來實現頻率、占空比的測量和計數,利用單片機完成整個測量電路的測試控制、數據處理和顯示輸出。為了進一步提高測量頻率的精度和實時性,采用等精度測量頻率,用FPGA容易實現等精度頻率的測量。其原理框圖如
12、圖2-5所示。放大整形基準頻率頻率計數器時間計數器同步預置閥門閥門單片機顯示FPGA閥門圖2-3 FPGA+單片機組合的原理框圖方案四:采用分離元件設計。本方案利用大量數字芯片,通過各種邏輯關系構成,但由于芯片無編程性,如果完成本次大賽的所有要求難度較大,只能完成部分功能,同時電路復雜。在實際應用中存在很多問題。圖2-4 采用分離元件設計的原理框圖2.2 方案論證方案一:采用基于FPGA的方案,特點是FPGA電路應用技術成熟,能可靠的完成頻率計的基本功能,結構簡單,量程可以自動切換。該方案采用FPGA作為信號處理及系統(tǒng)控制核心,完成包括計數、門控、顯示等一系列工作。利用了FPGA的可編程和大規(guī)
13、模集成的特點,使電路大為簡化,能可靠的完成頻率計的基本功能。 方案二:系統(tǒng)采用MCS一51系列單片機89C51作為控制核心,性能好,價格便宜。由于單片機通過中斷可以較準確地產生信號需要的信號頻率,同時,單片機的控制能力比較強。此外使用了單片機,使整個系統(tǒng)具有極為靈活的可編程性,能方便地對系統(tǒng)進行功能擴展與改進。但是單片機運算能力有限,讓單片機同時完成運算、控制及顯示功能,會使單片機超負荷運行。而且單片機的接口資源有限,同時接AD0809和4個顯示器等外部器件,很容易造成接口資源緊張。方案三:采用FPGA和單片機組合電路設計。該方案利用FPGA和單片機協(xié)調來進行開發(fā),只要利用較少的器件就可以實現
14、系統(tǒng)的功能,并使可以使頻率計系統(tǒng)高效運行。但是,該方案不能充分發(fā)揮FPGA和單片機各自的優(yōu)勢,并且測量精度不夠高,導致系統(tǒng)性能價格比降低、系統(tǒng)功能擴展受到限制。因此,該方案不是最好的選擇。 方案四:采用分離元件設計。本方案利用大量數字芯片,通過各種邏輯關系構成。但由于芯片無編程性,要完成任務書的所有要求難度較大,只能完成部分功能,同時電路復雜。但由于系統(tǒng)功能要求較高,所以電路過于復雜,而且多量程換檔開關使用不便。在實際應用中也存在很多問題。故該方案不是一個好的選擇。因此,我們最終選擇第一種方案,具體理由有如下幾點:由于FPGA本身是將大量的邏輯功能繼承與一個器件內,集成度要遠遠高于單片機,能夠
15、利用的資源也相對充裕,可以較好地完成要求。對于FPGA的設計,可以直接采用VHDL硬件語言直接進行的,在不同的場合,我們只要對語言進行適當的改動,就可實現具體情況具體應用。因此利用FPGA來進行開放設計,其可移植性更強。三 系統(tǒng)結構3.1 系統(tǒng)組成本系統(tǒng)除了利用特定硬件資源外,還需通過軟件實現五個模塊的設計,分別是:模數轉換模塊,信號整形模塊,頻率測量及報警模塊,占空比測量模塊和顯示模塊。模數轉換模塊:將信號發(fā)生器傳過來的模擬信號轉化成數字信號。該模塊主要有AD0809和FPGA控制模塊兩部分組成。AD0809模數轉換,是為把模擬信號轉換為信息基本相同的數字信號而設計的芯片。FPGA控制模塊主
16、要控制AD0809芯片的數模轉換過程。信號整形模塊:該模塊將AD0809傳輸來數值與規(guī)定的參比值相比較,以產生一個差值信號,從而實現將的8位并行數字信號轉換為串行的單脈沖信號。頻率測量及報警模塊:該模塊是整個系統(tǒng)的核心。利用直接測頻法和測周期法完成被測信號的頻率測量。并且當被測信號的頻率超過量程時實現報警功能。占空比測量模塊:該模塊主要用來測量被測信號的占空比。測占空比實質就是測信號的脈沖寬度,測出一個周期占用的時間和其中高電平占用的時間,二者相比即可得占空比的數值。顯示模塊:該模塊主要實現頻率和占空比的顯示和控制。在一個測量周期過程中,被測周期信號在輸入電路中經過放大、整形、微分操作之后形成
17、特定周期的窄脈沖,送到主門的一個輸入端。主門的另外一個輸入端為時基電路產生電路產生的閘門脈沖。在一串理想的脈沖序列中(如方波),正脈沖的持續(xù)時間與脈沖總周期的比值。3.2 系統(tǒng)運行原理由于本課程設計是基于特定的硬件平臺,在GW48-SOPC實驗開發(fā)系統(tǒng)上進行實現對被測信號通過AD進行轉換,把轉換的結果和給定的閾值進行比較,產生相應的脈沖信號。得到脈沖信號之后,先進行頻率測量,給定1S的基準信號,在1S信號內對脈沖信號進行計數,計數的方式采用BCD碼,然后把計數結果直接送數碼管顯示,對應的就是十進制的數值。為了實現占空比精度的要求,在適當的范圍內竟可能提高基準信號的頻率。通過一個LED燈來表示相
18、應的單位。然后對脈沖信號進行占空比測量,給定一個高頻的基準信號,在脈沖信號的高電平期間對脈沖信號進行計數,把計數結果進行相應的運算,運算結果直接送數碼管顯示,對應的也是十進制顯示。對于報警信號,我設計的方案是接數碼管顯示,頻率超過3khz時就會發(fā)出警告,數碼管指示燈全部變?yōu)?。?模數轉換模塊4.1 AD0809工作原理AD0809的工作過程是:輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 AD轉換,之后EOC輸出信號變低,指示轉換正在進行。直到AD轉換完成,EOC變?yōu)楦唠娖剑甘続D轉換結束,結
19、果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平時,輸出三態(tài)門打開,ALE,START,OE,ADDA都是ADC0809的控制信號,ADDA為模擬通道選擇,低電平選擇通道0,ALE為通道地址鎖存信號,START為啟動AD轉換的信號,OE為ADC0809轉換結果輸出的使能信號。其結構原理圖如下:圖4-1 AD0809結構原理圖其具體與ADC0809的連接電路圖如下:圖4-2 ADC0809的連接電路圖4.2 轉換控制模塊轉換控制模塊主要控制AD0809芯片的數模轉換過程。本模塊用VHDL語言設計。設計過程中定義了一個狀態(tài)機。各狀態(tài)子類型表示的意義分別是:S0狀態(tài)AD0809初始化;S
20、1狀態(tài)啟動采樣;S2狀態(tài)時EOC=1表明轉換結束,EOC=1轉換未結束,繼續(xù)等待;S3狀態(tài)開啟OE;S4狀態(tài)輸出轉換好的數據。狀態(tài)轉換的條件詳見下圖圖4-3 AD0809轉換狀態(tài)機圖其控制模塊結構見圖4-4。其中的表示的含義如下。D:來自0809轉換好的8位數據;CLK:狀態(tài)機工作時鐘;EOC:轉換狀態(tài)指示,低電平表示正在轉換;ALE: 8個模擬信號通道地址鎖存信號;START:轉換開始信號;OE:數據輸出3態(tài)控制信號;ADDA :信號通道最低位控制信號;LOCK0:觀察數據鎖存時鐘;Q : 8位數據輸出。通過VHDL語言編寫控制模塊實現對ADC0809的控制,具體的程序見附錄。圖4-4 AD
21、控制模塊結構圖4.3 仿真驗證在Quartus中對轉換控制模塊完成功能仿真后,編輯波形仿真文件,運行的得到的仿真圖如下:圖4-5 AD仿真波形圖從圖4-5中可以看出,每五個 CLK的周期完成一次信號轉換。在第二個CLK 周期即S1狀態(tài)ALE,START信號同時變?yōu)楦唠?,從而平啟動采樣。在第三個CLK 周期即S2狀態(tài)時,因為此時EOC=1,指示狀態(tài)轉換結束。在第四個CLK 周期即S3狀態(tài)LOCK0信號變?yōu)楦唠娖剑敵霰粩祿i存;與此同時OE信號變?yōu)楦唠娖剑?3態(tài)控制門打開,數據從8位數據端口Q輸出。在整個轉換過程中,ADDA 信號一直保持高電平,控制最低位通道信號輸入。五 信號整形模塊5.1 整
22、形電路原理由于輸入的信號可以是正弦波,三角波。而后面的閘門或計數電路要求被測信號為矩形波,所以需要設計一個整形電路則在測量的時候,首先通過整形電路將正弦波或者三角波轉化成矩形波。在整形之前由于不清楚被測信號的強弱的情況。所以在通過整形之前通過放大衰減處理。當輸入信號電壓幅度較大時,通過輸入衰減電路將電壓幅度降低。當輸入信號電壓幅度較小時,前級輸入衰減為零時若不能驅動后面的整形電路,則調節(jié)輸入放大的增益,時被測信號得以放大。本模塊中用到的整形放大電路,其實質是一個數字比較器。數字比較器用于數字信號的比較。例如數據A和B比較,如果A>B,則輸出A大于B的結果信號FA>B=1,FA=B=
23、0,FA<B=0。如果A=B,則輸出A等于B的結果信號FA>B=0,FA=B=1,FA<B=0。如果A<B,則輸出A小于B的結果信號FA>B=0,FA=B=0,FA<B=1。我們這里用到的比較器是把ADC0809轉換的結果和給定的閾值進行比較,輸出產生脈沖信號,結果是把正弦波和三角波轉換成方波。將其VHDL的程序代碼如下: PROCESS(D)BEGINIF D>"01000000"THEN CLKIN<='1'ELSE CLKIN<='0'END IF;END PROCESS;通過編程實
24、現的整形模塊原理框圖見圖5-1:圖5-1整形放大電路結構圖5.2仿真驗證在Quartus中完成對整形放大電路完成功能仿真后,編輯波形仿真文件,運行的得到的仿真圖如下:圖5-2 整形電路波形仿真圖因為D7.0為8位的輸入數據,最大值為255,而且在模數轉換模塊的仿真中我設置輸入信號D7.0為一個從0到255逐次增加的三角波信號。因此在本模仿真中我選取閥值等于三角波信號最大值的一半為128。從波形中可以看出當大于閥值128時,輸出為高電平,低于閥值時輸出為低電平,從而實現了把正弦波,三角波轉換為方波。然后將整形得到的方波或脈沖信號CLKIN,送到輸入到頻率測量模塊和占空比測量模塊中。六 占空比測量
25、模塊6.1 占空比測量原理占空比是指高電平在一個周期之內所占的時間比率。例如方波的占空比為50%,說明高電平所占時間為0.5個周期。在進行占空比測量時,首先測得被測信號一個周期中高電平的脈沖寬度t,然后測得被測信號一個周期的脈沖寬度T。然后經過計算即可得被測信號的占空比為:。其原理圖如圖6-1圖6-1 占空比原理圖具體測量時一般采用高電平時間段內經過的基準信號數來測其脈沖寬度。 首先經信號處理電路進行處理,限制只有信號的50%幅度及其以上才能輸入數字測量部分。脈沖邊沿被處理的非常陡峭,然后送入測量計數器進行測量。測量電路在檢測到脈沖信號的上升沿時打開計數器,設脈沖寬度為,計算公式為:。測一次脈
26、沖信號的脈寬,記錄其值為,然后將信號反向,再測一次脈寬并紀錄其值為。通過下式計算占空比:占空比=為計算占空比需要系統(tǒng)提供一個高頻率的基準信號CLK3M。本模塊中將基準信號設為3MHZ。由以上分析可知占空比值t與T的比值,故占空比的范圍0-100%。由于全用整數表示,占空比的數值只用兩個4位的信號OUT0、OUT1即可表示,同時外部用兩個數碼管即可顯示。綜上占空比模塊原理框圖見圖6-2圖6-2 占空比測量模塊原理框圖6.2仿真驗證在Quartus中對轉換控制模塊完成功能仿真后,編輯波形仿真文件,運行的得到的仿真圖如下:圖6-3 占空比測量波形仿真圖對于占空比測量,在可以允許的范圍內應竟可能的給一
27、個高頻的基準信號,因為頻率越高輸出的占空比結果會越接近真實值。因此在仿真中也應該給一個較高頻率的時鐘信號。但由于CLKIN和CLK3M的數值大小選擇不合適,總是得不到正確的波形仿真結果。七 頻率測量及報警模塊7.1 頻率測量原理數字頻率計的基本工作原理是用一個頻率穩(wěn)定度高的頻率源作為基準時鐘,對比測量其他信號的頻率。通常情況下有以下兩種思路:1.利用一個較大的周期信號作為參考信號,計量在一個周期內出現的被測信號的數目,最終我們可以通過計數器求出信號的頻率。2.利用一個頻率較高來測量,具體來說就是計量被測信號在一個周期內的能夠經歷多少個參考頻率。因此,同樣也可以測量出具體信號的值。具體實現方法如
28、下:方法一:直接測頻法測頻法就是在確定的閘門時間Tw內,記錄被測信號的變化周期數(或脈沖個數)Nx,則被測信號的頻率為:fx=Nx/Tw。圖7-1 直接測頻法原理圖測量的過程如圖所示,在TW時間內通過計數器記錄被測信號脈沖的個數,然后把記錄結果鎖存,經過運算后,送數碼管顯示,即為所測頻率。方法二:測周期法測周期法需要有標準信號的頻率fs,這個標準信號應該取一個頻率適中的高頻信號,在待測信號的一個周期Tx內,記錄標準頻率的周期數Ns,則被測信號的頻率為:fx=fs/Ns。圖7-2 測周期法原理圖測量測周期法的過程如上圖所示,在待測信號的一個周期Tx內,記錄標準信號周期的個數,然后把記錄結果鎖存,
29、經過運算后,送數碼管顯示,即為所測頻率。這兩種測頻率的原理基本一樣,都是通過在給定的時間內記錄脈沖的個數,經過一定的運算處理,得出結果顯示出來。但是,我們可以看到以上的兩種方法本身有一些缺陷。對于第一種方法,如果被測信號的頻率和參考信號的頻率接近的話,那么測量出的結果就一定會有比較大的誤差。對于第二種方法,如果被測信號的頻率和比較的的話,會造成計數值的比較大的誤差,因此第二種方法不適合測量低頻率的信號。因此,為了保證測量的精度,就必須采用分段進行測量,也就是在低頻的時候采用第二種方法,在高頻時采用第一種方法。因為測周期法的標準信號是一個高頻信號,在不同的被測信號的脈沖下所造成的誤差有很大的不同
30、。而且在1S閘門信號下,記錄的脈沖個數,對于所有被測信號的產生的誤差基本是一樣??紤]到用VHDL語言編寫乘除的算法比較困難,并且經過乘除運算后所得結果的誤差較大,因此我選用方法一。 7.2 測頻模塊設計測量頻率模塊中將比較器得到的脈沖信號CLKIN作為輸入信號。被測信號經整形后變?yōu)槊}沖信號(矩形波或者方波),送入閘門電路,等待閘門信號Clk3M的到來。閘門信號由外部時鐘輸入,經整形分頻后,產生一個標準的時基信號,作為閘門開通的基準時間。被測信號通過閘門,作為計數器的時鐘信號,計數器即開始記錄時鐘的個數,這樣就達到了測量頻率的目的。選定了直測頻法后,我將閘門信號直接選擇為1S的時鐘信號。因為在這
31、1S時間內記錄的被測信號脈沖的個數,正好就是被測信號的頻率,不再需要進行運算處理。不但減少編程的難度,也減小了實驗的誤差。而且在1S閘門信號下,記錄的脈沖個數,對于所有被測信號的產生的誤差基本是一樣。被測信號的頻率范圍為120kHz,被測信號最大頻率為五位數。題目要求使用4位數碼管顯示數據,因此需要將測量量程劃分兩段,并以1000HZ為量程劃分分界點,分別以HZ和KHZ為單位顯示。在硬件電路中HZ和KHZ兩個信號分別與一個LED燈連接。將其VHDL的程序代碼如下:IF(Q3>"0000" OR Q4>"0000")THEN QW<=Q4
32、;BW<=Q3;SW<=Q2;GW<=Q1;HZ<='0'KHZ<='1'ELSE QW<=Q3;BW<=Q2;GW<=Q1;SW<=Q0;HZ<='1'KHZ<='0'END IF;其中Q3,Q4分別是被測頻率的萬位和十萬位。當被測頻率小于1000HZ時以HZ單位顯示,與HZ相連的LED燈亮;當被測頻率大于1000HZ時以KHZ單位顯示,與KHZ相連的LED燈亮。GW30,SW30,BW30,QW30分別為頻率計數位的個位,十位,百位,千位。顯示單位轉換電路和小數
33、點顯示電路設計在測量頻率的時候,由于分兩個顯示單位,那么在不同的單位的時候,小數點也要跟著顯示。比如測量頻率的單位需要顯示Hz的時候,那么在顯示的時候四個數碼管的小數點不需要顯示,此時綠燈亮,表示單位是Hz.。測量頻率的單位需要顯示KHz的時候,那么顯示的時候,四個數碼管第二個位的數碼管的小數點要顯示,也就是當顯示的數值以KHz顯示時,后面有兩位小數以保證測量值度,并且此時紅燈亮,表示單位是KHz.為實現超量程報警功能,特設置一位輸出信號BEEF,并外接蜂鳴器。當被測信號的頻率大于20kHz,BEEF信號被置為高電平,蜂鳴器會發(fā)出連續(xù)的報警聲,以此提醒被測信號頻率超出量程。其VHDL的程序代碼
34、如下:IF (S5="1111")THEN BEEF<='1'ELSE BEEF<='0'END IF; 綜合上述設計思路, Clk3M為閘門信號,CLKIN是經過比較器后的輸入信號,在1S的閘門信號下對CLKIN信號進行計數。計數器要求低位的計數值溢出信號做為高位的輸入信號,從而顯示頻率的計量。由此得頻率測量模塊的原理框圖如圖7-3。圖7-3 頻率測量模塊原理框圖7.3仿真驗證在Quartus中對頻率測量模塊完成功能仿真后,編輯波形仿真文件,運行的得到的仿真圖如下:圖7-4 頻率測量模塊波形仿真圖如上圖所示,在波形仿真中設置Cl
35、k3M=3MHZ,CLKIN=3000HZ。通過對波形的分析可以發(fā)現,得到的結果正為被測信號的頻率為3000HZ,即GW30=0,SW30=0,BW30=0,QW30=1。此時HZ信號為低電平,KHZ信號為高電平。八 顯示模塊8.1 鎖存與顯示電路鎖存電路主要用于實現記憶顯示。在測量過程中不刷新新的數據,直到測量過程結束后,鎖存顯示測量結果,并且保存到下一次測量結束。其功能是對四位BCD碼進行鎖存并且轉換成為對應的4組七段數碼管,用于驅動數碼管。該模塊可使系統(tǒng)顯示電路的工作穩(wěn)定而可靠,避免計數電路模塊清零時引起顯示閃爍的現象。鎖存電路模塊是由多個鎖存器組成。每個鎖存器都是用來鎖存與其單獨相連的
36、計數器的輸出數據。由于每個鎖存器鎖存的都是4 位2 進代碼表示的十進制數,其功能完全相同,因此只需要設計制作一個鎖存器就可連接組合成一個鎖存電路模塊。為實現系統(tǒng)功能,鎖存器需設置四個數據輸入端:即Q1、Q2、Q3 和Q4 ,并由它們輸入計數器的計數值。需設置一個使鎖存器工作的使能端EN。還需設置四個鎖存數據的輸出端:即GW,SW,BW,QW。電路圖見頻率測量模塊。8.2顯示控制電路為了提高人機交互的方便性及設備的利用率,設置一個顯示控制電路,以控制頻率值和占空比值的顯示。實驗室的GW48_SOPC實驗箱上有8個顯示數碼管,而且模數轉換模塊中的AD0809已經占用了三個數碼管的端口。如果四位頻率
37、值和兩位的占空比值的同時用數碼管顯示則端口資源明顯不夠用。因此設計一個外部控制信號SEL,控制頻率值和占空比值的交換顯示。其VHDL的程序代碼如下:IF SEL='0' THEN B0<=A0;B1<=A1;B2<=A2;B3<=A3;ELSE B0<="0000"B1<="0000"B2<=A5;B3<=A4;END IF; 綜上可得顯示控制模塊的原理框圖見圖8-1:圖8-1 顯示模塊原理框圖8.2 仿真驗證在Quartus中對顯示模塊完成功能仿真后,編輯波形仿真文件,運行的得到的仿真圖如
38、下:圖8-2 顯示模塊波形仿真圖如上圖所示,在波形仿真中設置A0=1,A1=2,A2=3,A3=4,A4=0,A5=5。當信號SEL為低電平時B0=1,B1=2,B2=3,B3=4;當信號SEL為高電平電平時B0=0,B1=0,B2=0,B3=5。仿真結果與試驗預期的結果完全一致。九 結果與總結9.1 系統(tǒng)仿真在Quartus中編寫用例化語句編寫頂層文件,對整個系統(tǒng)進行功能仿真,運行通過。得到了整個系統(tǒng)的原理框圖,詳見附錄A。然后編輯波形仿真文件,運行的得到的仿真圖如下:圖9-1 系統(tǒng)波形仿真圖正常情況下,可以觀測到與輸入頻率一致、如觀測不到輸出波形,或觀測到的波形形狀與幅值不對,則應檢測這一
39、部分電路,消除故障。如該部分電路正常,或消除故障后頻率計仍不能正常工作時,也需要進一步檢查程序。以上程序經綜合仿真后,結果基本符合設計要求。如頻率關系不一致或波形不正常,則應對計數器和反饋門的各引腳電平與波形進行檢測。正常情況各電平值或波形應與電路中給出的狀態(tài)一致。通過檢測與分析找出原因,消除故障。9.2 硬件驗證硬件驗證采用的是GW48實驗教學系統(tǒng),采用電路模式5。使用實驗板上的AD0809完成模擬信號的轉換,數碼管和LED完成數據輸出。為使0809工作勢能,將實驗板左下角的撥碼開關的4、6、7向下?lián)?,其余向上。主要信號的管腳連接如下:輸入信號CLK連接PIN_28,CLK3M連接 PIN_
40、29, SEL連接PIN_233,D70連接 PIN_14PIN_20;輸出信號ALE連接 PIN_138,BEEF連接 PIN_174,START連接 PIN_139,OE連接PIN_140,EOC連接 PIN_1,HZ連接 PIN_3,KHZ連接 PIN_4,SMG170, SMG270, SMG370 SMG470分別連接四個數碼管。詳細的管腳連接圖見附錄B。完成管腳定義后選擇器件,編譯后生成*.sof、*.pof等文件。選擇sof文件進行下載。通過對每一模塊的仿真和下載,可以實現各個模塊的邏輯功能,驗證了各個模塊的正確性。 編程下載完成后,撥動按鍵,可看見數碼管上的顯示頻率和占空比的數
41、值。硬件驗證圖見圖9-2圖9-2 硬件驗證圖9.3 設計總結起初設計的電路經常有漏洞,對電路進行仿真時也仿真不出來,后來經過仔細研究和探討不斷的對電路進行改進,最終得到滿意的結果,電路完成的相對比較順利。正常情況各電平值應與電路中給出的狀態(tài)一致。但是由于顯示的是高頻的信號,在輸入時往往會有一些不正確,有一些功能沒有顯示出來,占空比不穩(wěn)定等,我在程序中找到了一些錯誤。通過檢測與分析找出原因,消除故障,減小了誤差。在測量占空比時,如果計數器輸出直接與譯碼器相連接,那么在計數過程中輸出端則隨輸入脈沖數的增加而不斷跳變,那么顯示數碼管則也會不斷閃爍跳變,讓人不能看到穩(wěn)定的輸出。所以在電路中加入鎖存器對
42、計數器輸出信號進行鎖存,則不再跳變,便可從數碼管讀出清晰的計數結果。在測量頻率時,為了克服測量低頻信號時的不足,可以使用另一種算法。將被測信號送入被測信號閘門產生電路,該電路輸出一個脈沖信號,脈寬與被測信號的周期相等。再用閘門產生電路輸出的閘門信號控制閘門電路的導通與開斷。設置一個頻率精度較高的周期信號(如10KHz)作為時基信號,當閘門導通時,時基信號通過閘門到達計數電路計數。在硬件驗證過程中要使用到模擬信號發(fā)生器,由于以前未使用過,所以在硬件驗證過程中總是出現問題,如波形不會設置、找不到占空比的設置位置等,經過反復摸索試驗,最后得到了比較滿意的結果。十 心得體會經過大學三年多的學習,對數電
43、,模電,EDA,VHDL等各課程都有了初步的認識和學習,也做許多相應的實驗和課程設計,但卻一直沒有建立起來對本專業(yè)的系統(tǒng)的認識,所學的知識也不能系統(tǒng)的綜合起來。這學期通過對現代電子系統(tǒng)設計課程的學習,終于將我們專業(yè)的知識系統(tǒng)的串起來了,也明白了如何高效地去設計一個電子系統(tǒng)。所以起初拿到本課的課程設計的時候確實有點兒興奮,心想著盡量要獨立快速而又高質量的完成這個設計??墒?,當天就發(fā)現我對這個用VHDL語言寫的頻率計系統(tǒng)一點頭緒都沒有,隨后就是一個勁的去圖書館查閱相關資料,到網上收集關于頻率計的資料,可是查到的東西好像并沒有幫到我什么忙,使我更感到無從下手。直到第一次進實驗室做實驗時,終于找到了一
44、個比較類似的VHDL程序設計的簡易數字頻率計。通過仔細閱讀這個程序,我對這次的設計有了些感覺。剛開始看到那設計的時候,一下子就被很多行的VHDL代碼給嚇著了,當時真想放棄,最后還是硬著頭皮看了下去。開始真是很多看不懂,但查過書后大部分都能搞清楚。對我來說是新東西的還有寄存器的設計等,最后通過查找書本大概的把這個系統(tǒng)看懂了。畢竟是第一次寫這么大的關于硬件描述的程序,所以雖然看稍微懂了類似的程序,可是到自己做的時候還是覺得不能上手,一直是要翻書看和借鑒里的內容。眼看就第一個設計周快要結束了,我才完成一半。還是自己是平時上課的知識積累不夠,掌握得不熟練,到編寫程序時,表達起來就很吃力。很快到了對整個
45、系統(tǒng)作調試的時候了,編譯、下載、連線、運行,一步一步的很小心。最后,還是模仿著那系統(tǒng)完成了這次課程設計。設計是我們將來必需的技能,這次設計恰恰給我們提供了一個應用自己所學知識的機會,從到圖書館查找資料到對電路的設計對電路的調試再到最后電路的成型,都對我所學的知識進行了檢驗。在實習的過程中發(fā)現了以前學的數字電路的知識掌握的不牢。同時在設計的過程中,遇到了一些以前沒有見到過或沒弄明白的元件,但是通過查找資料來學習這些元件的功能和使用。我在此次實習中,將理論結合實際,提高和培養(yǎng)創(chuàng)新能力,為后續(xù)課程的學習,畢業(yè)設計,畢業(yè)后的工作打下基礎。通過這次課程設計我又重新學到了很多電路電子知識,以及相關軟件的知
46、識,如 Office,Quartus,Visio等。從中學到了知識也得到了實際的鍛煉,最重要的是我對電子產品的開發(fā)產生了濃厚的興趣。也讓我立志以后要在電子行業(yè)有些作為。另外,還要感謝齊老師和張老師的悉心指導,通過他們的進一步講解才會更深入的懂得此次任務的思路和很多需要修改的地方。參考文獻1 何小艇.電子系統(tǒng)設計M.浙江:浙江大學出版社,20082 潘松、黃繼業(yè).EDA技術實用教程M.北京:科學出版社,20053 閻石.數字電子技術基礎M.北京:清華大學出版社,20064 侯伯亨.VHDL硬件描述語言與數字邏輯電路設計M.西安:西安電子科技大學出版社,20095 齊晶晶.現代電子系統(tǒng)設計試驗指導
47、書.電工電子實驗教學中心,20096 王鳳英.基于FPGA的數字頻率計設計與仿真J.科技資訊,20087 Altera Corporation. Cyclone Device HandbookJ.2003-4附錄A 系統(tǒng)原理框圖附錄B 管腳連接圖附錄C VHDL源程序模數轉換模塊VHDL源程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY cint IS PORT(D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -來自0809轉換好的8位數據 CLK : IN STD_LOGIC; -狀態(tài)機工作時鐘 EOC: IN
48、STD_LOGIC; -轉換狀態(tài)指示,低電平表示正在轉換 ALE: OUT STD_LOGIC; -8個模擬信號通道地址鎖存信號 START: OUT STD_LOGIC; -轉換開始信號 OE: OUT STD_LOGIC; -數據輸出3態(tài)控制信號 ADDA : OUT STD_LOGIC; -信號通道最低位控制信號LOCK0: OUT STD_LOGIC; -觀察數據鎖存時鐘 Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); -8位數據輸出END cint;ARCHITECTURE behav OF cint ISTYPE states IS (st0, st1,
49、 st2, st3,st4) ; -定義各狀態(tài)子類型 SIGNAL current_state, next_state: states :=st0 ; SIGNAL REGL : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK : STD_LOGIC; - 轉換后數據輸出鎖存時鐘信號BEGINADDA <= '1' -當ADDA<='0',模擬信號進入通道IN0;當ADDA<='1',則進入通道IN1Q <= REGL; LOCK0 <= LOCK ;COM: PROCESS(cu
50、rrent_state,EOC) -規(guī)定各狀態(tài)轉換方式 BEGIN CASE current_state IS WHEN st0=>ALE<='0'START<='0'LOCK<='0'OE<='0' next_state <= st1; -0809初始化 WHEN st1=>ALE<='1'START<='1'LOCK<='0'OE<='0' next_state <= st2; -啟動采樣 W
51、HEN st2=>ALE<='0'START<='0'LOCK<='0'OE<='0' IF (EOC='1') THEN next_state <= st3; -EOC=1表明轉換結束 ELSE next_state <= st2; END IF ; -轉換未結束,繼續(xù)等待 WHEN st3=> ALE<='0'START<='0'LOCK<='0'OE<='1' next_st
52、ate <= st4;-開啟OE,輸出轉換好的數據 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) BEGIN IF (CLK'EVENT AND CLK='1') THEN current_state<=n
53、ext_state; END IF; END PROCESS REG ; - 由信號current_state將當前狀態(tài)值帶出此進程:REGLATCH1: PROCESS (LOCK) - 此進程中,在LOCK的上升沿,將轉換好的數據鎖入 BEGIN IF LOCK='1' AND LOCK'EVENT THEN REGL <= D ; END IF; END PROCESS LATCH1 ; END behav;信號整形模塊VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UN
54、SIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cmp ISPORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CLKIN:OUT STD_LOGIC);END ENTITY cmp ;ARCHITECTURE ONE OF cmp ISBEGINPROCESS(D)BEGINIF D>"10000000"THEN -比較閾值選為128CLKIN<='1'ELSE CLKIN<='0'END IF;END PROCESS; END ONE;頻率測量及報警
55、模塊VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt ISPORT(CLK3M:IN STD_LOGIC; CLKIN:IN STD_LOGIC; GW,SW,BW,QW:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); -其中GW,SW,BW,QW為記數碼管的khz,hz的四位 BEEF:OUT STD_LOGIC:='0' HZ:OUT STD_LOGIC:='
56、;0' KHZ:OUT STD_LOGIC:='0');END ENTITY cnt ;ARCHITECTURE ONE OF cnt ISSIGNAL CLKOUT:STD_LOGIC;SIGNAL S0,S1,S2,S3,S4,S5:STD_LOGIC_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;SIGNAL CNT1:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CNT2:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CNQ1:INTEGER RANGE 0 TO 3000000:=0;SIGNAL CNQ2:INTEGER RANGE 0 TO 3000000:=0;BEGIN PROCESS(CLKIN)BEGINIF(RISING_EDGE(CLKIN)THEN -將輸入的被測信號分頻與閘門信號匹配 CLKOUT<=NOT CLKOUT;END IF;END PROCESS;PROCESS(CLK
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 租客合同終止租房協(xié)議
- 技術開發(fā)與轉讓合同保密范本
- 智能化系統(tǒng)供貨安裝合同樣本
- 礦山企業(yè)輪換工勞動合同模板及示例
- 農村土地出租權屬合同樣本
- 標準貨物銷售合同簡版
- 城市配送服務合同一覽
- 小學生種花演講課件
- 影視設備行業(yè)交流服務批發(fā)考核試卷
- 廣播電視節(jié)目的心理影響與教育意義考核試卷
- 低溫絕熱液氧瓶充裝操作規(guī)程模版(2篇)
- 大眾汽車使用說明書
- (高清版)DZT 0145-2017 土壤地球化學測量規(guī)程
- 供熱公司安全教育知識
- 高中英語課程綱要
- 《藥物設計學》課件
- 隨機微分方程
- 道路設施施工現場安全管理基本要求
- 公寓樓改造裝修施工方案
- 煙臺大學化學化工學院實驗室儀器設備搬遷項目
- 2022版10kV架空配電線路無人機自主巡檢作業(yè)導則
評論
0/150
提交評論