便攜式功率分析儀設(shè)計-----硬件設(shè)計(四)
本設(shè)計在FPGA中用AHDL語言編寫了對FIFO復(fù)位及讀寫總體控制程序,如下:
BEGIN
DEFAULTS
fifo_wclk=gnd;fifo_rclk=gnd;
trig_clr=vcc;fifo_/wen=vcc;
fifo_/ren=vcc;fifo_/reset=vcc; //控制器默認(rèn)狀態(tài),F(xiàn)IFO讀寫無效
END DEFAULTS;
IF workstate==0 THEN //通道采集關(guān)閉
fifo_/wen=vcc; //關(guān)閉FIFO寫使能
……//FIFO讀時鐘由ARM提供
ELSIF (workstate==1) THEN //通道采集開啟
fifo_/ren=gnd;
fifo_/wen=gnd; //FIFO讀寫使能同時有效
……
由程序可見,當(dāng)workstate=0時,可由程序控制對FIFO進(jìn)行復(fù)位,或者FIFO不復(fù)位,但是此時可對FIFO進(jìn)行讀操作。一般開始新一輪的采數(shù)之前要對FIFO進(jìn)行一次復(fù)位,以確保FIFO的狀態(tài)正常且為空。當(dāng)FIFO存滿后,也要用到此狀態(tài)將FIFO中的數(shù)據(jù)讀出。當(dāng)workstate=1時,F(xiàn)IFO讀寫均使能:一般在采數(shù)階段要用workstate=1狀態(tài)。本設(shè)計在FPGA中對FIFO復(fù)位及讀寫的觸發(fā)控制采用了兩種模式:
一種為自動觸發(fā)模式,即,當(dāng)調(diào)整數(shù)字觸發(fā)電路的觸發(fā)電平使其低于采樣信號最大值,且高于其最小值時(既數(shù)字觸發(fā)器觸發(fā)時),液晶屏顯示信號波形由觸發(fā)電平所在位置附近啟始,保持顯示信號的穩(wěn)定;當(dāng)不觸發(fā)時,則不對FIFO存儲數(shù)據(jù)加以限制。實現(xiàn)方法如上圖以及數(shù)字觸發(fā)電路原理圖所示,在FIFO清空控制端加入一個trig_fifo控制信號并將其與正常FIFO清空控制信號相或,trig_fifo信號由數(shù)字觸發(fā)電路產(chǎn)生,信號特點是在觸發(fā)出現(xiàn)時產(chǎn)生短暫的低電平,用于對FIFO清空數(shù)據(jù),使FIFO在觸發(fā)到來后,其內(nèi)部只保留觸發(fā)點之后的數(shù)據(jù)。
另一種為正常觸發(fā)方式,即,首先在觸發(fā)信號到來前FIFO存儲一段觸發(fā)前的數(shù)據(jù)并不斷刷新,等待觸發(fā)信號到來,這既是預(yù)觸發(fā)。觸發(fā)信號到來后FIFO停止刷新前端預(yù)觸發(fā)數(shù)據(jù),直接存儲采樣數(shù)據(jù);當(dāng)觸發(fā)信號沒到來是系統(tǒng)則一直等待觸發(fā)。如下:
if (clk'event and clk='1') then
if fifodepth >=0010000000 and trig ='0' then
cntrl='1';
elsif fifodepth >=0010000000 and trig ='1' then
cntrl='0';
else
cntrl='0';
end if;
……
程序中,cntrl信號是讀時鐘控制信號。當(dāng)cntrl=0時,控制關(guān)閉FIFO讀時鐘,當(dāng)cntrl=1時,F(xiàn)IFO的讀寫時鐘相同。由程序可以看出,F(xiàn)IFO首先直接寫入128個數(shù)據(jù)(暫定為FIFO深度的10%),此時FIFO讀時鐘關(guān)閉;當(dāng)FIFO寫入數(shù)據(jù)達(dá)到或超過128個時,打開讀時鐘,此時FIFO中存入一個數(shù)的同時也讀出一個數(shù),F(xiàn)IFO已存入的128個數(shù)據(jù)將不斷被刷新;若信號已經(jīng)觸發(fā)時,這時FIFO沒有讀時鐘,只有寫時鐘,也就是說FIFO處于只寫的狀態(tài),進(jìn)行數(shù)據(jù)存儲。這樣就實現(xiàn)了預(yù)觸發(fā)。
當(dāng)被采樣信號為連續(xù)波信號時,自動觸發(fā)模式能夠很好的穩(wěn)定顯示的波形,方便用戶觀察,但是由于自動觸發(fā)時FIFO里存儲的只能是觸發(fā)之后的數(shù)據(jù),加之各個模塊的延時導(dǎo)致不能顯示出觸發(fā)時刻以及觸發(fā)之前一段時間的數(shù)據(jù),當(dāng)被測信號是窄脈沖信號時將由于不能完整顯示脈沖信號,而使用戶不能了解被測信號的全部特征,而且當(dāng)脈沖信號寬度較窄時,可能因觸發(fā)到FIFO存儲控制信號的延時導(dǎo)致脈沖信號數(shù)據(jù)無法被FIFO存儲。所以在被測信號是窄脈沖信號的,應(yīng)使用正常觸發(fā)方式,利用預(yù)觸發(fā),保證觸發(fā)時刻的信號數(shù)據(jù)能夠顯示出來。
3.4.4時基電路的實現(xiàn)
時基電路是顯示示波部分的重要組成部分,它的作用主要是提供AD的采樣時鐘和FIFO的寫時鐘。
系統(tǒng)源時鐘是由外部晶振提供的標(biāo)準(zhǔn)20MHz頻率信號。由于250MHz時鐘直接分頻產(chǎn)生200MHz時鐘將較為繁瑣,所以我們利用ALTPLL鎖相環(huán)模塊,分別產(chǎn)生250MHz,200MHz頻率信號。將200MHz時鐘經(jīng)過由四個74390和兩個T觸發(fā)器構(gòu)成的二分頻、四分頻器組成的分頻網(wǎng)絡(luò)產(chǎn)生所需要的AD采樣頻率和FIFO寫時鐘。在功率分析儀的控制面板上有一個時基控制按鈕sec/div,不同的時基檔位下對應(yīng)著不同的采樣頻率。每選擇不同的時基檔位時,時鐘選擇信號clk_s0~clk_s3就會輸出不同的值以選擇與檔位相應(yīng)的采樣時鐘;當(dāng)時基控制設(shè)置在最高采樣率時選擇250MHz采樣時鐘。具體的時基檔位與采樣時鐘以及每個檔位下存儲深度的對應(yīng)關(guān)系如表3-1.
接地電阻相關(guān)文章:接地電阻測試方法
評論