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