提出了一種基于FPGA的DMA方式高速數(shù)據(jù)采集系統(tǒng)設(shè)計方案。該方案由底層控制器提供精確采樣時序,保證ADC器件的采樣吞吐;采用支持PCI協(xié)議的DMA方式的數(shù)據(jù)采集機制,優(yōu)化數(shù)據(jù)采集存儲及向上位機交互方式,以確保采集數(shù)據(jù)的高實時性。該方案具有良好的移植性,可應(yīng)用于采樣速率高、數(shù)據(jù)采集量大、數(shù)據(jù)實時性要求高的數(shù)據(jù)采集系統(tǒng)。
工業(yè)自動化設(shè)備的快速發(fā)展,對控制精度的要求越來越高,對數(shù)據(jù)采集的可靠性和實時性的要求也不斷提高。提高數(shù)據(jù)采集系統(tǒng)性能的方法有:(1)采用高性能的ADC器件,配合低噪聲、低靜態(tài)偏移的前端驅(qū)動電路,以達到極高的采樣吞吐和采樣分辨率。目前高端的ADC器件分辨率可達24 bit,采樣率已達40 GS/s[1]。(2)設(shè)計數(shù)據(jù)存儲為FIFO,以提高數(shù)據(jù)采樣實時性和數(shù)據(jù)存儲深度。(3)采用高速數(shù)據(jù)通信技術(shù),完成由底層數(shù)據(jù)采集單元到上位計算機的數(shù)據(jù)傳輸,利用上位機軟件平臺進行數(shù)據(jù)的分析處理和多樣化的輸出顯示[2]。數(shù)據(jù)采集系統(tǒng)的性能瓶頸在于高速采樣數(shù)據(jù)實時存儲,以及上下位機間的數(shù)據(jù)傳輸能力。
針對ADC器件,一般采用微控制器以指令方式控制其執(zhí)行時序,但微控制器的速度有限,而且一般需要3~4條指令完成一次數(shù)據(jù)采樣工作,制約了ADC的采樣吞吐[3]。如目前高性能的浮點型DSP TMS320C6713B的外部總線時鐘也僅為100 MHz[4],難以直接控制超過50 MS/s ADC器件的數(shù)據(jù)采樣或存儲。此外,微控制器對外訪問為標(biāo)準(zhǔn)時序,并不具備針對精密復(fù)雜采樣時序ADC器件的能力。而FPGA具有較高的運行主頻,用于控制底層器件的執(zhí)行時序,具備良好的接口能力,能最大限度地保障ADC的采樣率[5]。
為保證數(shù)據(jù)采樣的實時性,應(yīng)盡可能減少數(shù)據(jù)實時采集、預(yù)處理、存儲和傳輸過程中的時間開銷,需設(shè)計高性能的數(shù)據(jù)鏈路,一方面實現(xiàn)高速采樣數(shù)據(jù)的實時存儲,另一方面實現(xiàn)底層數(shù)據(jù)采集單元與上位機之間的數(shù)據(jù)交互。DMA(Direct Memory Access)方式由專用的DMA控制器完成多系統(tǒng)單元之間的快速數(shù)據(jù)交互,包括微處理器內(nèi)核、存儲區(qū)、外部接口等,不占用大量的處理器時間,而且數(shù)據(jù)傳輸速率不受處理器執(zhí)行速度限制,能有效減輕處理器的負擔(dān),提高數(shù)據(jù)傳輸?shù)男?,從而提高系統(tǒng)性能[6]。
本文提出了一種基于FPGA的DMA方式高速實時數(shù)據(jù)采集系統(tǒng)設(shè)計方案:基于FPGA實現(xiàn)高速ADC器件采樣時序控制與實時存儲;采用帶DMA控制器的PCI接口,將數(shù)據(jù)實時傳輸?shù)缴衔粰C;數(shù)據(jù)采集、存儲與傳輸呈流水線方式進行。
1 數(shù)據(jù)采集系統(tǒng)總體結(jié)構(gòu)DMA方式數(shù)據(jù)采集是指數(shù)據(jù)采集過程由底層數(shù)據(jù)采集單元完成,而數(shù)據(jù)采集結(jié)果不經(jīng)過微處理器而被直接寫入系統(tǒng)內(nèi)存。底層數(shù)據(jù)采集單元依照上位機設(shè)定而高效運行,對微處理器的依賴程度低,能有效節(jié)省上位機軟件開銷,且數(shù)據(jù)采集實時性高。
數(shù)據(jù)采集系統(tǒng)的總體架構(gòu)如圖1所示,其中PCI核、DMA控制器與A/D控制器均在FPGA內(nèi)部實現(xiàn)。為實現(xiàn)多路并行采樣,可選用多片A/D器件并行處理的方式,在FPGA的高速狀態(tài)機控制下,完成模擬信號經(jīng)過多片A/D器件流水轉(zhuǎn)換,并將數(shù)據(jù)采樣結(jié)果儲存到由Block RAM構(gòu)建的高速緩沖RAM陣列中,采樣時序由FPGA生成,保證了多路并行采樣的高同步性。
FPGA采用Altera公司的Cyclone IV系列 EP4CGX150,內(nèi)部帶有6.3 MB嵌入式 Block RAM,支持最高頻率167 MHz的存儲區(qū)訪問,易于設(shè)計接口友好的存儲區(qū)[7]。在FPGA內(nèi)部設(shè)計了數(shù)據(jù)FIFO用于實現(xiàn)總線速率匹配,PCI總線速率為32 bit、33 MHz,而數(shù)據(jù)采樣流水速率為16 bit、20 MHz。為提高總線利用率,需設(shè)計數(shù)據(jù)緩沖來實現(xiàn)不同速率數(shù)據(jù)傳輸之間的速度匹配,而數(shù)據(jù)緩沖的深度取決于采樣數(shù)據(jù)實時性要求。
采用以上結(jié)構(gòu)具有如下優(yōu)點:(1)底層A/D控制器提供精密采樣時序,保證了ADC器件的采樣吞吐,最大化地保證數(shù)據(jù)采樣的實時性;(2)采用帶DMA控制器的PCI接口與上位機進行數(shù)據(jù)交互,減少了上位機軟件負荷; (3)基于單片F(xiàn)PGA芯片設(shè)計,結(jié)構(gòu)簡單而優(yōu)化,可靠性高,可降低成本。
2 數(shù)據(jù)采集系統(tǒng)的實現(xiàn)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等)實現(xiàn)。
Altera公司推出的 PCI Compiler 軟件包可以參數(shù)化地生成應(yīng)用于PCI總線的IP核,基于該IP核可生成符合32 bit/33 MHz PCI 2.2規(guī)范的主從控制器,包含了PCI總線的全部功能,能實現(xiàn)總線協(xié)議的轉(zhuǎn)換,并將復(fù)雜的、時序要求高的PCI總線操作,轉(zhuǎn)換成易于使用本地總線(Local 總線)的接口邏輯[6]。
PCI IP核的結(jié)構(gòu)如圖2所示,包括:(1)配置寄存器:用于保存PCI設(shè)備的基本信息;(2)PCI地址數(shù)據(jù)緩存:用于緩存PCI總線上的地址信號;(3)主模式接口控制模塊:負責(zé)在主模式(Master)下對PCI總線的操作;(4)從模式接口控制模塊:負責(zé)在從模式(Slave)下PCI總線的操作;(5)奇偶校驗器:當(dāng)數(shù)據(jù)校驗出錯時,生成一個錯誤信息輸出到配置寄存器;(6)本地主模式控制模塊:負責(zé)主模式下的本地接口控制邏輯;(7)本地從模式控制模塊:負責(zé)從模式下本地接口控制邏輯;(8)本地邏輯接口模塊:負責(zé)控制本地端接口的地址、數(shù)據(jù)、控制、字節(jié)使能等[6]。
2.2 DMA控制器針對高帶寬、低延時和大量數(shù)據(jù)存儲與傳輸需求,設(shè)計了基于PCI IP核的DMA控制器。該DMA控制器是系統(tǒng)中的核心單元,實現(xiàn)高速采樣數(shù)據(jù)向上位機的DMA方式實時傳輸。DMA控制器結(jié)構(gòu)如圖3所示,內(nèi)部寄存器堆定義了DMA控制器的行為,而上位機可通過PCI總線設(shè)置相應(yīng)的寄存器。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602977 -
adc
+關(guān)注
關(guān)注
98文章
6495瀏覽量
544457 -
數(shù)據(jù)采集
+關(guān)注
關(guān)注
38文章
6053瀏覽量
113619
原文標(biāo)題:基于FPGA的DMA方式高速數(shù)據(jù)采集系統(tǒng)設(shè)計方案
文章出處:【微信號:FPGAer_Club,微信公眾號:FPGAer俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論