便攜式功率分析儀設(shè)計(jì)-----硬件設(shè)計(jì)(四)
3.4 FPGA內(nèi)部電路設(shè)計(jì)本設(shè)計(jì)
本文引用地址:http://m.butianyuan.cn/article/175061.htm硬件電路設(shè)計(jì)采用了1片F(xiàn)PGA,芯片型號為Altera公司的EP1C6Q240C8 。其作用主要分為數(shù)據(jù)采集控制和頻率測量控制兩個部分。數(shù)據(jù)采集控制部分用于實(shí)現(xiàn)ARM寄存器基接口的配置,通道控制,數(shù)據(jù)采集,觸發(fā)與存儲器讀寫控制等;頻率測量控制部分用于利用前端電路已經(jīng)分頻整形的信號對給定門寬進(jìn)行計(jì)數(shù),從而等到該信號的頻率值。這里先對數(shù)據(jù)采樣部分的FPGA內(nèi)部電路進(jìn)行介紹,頻率測量部分的介紹見后章。
數(shù)據(jù)采集控制部分的FPGA程序主要完成與ARM芯片接口的的配置工作;對寄存器進(jìn)行譯碼;控制觸發(fā)電平,實(shí)現(xiàn)觸發(fā)功能;FIFO讀寫控制;時鐘頻率選擇;采樣時鐘合成與控制;寄存器讀寫操作。以下分別對各部分的功能進(jìn)行介紹。
3.4.1地址譯碼電路及控制信號
模擬通道中的衰減控制信號,以及對FIFO狀態(tài)的檢測信號等,都是由ARM芯片對其數(shù)據(jù)、地址總線的讀寫來實(shí)現(xiàn)的,這就需要為每個端口分配地址。本設(shè)計(jì)中,由于是利用LPC2138的兩個通用I/O口,模擬讀寫控制線,由于有獨(dú)立的讀寫標(biāo)志,因此需要4根地址線譯碼,進(jìn)行端口讀寫。
FPGA中與ARM芯片(LPC2138)接口的寫操作地址譯碼電路。其中,/WR為ARM芯片的寫使能信號,低有效。當(dāng)寫外部存儲器時,/WR信號變?yōu)榈停?WR信號的上升沿時,ARM外部數(shù)據(jù)、地址總線上的數(shù)據(jù)都是很穩(wěn)定的。而且地址總線上的數(shù)據(jù)比數(shù)據(jù)總線上的數(shù)據(jù)先有效。因此,我們可以先對外部地址總線上的數(shù)據(jù)利用譯碼器進(jìn)行譯碼,等到/WR信號有效時,利用/WR信號的上升沿對外部數(shù)據(jù)總線上的數(shù)據(jù)進(jìn)行鎖存,完成對外部存儲器的一次寫操作。
其中,寫寄存器部分主要由74374構(gòu)成,實(shí)現(xiàn)寄存器寫操作。送寫的數(shù)據(jù)包括觸發(fā)字、FIFO狀態(tài)控制字、DAC控制字、MAX4141通道選擇字等控制字。
同樣在ARM讀操作中,/RD為ARM芯片的輸出時鐘信號,低有效;當(dāng)每執(zhí)行一次讀操作時/RD產(chǎn)生一個讀時鐘信號,同時ARM外部數(shù)據(jù)總線上的數(shù)據(jù)在兩個讀時鐘周期內(nèi)有效。而且地址總線上的數(shù)據(jù)比數(shù)據(jù)總線上的數(shù)據(jù)先有效。因此,我們可以先對外部地址總線上的數(shù)據(jù)利用譯碼器進(jìn)行譯碼,等到/RD讀時鐘信號有效時,選通相應(yīng)的緩沖器,從而完成對外部存儲器的一次讀操作。
其中,讀寄存器部分主要由74244構(gòu)成,完成寄存器讀操作,包括讀取FIFO狀態(tài)字、存儲在FIFO中的ADC采集的數(shù)據(jù)等。
3.4.2數(shù)字觸發(fā)電路
功率測量中,為了得到檢波后脈沖的峰值,需要設(shè)置觸發(fā)電平,獲得信號的峰值。為了避免毛刺干擾的影響,觸發(fā)電路設(shè)計(jì)中選用窗口電路的設(shè)計(jì)方法。并選用上升沿/下降沿觸發(fā)。具體觸發(fā)電平大小的設(shè)置,根據(jù)于采樣得到信號的峰值,如下圖3-18所示,觸發(fā)電路由兩個比較器、選擇器和觸發(fā)器等組成。觸發(fā)電平triglev小于triglev1,構(gòu)成窗口觸發(fā)的兩個電平。第一路比較器實(shí)現(xiàn)觸發(fā)電平triglev和采樣得到的信號值比較,當(dāng)triglev小于此時的信號值,則第二路經(jīng)過比較器輸出的信號被選通到輸出端。第二路比較器實(shí)現(xiàn)觸發(fā)電平triglev1和采樣信號比較,當(dāng)信號高于triglev1則輸出端置高。因此,trig_or比較器的輸出為采樣信號的整形后信號,在后端的trig_s標(biāo)志為用戶提供上升沿/下降沿觸發(fā)方式的選擇。從而實(shí)現(xiàn)窗口觸發(fā)。
3.4.3數(shù)據(jù)的存儲與控制
A/D采樣出來的數(shù)據(jù),是隨采樣時鐘和被測信號的變化而變化的,要能夠再現(xiàn)被測信號,必須要把每次采集的數(shù)據(jù)存入緩存器中,這里介紹的FIFO就是一個典型的緩存器。FIFO是一個先進(jìn)先出的存儲器,可同時對存儲空間進(jìn)行讀寫,沒有地址線,第一個讀出來的數(shù)據(jù)是第一個寫進(jìn)去的數(shù)據(jù),它有現(xiàn)成的集成芯片。由于EP1C6Q240片內(nèi)有92160bits的存儲空間,因此本設(shè)計(jì)采用ALTERA公司提供的宏單元庫MEGA_LPM中提供的FIFO庫文件(LPM_FIFO_DC),將FIFO做在FPGA中。對應(yīng)AD9480的存儲主通道信號采樣值的FIFO存儲深度設(shè)為1024,單位為8bits,生成的FIFO如圖3-19所示。
生成的FIFO有一個寫使能信號wrreq,一個寫時鐘信號wrclk,一個讀使能信號rdreq,一個讀時鐘信號rdclk,一個清除端aclr,8bits數(shù)據(jù)輸入端data[7……0]和8bits數(shù)據(jù)輸出端q[];同時還有兩個狀態(tài)端:wrfull(FIFO滿)和rdempty(FIFO空),F(xiàn)IFO被寫滿時wrfull=1,當(dāng)FIFO被讀空時rdempty=1.如圖3-19中還使用到一個數(shù)據(jù)輸出端wrusedw[9..0],該端口在每一個FIFO寫時鐘到來是更新當(dāng)前FIFO以寫入數(shù)據(jù)數(shù)量,這將在做預(yù)觸發(fā)方式時使用。
這里之所以不用一般并行RAM而用FIFO主要有如下兩個原因:一方面是它不用地址線,便于電路的連接和控制;更重要的是它可以同時進(jìn)行讀寫操作,這樣在做預(yù)觸發(fā)功能時是非常方便的。雖然用并行RAM將地址計(jì)數(shù)器做成一個環(huán)行計(jì)數(shù)器也可以實(shí)現(xiàn),這樣就增加了FPGA內(nèi)部的資源,也使電路復(fù)雜化了。
接地電阻相關(guān)文章:接地電阻測試方法
評論