基于FPGA的多通道同步數據采集存儲系統
3 多通道同步數據的采集
在執行多通道同步數據采集時,其電路如圖2所示。其主要工作流程:多路模擬信號經運放調理電路后進入采樣保持器。在每個周期的開始,FPGA通過編程輸出脈沖至采樣保持器(AD781)和模擬電子開關(ADG706),也就是使用采樣保持器的S/H控制信號進行多路同步采樣(S/H=1)和保持(S/H=0),同時控制模擬開關的A0~A3 4個選通信號,來選通相應通道。選通后的信號同時由FPGA的控制進入A/D轉換器(ADS8401)采集單路16 bit量化,最后將采集到的數據寫到外部FIFO緩存器中。也就是說,FPGA通過編程定時邏輯送出脈沖至采樣保持器對模擬輸入采樣,然后選擇一個通道的模擬輸入,完成A/D轉換。總之FPGA提供采樣保持、多路選通和A/D轉換電路模塊所需的各種狀態和控制時序邏輯。
多通道同步數據采集模塊的程序主要采用Verilog HDL語言,Verilog HDL是用于邏輯設計的硬件描述語言,并且已成為IEEE標準。FPGA重點控制Verilog HDL程序算法的實現。程序主要包括采樣率計數循環控制、各路模擬開關選通的設計,幀計數以及幀標志的循環控制。采樣保持器采樣保持一次,經模擬開關計數循環控制,模擬開關依次選通。選通后的單路信號進行A/D轉換,轉換后的數據寫入外部FIFO中。考慮到事后數據處理等問題,所采集的數據以一定的幀格式寫入FIFO中,每一幀數據有幀計數和幀標志。每一幀的長度以及幀標志的選擇,可以根據需要靈活選定。
4 多通道同步數據的存儲
根據系統要求,需采用SUMSUNG公司的K9K8G08U0M型Flash作為存儲器。由于1 G的Flash出廠時帶有一些初始化無效塊(包含一個或多個壞位的存儲塊),它被定義為包含一個或多個無效位的存儲塊,制造商不能保證這些無效塊具有可靠性。由于NAND型Flash存儲容量較大,難免在使用過程中出現存儲單元的損壞。為保證寫入數據的可靠性,為系統提供真實準確的參數,該系統存儲模塊采用的關鍵技術是Flash的壞塊檢測技術。系統上電后,FPGA主控模塊首先對Flash進行擦除操作。在擦除過程中,對每塊壞塊標志位進行檢測,對使用過程中又出現的壞塊進行標識,以便以后使用。擦除模塊具體程序流程如圖3所示。
評論