?

基于FPGA的高速數據采集系統設計

2011-09-06 01:19李小虎蒲南江李曉雷李文超
山西電子技術 2011年4期
關鍵詞:時序處理器編程

李小虎,蒲南江,李曉雷,李文超,劉 洋

(中北大學儀器科學與動態測試教育部重點實驗室,山西太原 030051)

0 引言

為使計算機能對數據采集系統輸入的模擬量進行處理,必須經由數據采集系統將模擬量轉化為數字量[1]。FPGA是在CPLD等邏輯器件的基礎上發展起來的,其高集成度能大大縮小電路板的尺寸,降低系統成本,提高系統的性能和可靠性,適合于時序、組合等邏輯電路的應用場合。一個完整成型的探測系統通常都有采集儲存部分,無論是電信號、光信號、聲音信號等在被探測器接收到后,大部分都需要轉化為數字信號才能再傳給處理器完成分析、判斷的過程?,F在的一些高速大容量采集系統,往往價格比較昂貴。本論文主要論述一種應用FPGA[4]等來控制,采用多片Nandflash存儲的低成本、高速、多路、可靠的數據采集系統,本文主要探討硬件設計和存儲設計。

1 系統總體設計方案

數據采集系統[5]的工作原理是:各種信息經過傳感器后轉化成模擬電量信號,通過ADC將模擬量轉換為數字量信號[6],而后進行傳輸存儲和處理。本系統中,在軟件和硬件相結合的控制下,系統將采集到的模擬信號經過A/D轉換器件轉換后,將轉換結果先緩存到FIFO,再轉存到非易失性Nandflash陣列中。其中,FIFO不但可以實現緩存功能,還可以解決A/D轉換之后數據位數跟Nandflash存儲器的數據線位數不匹配的矛盾。如圖1系統總體設計方案框圖所示,本系統采用FPGA內部軟核microblaze處理器作主控制器即軟件控制器,而FPGA內部邏輯資源則用于產生硬件控制時序,整個系統就是在兩者相結合協調下進行數據的采集以及傳輸[3]。

圖1 系統總體設計方案框圖

2 硬件控制器的設計

整個數據采集系統含有數據采集模塊和數據傳輸模塊。其中數據采集模塊由AD數據轉換模塊和Nandflash數據存儲模塊組成。系統采用USB接口做數據傳輸模塊,在此不作為本論文的重點進行描述。在數據傳輸部分本系統采用了DMA傳輸技術。其FPGA內部電路功能模塊如圖2所示。

圖2 FPGA內部電路功能模塊

其中ALE,WR分別連接處理器的地址鎖存和WR引腳。而處理器設置成地址總線和數據總線分時復用的模式。這樣FPGA可以通過ALE信號來鎖存處理器的地址。而控制命令生成器用來譯碼產生相應的命令和操作。DMA控制器是我們自己編寫的特定的控制器,它需在收到處理器的DMA使能命令的情況下使得DMA_EN有效,然后在收到DMA開啟信號DMA_restart后,才會啟動一次DMA傳輸數據,每啟動一次傳輸一頁2 K的數據。在傳輸過程中,因為是多片FIFO的讀,為了數據不會亂,我們通過一個特定的控制器將DMA_FLASH_WE和多片FIFO的DMA_FIFO_RD匹配的統一起來產生了多片FIFO輪換讀的操作。

在采樣速率選擇的設計中,我們是應用先微處理器的軟件系統給FPGA的硬件系統一個采樣速率選擇值,而后FPGA的硬件系統內部將譯碼微處理器給的頻率值,頻率選擇器將根據這個數值產生相應的頻率輸出,頻率選擇器輸出的頻率又將輸入到控制AD轉換的狀態機里,這樣控制AD轉換的狀態機將根據輸入的頻率進行相應的頻率采集、數據的讀取和向FIFO寫數據等操作。

3 控制與存儲模塊

本系統在存儲方式設計時采用流水線操作方式。Nandflash存儲器的寫入有兩個階段:數據加載階段(即通過I/O端口將數據寫入頁數據寄存器)和編程階段(在芯片內部,將頁數據寄存器中的數據轉存到非易失性存儲單元內)。數據編程階段是自動進行的,不需要外部系統的其它操作,但它需要很長的時間,其典型值是200 μs。而如果采用流水線存儲方式就可克服Nandflash芯片寫入速度較慢的缺點。應用流水線操作方式對Nandflash存儲器進行寫操作流程原理如圖3所示。首先對第一片Nandflash進行數據的加載,數據加載完后,第一片Nandflash隨后就將進入自動數據編程階段;然后再對第二片Nandflash進行數據的加載,數據加載完后,第二片Nandflash也將進入自動數據編程階段;然后依次對第三片Nandflash和第四片Nandflash進行相同的上述操作。而當第四片Nandflash數據加載完后,第一片Nandflash剛好已經自動編程數據結束,接著再從第一片Nandflash重復剛開始的加載數據和自動編程數據階段。就這樣如此循環一直到數據采集完成。這就是流水線的存儲方式[7]。從整體時間來看,整個系統在一直的進行著數據的傳輸和存儲[2]。

圖3 四個Flash模塊組的流水線(pipeline)操作

在數據加載期間本系統應用DMA傳輸控制方式,即:每當FIFO的半滿標志信號HF產生一次有效的電平時,處理器就啟動一次中斷,在中斷程序中,處理器將完成對Nandflash寫命令和地址,以及DMA控制器的啟動。一旦DMA控制器啟動,處理器就將轉入后臺進行有效地址的運算等而不參與數據傳輸過程,整個數據從FIFO到Nandflash存儲器的傳輸過程是由FPGA內部編寫的DMA控制器控制完成。啟動一次DMA控制器傳輸一頁2048個字節的數據,一次中斷將完成16K字節的傳輸。應用DMA傳輸的時序示波器波形圖如圖4所示:第0,1,2,3通道是FIFO的讀數據時序波形,第4通道是Nandflash的寫時序波形。一次DMA傳輸完成后,則處理器還要判斷當前頁是否為最后一頁第64頁,若不是最后一頁第64頁,則頁地址加1,繼續進行DMA傳輸采樣數據操作。如果當前頁為最后一頁第64頁,則判斷當前塊是否為本文件的最后一塊,若不是最后塊,則塊地址加1,再跟無效塊表對照判斷此塊是否為有效塊,若是則頁地址置0,繼續進行DMA傳輸采樣數據操作;若當前塊已是本文件的最后一塊,則本文件的采集數據操作完成即本次采集完成。

圖4 應用DMA傳輸的時序示波器波形圖

4 結論

試驗結果表明,采集系統性能穩定,采集速度能保持在10 Mb/s以上,符合設計要求。該系統對選用低成本、高速、可靠性采集的硬件設計具有實用價值。

[1]潘明海,邸建紅,劉芬,等.數字正交調制器及其硬件設計[J].現代電子技術,2003,17(3):24-26.

[2]曲震宇,劉勝輝.基于CPLD的高速數據采集系統控制模塊的設計與實現[J].哈爾濱理工大學學報,2006,11(3):17-19.

[3]楊飛,李東星,陳小牧.用XILINX FPGA制作高度保密專用集成電路(ASIC)[J].電子技術,1994(10):40-41.

[4]王俊雄,黃鉉,劉正義.基于FPGA的嵌入式系統設計[J].電子工程師,2006(10):67-70.

[5]趙玉印,白玉賢,張澤宏.一種彈載數據記錄器的設計[J].武器裝備自動化,2004,23(2):1-3.

[6]Analog Devices Inc.Multi2channel 122bit ADC with Embedded Flash ADuC812 Datasheet[Z/OL].www.analog.com,04,2003.

[7]吳鵬.高速實時FLASH陣列數據采集系統研究與實現[D].南京理工大學,2007:5-8.

猜你喜歡
時序處理器編程
基于Sentinel-2時序NDVI的麥冬識別研究
編程,是一種態度
元征X-431實測:奔馳發動機編程
編程小能手
紡織機上誕生的編程
基于FPGA 的時序信號光纖傳輸系統
一種毫米波放大器時序直流電源的設計
Imagination的ClearCallTM VoIP應用現可支持Cavium的OCTEON? Ⅲ多核處理器
ADI推出新一代SigmaDSP處理器
DPBUS時序及其設定方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合