數(shù)據(jù)采集存儲是信號處理過程的一個重要環(huán)節(jié), 已經(jīng)廣泛應用于雷達、聲納、瞬態(tài)信號測試、無線探傷等領域。在不同的條件下采樣速率和采樣精度也有所不同, 系統(tǒng)的實現(xiàn)方法也各有差異。通常情況下, 如果采集速率較低, 采集和數(shù)據(jù)計算機讀取可同時進行。但在高速采集或采集源移動的情況下, 如空中飛行體或水下運動體, 這時就需要系統(tǒng)有采集功能的同時應具有存儲功能, 存儲數(shù)據(jù)可事后讀取, 黑匣子就屬于這樣的采集存儲器。根據(jù)目前的發(fā)展趨勢, 開發(fā)體積小、功耗低和存儲容量大的系統(tǒng)越來越受到重視。根據(jù)實際情況, 我們研制開發(fā)了一種用蓄電池就可工作的、能在水下應用的、可回收的小體積低功耗的大容量存儲器。
本文就介紹了一種基于FPGA 和FLASH 的多通道大容量的采集存儲器的設計與實現(xiàn)方法。
1 系統(tǒng)背景及功能描述
當船舶或潛艇在水中運動時, 要對其運動時的變化參數(shù)信號進行瞬態(tài)采集記錄, 記錄存儲器要安裝于運動的船體或艇體上的。要求采集存儲時間不長, 但它必須要滿足體積小、功耗低和可重復擦寫功能。
此系統(tǒng)要求能對32 路模擬信號同時采集存儲, 采樣率是每路10KHZ, 總采樣數(shù)率320K, 事后可對存儲數(shù)據(jù)計算機讀取分析。根據(jù)此種要求我們設計實現(xiàn)了多路采集存儲器, 此種存儲其使用FPGA 和FLASH 存儲器。滿足體積小, 功耗低的要求。用干電池供電就可工作。
2 系統(tǒng)結構設計
整個系統(tǒng)以FPGA 為核心控制器來組織工作, 它控制著整個系統(tǒng)的讀、寫、擦除等操作。系統(tǒng)主要解決的問題是采集、存儲和數(shù)據(jù)事后讀取。
2.1 數(shù)據(jù)采集
由于要同時對多路信號進行采集, 我們采取了FPGA 對模擬開關進行均等時間推進以實現(xiàn)通道的轉換。當轉換到某一通道時, FPGA 同時要啟動A/D 進行模數(shù)轉換。為了達到高精度采集的目的, 可采用12 位的AD 轉換器。為了達到通道轉換、啟動A/D 和數(shù)據(jù)FIFO 存儲的時序合理統(tǒng)一, 我們采用全體時鐘, 實現(xiàn)過程如下圖所示。
2.2 數(shù)據(jù)存儲
對數(shù)據(jù)的存儲, 我們采用閃存(FLASH Memory)作為存儲器, 它具有體積小、功耗低和數(shù)據(jù)不易丟失的特點。對FLASH的寫操作過程有其固定的操作模式, 如圖3 所示。由于FLASH是按頁存儲的, 當一頁寫完之后要進行下一頁的控制字和地址的重新寫入, 為了使采集回來的數(shù)據(jù)能及時準確的寫入FLASH, 而不至于在頁與頁的交替時間內使數(shù)據(jù)丟失, 所以不可能將采集回的數(shù)據(jù)直接存入FLASH, 我們利用FPGA 內部提供的RAM來構成雙端口RAM作為數(shù)據(jù)存儲過程中的緩存, 采集回來的數(shù)據(jù)先寫入雙端口RAM, 然后再導入FLASH。過程是采回數(shù)據(jù)從A 口寫入雙端口RAM。雙端口RAM中的數(shù)據(jù)從B口讀出, 然后寫入FLASH, 在操作的過程中, 要保證雙端口RAM的B 口地址推進要小于其A 口的地址推進。因為在采集過程中使用了12 的位的AD, 加之FLASH 存儲器是8 位的存儲器, 所以就使得每次采集的數(shù)據(jù)要分2 次存儲, 我們采取的方式是高8 位存儲一次, 低4 位加補標志碼的存儲一次。
2.3 數(shù)據(jù)讀取
數(shù)據(jù)的讀取有很多種方法, 目前有串口、并口、USB 口或PCI 總線方式讀取。我們這里采用并口讀取方式。因為數(shù)據(jù)存儲量大, 我們采取了并口主動讀取的方法, 消除了并口從動讀取速度慢的問題, 采用EPP 模式, 讀取數(shù)據(jù)速度能達到500K—2Mb/s 的數(shù)據(jù)量。FPGA 此時的工作是使讀數(shù)和采集的控制線與數(shù)據(jù)線的隔離。
這時并口可直接對FLASH 的控制線和數(shù)據(jù)線進行操作。對FLASH 的讀數(shù)操作也有其固定的操作過程。FLASH 數(shù)據(jù)的擦除是按塊擦除的, 所以它的特點是擦除速度快, 一般在幾秒鐘內就完成了。當一次采集存儲完畢后, 數(shù)據(jù)就長久保持在FLASH 內, 不會丟失, 若要從新采集存儲, 則必須要先進行FLASH 擦除。
評論