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