高玉秀
(1. 中國海洋大學(xué),山東 青島 266003;2. 濰坊科技學(xué)院,山東 濰坊 262700)
在本設(shè)計(jì)中,單片機(jī)的所有控制信號(hào)及數(shù)據(jù)接受和發(fā)送都是通過FPGA完成的,因此首先在FPGA內(nèi)通過兩片74373鎖存芯片構(gòu)成雙向口電路,為兩者搭建信號(hào)通道。根據(jù)題目要求,頻率測量范圍要求從1赫茲到35兆赫茲,采用分段處理的方法,對高低頻分別采用不同的比較整形電路。FPGA內(nèi)部特別設(shè)計(jì)乘法器與除法器。被測頻率信號(hào)與100 M時(shí)鐘信號(hào)(40 M標(biāo)準(zhǔn)時(shí)鐘信號(hào)倍頻后所得)計(jì)數(shù)所得的兩路32位數(shù)據(jù),經(jīng)過乘除法運(yùn)算后,將最終獲得的被測信號(hào)的頻率值送入單片機(jī)內(nèi),單片機(jī)控制液晶顯示器顯示。
在測量過程中,被測信號(hào)與使能信號(hào)接入一個(gè)D觸發(fā)器,此時(shí)使能信號(hào)功能相當(dāng)于一個(gè)閘門,控制計(jì)數(shù)器的開始。同時(shí)將被測信號(hào)與閘門信號(hào)一同進(jìn)入計(jì)數(shù)器。當(dāng)被測信號(hào)的第一個(gè)上升沿脈沖來時(shí),閘門信號(hào)也為上升沿,從而開始計(jì)數(shù),當(dāng)使能信號(hào)變?yōu)樘優(yōu)榈碗娖降臅r(shí)刻,此時(shí)被測信號(hào)的上升沿控制閘門信號(hào)跳變?yōu)榈碗娖?,這樣就保證了閘門信號(hào)內(nèi)所計(jì)數(shù)是被測信號(hào)周期的整數(shù)倍。
對被測信號(hào)頻率的計(jì)算公式:Fsin=Na*Fs/Nb。
式中,F(xiàn)sin:被測信號(hào)頻率;Na:被測信號(hào)所得頻率計(jì)數(shù);Fs:100 M;Nb:標(biāo)準(zhǔn)時(shí)鐘信號(hào)所得頻率計(jì)數(shù)。
由于閘門信號(hào)時(shí)間長正好是被測信號(hào)周期的整數(shù)倍,所以Na不存在誤差,而Nb存在±1的誤差,因此系統(tǒng)的相對誤差為:
當(dāng)T≈1 s,F(xiàn)s=100 M時(shí),△Fsin≈1/100 000 000 Hz;符合題目要求。
但是當(dāng)?shù)皖l段的頻率低于閘門信號(hào)頻率時(shí)則無法計(jì)算出頻率。
在測量周期的時(shí)候,首先將時(shí)間單位設(shè)置為納秒輸出,這樣,根據(jù)計(jì)算公式:Tsin=1/Fsin=Nb/Na*10(ns),可在乘法器,除法器鏈接一個(gè)選擇輸出電路。完成由頻率到周期的轉(zhuǎn)換。
電路設(shè)計(jì)包括六個(gè)主要部分:程控放大電路,比較整形電路,雙向口電路,等精度測量,計(jì)算器,按鍵編碼及掃描電路。
由于在測頻率及周期部分沒有寬帶有1Hz-35MHz的比較器,所以采用分段處理的方法實(shí)現(xiàn)整個(gè)頻帶的測量。為了防止干擾的誤翻轉(zhuǎn),我們采用了帶正反饋的滯回比較電路。在反向輸入時(shí),其正向閾值電壓,對應(yīng)比較后信號(hào)的下降沿。負(fù)向閾值電平為0V,對應(yīng)于比較后信號(hào)的上升沿。故輸出信號(hào)的上升沿仍需過零比較。
2.1.3 雙向口電路
在本設(shè)計(jì)方案的硬件電路板中,由于單片機(jī)并沒有直接與鍵盤,液晶顯示,外界擴(kuò)展芯片等器件相連接,而是將所有連線均與FPGA連通,單片機(jī)不能直接控制這些器件,因此有必要構(gòu)建雙向口電路。FPGA內(nèi)部的雙向口電路有兩片74373鎖存芯片構(gòu)成,當(dāng)單片機(jī)進(jìn)行讀操作時(shí),片選信號(hào)選通控制讀入的74373芯片,未被選通的另外一塊74373芯片則阻止數(shù)據(jù)的寫入。
2.1.4 鍵盤編碼及掃描電路
鍵盤電路控制 3*6矩陣鍵盤,3個(gè)特殊功能鍵及三個(gè)撥動(dòng)開關(guān)。鍵盤控制電路的內(nèi)部時(shí)鐘頻率需要較低,因此首先要將標(biāo)準(zhǔn)時(shí)鐘做20 000分頻后,再作為其時(shí)鐘信號(hào)。當(dāng)有按鍵按下時(shí),進(jìn)入讀按鍵中斷程序,單片機(jī)控制片選按鍵掃描電路并編碼所需各路高低電平輸入該掃描模塊,掃描電路接受數(shù)據(jù)并編碼對照,將確定后的按鍵代碼輸出并發(fā)出中斷信號(hào)以便做下一步處理。
2.1.5 等精度測量模塊
等精度測量過程是將被測信號(hào)與40 M標(biāo)準(zhǔn)時(shí)鐘信號(hào)同時(shí)輸入該模塊,在閘門信號(hào)內(nèi)同時(shí)對被測頻率與標(biāo)準(zhǔn)時(shí)鐘信號(hào)計(jì)數(shù)。閘門信號(hào)是用于保證被測頻率從其輸入的第一個(gè)上升沿開始,最后一個(gè)脈沖的下一個(gè)上升沿結(jié)束。將兩個(gè)計(jì)數(shù)結(jié)果分別以64路二進(jìn)制數(shù)輸出,其中高32位為被測信號(hào)的計(jì)數(shù)結(jié)果,低32位是40 M標(biāo)準(zhǔn)時(shí)鐘信號(hào)的計(jì)數(shù)結(jié)果。
2.1.6 計(jì)算器
計(jì)算器的主要構(gòu)成是乘法器,除法器及數(shù)據(jù)切換單元,數(shù)據(jù)切換單元用于選擇計(jì)算頻率或周期,當(dāng)輸入信號(hào) f為高電平是計(jì)算器給出頻率計(jì)算結(jié)果,當(dāng) f為低電平時(shí)計(jì)算器給出周期的計(jì)算結(jié)果。
程序設(shè)計(jì)部分包括單片機(jī)功能控制和FPGA數(shù)據(jù)處理,單
2.1.1 程控放大電路
以MAX309為模擬開關(guān),用OPA637接成一級(jí)同相放大器進(jìn)行10倍增益放大,用兩級(jí)OPA637級(jí)聯(lián)進(jìn)行120倍放大。
2.1.2 比較整形電路片機(jī)通過鍵盤對FPGA進(jìn)行控制,實(shí)現(xiàn)對輸入信號(hào)的頻率測量,閘門信號(hào)的產(chǎn)生,鍵盤按鍵的確定,存儲(chǔ)及液晶的顯示。單片機(jī)作為整體控制部分,主要進(jìn)行供能性控制與設(shè)置,并通過液晶顯示器構(gòu)成人機(jī)交互界面;FPGA作為數(shù)據(jù)部分的邏輯控制,主要進(jìn)行數(shù)據(jù)的采集與處理,其重點(diǎn)部分包括等精度測頻,鍵盤編碼及掃描,時(shí)鐘控制,數(shù)據(jù)存儲(chǔ),數(shù)據(jù)回放,數(shù)據(jù)運(yùn)算等。