基于FPGA的高速數(shù)據(jù)采集系統(tǒng)設計
2 硬件控制器的設計
整個數(shù)據(jù)采集系統(tǒng)含有數(shù)據(jù)采集模塊和數(shù)據(jù)傳輸模塊。其中數(shù)據(jù)采集模塊由AD數(shù)據(jù)轉(zhuǎn)換模塊和Nandflash數(shù)據(jù)存儲模塊組成。系統(tǒng)采用USB接口做數(shù)據(jù)傳輸模塊,在此不作為本論文的重點進行描述。在數(shù)據(jù)傳輸部分本系統(tǒng)采用了DMA傳輸技術(shù)。其FPGA內(nèi)部電路功能模塊如圖2所示。本文引用地址:http://www.ex-cimer.com/article/191012.htm
其中ALE,WR分別連接處理器的地址鎖存和WR引腳。而處理器設置成地址總線和數(shù)據(jù)總線分時復用的模式。這樣FPGA可以通過ALE信號來鎖存處理器的地址。而控制命令生成器用來譯碼產(chǎn)生相應的命令和操作。DMA控制器是我們自己編寫的特定的控制器,它需在收到處理器的DMA使能命令的情況下使得DMA_EN有效,然后在收到DMA開啟信號DMA_restart后,才會啟動一次DMA傳輸數(shù)據(jù),每啟動一次傳輸一頁2 K的數(shù)據(jù)。在傳輸過程中,因為是多片F(xiàn)IFO的讀,為了數(shù)據(jù)不會亂,我們通過一個特定的控制器將DMA_FLASH_WE和多片F(xiàn)IFO的DMA_FIFO_RD匹配的統(tǒng)一起來產(chǎn)生了多片F(xiàn)IFO輪換讀的操作。
在采樣速率選擇的設計中,我們是應用先微處理器的軟件系統(tǒng)給FPGA的硬件系統(tǒng)一個采樣速率選擇值,而后FPGA的硬件系統(tǒng)內(nèi)部將譯碼微處理器給的頻率值,頻率選擇器將根據(jù)這個數(shù)值產(chǎn)生相應的頻率輸出,頻率選擇器輸出的頻率又將輸入到控制AD轉(zhuǎn)換的狀態(tài)機里,這樣控制AD轉(zhuǎn)換的狀態(tài)機將根據(jù)輸入的頻率進行相應的頻率采集、數(shù)據(jù)的讀取和向FIFO寫數(shù)據(jù)等操作。
3 控制與存儲模塊
本系統(tǒng)在存儲方式設計時采用流水線操作方式。Nandflash存儲器的寫入有兩個階段:數(shù)據(jù)加載階段(即通過I/O端口將數(shù)據(jù)寫入頁數(shù)據(jù)寄存器)和編程階段(在芯片內(nèi)部,將頁數(shù)據(jù)寄存器中的數(shù)據(jù)轉(zhuǎn)存到非易失性存儲單元內(nèi))。數(shù)據(jù)編程階段是自動進行的,不需要外部系統(tǒng)的其它操作,但它需要很長的時間,其典型值是200μs。而如果采用流水線存儲方式就可克服Nandflash芯片寫入速度較慢的缺點。應用流水線操作方式對Nandflash存儲器進行寫操作流程原理如圖3所示。首先對第一片Nandflash進行數(shù)據(jù)的加載,數(shù)據(jù)加載完后,第一片Nandflash隨后就將進入自動數(shù)據(jù)編程階段;然后再對第二片Nandflash進行數(shù)據(jù)的加載,數(shù)據(jù)加載完后,第二片Nandflash也將進入自動數(shù)據(jù)編程階段;然后依次對第三片Nandflash和第四片Nandflash進行相同的上述操作。而當?shù)谒钠琋andflash數(shù)據(jù)加載完后,第一片Nandflash剛好已經(jīng)自動編程數(shù)據(jù)結(jié)束,接著再從第一片Nandflash重復剛開始的加載數(shù)據(jù)和自動編程數(shù)據(jù)階段。就這樣如此循環(huán)一直到數(shù)據(jù)采集完成。這就是流水線的存儲方式。從整體時間來看,整個系統(tǒng)在一直的進行著數(shù)據(jù)的傳輸和存儲。
評論