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