簡易數(shù)字頻率計(jì)設(shè)計(jì)方案(一)
本次設(shè)計(jì)的數(shù)字頻率計(jì)以AT89C52為核心,在軟件編程中采用的是C51語言,測量采用了多周期同步測量法,它避免了直接測量法對精度的不足,同時(shí)消除了直接與間接相結(jié)合方法,需對被測信號的頻率與中介頻率的關(guān)系進(jìn)行判斷帶來的不便,能實(shí)現(xiàn)較高的等精度頻率和周期的測量。
硬件電路設(shè)計(jì)方案
多周期同步測量法的基本思路是使被測信號與閘門之間實(shí)現(xiàn)同步化,從而從根本上消除了在閘門時(shí)間內(nèi)對被測信號進(jìn)行計(jì)數(shù)時(shí)的±1量化誤差,使測量精度大大提高。倒數(shù)計(jì)數(shù)器就是基于該方法而設(shè)計(jì)出來的一種具有創(chuàng)新思想的測頻、測周期的儀器。它采用多周期同步測量法,即測量輸入多個(gè)(整數(shù)個(gè))周期值,再進(jìn)行倒數(shù)運(yùn)算而求得頻率。其優(yōu)點(diǎn)是:可在整個(gè)測頻范圍內(nèi)獲得同樣高的測試精度和分辨率。
1、系統(tǒng)級方案設(shè)計(jì)
在選擇多周期同步等精度測量法的情況下,按照自頂向下的設(shè)計(jì)方法,可以畫出該頻率計(jì)的系統(tǒng)級框圖,如圖1所示。根據(jù)測周期、頻率的原理,可以將總體框圖分為三個(gè)子系統(tǒng):輸入通道(即前置整形電路)該部分主要由模擬電路組成的;多周期同步等精度頻率、周期的測量、控制及功能切換(中間部分),該部分基本上由數(shù)字硬件電路組成;單片機(jī)及外圍電路,包括單片機(jī)、數(shù)碼顯示。
2、子系統(tǒng)設(shè)計(jì)
1.輸入通道的設(shè)計(jì)。輸入通道是由前置放大器和整形器組成的,所以要對前置放大器的增益和帶寬指標(biāo)進(jìn)行估計(jì)。為了能準(zhǔn)確測量信號,將輸入信號經(jīng)過一個(gè)放大整形電路。其具體實(shí)施方案為:將輸入信號經(jīng)過LM358運(yùn)放放大,再通過74LS132整形,此時(shí)的信號還不能直接送入單片機(jī),這是因?yàn)樵谟布?a target="_blank">CPU對INT0和INT1引腳的信號不能控制,解決這個(gè)問題要通過硬件,再配合軟件來解決。
2.預(yù)置閘門時(shí)間發(fā)生電路設(shè)計(jì)。閘門時(shí)間的確定,可以先由一個(gè)555定時(shí)器產(chǎn)生一個(gè)脈沖信號,將555產(chǎn)生的脈沖信號送入到74LS90十進(jìn)制計(jì)數(shù)器當(dāng)中,由于74LS90具有二-五進(jìn)制混合計(jì)數(shù)的功能,所以可以用它來實(shí)現(xiàn)五進(jìn)制計(jì)數(shù),將74LS90的輸出接到3—8線譯碼器74LS138的輸入端,再將譯碼器的輸出端接上五個(gè)發(fā)光二極管,這樣就可以實(shí)現(xiàn)硬件上的閘門時(shí)間控制。但是考慮到硬件實(shí)現(xiàn)上的復(fù)雜性,可以通過軟件上來實(shí)現(xiàn),就是將五個(gè)發(fā)光二極管直接接到單片機(jī)的P1口由軟件上來實(shí)現(xiàn),通過按鍵來改變它的閘門時(shí)間。
3.數(shù)碼顯示電路的設(shè)計(jì)。該部分電路是由單向八位移位寄存器74LS164和數(shù)碼管組成的。考慮到精度的問題,取五位計(jì)數(shù)值,采用五片74LS164級聯(lián),同時(shí)還要顯示頻率和周期的單位,所以還需再級聯(lián)一塊74LS164,在74LS164的輸出端接六個(gè)單位指示燈,分別表示周期頻率的三個(gè)不同的單位數(shù)量級,即周期單位s,ms,μs和頻率單位Hz,KHz及MHz。移位寄存器的時(shí)鐘信號是由單片機(jī)的串行輸出口TXD腳控制。
簡易數(shù)字頻率計(jì)設(shè)計(jì)方案(二)
頻率計(jì)原理框圖
此頻率計(jì)的流程為:被測信號fin輸入到CPLD芯片,在控制信號為1Hz時(shí),在CPLD芯片里完成對被測信號的測頻、計(jì)數(shù)、鎖存、譯碼,輸出信號接數(shù)碼管顯示,如圖1所示。
CPLD模塊原理框圖
由于是一種集成度很高并且可進(jìn)行用戶定制的數(shù)字芯片,因此測試功能都用一塊CPLD芯片來實(shí)現(xiàn)。在硬件電路設(shè)計(jì)時(shí),可先將CPLD的內(nèi)部電路分為控制、計(jì)數(shù)、鎖存及譯碼四個(gè)電路模塊分別進(jìn)行設(shè)計(jì),然后再將這四個(gè)電路模塊有機(jī)地結(jié)合成一個(gè)能完成測頻功能的整體系統(tǒng)。其CPLD模塊原理框圖如圖2所示。
控制電路模塊
為實(shí)現(xiàn)控制功能,控制電路模塊需輸出三個(gè)信號:一是允許對被測信號計(jì)數(shù)的計(jì)數(shù)信號CNT-EN;二是將前1s計(jì)數(shù)器的計(jì)數(shù)值存入鎖存器的鎖存信號LOAD;三是為下一個(gè)周期計(jì)數(shù)做準(zhǔn)備的計(jì)數(shù)器清零信號RST-CNT。上述三個(gè)信號產(chǎn)生的順序是:先提供計(jì)數(shù)信號,這種信號使計(jì)數(shù)器在1s內(nèi)計(jì)數(shù),即周期為2s的信號;接著是提供鎖存信號,這種信號對計(jì)數(shù)值進(jìn)行鎖存,與計(jì)數(shù)信號反向;最后是發(fā)出清零信號,這種信號可對計(jì)數(shù)器清零。計(jì)數(shù)器清零結(jié)束后又可重新計(jì)數(shù),計(jì)數(shù)進(jìn)入第二個(gè)周期??刂齐娐纺K實(shí)際上是一個(gè)控制器,它需要一個(gè)周期為1s的信號作為產(chǎn)生并控制控制器輸出的時(shí)基信號CLKK??刂齐娐纺K中各信號符號及端口功能如圖3所示。
計(jì)數(shù)電路模塊
計(jì)數(shù)電路模塊將對被測信號進(jìn)行十進(jìn)制計(jì)數(shù)。它雖然由6個(gè)十進(jìn)制計(jì)數(shù)器組成,但采用CPLD后,設(shè)計(jì)時(shí)只要先制作單個(gè)十進(jìn)制計(jì)數(shù)器,然后再將多個(gè)結(jié)構(gòu)相同的單個(gè)十進(jìn)制計(jì)數(shù)器在CPLD內(nèi)部進(jìn)行連接就可組合成一個(gè)完整的計(jì)數(shù)電路模塊。為實(shí)現(xiàn)其功能,十進(jìn)制計(jì)數(shù)器需要設(shè)置三個(gè)輸入端:即被測信號輸入端CLK、計(jì)數(shù)器狀態(tài)清零端RST和計(jì)數(shù)器工作使能端ENA。
需要設(shè)置四個(gè)輸出端,即OUTY[0],OUTY[1],OUTY[2]和OUTY[3],由這四個(gè)輸出端輸出4位二進(jìn)制代碼來表示十進(jìn)制數(shù)。同時(shí),還需要設(shè)置進(jìn)位輸出端COUNT。需要設(shè)置四個(gè)輸出端,即OUTY[0],OUTY[1],OUTY[2]和OUTY[3],由這四個(gè)輸出端輸出4位二進(jìn)制代碼來表示十進(jìn)制數(shù)。同時(shí),還需要設(shè)置進(jìn)位輸出端COUNT。設(shè)置進(jìn)位輸出端COUNT是因?yàn)閱蝹€(gè)十進(jìn)制計(jì)數(shù)器只能表示被測信號頻率在個(gè)、十、百、千等位中的一個(gè)數(shù)位的數(shù)據(jù)。被測信號的頻率是從個(gè)位計(jì)數(shù)器開始計(jì)數(shù)的,被測信號變化一次,個(gè)位計(jì)數(shù)器輸出加1,當(dāng)被測信號變化10次時(shí),個(gè)位計(jì)數(shù)器輸出為0,而十位計(jì)數(shù)器輸出加1,當(dāng)十位計(jì)數(shù)器計(jì)滿10次時(shí),十位計(jì)數(shù)器輸出為0,而百位計(jì)數(shù)器輸出加1,依次類推,直至千位、萬位或更高位。上述十進(jìn)制計(jì)數(shù)器都是滿10進(jìn)1,且進(jìn)位時(shí)計(jì)數(shù)器清零并重新計(jì)數(shù)。計(jì)數(shù)電路模塊中的單個(gè)計(jì)數(shù)器符號及端口功能如圖4所示。
鎖存電路模塊
鎖存電路模塊可使顯示電路的工作穩(wěn)定而可靠,避免計(jì)數(shù)電路模塊清零時(shí)引起顯示閃爍的現(xiàn)象。鎖存電路模塊是由多個(gè)鎖存器組成。每個(gè)鎖存器都是用來鎖存與其單獨(dú)相連的計(jì)數(shù)器的輸出數(shù)據(jù)。由于每個(gè)鎖存器鎖存的都是4位二進(jìn)制代碼表示的十進(jìn)制數(shù),其功能完全相同,因此只需要設(shè)計(jì)制作一個(gè)鎖存器就可連接組合成一個(gè)鎖存電路模塊。為實(shí)現(xiàn)其功能,鎖存器需設(shè)置一個(gè)使鎖存器工作的使能端LOAD,四個(gè)數(shù)據(jù)輸入端即DIN[0],DIN[1],DIN[2]和DIN[3],并由它們輸入計(jì)數(shù)器的計(jì)數(shù)值,還需設(shè)置四個(gè)鎖存數(shù)據(jù)的輸出端:即DOUT[0],DOUT[1],DOUT[2]和DOUT[3]。鎖存電路模塊中單個(gè)鎖存器的符號及端口功能如圖5所示。
譯碼電路模塊
譯碼電路模塊可對表示十進(jìn)制數(shù)的4位二進(jìn)制代碼進(jìn)行編碼,此模塊可直接連接數(shù)碼管驅(qū)動器,從而驅(qū)動數(shù)碼管顯示出相應(yīng)的阿拉伯?dāng)?shù)字等字符。與鎖存器電路模塊設(shè)計(jì)一樣,它也只需要先設(shè)計(jì)一個(gè)單個(gè)的譯碼器,然后通過連接組合就可構(gòu)成譯碼電路模塊,從而實(shí)現(xiàn)譯碼功能。為實(shí)現(xiàn)其功能,單個(gè)譯碼器需要設(shè)置4個(gè)數(shù)據(jù)輸入端:即d[0],d[1],d[2]和d[3],并由這些端口輸入鎖存電路模塊輸出的4位二進(jìn)制數(shù)據(jù),需要設(shè)置7個(gè)輸出端:即q[0],q[1],q[2],q[3],q[4],q[5]和q[6],它們分別連接7段數(shù)碼管的7個(gè)顯示輸入端。譯碼電路模塊中單個(gè)譯碼器符號及端口功能如圖6所示。
簡易數(shù)字頻率計(jì)設(shè)計(jì)方案(三)
頻率計(jì)是我們經(jīng)常會用到的實(shí)驗(yàn)儀器之一,本實(shí)驗(yàn)要使用單片機(jī)和計(jì)數(shù)電路及液晶器件來設(shè)計(jì)一個(gè)寬頻的頻率計(jì)。
期望達(dá)到10Hz-1.1G范圍的頻率精確測量。
1)計(jì)數(shù)及顯示電路:
2)前置放大及分頻電路:
設(shè)計(jì)思路
頻率的測量實(shí)際上就是在1S時(shí)間內(nèi)對信號進(jìn)行計(jì)數(shù),計(jì)數(shù)值就是信號頻率。用單片機(jī)設(shè)計(jì)頻率計(jì)通常采用兩種辦法,1)使用單片機(jī)自帶的計(jì)數(shù)器對輸入脈沖進(jìn)行計(jì)數(shù),或者測量信號的周期;2)單片機(jī)外部使用計(jì)數(shù)器對脈沖信號進(jìn)行計(jì)數(shù),計(jì)數(shù)值再由單片機(jī)讀取。
由于單片機(jī)自帶計(jì)數(shù)器輸入時(shí)鐘的頻率通常只能是系統(tǒng)時(shí)鐘頻率的幾分之一甚至幾十分之一,因此采用單片機(jī)的計(jì)數(shù)器直接測量信號頻率就受到了很大的限制。
本實(shí)驗(yàn)電路采用方式2,使用一片74LS393四位雙二進(jìn)制計(jì)數(shù)器和Atmega8的T1計(jì)數(shù)器組成了24位計(jì)數(shù)器,最大計(jì)數(shù)值為16777215。如果輸入信號經(jīng)過MB501分頻器進(jìn)行64分頻后再進(jìn)行測量,則固定1S時(shí)基下最高測量頻率為1073.741760Mhz。
為了方便得到準(zhǔn)確的1秒鐘測量閘門信號,我們使用了Atmega8的異步實(shí)時(shí)時(shí)鐘功能,采用32.768Khz的晶振由TC2產(chǎn)生1秒鐘的定時(shí)信號。
測量原理:
單片機(jī)打開測量閘門,即PB1輸出高電平,同時(shí)TC2定時(shí)器啟動。74LS393開始對輸入脈沖進(jìn)行計(jì)數(shù),74LS393每計(jì)數(shù)達(dá)256時(shí),Atmega8的T1計(jì)數(shù)器也向上計(jì)數(shù)1次。當(dāng)1S定時(shí)到達(dá)時(shí),單片機(jī)產(chǎn)生中斷,PB1輸出低電平關(guān)閉測量閘門,然后Atmega8讀取74LS393和T1的計(jì)數(shù)值,然后送LCD顯示。
評論
查看更多