《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于DMA的并行數字信號高速采集系統
基于DMA的并行數字信號高速采集系統
王 俊,鄭 焱,王 紅,楊士元
清華大學 自動化系,北京100084
摘要: 本系統采用基于FPGA的DMA技術高速緩存多路并行數據,通過數據重組將數據有序發送給處理系統,用于數據的顯示與分析。系統采用了嵌入式技術,達到了便攜效果,從而更好地適應設備的工作環境。并行數字信號采集實驗結果表明,系統能以5 MHz、2.5 MHz、500 kHz、50 Hz 4檔采樣頻率進行62路并行數字信號采集,各路采集結果正確,并保存了各路之間的同步信息。
中圖分類號: TP391.5
文獻標識碼: B
DMA-based high-speed parallel acquisition system of digital signals
WANG Jun,ZHENG Yan,WANG Hong,YANG Shi Yuan
Department of Automation, Tsinghua University, Beijing 100084,China
Abstract: The proposed FPGA-based system uses DMA technology to cache multi-channel parallel data, and to send data to processing system orderly after data re-organization for display and analysis. Embedded technology is used to make system portable for operation environment of electronic equipment. Parallel digital signal acquisition experiment result shows that this system can acquire 62 channel digital signals correctly and synchronously at four gear sampling frequency of 5 MHz, 2.5 MHz, 500 kHz, and 50 Hz.
Key words : DMA;high-speed parallel acquisition;FPGA;embedded system


    隨著數字電子技術的發展,大型電子設備中數字電路的比例越來越大[1]。為便于故障診斷,一些電子設備(如雷達系統)預留了大量的數字信號檢測口[2]。采用示波器采集此類測試接口的信號時,由于示波器采集通道數的限制,無法保留同步信息;采用邏輯分析儀或ATE設備不但價格昂貴,而且不便于攜帶,不適宜廣泛使用。因此,設計一款便攜式并行數字信號高速同步采集系統,為大型電子設備的維護提供支持是十分必要的。
    此類檢測口信號采集中多通路、高采樣率的特性要求瞬時大量數據的高速緩存實現方法。文獻[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所示。

    圖3中‘0’時刻為采樣時鐘上升沿,此時刻FPGA系統將并行的62路數字信號緩存入62 bit寄存器中。由于傳輸延時時間受系統布線和FPGA內部布局的影響,系統時鐘和采樣時鐘上升沿不一定是同步的,圖中‘0’時刻到‘2’時刻之間可能有1~2個系統時鐘周期,這段時間內,系統不動作等待采集信號可靠地寫入寄存器,這樣可以避免‘0’和‘1’時間間隔過小,采集的數據未完全寫入寄存器的情況。在之后的‘2’時刻至下一周期‘0’時刻,系統完成寫入SRAM的工作。其中‘2’時刻至‘3’時刻為第一寫入周期,系統將寄存器中的0 bit~15 bit寫入SRAM中;‘3’時刻至‘4’時刻為第二寫入周期,系統將寄存器中的16 bit~31 bit寫入SRAM中;‘4’時刻至‘5’時刻為第三寫入周期,系統將寄存器中的32 bit~47 bit寫入SRAM中;‘5’時刻至下一周期‘0’時刻為第四寫入周期,系統將寄存器中的48 bit~61 bit寫入SRAM中。這樣,同一采樣時刻的62通路的數字信號被分時地寫入SRAM中,信號保持真實的同步信息。此時,系統的數據緩存速率達310 Mb/s。
    上述方法中,‘5’時刻至下一周期‘0’時刻只進行了一次寫入,實際上這段時間可以容納6個寫入周期,時間并沒有被充分地利用。對其進一步擴展,將系統時鐘周期充分地利用,可以同時采集更多通路的信號,將第六到第十個系統時鐘周期也用于信號緩存,則可以同時緩存16×9=144路數字信號。這種情況下,系統的數據緩存速率可達720 Mb/s。
    考慮采用SRAM的極限訪問速率的情況,可以選用100 MHz的系統時鐘,這時系統的數據緩存速率可達1 520 Mb/s。
    選用的SRAM的數據寫入極限速率為1 600 Mb/s,此種方法的數據緩存速率達SRAM數據緩存極限的95%,實現了高速的數據緩存。
3 緩存數據重組織
    按照上述數據緩存的方法,同一通道的數據不是連續地存儲在SRAM中。SRAM中的數據存儲順序如圖4所示。圖中第一列表示SRAM地址,offset為數據存儲的初始地址偏移;第一行表示數據位,選用的SRAM中一個地址對應2字節數據,有16個數據位;剩余每個方格表示一個數據存儲單元,方格里的數字表示該單元用于存儲第幾通道的數據。

    定位一個通道的一位數據需要知道其對應的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系統發送數據時,將同一通路的數據抽取出來,以一個字節為單位連續發送,所以需要對存儲的數據進行重組織。在FPGA系統中,使用6 bit變量dch[5:0]表示通道號,其中000000(b)表示通道1(m=1),000001(b)表示通道2(m=2),依此類推。數據位計數i使用N位變量bitcnt[N-1:0]來表示,其中N由存儲的總數據量決定,與通道號類似,全零表示i=1情況,1(b)表示i=2情況,依此類推。因而有:
    [(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系統根據以上公式將各個通道數據逐位地從SRAM中讀出,并移入移位寄存器中,從而把同一通路的數據以字節為單位連續地組織起來。
4 采集實驗結果
    為了進行測試,基于FPGA設計了專用信號發生器,產生62路數字信號用于測試。62路數字信號中包括4.07 kHz~520.8 kHz(50 MHz的96分頻)的TTL信號及恒高、恒低電平信號。
    由于數字信號通道數較多,這里以其中不包含恒高和恒低的9~12通道來說明采集精度,采集結果如表1。

    依此可知,各通道采集結果與輸入信號對應,說明個通道采集結果正確,本采集系統可靠。
    以某型雷達做為被測對象,系統進行了實際工作測試。采集性能如表2所示。

    本文介紹基于嵌入式技術的并行數字信號采集系統的設計,系統采用DMA技術實現了62路數字信號同步采集,用于某型雷達預留測試接口信號的采集,整體采集速率達310 Ms/s。利用本設計中提出的DMA方法,系統可以進一步擴展,從而實現128路數字信號同步采集,并使整體采集速率達1 520 Ms/s,此時SRAM的寫入速度已成為主要的限制。

參考文獻
[1] 唐玉蘭,陶偉,于宗光.一種實現數模混合電路中的DAC測試的BIST結構[J].電子器件,2006,29(1):231-234.
[2] 張開德.1553B數據總線技術在某艇作戰系統中的應用[J].艦船科學技術,1994,(003):48-51.
[3] 詹艷艷.數據采集系統并行存儲的實現[J].科技資訊,2009(4).
[4] 奚素霞.基于SOPC的高速數據采集系統的分析與設計[J].電子元器件應用,2009,11(4).
[5] 馮萍,李秀華.基于FPGA的高速高精度數據采集系統的研究[J].中國科技信息,2008,(021):105-106.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 六月色播 | 久久香蕉热 | 欧美高清视频性播放 | 亚洲人成77777在线播放网站不卡 | 天天躁日日躁狠狠躁欧美日韩 | 免费一级毛片清高播放 | www.久久精品视频 | 欧美日韩一区二区在线视频 | 色综合综合在线 | 日韩一页 | 天天干天天看 | 久久精品国产福利国产琪琪 | 奇米第四色在线观看 | 欧美性精品 | 五月花社区婷婷综合 | 欧美视频在线观看免费最新 | 99久久精品国内 | 欧洲精品码一区二区三区免费看 | 奇米第四色在线视频 | 狠狠久久久久综合网 | a级毛片在线播放 | 久久青草18免费观看网站 | 两性视频网站 | 99这里只有| 久久精品成人 | 人人爽天天爽 | 全亚洲最大的免费电视网 | 日本天堂免费a | 成人精品视频一区二区三区 | 色爱区综合激月婷婷激情五月 | 国产精品亚洲玖玖玖在线靠爱 | 五月天久久久 | 二区视频| 辘轳女人和井电视剧全集播放 | 精品欧美一区二区三区四区 | 激情综合婷婷 | 成人综合视频网 | 欧美激情视频网址 | 免费看国产视频 | 国产精品九九久久精品女同 | 伊人久久天堂 |