新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA高速大容量數據采集與存儲系統(tǒng)

基于FPGA高速大容量數據采集與存儲系統(tǒng)

作者: 時間:2016-10-16 來源:網絡 收藏

大容量數據采集與存儲系統(tǒng)在工業(yè)自動化生產、國防和軍事監(jiān)控及環(huán)境監(jiān)測等方面被廣泛應用。為了能夠完整、準確地捕獲到各種信號或者故障發(fā)生時的特征信號,需要對其進行狀態(tài)監(jiān)測,并且要求監(jiān)測系統(tǒng)具備長時間連續(xù)采集和存儲的功能。但是為了支持系統(tǒng)中大量高速數據的暫時存儲,這就需要很大的中間緩存,而專用的高速FIFO芯片價格昂貴且容量受限,大大增加了商業(yè)成本,因此在實際應用中尋找可靠的、低成本的采集存儲系統(tǒng)是很有必要的。為此本文提出利用FPGA作為橋梁,實現對SDRAM的控制,從而對采集的數據進行緩沖,然后存儲到大容量的CF卡中,滿足系統(tǒng)所要求的速度快、實時性高、成本低和容易擴展等要求;接著詳細論述了系統(tǒng)各個功能電路的設計思路和具體實現過程。

本文引用地址:http://www.butianyuan.cn/article/201610/308392.htm

1系統(tǒng)方案設計

數據采集和存儲系統(tǒng)主要由三部分組成:A/D轉換器、FPGA的數據雙緩沖器和CF卡的存儲。

1)A/D轉換器的作用是將所要采集的模擬量轉換成數字量,通過光耦隔離后,由FPGA接收、緩沖、存儲至CF卡。高速A/D轉換器采用的是采樣率為250kS/s的16位A/D轉換芯片ADS8515,它屬于逐次逼近寄存器型(簡稱SAR型)A/D轉換器,其內部通常具有采樣保持器,轉換速率快。

2)FPGA采用ALTERA公司CycloneⅡ系列的EP2C35F672I8N,靜態(tài)功耗小于0.25W。采用+3.3V、+2.5V、+1.2V分別給不同區(qū)進行供電。靈活的I/O控制使得編程簡化,電路設計方便。采用AS和JTAG配置模式,配置芯片是EPCS16SI8N,器件的時鐘配置為50MHz。

FPGA主要利用片外的SDRAM提供數據輸出/輸入的雙緩沖作用,之所以選取SDRAM,主要是因為在各種隨機存取器件中,SDRAM的容量較大,價格較低,且其數據突發(fā)傳輸模式能大大提高存取速度,能夠滿足應用的要求。

3)CF卡作用是將A/D采集到的數據進行存儲,當數據容量存儲滿時,發(fā)送滿信息,FPGA得到滿信息后,停止對數據的采集并提示用戶更換CF卡。

系統(tǒng)工作過程為:系統(tǒng)加電后,FPGA向A/D轉換器發(fā)出相應控制信號,由于ADC采樣率為250kS/s,為和CF卡存儲速度相匹配,需要一個FIFO緩存系統(tǒng)。A/D轉換器在FPGA的ADC接口控制電路控制下,把模擬信號轉換成數字信號,并將采樣數據存入FIFO緩存系統(tǒng)。同時FPGA查詢CF卡是否有容量,如果CF卡未滿,那么由FPGA的CF卡接口控制邏輯將采樣結果從FIFO緩存送入CF卡中;當CF卡的容量達到一定程度后,FPGA發(fā)出滿信息,向A/D狀態(tài)機發(fā)送停止采集的命令,并提示用戶已滿,更換CF卡。

由于把FPGA設置為特定的自動模式,因此FPGA控制A/D采集以及把數據送往CF卡的所有操作不需要外部干預,從而保證足夠的數據傳輸速率。采樣過程中FPGA的CF卡接口控制邏輯依次取走FIFO中的批量數據,在進行CF卡的數據存儲時A/D仍然持續(xù)轉換,FIFO也被持續(xù)寫入轉換結果,避免兩者的沖突。

2硬件設計

系統(tǒng)的硬件由模數轉換電路、數據采集存儲與傳輸控制電路、接口電路構成。

2.1模數轉換電路設計

模數轉換電路是整個系統(tǒng)的重要組成部分,它由差分放大適配電路、A/D轉換器構成,如圖1所示,其核心器件是A/D轉換芯片ADS8515。

圖1 信號適配和模數轉換電路原理圖

模擬輸入信號經過由OPA2604和OP604構成的差分放大適配電路將信號適配到ADS8515的采集范圍。ADS8515將模擬信號轉換為數字信號。ADS8515的控制信號由FPGA提供,ADS8515在控制信號的作用下,以適當的時序完成轉換工作。

2.2數據采集存儲與傳輸控制電路設計

數據采集存儲與傳輸控制電路的開發(fā)工作主要集中在FPGA上。FPGA負責在CF卡與A/D芯片之間的緩沖與控制,一邊與A/D接口,另一邊與CF卡接口,產生數據采集、A/D轉換、FIFO所需的全部控制信號,實現對傳輸數據的緩存、讀/寫控制、時鐘、輸出使能以及對A/D的控制等功能。

2.2.1FPGA內部總體設計

FPGA設計內部結構簡圖如圖2所示,由FIFO、CF卡控制狀態(tài)機、ADC接口控制狀態(tài)機三部分構成。

圖中由左向右的寬箭頭表示數據流,ADdata[15..0]是與A/D轉換連接的數據總線,CFdata[15:0]是與CF卡連接的數據總線。單線箭頭表示輸入輸出及FPGA內部各個模塊間的控制信號線。從數據流向看,數據在ADC接口控制狀態(tài)機的協(xié)調下通過ADC接口送入FIFO中,經過FIFO的緩沖后,在CF卡控制狀態(tài)機的協(xié)調下,數據傳輸存儲到CF卡;當CF卡存儲滿時,FPGA通過ADC狀態(tài)機停止A/D的采集,并提示用戶更換CF卡。

2.2.2數據雙緩存器FIFO

由于與CF卡接口的數據傳輸方式是突發(fā)的數據塊傳送,每個數據塊是用很高的速率傳送到CF卡,這樣就必須有緩存把A/D采集來的數據先緩存,然后發(fā)送到CF卡進行存儲。然而FPGA內部的FIFO不足以支持系統(tǒng)中大量數據的暫時存儲,這就要求很大的中間緩存。在本系統(tǒng)中利用FPGA對外部SDRAM的控制,以達到大量高速存取數據的功能。SDRAM選用MICRON公司的MT48LC4M32B2,存儲容量為128MB,數據帶寬為32位,內部由4個BANK組成,每個BANK有4096行和256列。

圖2 數據采集與傳輸控制結構示意圖

本文設計的FIFO系統(tǒng)由FPGA和SDRAM兩部分組成。其中FPGA內部包含FIFO監(jiān)控器、緩沖器、SDRAM控制器三個模塊。FIFO監(jiān)控器的作用是將SDRAM的狀態(tài)轉變成SDRAM控制器的讀、寫信號。若操作為向SDRAM寫數據,則在SDRAM滿時,FIFO監(jiān)控器送出一個信號,以阻止寫操作繼續(xù)向SDRAM中寫數據而造成溢出;若操作為向SDRAM讀數據,則在緩沖器已空時,FIFO監(jiān)控器送出一個信號,以阻止讀操作繼續(xù)從SDRAM中讀數據而造成無效數據的讀出。FIFO系統(tǒng)的模塊結構如圖3所示。

圖3 FIFO模塊結構示意圖

2.3接口電路設計

2.3.1FPGA內ADC接口模塊的設計

對A/D轉換器的編程,主要是FPGA對ADS8515的控制信號進行寫邏輯,其接口示意圖如圖4所示。

圖4 A/D轉換模塊接口示意圖

2.3.2FPGA內CF卡接口控制狀態(tài)機的設計

CF卡有三種訪問方式,分別為I/O模式、Memory模式和TrueIDE模式。本系統(tǒng)采用TrueIDE模式訪問CF卡。需要在電源加電啟動時將OE接地,見圖5,讓CF卡工作在TrueIDE模式。當CSEL輸入信號接地時,CF卡工作方式為主模式;CSEL輸入信號接高電平時,CF卡工作方式為從模式。本系統(tǒng)中將CF卡配置成從模式工作方式。當采用TrueIDE訪問模式工作時,第3位到第10位地址線接地,WE信號接高電平。

圖5與CF卡接口示意圖

3軟件設計

CF卡的數據存儲以扇區(qū)為基本單位。系統(tǒng)向CF卡寫入一個扇區(qū)的數據,如圖6所示。首先根據控制命令設定16位工作模式,設置將寫入的扇區(qū)數目、相應地址和訪問模式,然后發(fā)送寫命令,等待CF卡準備就緒后,從數據緩沖區(qū)SDRAM寫入CF卡中。

圖6 向CF卡寫數據流程圖

4結束語

基于FPGA的高速大容量低成本數據采集系統(tǒng)以FPGA作為橋梁,控制片外高速SDRAM緩沖器,以CF卡作為大容量存儲介質,既利用了FPGA的內部資源豐富和設計方便的優(yōu)點,同時利用了CF卡容量大、體積小和價格低廉等優(yōu)點,給出了高速大容量數據采集的方法,該方法已成功應用于實際系統(tǒng)中。



關鍵詞: 數據采集 存儲 FPGA

評論


相關推薦

技術專區(qū)

關閉