高速數(shù)據(jù)采集系統(tǒng)中的存儲與傳輸控制邏輯設(shè)計
隨著信息科學(xué)的飛速發(fā)展,數(shù)據(jù)采集和存儲技術(shù)廣泛應(yīng)用于雷達、通信、遙測遙感等領(lǐng)域。在高速數(shù)據(jù)采集系統(tǒng)中,由ADC轉(zhuǎn)換后的數(shù)據(jù)需要存儲在存儲器 中,再進行相應(yīng)的處理,保證快速準(zhǔn)確的數(shù)據(jù)傳輸處理是實現(xiàn)高速數(shù)據(jù)采集的一個關(guān)鍵。由于高速ADC的轉(zhuǎn)換率很高,而大容量RAM相對ADC輸出速度較慢, 保持高速數(shù)據(jù)存儲過程的可靠性、實時性是一個比較棘手的問題。對于數(shù)據(jù)采集系統(tǒng)中的大容量高速度數(shù)據(jù)存儲、傳輸,本文提出一種基于FPGA的多片RAM實 現(xiàn)高速數(shù)據(jù)的存儲和傳輸的方案,并應(yīng)用于1GS/s數(shù)據(jù)采集系統(tǒng)中,實現(xiàn)了以低成本RAM完成高速實時數(shù)據(jù)存儲系統(tǒng)的設(shè)計。
本文引用地址:http://2s4d.com/article/83041.htm方案選擇
高速的數(shù)據(jù)采集速度是保證數(shù)據(jù)采集精度的標(biāo)準(zhǔn),但往往在數(shù)據(jù)處理時并不需要以同樣的速度來進行,否則對硬件的需求太高,成本也較高。這就需要有一個數(shù)據(jù)緩存單元,將數(shù)據(jù)有效地存儲,再根據(jù)系統(tǒng)需求進行數(shù)據(jù)處理。
通常構(gòu)成高速緩存的方案有三種。第一種是FIFO(先進先出)方式。FIFO存儲器就像數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入,從另一頭流 出,先進入的數(shù)據(jù)先流出。FIFO具有兩套數(shù)據(jù)線而無地址線,可在其一端寫操作而在另一端讀操作,數(shù)據(jù)在其中順序移動,因而能夠達到很高的傳輸速度和效 率,且由于省去了地址線而有利于PCB板布線。缺點是只能順序讀寫數(shù)據(jù),不易靈活控制,而且大容量的高速FIFO非常昂貴。
第二種是雙口RAM方式。雙口RAM具有兩套獨立的數(shù)據(jù)、地址和控制總線,因而可從兩個端口同時讀寫而互不干擾,并可將采樣數(shù)據(jù)從一個端口 寫入,而由控制器從另一個端口讀出。雙口RAM也能達到很高的傳輸速度,并且具有隨機存取的優(yōu)點,缺點是大容量的高速雙口RAM的價格很昂貴。
第三種是高速SRAM切換方式。高速SRAM只有一套數(shù)據(jù)、地址和控制總線,可通過三態(tài)緩沖門分別接到A/D轉(zhuǎn)換器和控制器上。當(dāng)A/D采 樣時,SRAM由三態(tài)門切換到A/D轉(zhuǎn)換器一側(cè),以使采樣數(shù)據(jù)寫入其中。當(dāng)A/D采樣結(jié)束后,SRAM再由三態(tài)門切換到控制器一側(cè)進行讀寫。這種方式的優(yōu) 點是SRAM可隨機存取,同時較大容量的高速SRAM有現(xiàn)成的產(chǎn)品可供選擇。
從降低成本上考慮,采用第三種方式實現(xiàn)大容量數(shù)據(jù)存儲功能。結(jié)合1GS/s數(shù)據(jù)采集系統(tǒng)的要求,存儲深度為4MB。選擇ISSI公司的靜態(tài)RAM,由8片IS61LV25616構(gòu)成4MB測試數(shù)據(jù)的存儲,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 數(shù)據(jù)存儲原理框圖
數(shù)據(jù)存儲設(shè)計
● 數(shù)據(jù)流控制
ADC為雙通道500MS/s的轉(zhuǎn)換率,8bit的垂直分辨率,轉(zhuǎn)換數(shù)據(jù)的輸出是每通道I、Q兩個方向上差動輸出,在差動時鐘500MHz 的驅(qū)動下,可以實現(xiàn)1GS/s的實時采樣率,由ADC輸出的4路轉(zhuǎn)換數(shù)據(jù)流輸出分別為250MS/s。而IS61LV256系列RAM的速度級別為 10ns或12ns,這樣數(shù)據(jù)必須經(jīng)過FPGA進行緩存以后,才可以再次存入RAM。
IS61LV25616系列RAM芯片有16位數(shù)據(jù)線,18位地址寬度,同時還包括數(shù)據(jù)讀RD、寫WR及片選CS等控制信號。將8片RAM并行連接到FPGA上,組成數(shù)據(jù)采集的存儲單元。
將從ADC輸出AI[8...0]、AQ[8...0]、BI[8...0]、BQ[8...0],每路信號都為LVDS輸出,共32位為 一組轉(zhuǎn)換數(shù)據(jù)DATA[31...0],速率為250MS/s,要將這個速度在FPGA內(nèi)部降至RAM可接受的范圍。選用CycloneII系列 FPGA,其內(nèi)部時鐘可工作在402.5MHz,支持單端和高速差動標(biāo)準(zhǔn)I/O接口,對于250MS/s的數(shù)據(jù)流完全可以接收。利用FPGA內(nèi)部的D觸發(fā) 器作為緩沖,經(jīng)過4級緩沖之后分別得到DBO[127...0],這樣數(shù)據(jù)速度降為62.5MS/s。經(jīng)過緩沖后的數(shù)據(jù)已經(jīng)在選用的RAM接受速度級別 內(nèi),將得到128位的數(shù)據(jù)作為8片RAM的數(shù)據(jù)線,完成了數(shù)據(jù)流的控制。數(shù)據(jù)緩沖的原理如圖2所示。
圖2 數(shù)據(jù)緩沖設(shè)計
● 地址發(fā)生器設(shè)計
每次讀寫數(shù)據(jù)時,必須提供數(shù)據(jù)的存儲位置,以讀寫信號作為時鐘計數(shù)信號,順序產(chǎn)生地址信號,其中NWE是RAM的寫數(shù)據(jù)信號,NOE是讀數(shù) 據(jù)信號,二者都是低電平有效,選擇AB[17...0]作為RAM組的地址信號。CNTEN是地址計數(shù)器的使能信號,由讀取/寫入數(shù)據(jù)的深度決定,當(dāng)未完 成讀取/寫入的數(shù)據(jù)時,CNTEN=0,此時允許讀/寫操作繼續(xù)執(zhí)行;當(dāng)讀/寫操作完成時,相應(yīng)的地址信號將CNTEN設(shè)置為1,則停止地址計數(shù)。地址發(fā) 生器的原理如圖3所示。
圖3 地址發(fā)生器設(shè)計
評論