《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的DMA方式高速數據采集系統設計
基于FPGA的DMA方式高速數據采集系統設計
來源:電子技術應用2011年第12期
何 瓊1,陳 鐵1,程 鑫2
1.武漢軟件工程職業學院 電子系,湖北 武漢430074; 2.華中科技大學 數字制造與裝備國家重點實驗室,湖北 武漢430074
摘要: 提出了一種基于FPGA的DMA方式高速數據采集系統設計方案。該方案由底層控制器提供精確采樣時序,保證ADC器件的采樣吞吐;采用支持PCI協議的DMA方式的數據采集機制,優化數據采集存儲及向上位機交互方式,以確保采集數據的高實時性。該方案具有良好的移植性,可應用于采樣速率高、數據采集量大、數據實時性要求高的數據采集系統。
中圖分類號: TN274
文獻標識碼: A
文章編號: 0258-7998(2011)12-0040-04
Design of DMA mode high-speed data acquisition system based on FPGA
He Qiong1,Chen Tie1,Cheng Xin2
1.Department of Electronic,Wuhan Vocational College of Software Engineering,Wuhan 430074,China; 2.State Key Lab of Digital Manufacturing Equipment & Technology,Huazhong University of Science & Technology, Wuhan 430074,China
Abstract: This paper proposes a design scheme of DMA mode high-speed real-time data acquisition system based on FPGA. Bottom layer microcontroller provides precise data sampling timing sequence to ensure ADC sampling throughout. Data sampling mechanism under DMA mode supports PCI interface protocol, which ensures systematic high real-time performance. The scheme has excellent portability, can be applied in the data acquisition system which requires high sampling rate, large amount of data and high real-time performance.
Key words : FPGA;DMA;high-speed;real-time;data acquisition system


    工業自動化設備的快速發展,對控制精度的要求越來越高,對數據采集的可靠性和實時性的要求也不斷提高。提高數據采集系統性能的方法有:(1)采用高性能的ADC器件,配合低噪聲、低靜態偏移的前端驅動電路,以達到極高的采樣吞吐和采樣分辨率。目前高端的ADC器件分辨率可達24 bit,采樣率已達40 GS/s[1]。(2)設計數據存儲為FIFO,以提高數據采樣實時性和數據存儲深度。(3)采用高速數據通信技術,完成由底層數據采集單元到上位計算機的數據傳輸,利用上位機軟件平臺進行數據的分析處理和多樣化的輸出顯示[2]。數據采集系統的性能瓶頸在于高速采樣數據實時存儲,以及上下位機間的數據傳輸能力。
    針對ADC器件,一般采用微控制器以指令方式控制其執行時序,但微控制器的速度有限,而且一般需要3~4條指令完成一次數據采樣工作,制約了ADC的采樣吞吐[3]。如目前高性能的浮點型DSP TMS320C6713B的外部總線時鐘也僅為100 MHz[4],難以直接控制超過50 MS/s ADC器件的數據采樣或存儲。此外,微控制器對外訪問為標準時序,并不具備針對精密復雜采樣時序ADC器件的能力。而FPGA具有較高的運行主頻,用于控制底層器件的執行時序,具備良好的接口能力,能最大限度地保障ADC的采樣率[5]。
    為保證數據采樣的實時性,應盡可能減少數據實時采集、預處理、存儲和傳輸過程中的時間開銷,需設計高性能的數據鏈路,一方面實現高速采樣數據的實時存儲,另一方面實現底層數據采集單元與上位機之間的數據交互。DMA(Direct Memory Access)方式由專用的DMA控制器完成多系統單元之間的快速數據交互,包括微處理器內核、存儲區、外部接口等,不占用大量的處理器時間,而且數據傳輸速率不受處理器執行速度限制,能有效減輕處理器的負擔,提高數據傳輸的效率,從而提高系統性能[6]。
    本文提出了一種基于FPGA的DMA方式高速實時數據采集系統設計方案:基于FPGA實現高速ADC器件采樣時序控制與實時存儲;采用帶DMA控制器的PCI接口,將數據實時傳輸到上位機;數據采集、存儲與傳輸呈流水線方式進行。
1 數據采集系統總體結構
    DMA方式數據采集是指數據采集過程由底層數據采集單元完成,而數據采集結果不經過微處理器而被直接寫入系統內存。底層數據采集單元依照上位機設定而高效運行,對微處理器的依賴程度低,能有效節省上位機軟件開銷,且數據采集實時性高。
    數據采集系統的總體架構如圖1所示,其中PCI核、DMA控制器與A/D控制器均在FPGA內部實現。為實現多路并行采樣,可選用多片A/D器件并行處理的方式,在FPGA的高速狀態機控制下,完成模擬信號經過多片A/D器件流水轉換,并將數據采樣結果儲存到由Block RAM構建的高速緩沖RAM陣列中,采樣時序由FPGA生成,保證了多路并行采樣的高同步性。

    FPGA采用Altera公司的Cyclone IV系列 EP4CGX150,內部帶有6.3 MB嵌入式 Block RAM,支持最高頻率167 MHz的存儲區訪問,易于設計接口友好的存儲區[7]。在FPGA內部設計了數據FIFO用于實現總線速率匹配,PCI總線速率為32 bit、33 MHz,而數據采樣流水速率為16 bit、20 MHz。為提高總線利用率,需設計數據緩沖來實現不同速率數據傳輸之間的速度匹配,而數據緩沖的深度取決于采樣數據實時性要求。
    采用以上結構具有如下優點:(1)底層A/D控制器提供精密采樣時序,保證了ADC器件的采樣吞吐,最大化地保證數據采樣的實時性;(2)采用帶DMA控制器的PCI接口與上位機進行數據交互,減少了上位機軟件負荷; (3)基于單片FPGA芯片設計,結構簡單而優化,可靠性高,可降低成本。
2 數據采集系統的實現
2.1 PCI IP核

    PCI總線是獨立于處理器的32 bit或64 bit局部總線,在32 bit/33 MHz時,可達到132 MB/s的帶寬;在64 bit/66 MHz 時,可達到528 MB/s的帶寬[1]。通常PCI總線接口通過專用的PCI橋芯片或帶PCI控制器DSP器件(如TMS320C6205等)實現。
    Altera公司推出的 PCI Compiler 軟件包可以參數化地生成應用于PCI總線的IP核,基于該IP核可生成符合32 bit/33 MHz PCI 2.2規范的主從控制器,包含了PCI總線的全部功能,能實現總線協議的轉換,并將復雜的、時序要求高的PCI總線操作,轉換成易于使用本地總線(Local 總線)的接口邏輯[6]。
    PCI IP核的結構如圖2所示,包括:(1)配置寄存器:用于保存PCI設備的基本信息;(2)PCI地址數據緩存:用于緩存PCI總線上的地址信號;(3)主模式接口控制模塊:負責在主模式(Master)下對PCI總線的操作;(4)從模式接口控制模塊:負責在從模式(Slave)下PCI總線的操作;(5)奇偶校驗器:當數據校驗出錯時,生成一個錯誤信息輸出到配置寄存器;(6)本地主模式控制模塊:負責主模式下的本地接口控制邏輯;(7)本地從模式控制模塊:負責從模式下本地接口控制邏輯;(8)本地邏輯接口模塊:負責控制本地端接口的地址、數據、控制、字節使能等[6]。

2.2 DMA控制器
    針對高帶寬、低延時和大量數據存儲與傳輸需求,設計了基于PCI IP核的DMA控制器。該DMA控制器是系統中的核心單元,實現高速采樣數據向上位機的DMA方式實時傳輸。DMA控制器結構如圖3所示,內部寄存器堆定義了DMA控制器的行為,而上位機可通過PCI總線設置相應的寄存器。

 

 

    系統的數據鏈路中包含有兩種設置:(1)上位機對PCI IP核配置寄存器的設置,其對應的訪問操作完全遵循標準的PCI總線配置讀寫操作時序;(2)上位機對DMA控制器內部寄存器的設置,作為PCI目標地址映射到系統的PCI地址空間,其訪問操作符合PCI Target訪問時序。DMA內部寄存器堆被直接映射到上位機的PCI地址空間,其基地址由PCI 核中配置寄存器設定,上位機通過設置DMA寄存器控制DMA的執行。PCI IP核完成標準PCI訪問與Local總線訪問之間的時序轉換,而DMA控制器按照其寄存器堆的設置,完成各個Local總線設備之間的數據傳輸,并通過PCI IP核申請PCI總線,向上位機進行數據傳輸。
    DMA控制器設計了兩個通信接口:接口0可以進行主、從模式通信;接口1僅能進行主模式通信。在主模式下,每個通信接口可主動對Local總線進行訪問;而處于從模式時,僅能接收來自Local總線的命令及返回相應的數據至Local總線。考慮到總線速率并不一致,即采用FIFO進行數據緩沖;A/D采樣數據被緩沖到FIFO中,而DMA引擎將讀取該數據并發送到上位機,數據存儲和讀取呈流水線方式并行進行,其實時性損耗僅在于DMA引擎啟動延遲。值得注意的是:在上位機連續發起對后端的訪問時,需確定上次的Local總線訪問是否已結束;而當總線速率差異過大時,應該在PCI訪問時序中插入等待周期,以避免造成數據丟失。
    DMA引擎支持多通道模式(提供4個通道),可對應多個A/D器件,大大提高了系統數據傳輸的并行度。每個通道都可在兩個接口之間通信,當兩個接口都處于主模式時,一個接口負責從目標設備讀取數據,數據通過DMA控制器的寄存器緩存,而通過另一個接口寫入目的設備。當多個通道同時收到DMA請求時,如果所訪問的端口不沖突,則每個通道可以各自獨立地通過所訪問的端口資源進行DMA傳輸,從而提高DMA數據傳輸的效率。考慮到通道對接口訪問可能產生沖突,則需要引入通道優先級仲裁機制。多個通道間的仲裁機制如圖4所示。


    當多個通道同時請求時,DMA引擎應該進行優先級仲裁,來判定哪個通道占據數據傳輸接口。DMA控制器工作過程如下:(1)上位機通過DMA控制器接口0向其寄存器寫入配置信息,包括中斷設置、DMA傳輸接口配置、各通道的工作方式設置、傳輸數據長度、源地址及目的地址等。(2)待配置信息寫入完畢,DMA數據傳輸開始。若設置使用兩個接口傳輸數據,則處于主模式的接口從數據源讀取數據,經過通道內部緩存,由另一個處于主模式的接口寫入目的地址。(3)某個通道數據傳輸完成后,會設置其控制狀態寄存器的對應位,若對應中斷沒有被屏蔽,則DMA引擎通過接口0向微處理器提交中斷;若在傳輸過程中出現錯誤,則控制狀態寄存器對應位置位,而DMA引擎同樣會向微處理器提交中斷。
2.3 A/D采樣控制及數據存儲
    TLC5510A是CMOS 8 bit精度、20 MS/s采樣速率的ADC器件,采用Semi-flash架構[8],支持5 V單電源供電,典型功耗為130 mW,包含內部采樣保持電路、高阻抗的并行接口以及內部采樣參考。Semi-flash架構減少了功耗而且簡化了數據比較轉換邏輯。TLC5510A實現流水線方式采樣,每個時鐘周期完成一次數據采樣。在FPGA內部設計了A/D控制器,負責提供ADC器件采樣時序控制信號,完成采樣及存儲控制,將采樣數據實時寫入數據FIFO。值得注意的是:ADC的數據采樣結果會延遲3個周期輸出,則FIFO存儲地址輸出應該有對應的延遲時序,如圖5所示。將邏輯存儲地址以采樣時鐘速率延遲3個周期,即可生成實際存儲地址,而將采樣數據存儲到緩存FIFO的對應空間中。

    上位機通過設置采樣序列,可完成特定采樣率的若干次采樣(通過設置采樣存儲深度),且采樣數據被無延遲地存儲入數據FIFO,A/D控制器隨后申請DMA傳輸,在DMA控制器的作用下,該采樣數據高效傳輸至上位機。
3 實驗平臺與結果分析
    為了驗證本文介紹的高速實時數據采集系統性能,建立如圖6所示的實驗平臺。上位機提供設備驅動程序,實現對數據采集卡的初始化,能對端口進行讀寫操作、中斷設置和響應及中斷調用,以及對內存的直接讀寫等。驅動設備基于Driver Studio完成,其包含完善的源代碼生成工具以及相應的類庫和驅動程序樣本,提供了在VC++下進行驅動程序開發的支持。

    接觸傳感器CIS(Contact Image Sensor)廣泛用于掃描儀、清分機以及其他機器視覺應用中。本實驗平臺中采用山東華菱電子公司的LT2R183N-090723傳感器,該器件最大支持1 440×800的圖像掃描分辨率,傳感器信號采用三路式模擬信號輸出方式。自行設計的數據采集卡與上位機共同構成了本文所介紹的數據采集系統,系統中包含3個并行的TLC5510a 器件,以實現對CIS器件三路輸出的采樣。圖7為CIS傳感器輸出的圖像信號波形,圖8為采用SignalTap II工具獲取的數據存儲時序。

    本系統完全支持8 MS/s采樣率的DMA方式數據存儲與傳輸。目前,數據采集系統的性能瓶頸在于CIS傳感器輸出速率較低(最大10 MHz,試驗中采用8 MHz),但本文討論的方法理論上支持最高66 MS/s采樣速率的應用。
    本文提出了一種基于FPGA的DMA方式數據采集系統設計方案,數據采集結果不經過微處理器而直接被寫入系統內存,而采樣時序定義由底層控制提供,確保了ADC器件的采樣吞吐;采用帶DMA控制器的PCI接口與上位機進行數據交互,既減少了上位機軟件負荷,又最大限度地保證了采樣數據的實時性。即使進一步提高A/D器件采樣速率,本架構依然適用。本數據采集系統已應用于高速圖像采集中,具有良好的移植性,可應用于采樣速率高、數據采集量大、數據實時性要求的數據采集系統。
參考文獻
[1] 唐林波,趙保軍,韓月秋.超高速數據采集與處理系統的設計及應用[J].系統工程與電子技術,2005,27(7):1203-1206.
[2] 羅偉林.基于USB2.0的高速數據采集系統[D].哈爾濱:哈爾濱工業大學,2008.
[3] 肖金球,馮翼,仲嘉霖.高速多路實時數據采集處理系統設計[J].計算機工程,2004,30(24):180-182.
[4] Texas Instruments Incorporated.Floating-point digital signal   processor(DSP):TMS320C6713B.2006:13-73.
[5] 鄧慶緒,寧寶鋒,金曦,等.基于局部動態可重構技術的多通道數據采集系統[J].小型微型計算機系統,2010,9(9):1778-1883.
[6] 張浩,徐寧儀,周祖成.基于PCI Core的鏈式DMA控制器設計[J].電子技術應用,2005,31(3):11-13.
[7] Altera Incorporated. Cyclone IV device handbook,volume 1. 2010:15-29.
[8] Texas Instruments Incorporated.TLC5510,TLC5510A high-speed analog-to-digital converters handbook.1999:1-4.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一本久久a久久免费精品不卡| 午夜在线成人av| 国产农村妇女毛片精品久久莱园子 | 欧美怡红院视频一区二区三区| 一二三四社区欧美黄| 亚洲精品视频免费在线观看| 亚洲第一搞黄网站| 精品999在线播放| 激情成人中文字幕| 国内精品模特av私拍在线观看| 国产在线不卡精品| 黄色亚洲精品| 怡红院精品视频| 亚洲国产高清一区二区三区| 最新成人在线| 99在线精品视频在线观看| 亚洲麻豆一区| 亚洲视频axxx| 亚洲影院一区| 欧美在线日韩在线| 亚洲成人在线网| 最新国产拍偷乱拍精品| 亚洲人屁股眼子交8| 亚洲精品自在久久| 在线亚洲观看| 亚洲欧美另类在线观看| 欧美一二三视频| 久久久最新网址| 美玉足脚交一区二区三区图片| 欧美成人国产| 欧美日韩免费观看一区| 欧美午夜免费影院| 国产精品视频一区二区高潮| 国产欧美日韩免费| 影音国产精品| 亚洲欧洲精品一区二区三区| 久久久天天操| 亚洲一区二区三区涩| 亚洲男人第一网站| 欧美一区二区在线免费播放| 亚洲风情亚aⅴ在线发布| 亚洲日产国产精品| 亚洲小视频在线观看| 欧美一激情一区二区三区| 久久精彩免费视频| 欧美gay视频激情| 欧美日韩亚洲一区在线观看| 国产精品一香蕉国产线看观看| 狠狠色综合日日| 亚洲精品视频二区| 亚洲在线一区| 亚洲国产欧美久久| 亚洲午夜高清视频| 久久久久久久综合日本| 欧美黑人在线观看| 国产美女精品一区二区三区| **欧美日韩vr在线| 中日韩视频在线观看| 久久大逼视频| 在线亚洲电影| 久久人人爽人人| 欧美吻胸吃奶大尺度电影| 国产人成一区二区三区影院| 亚洲国产另类 国产精品国产免费| 一区二区欧美国产| 亚洲第一精品福利| 亚洲视频福利| 美女精品网站| 国产精品一区二区女厕厕| 原创国产精品91| 亚洲一区二区三区精品在线观看| 久久精品夜夜夜夜久久| 亚洲素人在线| 欧美电影免费| 国产一区二区在线观看免费| 99国产精品私拍| 亚洲国产精品一区二区久| 亚洲欧美日韩电影| 欧美激情一区二区三区在线视频 | 亚洲国产91| 欧美一二三区在线观看| 欧美日产国产成人免费图片| 国产在线拍偷自揄拍精品| 夜夜爽av福利精品导航| 久久精品麻豆| 欧美专区日韩视频| 欧美在线短视频| 亚洲激情电影在线| 欧美一区二区三区啪啪| 欧美精品系列| 在线观看日韩av电影| 亚洲欧美国产日韩天堂区| 夜夜狂射影院欧美极品| 久久亚洲精品一区| 国产美女扒开尿口久久久| 日韩午夜精品| 日韩一级黄色av| 免费看成人av| 韩日在线一区| 羞羞色国产精品| 欧美一区二区三区播放老司机| 欧美日韩一区高清| 亚洲日本久久| 亚洲人在线视频| 农村妇女精品| 精品福利av| 久久精品日韩| 久久久久五月天| 国产日韩欧美中文在线播放| 亚洲综合日韩在线| 亚洲欧美偷拍卡通变态| 欧美偷拍另类| 一本色道久久综合亚洲精品按摩 | 亚洲视频每日更新| 欧美极品欧美精品欧美视频| 在线免费观看日韩欧美| 亚洲成色777777在线观看影院| 欧美在线亚洲在线| 国产农村妇女精品一区二区| 亚洲砖区区免费| 午夜伦理片一区| 国产农村妇女精品一二区| 亚洲欧美日产图| 性色av一区二区三区| 国产日韩精品视频一区| 亚洲欧美日韩天堂一区二区| 欧美一区二区三区四区在线| 国产精品视频自拍| 香港久久久电影| 久久久综合精品| 激情伊人五月天久久综合| 亚洲国产另类 国产精品国产免费| 久久免费视频一区| 在线精品福利| av成人激情| 欧美午夜精品久久久久久孕妇 | 久久久天天操| 欧美金8天国| 日韩小视频在线观看| 亚洲性线免费观看视频成熟| 欧美亚洲第一区| 亚洲欧美日韩精品久久奇米色影视| 欧美在线free| 一区二区视频免费完整版观看| 亚洲国产精品嫩草影院| 欧美精品一卡| 亚洲网站视频| 欧美在线视频一区二区三区| 精品999在线播放| 一区二区激情小说| 国产精品久久亚洲7777| 小黄鸭精品密入口导航| 久久在线免费| 亚洲精品视频在线播放| 亚洲欧美日韩中文视频| 国内揄拍国内精品少妇国语| 亚洲片国产一区一级在线观看| 欧美另类久久久品| 亚洲一区尤物| 久久综合色影院| 亚洲美女在线视频| 欧美一区2区三区4区公司二百 | 影音先锋日韩有码| 亚洲最新合集| 国产欧美一区二区三区沐欲| 亚洲福利视频一区| 欧美日韩在线综合| 欧美在线免费| 欧美日韩理论| 欧美中文在线字幕| 欧美日韩国产欧美日美国产精品| 亚洲欧美激情精品一区二区| 免费成年人欧美视频| 一区二区三区国产在线观看| 久久激情五月丁香伊人| 亚洲精品视频一区| 久久精品成人欧美大片古装| 最新亚洲电影| 久久精品夜色噜噜亚洲aⅴ| 亚洲国产婷婷| 欧美在线一区二区| 亚洲精品乱码久久久久| 欧美在线视频全部完| 亚洲啪啪91| 久久久青草婷婷精品综合日韩 | 亚洲电影有码| 亚洲欧美日韩爽爽影院| 尤物yw午夜国产精品视频| 亚洲午夜国产一区99re久久| 黄色成人免费观看| 亚洲一区综合| 亚洲第一黄色| 久久国产精品久久精品国产 | 国产精品久久777777毛茸茸| 宅男精品视频| 麻豆成人综合网| 亚洲欧美精品中文字幕在线| 欧美久久电影| 亚洲高清久久网| 国产日韩欧美在线|