基于DMA的并行數(shù)字信號高速采集系統(tǒng)
此類檢測口信號采集中多通路、高采樣率的特性要求瞬時大量數(shù)據(jù)的高速緩存實現(xiàn)方法。文獻[3]以硬盤為存儲介質,采用DMA技術實現(xiàn)了接近6 MB/s的存儲速率。文獻[4],文獻[5],基于SoPC技術采用SDRAM作為存儲介質,相對硬盤存儲速度有了很大的提高。但是當通道數(shù)超過SDRAM數(shù)據(jù)位數(shù)時,SoPC的處理速度就會影響數(shù)據(jù)的存儲速度,適用于多通路同步采集。本文采用讀寫速度最高的SRAM作為存儲介質,并利用虛擬多個DMA通道的技術極大地提高了數(shù)據(jù)存儲速度,實現(xiàn)多路并行數(shù)字信號的高速同步采集。
1 系統(tǒng)整體設計
采集系統(tǒng)采用了嵌入式技術達到便攜性的目的,由FPGA子系統(tǒng)和ARM子系統(tǒng)兩部分組成,如圖1所示。本文引用地址:http://m.butianyuan.cn/article/188156.htm
FPGA子系統(tǒng)接收ARM子系統(tǒng)的指令,完成數(shù)據(jù)的采集、緩存和發(fā)送功能。數(shù)字信號緩沖電路用于數(shù)字信號的電平轉換和驅動。輸入數(shù)字信號可能是TTL或CMOS電平,采用緩沖電路一方面減小對原電路的影響,另一方面將電平轉換為FPGA輸入所需的CMOS電平。FPGA子系統(tǒng)以Altera公司的EP1C12Q240C6芯片為核心,EP1C12Q240C6擁有12 060個邏輯單元以及173個用戶可使用IO,能充分滿足開發(fā)及調試中的要求。FPGA搭配SRAM采用DMA的方式實現(xiàn)數(shù)據(jù)的高速緩存,選用SRAM容量為1 MB,訪問時間為10 ns,利用SRAM訪問速度快的特點,可達到200 MB/s的數(shù)據(jù)訪問速率。同時,F(xiàn)PGA還實現(xiàn)了與ARM的通信接口,完成緩存數(shù)據(jù)的打包發(fā)送功能。
ARM子系統(tǒng)實現(xiàn)數(shù)據(jù)的存儲和人機交互界面。采集到的數(shù)據(jù)可以通過ARM子系統(tǒng)以類似于邏輯分析儀的方式圖形化地呈現(xiàn)給用戶,方便用戶管理數(shù)據(jù)采集過程。
2 DMA高速數(shù)據(jù)緩存
由于ARM系統(tǒng)通信速度的限制,要想避免數(shù)據(jù)的溢出,采集的數(shù)據(jù)需要先緩存到FPGA子系統(tǒng)的SRAM中。對于62路并行數(shù)據(jù)信號進行同步采集,采集頻率為5 MHz時,數(shù)據(jù)量達310 Mb/s,因而選用了DMA的方式來高速地緩存采集數(shù)據(jù)。基于FPGA系統(tǒng),數(shù)字信號首先在采樣時刻被存放到FPGA的寄存器中,并在2個連續(xù)采樣時刻之間的采樣間隔內將FPGA寄存器中的數(shù)據(jù)通過多個虛擬的DMA通道存儲到SRAM中。DMA高速數(shù)據(jù)緩存結構如圖2所示。
采集系統(tǒng)選用了1片16 bit的SRAM,62路數(shù)字信號需要分為4組緩存入SRAM中,因而構建了4個DMA通道分時與SRAM連接。由于SRAM的訪問時鐘是FPGA系統(tǒng)中的最高時鐘,所以SRAM的訪問時鐘選用了系統(tǒng)時鐘。SRAM的訪問時間為10 ns,系統(tǒng)時鐘必須低于100 MHz,才能保證每次能將數(shù)據(jù)完整正確地寫入SRAM中。本FPGA系統(tǒng)選用了50 MHz的系統(tǒng)時鐘,這樣采樣時鐘頻率最高為5 MHz,一個采樣周期內的數(shù)據(jù)有10個系統(tǒng)時鐘周期的時間來處理。在FPGA系統(tǒng)的控制下,一個采樣周期內的10個系統(tǒng)時鐘有1個用于等待數(shù)據(jù)寫入FPGA寄存器,4個用于向SRAM寫入數(shù)據(jù)。數(shù)字信號并行采集的數(shù)據(jù)緩存時序如圖3所示。
評論