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