- 相關(guān)推薦
高速數(shù)據(jù)采集系統(tǒng)中高速緩存與海量緩存的實(shí)現(xiàn)
摘要:探討了高速數(shù)據(jù)采集系統(tǒng)中高速采樣緩存的重要性和實(shí)現(xiàn)途徑,闡述了基于ADSP-21065L的并行多通道數(shù)據(jù)采集板上高速采樣緩存的設(shè)計(jì)與電路結(jié)構(gòu),給出了采用FPGA實(shí)現(xiàn)通道復(fù)用和采樣數(shù)據(jù)預(yù)處理,從而構(gòu)造16MB的SDRAM海量緩存以將高速緩存中的多批次采樣數(shù)據(jù)經(jīng)AD-21065L倒入SDRAM存儲(chǔ)的實(shí)現(xiàn)方法。關(guān)鍵詞:高速數(shù)據(jù)采集;高速緩存;海量緩存;DSP;FPGA
1 引言
高速數(shù)據(jù)采集系統(tǒng)目前已在雷達(dá)、聲納、軟件無線電、瞬態(tài)信號(hào)測(cè)試等領(lǐng)域得到廣泛應(yīng)用。它的關(guān)鍵技術(shù)是高速ADC技術(shù)、數(shù)據(jù)存儲(chǔ)與傳輸技術(shù)和抗干擾技術(shù)。本文在分析了高速多通道數(shù)據(jù)采集系統(tǒng)中存儲(chǔ)子系統(tǒng)的性能要求和設(shè)計(jì)方案的基礎(chǔ)上,提出了高速緩存和海量緩存方案,并將該方案成功地應(yīng)用于DSP多通道超聲信號(hào)采集與處理系統(tǒng)中。
對(duì)高速多通道采樣數(shù)據(jù)存儲(chǔ)的性能要求:一是高速性,現(xiàn)在高速數(shù)據(jù)采集中所用的ADC已達(dá)到幾十甚至幾百MSPS的水平,這就要求采樣數(shù)據(jù)存儲(chǔ)器的速度也要與之匹配,也就是采用高速緩存;二是大容量,其原因是多通道高速數(shù)據(jù)采集會(huì)產(chǎn)生巨大的數(shù)據(jù)流。一個(gè)4通道40MHz采樣率16位精度數(shù)據(jù)采集板并行采樣0.1s將產(chǎn)生32MB的數(shù)據(jù)量,所以,通常需要海量緩存來存儲(chǔ)采樣數(shù)據(jù)。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
2 高速緩存的實(shí)現(xiàn)
通常構(gòu)成高速緩存的方案有三種:
第一種是FIFO(先進(jìn)先出)方式。FIFO存儲(chǔ)器就象數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入、從另一頭流出,先進(jìn)入的數(shù)據(jù)先流出。FIFO具有兩套數(shù)據(jù)線而無地址線,可在其一端寫操作而在另一端讀操作,數(shù)據(jù)在其中順序移動(dòng),因而能夠達(dá)到很高的傳輸速度和效率,且由于省去了地址線而有利于PCB板布線。缺點(diǎn)是只能順序讀寫數(shù)據(jù),因而顯得比較呆板,而且大容量的高速FIFO非常昂貴;
第二種是雙口RAM方式。雙口RAM具有兩套獨(dú)立的數(shù)據(jù)、地址和控制總線,因而可從兩個(gè)端口同時(shí)讀寫而互不干擾,并可將采樣數(shù)據(jù)從一個(gè)端口寫入而由DSP從另一個(gè)端口讀出。雙口RAM也能達(dá)到很高的傳輸速度,并且具有隨機(jī)存取的優(yōu)點(diǎn),缺點(diǎn)是大容量的高速雙口RAM很難得且價(jià)格昂貴;
第三種是高速SRAM切換方式。高速SRAM只有一套數(shù)據(jù)、地址和控制總線,可通過三態(tài)緩沖門分別接到A/D轉(zhuǎn)換器和DSP上。當(dāng)A/D采樣時(shí),SRAM由三態(tài)門切換到A/D轉(zhuǎn)換器一側(cè),以使采樣數(shù)據(jù)寫入其中。當(dāng)A/D采樣結(jié)束后,SRAM再由三態(tài)門切換到DSP一側(cè)以便DSP進(jìn)行讀寫。這種方式的優(yōu)點(diǎn)是SRAM可隨機(jī)存取,同時(shí)較大容量的高速SRAM容易得到且價(jià)格適中,缺點(diǎn)是切換控制電路比較復(fù)雜,且只能由A/D轉(zhuǎn)換器和DSP分時(shí)讀寫。
綜合考慮以上三種高速緩存方案的性能、價(jià)格和實(shí)現(xiàn)方便性后,筆者選用第三種方案(即高速SRAM切換方式)來構(gòu)成A/D采樣高速緩存。系統(tǒng)的采樣與存儲(chǔ)部分的原理框圖如圖1所示。
圖1中,SRAM選用IS61LV25616-10T,容量為256k×16bit,訪問速度為10ns,使用兩片即可構(gòu)成256k×32bit的高速緩存。當(dāng)一輪采樣開始時(shí),DSP發(fā)出觸發(fā)信號(hào)給CPLD,后者對(duì)50MHz晶振時(shí)鐘二分頻后得到25MHz采樣時(shí)鐘提供給4路A/D轉(zhuǎn)換器AD9225,同時(shí)對(duì)4路超聲信號(hào)進(jìn)行25MHz、12bit的A/D轉(zhuǎn)換。轉(zhuǎn)換結(jié)果分成兩個(gè)完全一樣的數(shù)據(jù)通道進(jìn)行處理,每個(gè)數(shù)據(jù)通道處理兩路A/D轉(zhuǎn)換結(jié)果,每個(gè)數(shù)據(jù)通道包含一片FPGA(現(xiàn)場(chǎng)可編程門陣列)、一片SRAM及其后的數(shù)據(jù)三態(tài)門等電路。FPGA可接收兩路A/D轉(zhuǎn)換結(jié)果并在其內(nèi)部進(jìn)行復(fù)用,以將其變成一路50MHz、12bit的數(shù)據(jù)流送入IS61LV25616緩存。FPGA完成數(shù)據(jù)通道復(fù)用的原理如圖2所示。
FPGA選用EP1K50,它的邏輯門數(shù)為5萬(wàn)門,內(nèi)含10個(gè)EAB(嵌入陣列塊)。每個(gè)EAB實(shí)際上是4kbit的RAM,可以用來構(gòu)造FIFO、雙口RAM等。本系統(tǒng)應(yīng)用兩塊EAB構(gòu)成了兩個(gè)256×16bit的FIFO,因而可將兩路A/D轉(zhuǎn)換結(jié)果分別送入兩個(gè)FIFO,然后在FPGA的輸出端將兩個(gè)FIFO中的數(shù)據(jù)交替地讀出寫入IS61LV25616,每個(gè)FIFO每次讀出128?jìng)(gè)采樣數(shù)據(jù)。A/D轉(zhuǎn)換器的輸出為12位數(shù)據(jù),而FPGA的片內(nèi)FIFO和片外IS61LV25616的數(shù)據(jù)字寬都為16位。在存儲(chǔ)、傳送時(shí),將高4位補(bǔ)0即可。兩路A/D采樣速度都為25MHz,復(fù)用后輸出的速率為50MHz,這個(gè)速度對(duì)于IS61LV25616和EP1K50都是完全可以達(dá)到的。FPGA的作用除了構(gòu)造FIFO以實(shí)現(xiàn)數(shù)據(jù)通道復(fù)用外,還可以作為協(xié)處理器由板上DSP控制來進(jìn)行一些簡(jiǎn)單高效的數(shù)據(jù)預(yù)處理(如插值、取平均、FIR濾波等)。同時(shí)可使用EDA工具MAX+PLUSⅡ10.0來對(duì)EP1K50的邏輯算法進(jìn)行設(shè)計(jì)、編譯并仿真,然后下載到EP1K50中實(shí)現(xiàn)預(yù)定功能。
除了FPGA外,系統(tǒng)還
采用了一片CPLD(復(fù)雜可編程邏輯器件)來控制采樣。前者主要用于數(shù)據(jù)通道對(duì)A/D采樣結(jié)果進(jìn)行緩沖復(fù)用以及預(yù)處理,后者則負(fù)責(zé)產(chǎn)生A/D采樣時(shí)鐘以及作為地址計(jì)數(shù)器產(chǎn)生地址并提供給兩片IS61LV25616以便存入A/D采樣結(jié)果等。CPLD不象FPGA那樣能完成較復(fù)雜的邏輯功能和信號(hào)處理算法,但是它具有更高的速度,且管腳到管腳具有固定一致的時(shí)延,因而在設(shè)計(jì)調(diào)試時(shí)容易獲得簡(jiǎn)單可靠的定時(shí)關(guān)系,適于實(shí)現(xiàn)高速計(jì)數(shù)器、觸發(fā)器、譯碼器等定時(shí)要求比較嚴(yán)格的場(chǎng)合。本系統(tǒng)使用MAX7128AE來控制采樣,其可實(shí)現(xiàn)的功能如圖3所示。
MAX7128AE可用于實(shí)現(xiàn)兩個(gè)18位地址計(jì)數(shù)器,它具有地址總線開關(guān)切換功能,在A/D采樣期間能以25 MHz的頻率進(jìn)行地址計(jì)數(shù)以作為高速緩存的地址線。當(dāng)一輪A/D采樣結(jié)束后,系統(tǒng)可將高速緩存的地址總線切換到DSP的地址總線,然后由DSP讀取高速緩存中的A/D轉(zhuǎn)換結(jié)果并進(jìn)行處理。高速緩存IS61LV25616的數(shù)據(jù)總線一方面連到FPGA以便在采樣期間接受復(fù)用的A/D轉(zhuǎn)換結(jié)果;一方面則通過三態(tài)門連到DSP的數(shù)據(jù)總線以便在采樣結(jié)束后由DSP讀取采樣數(shù)據(jù)。
3 海量緩存的設(shè)計(jì)實(shí)現(xiàn)
本系統(tǒng)使用了兩片256k×16bit容量的SRAM作為高速緩存,系統(tǒng)中的4個(gè)通道可同時(shí)存儲(chǔ)每通道128k點(diǎn)采樣數(shù)據(jù)。在25MHz的采樣頻率下,一次可采集存儲(chǔ)5ms多的波形數(shù)據(jù)。對(duì)于超聲信號(hào)的單次發(fā)射/接收來說,這種采樣時(shí)間長(zhǎng)度已經(jīng)足夠了,但是對(duì)于多批次采樣數(shù)據(jù)的存儲(chǔ)就比較困難了。若要通過PCI總線、USB接口等快速通訊方式將采樣數(shù)據(jù)傳到主機(jī)進(jìn)行處理或存入硬盤,則應(yīng)滿足實(shí)時(shí)傳輸采樣數(shù)據(jù)所需要的巨大總線帶寬。以25MHz、12bit采樣精度為例,4個(gè)通道同時(shí)采樣將產(chǎn)生150MB/s的數(shù)據(jù)流,這對(duì)于任何總線來說都難以做到。解決的辦法是在數(shù)據(jù)采集板上采用DSP對(duì)采集的數(shù)據(jù)進(jìn)行預(yù)處理,以使處理后的數(shù)據(jù)量大大減少,然后再上傳給主機(jī)以減輕總線傳輸壓力和主機(jī)處理負(fù)擔(dān),從而避免數(shù)據(jù)通訊瓶頸。這種由板上DSP執(zhí)行計(jì)算密集型任務(wù)并由上位主機(jī)進(jìn)行調(diào)度管理的分布式處理機(jī)制可廣泛用于許多高速數(shù)據(jù)采集與處理系統(tǒng)中。而為板上DSP配備大容量?jī)?nèi)存來作為它的程序和數(shù)據(jù)存儲(chǔ)器是十分必要的。考慮到本系統(tǒng)所用DSP的結(jié)構(gòu)特點(diǎn)和大容量采樣數(shù)據(jù)的存儲(chǔ)需要,筆者選用SDRAM作為板上海量?jī)?nèi)存。
系統(tǒng)中的DSP為Analog Devices公司的ADSP-21065L,這是一款性價(jià)比很高的32位浮點(diǎn)DSP。其峰值浮點(diǎn)運(yùn)算速度為180M FLOPS,片內(nèi)帶有68kB的RAM,可用于程序或數(shù)據(jù)內(nèi)存,片外數(shù)據(jù)總線為32位,片外地址總線為24位,具有4個(gè)片選信號(hào)輸出,每個(gè)片選信號(hào)的尋址空間可達(dá)64MB,另外,它還具有多個(gè)高速同步串口以及強(qiáng)大的DMA功能。而最有特色的一點(diǎn)是其內(nèi)部集成了一個(gè)SDRAM控制器,因此能夠直接驅(qū)動(dòng)外部SDRAM。通常SDRAM的控制是比較復(fù)雜的,需要按時(shí)序規(guī)定驅(qū)動(dòng)它的行、列選通線并分時(shí)提供行、列地址,另外還要定時(shí)刷新。一般是由專門的SDRAM控制器對(duì)其操作,或采用FP-GA設(shè)計(jì)SDRAM控制器,但這都會(huì)增大系統(tǒng)的復(fù)雜度。而ADSP-21065L能直接驅(qū)動(dòng)和控制片外SDRAM,使用時(shí)只要在程序中設(shè)置好相關(guān)的寄存器,然后用一條指令啟動(dòng)SDRAM的上電時(shí)序即可。此后程序?qū)Γ樱模遥粒偷脑L問操作都是透明的,可象訪問普通片外SRAM一樣訪問它,因此非常方便,故可使用大容量(可達(dá)64MB)高速廉價(jià)的SDRAM芯片作為ADSP-21065L的海量片外存儲(chǔ)器。本系統(tǒng)使用兩片4M×16bit的SDRAM芯片HY57V641620來構(gòu)成16MB的海量緩存(參見圖1)。這樣,16MB的存儲(chǔ)容量如果都用來轉(zhuǎn)存采樣數(shù)據(jù)的話,可以存儲(chǔ)4個(gè)通道同時(shí)采集的2M點(diǎn)數(shù)據(jù),在25MHz的采樣率下可達(dá)到0.08s的總記錄時(shí)間,這對(duì)于本系統(tǒng)而言已經(jīng)足夠了。而且通過選用更大容量的SDRAM芯片還可方便地將海量緩存的容量擴(kuò)充到32MB、64MB。
為了將多次A/D采樣數(shù)據(jù)從高速緩存轉(zhuǎn)送到海量緩存,如果讓ADSP-21065L用指令的方式從片外高速緩存中讀取采樣數(shù)據(jù),然后寫入片外海量緩存,將會(huì)大量占用ADSP的運(yùn)行時(shí)間,而且傳輸速度也較慢。為此,筆者采用ADSP的DMA功能進(jìn)行傳送。ADSP-21065L具有多個(gè)DMA通道(其中包括兩個(gè)外部口DMA通道),因而可進(jìn)行高速數(shù)據(jù)傳輸。它的外部口DMA通道本來就可以完成外存與外設(shè)之間的DMA傳輸,但是若二者之一是SDRAM則不行。所以,實(shí)際使用時(shí)一般通過ADSP-21065L的片內(nèi)RAM來中轉(zhuǎn),然后再完成高速緩存到海量緩存的數(shù)據(jù)傳輸,具體做法如圖4所示。
ADSP內(nèi)部開設(shè)有1k×32bit的RAM塊構(gòu)成中轉(zhuǎn)區(qū),可利用外部口DMA通道0進(jìn)行A/D高速緩存到片內(nèi)RAM的DMA傳輸,同時(shí)利用外部口DMA通道1來進(jìn)行片內(nèi)RAM區(qū)到海量緩存SDRAM的DMA傳輸。在60MHz的ADSP主頻下,前者的DMA傳輸速度可達(dá)120MB/s,后者的DMA傳輸速度可達(dá)240MB/s。當(dāng)外部口DMA通道0完成一次傳輸后,系統(tǒng)將啟動(dòng)外部口DMA通道1的DMA傳輸;而當(dāng)后者的DMA傳輸完成后?系統(tǒng)將再次啟動(dòng)前者的DMA傳輸。如此循環(huán)下去,直至A/D高速緩存中的1MB采樣數(shù)據(jù)都倒入SDRAM海量緩存為止,該過程大約需要13.1ms。
4 結(jié)論與改進(jìn)
通過對(duì)高速數(shù)據(jù)采集系統(tǒng)中幾種A/D采樣高速緩存的實(shí)現(xiàn)方案進(jìn)行對(duì)比分析,結(jié)合本系統(tǒng)的結(jié)構(gòu)特點(diǎn)和性能要求,采用SRAM作為A/D高速緩存所構(gòu)成的采集系統(tǒng)具有速度高、容量大、控制方便、價(jià)格適中等優(yōu)點(diǎn)。選用高速、大容量、低價(jià)格的SDRAM作為海量緩存則可通過其外部口DMA通道將高速緩存中的采樣數(shù)據(jù)倒入海量緩存。這種設(shè)計(jì)使系統(tǒng)的A/D采樣
存儲(chǔ)兼具高速和海量的優(yōu)點(diǎn),同時(shí)具有很高的性能價(jià)格比。而其尚存的不足之處是:ADSP和A/D轉(zhuǎn)換器通過切換總線方式分時(shí)訪問高速緩存在一定程度上影響了系統(tǒng)的實(shí)時(shí)性。作為改進(jìn)措施可以引入雙體存儲(chǔ)交替訪問的方案,即再增加兩片IS61LV25616做成一組高速緩存以和已有的兩片IS61LV25616構(gòu)成雙體存儲(chǔ)區(qū)。由于該方式中的ADSP和A/D轉(zhuǎn)換器以乒乓方式交替訪問這兩組緩存,因此,ADSP和A/D轉(zhuǎn)換器能并行工作而無需互相等待,從而提高系統(tǒng)的實(shí)時(shí)性。
【高速數(shù)據(jù)采集系統(tǒng)中高速緩存與海量緩存的實(shí)現(xiàn)】相關(guān)文章:
CPLD在多路高速同步數(shù)據(jù)采集系統(tǒng)中的應(yīng)用08-06
基于USB總線的高速數(shù)據(jù)采集系統(tǒng)08-06
基于片內(nèi)WISHBONE總線的高速緩存一致性實(shí)現(xiàn)08-06
換體DMA高速數(shù)據(jù)采集電路的CPLD實(shí)現(xiàn)08-06
USB接口的高速數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)08-06
焊縫檢測(cè)系統(tǒng)中PCI總線高速數(shù)據(jù)采集卡的設(shè)計(jì)08-06
ISP技術(shù)在高速數(shù)據(jù)采集模塊中的應(yīng)08-06
基于USB總線的實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)08-06