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