基于DMA的并行數字信號高速采集系統

發(fā)布時(shí)間:2010-11-9 11:48    發(fā)布者:techshare
關(guān)鍵詞: DMA , 并行 , 采集系統 , 高速 , 數字信號
本系統采用基于FPGA的DMA技術(shù)高速緩存多路并行數據,通過(guò)數據重組將數據有序發(fā)送給處理系統,用于數據的顯示與分析。系統采用了嵌入式技術(shù),達到了便攜效果,從而更好地適應設備的工作環(huán)境。并行數字信號采集實(shí)驗結果表明,系統能以5 MHz、2.5 MHz、500 kHz、50 Hz 4檔采樣頻率進(jìn)行62路并行數字信號采集,各路采集結果正確,并保存了各路之間的同步信息。

隨著(zhù)數字電子技術(shù)的發(fā)展,大型電子設備中數字電路的比例越來(lái)越大。為便于故障診斷,一些電子設備(如雷達系統)預留了大量的數字信號檢測口。采用示波器采集此類(lèi)測試接口的信號時(shí),由于示波器采集通道數的限制,無(wú)法保留同步信息;采用邏輯分析儀或ATE設備不但價(jià)格昂貴,而且不便于攜帶,不適宜廣泛使用。因此,設計一款便攜式并行數字信號高速同步采集系統,為大型電子設備的維護提供支持是十分必要的。

此類(lèi)檢測口信號采集中多通路、高采樣率的特性要求瞬時(shí)大量數據的高速緩存實(shí)現方法。文獻以硬盤(pán)為存儲介質(zhì),采用DMA技術(shù)實(shí)現了接近6 MB/s的存儲速率。文獻,文獻,基于SoPC技術(shù)采用SDRAM作為存儲介質(zhì),相對硬盤(pán)存儲速度有了很大的提高。但是當通道數超過(guò)SDRAM數據位數時(shí),SoPC的處理速度就會(huì )影響數據的存儲速度,適用于多通路同步采集。本文采用讀寫(xiě)速度最高的SRAM作為存儲介質(zhì),并利用虛擬多個(gè)DMA通道的技術(shù)極大地提高了數據存儲速度,實(shí)現多路并行數字信號的高速同步采集。

1 系統整體設計

采集系統采用了嵌入式技術(shù)達到便攜性的目的,由FPGA子系統和ARM子系統兩部分組成,如圖1所示。





FPGA子系統接收ARM子系統的指令,完成數據的采集、緩存和發(fā)送功能。數字信號緩沖電路用于數字信號的電平轉換和驅動(dòng)。輸入數字信號可能是TTL或CMOS電平,采用緩沖電路一方面減小對原電路的影響,另一方面將電平轉換為FPGA輸入所需的CMOS電平。FPGA子系統以Altera公司的EP1C12Q240C6芯片為核心,EP1C12Q240C6擁有12 060個(gè)邏輯單元以及173個(gè)用戶(hù)可使用IO,能充分滿(mǎn)足開(kāi)發(fā)及調試中的要求。FPGA搭配SRAM采用DMA的方式實(shí)現數據的高速緩存,選用SRAM容量為1 MB,訪(fǎng)問(wèn)時(shí)間為10 ns,利用SRAM訪(fǎng)問(wèn)速度快的特點(diǎn),可達到200 MB/s的數據訪(fǎng)問(wèn)速率。同時(shí),FPGA還實(shí)現了與ARM的通信接口,完成緩存數據的打包發(fā)送功能。

ARM子系統實(shí)現數據的存儲和人機交互界面。采集到的數據可以通過(guò)ARM子系統以類(lèi)似于邏輯分析儀的方式圖形化地呈現給用戶(hù),方便用戶(hù)管理數據采集過(guò)程。

2 DMA高速數據緩存

由于A(yíng)RM系統通信速度的限制,要想避免數據的溢出,采集的數據需要先緩存到FPGA子系統的SRAM中。對于62路并行數據信號進(jìn)行同步采集,采集頻率為5 MHz時(shí),數據量達310 Mb/s,因而選用了DMA的方式來(lái)高速地緩存采集數據;贔PGA系統,數字信號首先在采樣時(shí)刻被存放到FPGA的寄存器中,并在2個(gè)連續采樣時(shí)刻之間的采樣間隔內將FPGA寄存器中的數據通過(guò)多個(gè)虛擬的DMA通道存儲到SRAM中。DMA高速數據緩存結構如圖2所示。





采集系統選用了1片16 bit的SRAM,62路數字信號需要分為4組緩存入SRAM中,因而構建了4個(gè)DMA通道分時(shí)與SRAM連接。由于SRAM的訪(fǎng)問(wèn)時(shí)鐘是FPGA系統中的最高時(shí)鐘,所以SRAM的訪(fǎng)問(wèn)時(shí)鐘選用了系統時(shí)鐘。SRAM的訪(fǎng)問(wèn)時(shí)間為10 ns,系統時(shí)鐘必須低于100 MHz,才能保證每次能將數據完整正確地寫(xiě)入SRAM中。本FPGA系統選用了50 MHz的系統時(shí)鐘,這樣采樣時(shí)鐘頻率最高為5 MHz,一個(gè)采樣周期內的數據有10個(gè)系統時(shí)鐘周期的時(shí)間來(lái)處理。在FPGA系統的控制下,一個(gè)采樣周期內的10個(gè)系統時(shí)鐘有1個(gè)用于等待數據寫(xiě)入FPGA寄存器,4個(gè)用于向SRAM寫(xiě)入數據。數字信號并行采集的數據緩存時(shí)序如圖3所示。





圖3中‘0’時(shí)刻為采樣時(shí)鐘上升沿,此時(shí)刻FPGA系統將并行的62路數字信號緩存入62 bit寄存器中。由于傳輸延時(shí)時(shí)間受系統布線(xiàn)和FPGA內部布局的影響,系統時(shí)鐘和采樣時(shí)鐘上升沿不一定是同步的,圖中‘0’時(shí)刻到‘2’時(shí)刻之間可能有1~2個(gè)系統時(shí)鐘周期,這段時(shí)間內,系統不動(dòng)作等待采集信號可靠地寫(xiě)入寄存器,這樣可以避免‘0’和‘1’時(shí)間間隔過(guò)小,采集的數據未完全寫(xiě)入寄存器的情況。在之后的‘2’時(shí)刻至下一周期‘0’時(shí)刻,系統完成寫(xiě)入SRAM的工作。其中‘2’時(shí)刻至‘3’時(shí)刻為第一寫(xiě)入周期,系統將寄存器中的0 bit~15 bit寫(xiě)入SRAM中;‘3’時(shí)刻至‘4’時(shí)刻為第二寫(xiě)入周期,系統將寄存器中的16 bit~31 bit寫(xiě)入SRAM中;‘4’時(shí)刻至‘5’時(shí)刻為第三寫(xiě)入周期,系統將寄存器中的32 bit~47 bit寫(xiě)入SRAM中;‘5’時(shí)刻至下一周期‘0’時(shí)刻為第四寫(xiě)入周期,系統將寄存器中的48 bit~61 bit寫(xiě)入SRAM中。這樣,同一采樣時(shí)刻的62通路的數字信號被分時(shí)地寫(xiě)入SRAM中,信號保持真實(shí)的同步信息。此時(shí),系統的數據緩存速率達310 Mb/s。

上述方法中,‘5’時(shí)刻至下一周期‘0’時(shí)刻只進(jìn)行了一次寫(xiě)入,實(shí)際上這段時(shí)間可以容納6個(gè)寫(xiě)入周期,時(shí)間并沒(méi)有被充分地利用。對其進(jìn)一步擴展,將系統時(shí)鐘周期充分地利用,可以同時(shí)采集更多通路的信號,將第六到第十個(gè)系統時(shí)鐘周期也用于信號緩存,則可以同時(shí)緩存16×9=144路數字信號。這種情況下,系統的數據緩存速率可達720 Mb/s。

考慮采用SRAM的極限訪(fǎng)問(wèn)速率的情況,可以選用100 MHz的系統時(shí)鐘,這時(shí)系統的數據緩存速率可達1 520 Mb/s。

選用的SRAM的數據寫(xiě)入極限速率為1 600 Mb/s,此種方法的數據緩存速率達SRAM數據緩存極限的95%,實(shí)現了高速的數據緩存。

3 緩存數據重組織

按照上述數據緩存的方法,同一通道的數據不是連續地存儲在SRAM中。SRAM中的數據存儲順序如圖4所示。圖中第一列表示SRAM地址,offset為數據存儲的初始地址偏移;第一行表示數據位,選用的SRAM中一個(gè)地址對應2字節數據,有16個(gè)數據位;剩余每個(gè)方格表示一個(gè)數據存儲單元,方格里的數字表示該單元用于存儲第幾通道的數據。





定位一個(gè)通道的一位數據需要知道其對應的SRAM地址和位號。假設通道m的第i位數據由[addr(m,i),bit(m,i)]定位。分析SRAM中的數據存儲順序可知:

addr(m,i)=offset+1+[(m-1)/16]+(i-1)×4;

bit(m,i)=(m-1)%16。

其中m=1,2,3,…,64;i=1,2,3,4,…。

FPGA系統向ARM系統發(fā)送數據時(shí),將同一通路的數據抽取出來(lái),以一個(gè)字節為單位連續發(fā)送,所以需要對存儲的數據進(jìn)行重組織。在FPGA系統中,使用6 bit變量dch[5:0]表示通道號,其中000000(b)表示通道1(m=1),000001(b)表示通道2(m=2),依此類(lèi)推。數據位計數i使用N位變量bitcnt[N-1:0]來(lái)表示,其中N由存儲的總數據量決定,與通道號類(lèi)似,全零表示i=1情況,1(b)表示i=2情況,依此類(lèi)推。因而有:

[(m-1)/16]=dch[5:4];

(i-1)×4={bitcnt[N-1:0],00(b)};

(m-1)%16=dch[3:0]。

數據由FPGA中的變量定位表示為:

addr=offset+1+{bitcnt[N-1:0],dch[5:4]};

bit=dch[3:0]。

FPGA系統根據以上公式將各個(gè)通道數據逐位地從SRAM中讀出,并移入移位寄存器中,從而把同一通路的數據以字節為單位連續地組織起來(lái)。     

4 采集實(shí)驗結果

為了進(jìn)行測試,基于FPGA設計了專(zhuān)用信號發(fā)生器,產(chǎn)生62路數字信號用于測試。62路數字信號中包括4.07 kHz~520.8 kHz(50 MHz的96分頻)的TTL信號及恒高、恒低電平信號。

由于數字信號通道數較多,這里以其中不包含恒高和恒低的9~12通道來(lái)說(shuō)明采集精度,采集結果如表1。





依此可知,各通道采集結果與輸入信號對應,說(shuō)明個(gè)通道采集結果正確,本采集系統可靠。

以某型雷達做為被測對象,系統進(jìn)行了實(shí)際工作測試。采集性能如表2所示。





本文介紹基于嵌入式技術(shù)的并行數字信號采集系統的設計,系統采用DMA技術(shù)實(shí)現了62路數字信號同步采集,用于某型雷達預留測試接口信號的采集,整體采集速率達310 Ms/s。利用本設計中提出的DMA方法,系統可以進(jìn)一步擴展,從而實(shí)現128路數字信號同步采集,并使整體采集速率達1 520 Ms/s,此時(shí)SRAM的寫(xiě)入速度已成為主要的限制。
本文地址:http://selenalain.com/thread-37620-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页