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


接地電阻相關(guān)文章:接地電阻測試方法
評論