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