內容摘要:探討了高速數(shù)據(jù)采集系統(tǒng)中高速采樣緩存的重要性和實現(xiàn)途徑,闡述了基于ADSP-21065L的并行多通道數(shù)據(jù)采集板上高速采樣緩存的設計與電路結構,給出了采用FPGA實現(xiàn)通道復用和采樣數(shù)據(jù)預處理,從而構造16MB的SDRAM海量緩存以將高速緩存中的多批次采樣數(shù)據(jù)經(jīng)AD-21065L倒入SDRAM存儲的實現(xiàn)方法,。
1 引言
對高速多通道采樣數(shù)據(jù)存儲的性能要求:一是高速性,現(xiàn)在高速數(shù)據(jù)采集中所用的ADC已達到幾十甚至幾百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)
通常構成高速緩存的方案有三種:
第一種是FIFO(先進先出)方式.FIFO存儲器就象數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入,、從另一頭流出,先進入的數(shù)據(jù)先流出.FIFO具有兩套數(shù)據(jù)線而無地址線,可在其一端寫操作而在另一端讀操作,數(shù)據(jù)在其中順序移動,因而能夠達到很高的傳輸速度和效率,且由于省去了地址線而有利于PCB板布線.缺點是只能順序讀寫數(shù)據(jù),因而顯得比較呆板,而且大容量的高速FIFO非常昂貴;
第三種是高速SRAM切換方式.高速SRAM只有一套數(shù)據(jù)、地址和控制總線,可通過三態(tài)緩沖門分別接到A/D轉換器和DSP上.當A/D采樣時,SRAM由三態(tài)門切換到A/D轉換器一側,以使采樣數(shù)據(jù)寫入其中.當A/D采樣結束后,SRAM再由三態(tài)門切換到DSP一側以便DSP進行讀寫.這種方式的優(yōu)點是SRAM可隨機存取,同時較大容量的高速SRAM容易得到且價格適中,缺點是切換控制電路比較復雜,且只能由A/D轉換器和DSP分時讀寫.
圖1中,SRAM選用IS61LV25616-10T,容量為256k×16bit,訪問速度為10ns,使用兩片即可構成256k×32bit的高速緩存.當一輪采樣開始時,DSP發(fā)出觸發(fā)信號給CPLD,后者對50MHz晶振時鐘二分頻后得到25MHz采樣時鐘提供給4路A/D轉換器AD9225,同時對4路超聲信號進行25MHz,、12bit的A/D轉換.轉換結果分成兩個完全一樣的數(shù)據(jù)通道進行處理,每個數(shù)據(jù)通道處理兩路A/D轉換結果,每個數(shù)據(jù)通道包含一片F(xiàn)PGA(現(xiàn)場可編程門陣列)、一片SRAM及其后的數(shù)據(jù)三態(tài)門等電路.FPGA可接收兩路A/D轉換結果并在其內部進行復用,以將其變成一路50MHz,、12bit的數(shù)據(jù)流送入IS61LV25616緩存.FPGA完成數(shù)據(jù)通道復用的原理如圖2所示.
除了FPGA外,系統(tǒng)還采用了一片CPLD(復雜可編程邏輯器件)來控制采樣.前者主要用于數(shù)據(jù)通道對A/D采樣結果進行緩沖復用以及預處理,后者則負責產(chǎn)生A/D采樣時鐘以及作為地址計數(shù)器產(chǎn)生地址并提供給兩片IS61LV25616以便存入A/D采樣結果等.CPLD不象FPGA那樣能完成較復雜的邏輯功能和信號處理算法,但是它具有更高的速度,且管腳到管腳具有固定一致的時延,因而在設計調試時容易獲得簡單可靠的定時關系,適于實現(xiàn)高速計數(shù)器、觸發(fā)器,、譯碼器等定時要求比較嚴格的場合.本系統(tǒng)使用MAX7128AE來控制采樣,其可實現(xiàn)的功能如圖3所示.
MAX7128AE可用于實現(xiàn)兩個18位地址計數(shù)器,它具有地址總線開關切換功能,在A/D采樣期間能以25 MHz的頻率進行地址計數(shù)以作為高速緩存的地址線.當一輪A/D采樣結束后,系統(tǒng)可將高速緩存的地址總線切換到DSP的地址總線,然后由DSP讀取高速緩存中的A/D轉換結果并進行處理.高速緩存IS61LV25616的數(shù)據(jù)總線一方面連到FPGA以便在采樣期間接受復用的A/D轉換結果;一方面則通過三態(tài)門連到DSP的數(shù)據(jù)總線以便在采樣結束后由DSP讀取采樣數(shù)據(jù).
系統(tǒng)中的DSP為Analog Devices公司的ADSP-21065L,這是一款性價比很高的32位浮點DSP.其峰值浮點運算速度為180M FLOPS,片內帶有68kB的RAM,可用于程序或數(shù)據(jù)內存,片外數(shù)據(jù)總線為32位,片外地址總線為24位,具有4個片選信號輸出,每個片選信號的尋址空間可達64MB,另外,它還具有多個高速同步串口以及強大的DMA功能.而最有特色的一點是其內部集成了一個SDRAM控制器,因此能夠直接驅動外部SDRAM.通常SDRAM的控制是比較復雜的,需要按時序規(guī)定驅動它的行,、列選通線并分時提供行,、列地址,另外還要定時刷新.一般是由專門的SDRAM控制器對其操作,或采用FP-GA設計SDRAM控制器,但這都會增大系統(tǒng)的復雜度.而ADSP-21065L能直接驅動和控制片外SDRAM,使用時只要在程序中設置好相關的寄存器,然后用一條指令啟動SDRAM的上電時序即可.此后程序對SDRAM的訪問操作都是透明的,可象訪問普通片外SRAM一樣訪問它,因此非常方便,故可使用大容量(可達64MB)高速廉價的SDRAM芯片作為ADSP-21065L的海量片外存儲器.本系統(tǒng)使用兩片4M×16bit的SDRAM芯片HY57V641620來構成16MB的海量緩存(參見圖1).這樣,16MB的存儲容量如果都用來轉存采樣數(shù)據(jù)的話,可以存儲4個通道同時采集的2M點數(shù)據(jù),在25MHz的采樣率下可達到0.08s的總記錄時間,這對于本系統(tǒng)而言已經(jīng)足夠了.而且通過選用更大容量的SDRAM芯片還可方便地將海量緩存的容量擴充到32MB、64MB.
為了將多次A/D采樣數(shù)據(jù)從高速緩存轉送到海量緩存,如果讓ADSP-21065L用指令的方式從片外高速緩存中讀取采樣數(shù)據(jù),然后寫入片外海量緩存,將會大量占用ADSP的運行時間,而且傳輸速度也較慢.為此,筆者采用ADSP的DMA功能進行傳送.ADSP-21065L具有多個DMA通道(其中包括兩個外部口DMA通道),因而可進行高速數(shù)據(jù)傳輸.它的外部口DMA通道本來就可以完成外存與外設之間的DMA傳輸,但是若二者之一是SDRAM則不行.所以,實際使用時一般通過ADSP-21065L的片內RAM來中轉,然后再完成高速緩存到海量緩存的數(shù)據(jù)傳輸,具體做法如圖4所示.
ADSP內部開設有1k×32bit的RAM塊構成中轉區(qū),可利用外部口DMA通道0進行A/D高速緩存到片內RAM的DMA傳輸,同時利用外部口DMA通道1來進行片內RAM區(qū)到海量緩存SDRAM的DMA傳輸.在60MHz的ADSP主頻下,前者的DMA傳輸速度可達120MB/s,后者的DMA傳輸速度可達240MB/s.當外部口DMA通道0完成一次傳輸后,系統(tǒng)將啟動外部口DMA通道1的DMA傳輸;而當后者的DMA傳輸完成后系統(tǒng)將再次啟動前者的DMA傳輸.如此循環(huán)下去,直至A/D高速緩存中的1MB采樣數(shù)據(jù)都倒入SDRAM海量緩存為止,該過程大約需要13.1ms.
4 結論與改進