內(nèi)容摘要:探討了高速數(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)方法,。
1 引言
對(duì)高速多通道采樣數(shù)據(jù)存儲(chǔ)的性能要求:一是高速性,現(xiàn)在高速數(shù)據(jù)采集中所用的ADC已達(dá)到幾十甚至幾百M(fèi)SPS的水平,這就要求采樣數(shù)據(jù)存儲(chǔ)器的速度也要與之匹配,也就是采用高速緩存;二是大容量,其原因是多通道高速數(shù)據(jù)采集會(huì)產(chǎn)生巨大的數(shù)據(jù)流.一個(gè)4通道40MHz采樣率16位精度數(shù)據(jù)采集板并行采樣0.1s將產(chǎn)生32MB的數(shù)據(jù)量,所以,通常需要海量緩存來(lái)存儲(chǔ)采樣數(shù)據(jù).
2 高速緩存的實(shí)現(xiàn)
通常構(gòu)成高速緩存的方案有三種:
第一種是FIFO(先進(jìn)先出)方式.FIFO存儲(chǔ)器就象數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入,、從另一頭流出,先進(jìn)入的數(shù)據(jù)先流出.FIFO具有兩套數(shù)據(jù)線而無(wú)地址線,可在其一端寫操作而在另一端讀操作,數(shù)據(jù)在其中順序移動(dòng),因而能夠達(dá)到很高的傳輸速度和效率,且由于省去了地址線而有利于PCB板布線.缺點(diǎn)是只能順序讀寫數(shù)據(jù),因而顯得比較呆板,而且大容量的高速FIFO非常昂貴;
第三種是高速SRAM切換方式.高速SRAM只有一套數(shù)據(jù),、地址和控制總線,可通過(guò)三態(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í)讀寫.
圖1中,SRAM選用IS61LV25616-10T,容量為256k×16bit,訪問(wèn)速度為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ù)通道包含一片F(xiàn)PGA(現(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外,系統(tǒng)還采用了一片CPLD(復(fù)雜可編程邏輯器件)來(lái)控制采樣.前者主要用于數(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來(lái)控制采樣,其可實(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é)果;一方面則通過(guò)三態(tài)門連到DSP的數(shù)據(jù)總線以便在采樣結(jié)束后由DSP讀取采樣數(shù)據(jù).
系統(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ū)DRAM的訪問(wèn)操作都是透明的,可象訪問(wèn)普通片外SRAM一樣訪問(wèn)它,因此非常方便,故可使用大容量(可達(dá)64MB)高速廉價(jià)的SDRAM芯片作為ADSP-21065L的海量片外存儲(chǔ)器.本系統(tǒng)使用兩片4M×16bit的SDRAM芯片HY57V641620來(lái)構(gòu)成16MB的海量緩存(參見(jiàn)圖1).這樣,16MB的存儲(chǔ)容量如果都用來(lái)轉(zhuǎn)存采樣數(shù)據(jù)的話,可以存儲(chǔ)4個(gè)通道同時(shí)采集的2M點(diǎn)數(shù)據(jù),在25MHz的采樣率下可達(dá)到0.08s的總記錄時(shí)間,這對(duì)于本系統(tǒng)而言已經(jīng)足夠了.而且通過(guò)選用更大容量的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通道本來(lái)就可以完成外存與外設(shè)之間的DMA傳輸,但是若二者之一是SDRAM則不行.所以,實(shí)際使用時(shí)一般通過(guò)ADSP-21065L的片內(nèi)RAM來(lái)中轉(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來(lái)進(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海量緩存為止,該過(guò)程大約需要13.1ms.
4 結(jié)論與改進(jìn)