《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 在高速信號采集系統(tǒng)中利用FPGA實(shí)現(xiàn)異步FIFO設(shè)計

在高速信號采集系統(tǒng)中利用FPGA實(shí)現(xiàn)異步FIFO設(shè)計

2011-10-20
作者:北京合眾達(dá)電子技術(shù)有限責(zé)任公司
關(guān)鍵詞: FPGA TMS320C6416 Spartan3E FIFO

        目前數(shù)據(jù)采集系統(tǒng)朝著高速和高精度的方向發(fā)展,。隨著FPGA" target="_blank">FPGA的集成度和運(yùn)行速度的提高,可以滿足高速數(shù)據(jù)采集系統(tǒng)的需求,。FPGA內(nèi)部具有豐富的存儲單元,,易于實(shí)現(xiàn)各種存儲器(如FIFO" target="_blank">FIFO,、雙口RAM等);另外,,基于查找表的邏輯單元可用于實(shí)現(xiàn)各種數(shù)字信號處理(如濾波等),,以輔助DSP處理器做各種預(yù)處理。

        TI公司推出的高性能數(shù)字信號處理芯片TMS320C6000系列,,工作頻率最高可達(dá)到1GHz,,具有處理速度快、靈活,、精確和可靠性高等優(yōu)點(diǎn),,作為數(shù)據(jù)采集系統(tǒng)中的主處理器,可以滿足實(shí)時性的要求,?;谝陨峡紤],北京合眾達(dá)公司開發(fā)了采用TMS320C6416和FPGA的高速高精度雙通道數(shù)據(jù)采集系統(tǒng),,每個通道的采樣率為3Msps,,最高可達(dá)10Msps,采樣精度為14b,。系統(tǒng)主要包括以下幾部分:高速A/D轉(zhuǎn)換,、FIFO數(shù)據(jù)緩存和EDMA數(shù)據(jù)傳輸,系統(tǒng)結(jié)構(gòu)框圖如圖1所示,。

AD9243及轉(zhuǎn)換控制

        設(shè)計中采用的模數(shù)轉(zhuǎn)換器芯片是AD9243,。AD9243是ADI公司生產(chǎn)的14位、3Msps高性能模數(shù)轉(zhuǎn)換器,。AD9240與AD9243完全兼容,,因此系統(tǒng)的最高采樣率可兼容到10Msps。

        模數(shù)轉(zhuǎn)換器AD9243的時序控制與傳統(tǒng)的A/D有所不同,,完全依靠時鐘控制采樣,、轉(zhuǎn)換和數(shù)據(jù)輸出,在第一個時鐘的上升沿開始采樣轉(zhuǎn)換,,第四個時鐘上升沿到來時,,數(shù)據(jù)將出現(xiàn)在D1~D14端口上。本文采用系統(tǒng)自通電時起,,A/D和時鐘電路始終處于工作狀態(tài),,對數(shù)據(jù)不停進(jìn)行轉(zhuǎn)換,,以減少誤碼率,,提高采樣精度,。

FIFO的實(shí)現(xiàn)及控制

        設(shè)計中采用FPGA來實(shí)現(xiàn)雙通道數(shù)據(jù)的緩存和數(shù)據(jù)傳輸?shù)倪壿嬁刂啤?a class="innerlink" href="http://wldgj.com/tags/Spartan3E" title="Spartan3E" target="_blank">Spartan3E是一款高性能低價格的可編程邏輯器件,具有豐富的邏輯單元和存儲單元,。其內(nèi)部的BlockRam可以配置為大小不同的各種類型存儲器,,如單口RAM、雙口RAM和同步FIFO,,其中FIFO更適合作為A/D采樣數(shù)據(jù)高速寫入的存儲器,。FIFO存儲器就像數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入,、從另一頭流出,,先進(jìn)入的數(shù)據(jù)先流出。FIFO具有兩套數(shù)據(jù)線而無地址線,,可在其一端寫操作而在另一端進(jìn)行讀操作,,數(shù)據(jù)在其中順序移動,從而達(dá)到很高的傳輸速度和效率,,且由于省去了地址線,,有利于PCB板布線。

        采用FIFO構(gòu)成高速A/D采樣緩存時,,由于轉(zhuǎn)換速度較快,,如果直接將ADC采樣后的數(shù)據(jù)存儲到FIFO中,對時序配置要求非常嚴(yán)格,,如果兩者時序關(guān)系配合不當(dāng),,就會發(fā)生數(shù)據(jù)存儲出錯或者掉數(shù)。利用FPGA可以方便地控制時序和數(shù)據(jù)傳輸,,簡單,、可靠地實(shí)現(xiàn)采樣和存儲是選用FPGA的優(yōu)點(diǎn)。該數(shù)據(jù)采集系統(tǒng)中只采用了一個外部時鐘源,,直接輸入到FPGA,,經(jīng)DCM分頻后作為FIFO和ADC的時鐘源。

        在軟件設(shè)計中,,采用ISE開發(fā)環(huán)境開發(fā)FPGA時,,調(diào)用Core Generator來構(gòu)造FIFO,可以設(shè)置FIFO的參數(shù),,如深度和寬度,;設(shè)置FIFO的各種標(biāo)志和控制位,如空滿,、半滿全滿,、半空全空、可編程滿和可編程空等標(biāo)志位;寫使能,、讀使能等控制位,,以便實(shí)現(xiàn)與高速A/D和DSP的邏輯接口。FIFO的輸入輸出引腳如表所示:其中WR_EN由DSP的GPIO口引出,,控制數(shù)據(jù)是否寫入到FIFO中,,輸出引腳中只用到了PROG_FULL即可與DSP進(jìn)行數(shù)據(jù)傳輸。

        FPGA的作用除了構(gòu)造FIFO以實(shí)現(xiàn)數(shù)據(jù)通道復(fù)用外,,還可以作為協(xié)處理器進(jìn)行實(shí)時要求性高的數(shù)據(jù)預(yù)處理(如插值,、取平均、FIR濾波等),,以減少DSP處理的數(shù)據(jù)量,。設(shè)計中采用分布式算法的FIR濾波,首先對ADC轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行FIR濾波,,然后存入FIFO中以等待DSP的讀取,。FPGA代替ASIC和DSP作為前端數(shù)字信號處理的運(yùn)算,在規(guī)模,、重量和功耗方面都有所降低,,而且吞吐量更高,開發(fā)成本進(jìn)一步縮小,。

        FPGA設(shè)計中,,需提供外部閃存來存儲FPGA的下載文件,上電后數(shù)據(jù)會自動下載到FPGA內(nèi)部,,以對FPGA進(jìn)行配置,。FPGA有多種配置方式,包括主串,、從串,、主并、從并,、SPI,、BPI,以及JTAG等方式,。串行方式即逐位串行配置,,接線簡單,但速度比較慢,,并行方式即8位同時傳輸,,速度快,但接線復(fù)雜,。串行方式和并行方式都需要外加閃存作為配置文件的存儲器,。設(shè)計中本文采用C6416的多通道緩存串行口(McBSP)以SPI方式對FPGA進(jìn)行配置。

 


圖1:系統(tǒng)結(jié)構(gòu)框圖

接口和控制電路的設(shè)計

        系統(tǒng)的接口和控制電路主要包括以下兩個部分:

1. ADC與FIFO的接口電路

        利用FPGA構(gòu)造了兩個完全一樣的FIFO,將兩路A/D轉(zhuǎn)換數(shù)據(jù)分別送入兩個FIFO中,,實(shí)現(xiàn)雙通道采樣數(shù)據(jù)的緩存和傳輸,。設(shè)計中A/D轉(zhuǎn)換時鐘和FIFO寫時鐘為同一時鐘源,自上電起,,A/D和時鐘電路一直處于工作狀態(tài),不停的進(jìn)行數(shù)據(jù)的轉(zhuǎn)換,,但數(shù)據(jù)是否寫入到FIFO中,,由FIFO的寫使能信號來決定,當(dāng)DSP發(fā)出寫使能信號有效時,,轉(zhuǎn)換數(shù)據(jù)才能存儲到FIFO中,。從前面的A/D時序電路中可知,A/D轉(zhuǎn)換數(shù)據(jù)的輸出和轉(zhuǎn)換時鐘有一定的相位差,,在FPGA內(nèi)部可通過延時或時鐘管理器來滿足建立時間和保持時間,,保證數(shù)據(jù)不失碼地傳輸?shù)紽IFO中。

2. FIFO與C6416的接口電路

        C6416有兩個EMIF口,,即EMIFA和EMIFB,,其中EMIFA的總線寬度支持64b、32b,、16b和8b,,尋址空間為1024Mb;EMFIB的總線寬度支持16b和8b,,尋址空間為256Mb,。本文采用EMIFB作為與FIFO的接口,其總線寬度配置為16b,。EMIFB可以與各種外部存儲器實(shí)現(xiàn)無縫接口,,如SBSRAM、SDRAM,、異步設(shè)備(包括SRAM,、ROM和FIFO)和外部共享存儲設(shè)備等。設(shè)計中EMFIB和FIFO的接口采用異步讀的方式,,實(shí)現(xiàn)數(shù)據(jù)的可靠傳輸,,即通過由/ARE和地址來實(shí)現(xiàn)對兩個同步FIFO的異步讀,其控制接口信號的連接關(guān)系為:

RD_CLK=/ARE

RD_EN1=A20

RD_EN2=A19

 


表1:FIFO的輸入輸出引腳定義

        設(shè)計中將兩個FIFO的存儲空間都映射到EMIFB的BCE2中,,當(dāng)FIFO的可編程滿信號PROG_FULL有效時,,引發(fā)外部中斷,觸發(fā)EDMA以實(shí)現(xiàn)數(shù)據(jù)的快速傳輸,。由于FIFO不需要地址線,,可以通過簡單的接口來產(chǎn)生EDMA的讀地址,實(shí)現(xiàn)EDMA分時讀兩個FIFO。異步讀FIFO必須滿足下列時序關(guān)系:

 

        異步讀時序如圖2所示,,其中EMFIB的時鐘可以是外部時鐘源,,也可以是由CPU時鐘分頻獲得。設(shè)計中使用外部時鐘源,,其頻率為133MHz,,可以根據(jù)EMIFB的讀寫控制寄存器配置Setup、Strobe和Hold的值,。

 


圖2:異步讀時序圖

本文小結(jié)

        本文系統(tǒng)地介紹了一種由數(shù)字信號處理器TMS320C6416,、可編程邏輯器件Spartan3E構(gòu)成的高速數(shù)據(jù)采集系統(tǒng)。實(shí)驗(yàn)表明,,系統(tǒng)具有抗干擾強(qiáng),、可靠性高、失碼率低等優(yōu)點(diǎn),。設(shè)計中采用了FPGA來構(gòu)造FIFO,,可根據(jù)不同的應(yīng)用場合對FPGA編程以滿足設(shè)計要求,因此靈活性較大,,是一種較好的高速數(shù)據(jù)采集方案,。此外,采用了EDMA傳輸,,適于在實(shí)時性要求較高的各種高速數(shù)據(jù)采集系統(tǒng)中應(yīng)用,。該數(shù)據(jù)采集卡采用標(biāo)準(zhǔn)擴(kuò)展總線接口,可以與合眾達(dá)公司的DEC6000系列開發(fā)板連接,。

作者:賈龍

開發(fā)工程師

[email protected]

北京合眾達(dá)電子技術(shù)有限責(zé)任公司

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]