近年來,電子、計算機技術(shù)的飛速發(fā)展為設計開發(fā)各類特殊需求的數(shù)據(jù)采集、存儲系統(tǒng)提供了良好的技術(shù)基礎(chǔ),同時日益增長的應用需求也給數(shù)據(jù)采集存儲系統(tǒng)的發(fā)展帶來了更多的機遇和挑戰(zhàn)。
數(shù)據(jù)采集存儲是信號處理過程的一個重要環(huán)節(jié), 已經(jīng)廣泛應用于雷達、聲納、瞬態(tài)信號測試、無線探傷等領(lǐng)域。在不同的條件下采樣速率和采樣精度也有所不同, 系統(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)結(jié)構(gòu)設計
整個系統(tǒng)以FPGA 為核心控制器來組織工作, 它控制著整個系統(tǒng)的讀、寫、擦除等操作。系統(tǒng)主要解決的問題是采集、存儲和數(shù)據(jù)事后讀取。
2.1 數(shù)據(jù)采集
由于要同時對多路信號進行采集, 我們采取了FPGA 對模擬開關(guān)進行均等時間推進以實現(xiàn)通道的轉(zhuǎn)換。當轉(zhuǎn)換到某一通道時, FPGA 同時要啟動A/D 進行模數(shù)轉(zhuǎn)換。為了達到高精度采集的目的, 可采用12 位的AD 轉(zhuǎn)換器。為了達到通道轉(zhuǎn)換、啟動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, 而不至于在頁與頁的交替時間內(nèi)使數(shù)據(jù)丟失, 所以不可能將采集回的數(shù)據(jù)直接存入FLASH, 我們利用FPGA 內(nèi)部提供的RAM來構(gòu)成雙端口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ù)讀取