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