午夜性刺激免费看_小说区图片区偷拍区另_一级片视频免费_一级口次A片,欧美a片免费在线观看,国产Av无码一区二区三区,99视频在线观看视频6,A片免费无码一级,亚洲五月花AV在线,激情影院a,国产在线观看综合

內(nèi)頁廣告7

熱搜關(guān)鍵詞: PCIe高速數(shù)據(jù)采集卡RFSOC高速數(shù)據(jù)采集軟件無線電平臺VPX高速數(shù)據(jù)采集卡高速信號采集卡PCIe數(shù)據(jù)采集數(shù)字信號處理

您的當(dāng)前位置:首頁 » 資訊中心 » 技術(shù)動態(tài) » 32通道PCIe高速采集存儲與信號分析系統(tǒng)

32通道PCIe高速采集存儲與信號分析系統(tǒng)

返回列表 來源:坤馳科技 查看手機(jī)網(wǎng)址
掃一掃!32通道PCIe高速采集存儲與信號分析系統(tǒng)掃一掃!
瀏覽:- 發(fā)布日期:2016-03-28 14:10:00【

 一,、概述

32路PCIE高速采集存儲

 

32路同步數(shù)據(jù)采集系統(tǒng)可以完成32路數(shù)據(jù)的同步采集,、存儲以及實(shí)時(shí)信號處理等功能,適用于實(shí)驗(yàn)室振動狀態(tài)在線檢測、噪聲檢測,、溫度試驗(yàn)、環(huán)境試驗(yàn),、雷管引爆延遲時(shí)間檢測等應(yīng)用,。
32路同步數(shù)據(jù)包括單個(gè)板卡通道之間的同步和多個(gè)板卡之間的同步,同步后的數(shù)據(jù)先存在板載DDR3,,再通過PCIe接口把數(shù)據(jù)傳輸?shù)缴衔粰C(jī),,如果采集的是瞬態(tài)信號,可以使用Standard模式,,可以把數(shù)據(jù)都存儲在板載DDR3上,,但要求采集的數(shù)據(jù)不能超過板載DDR3存儲容量;如果采集的是連續(xù)信號,,可以使用FIFO模式,,數(shù)據(jù)可以一邊存儲在DDR3上,一邊把數(shù)據(jù)傳輸給上位機(jī),,存儲的時(shí)間的長短受限于磁盤容量的大小,。
PCIe高速采集存儲系統(tǒng)由數(shù)據(jù)采集模塊、高速數(shù)據(jù)存儲模塊,、GPU實(shí)時(shí)處理模塊,、便攜式工控機(jī)等部分組成??梢詫?shí)現(xiàn)信號的實(shí)時(shí)采集存儲,,并且通過調(diào)用Window API的方式實(shí)現(xiàn)了比一般方式更快的數(shù)據(jù)存儲速度。
二,、應(yīng)用方向
  •  雷達(dá)方向

具備多次觸發(fā)的連續(xù)數(shù)據(jù)流模式

可長時(shí)間進(jìn)行雷達(dá)信號仿真和模擬

  •  超聲方向
具備多次觸發(fā)的連續(xù)數(shù)據(jù)流模式
觸發(fā)間底死區(qū)時(shí)間(<80ns
  •  通信方向
時(shí)域和頻域分析
高級顯示模式
  •  航空航天方向
連續(xù)數(shù)據(jù)流存儲
超高的數(shù)據(jù)傳輸速度(>3.4GB/s
  •  天文方向
高采樣率和高分辨率
時(shí)域和頻域分析
低噪聲模擬信號調(diào)理電路
  •  聲學(xué)方向
低噪聲與高分辨率

SNR>90dB)與SFDR>105dB

上百個(gè)同步通道
  •  半導(dǎo)體測試方向

SNR>90dB)與SFDR>105dB

功能齊全的模擬信號調(diào)理電路
  •  激光方向
5GS/s采樣率與寬帶寬
板載分塊統(tǒng)計(jì),、峰值檢測功能
 
三、術(shù)語說明
 
PCIe

是新的總線和接口標(biāo)準(zhǔn),PCIe屬于高速串行點(diǎn)對點(diǎn)雙通道高帶寬傳輸,,所連接的設(shè)備分配獨(dú)享通道帶寬,,不共享總線帶寬,主要支持主動電源管理,,錯(cuò)誤報(bào)告,,端對端的可靠性傳輸,熱插拔以及服務(wù)質(zhì)量(QOS)等功能,。PCIe交由PCI-SIGPCI特殊興趣組織)認(rèn)證發(fā)布后才改名為“PCI-Express”,,簡稱“PCI-E”

DMA

(Direct Memory Access,,直接內(nèi)存存取) 是所有現(xiàn)代電腦的重要特色,,它允許不同速度的硬件裝置來溝通,而不需要依于 CPU 的大量中斷負(fù)載,。

ADC

模擬到數(shù)字式轉(zhuǎn)換器

CreateFile
是一個(gè)多功能的函數(shù),,可打開或創(chuàng)建以下對象,并返回可訪問的句柄:控制臺,,通信資源,,目錄(只讀打開),磁盤驅(qū)動器,,文件,,郵槽,管道,。
ReadFile

文件指針指向的位置開始將數(shù)據(jù)讀出到一個(gè)文件中,,且支持同步和異步操作如果文件打開方式?jīng)]有指明FILE_FLAG_OVERLAPPED的話,當(dāng)程序調(diào)用成功時(shí),,它將實(shí)際讀出文件的字節(jié)數(shù)保存到lpNumberOfBytesRead指明的地址空間中,。

WriteFile

WriteFile函數(shù)將數(shù)據(jù)寫入一個(gè)文件。該函數(shù)比fwrite函數(shù)要靈活的多,。也可將這個(gè)函數(shù)應(yīng)用于對通信設(shè)備,、管道、套接字以及郵槽的處理

fwrite

fwriteC語言函數(shù),,指向文件寫入一個(gè)數(shù)據(jù)塊,。

nQTStoreInit
輸入?yún)?shù)為板卡信息塊,通過調(diào)用此接口申請好 Ping-Pang buffer,。
nQTStoreData
根據(jù)用戶指定的文件名創(chuàng)建好文件,,并且開始采集存儲。
nQTStoreStop

停止采集和存儲,。

nQTFreeMemory

釋放 Ping-Pang buffer 的內(nèi)存。

 
四、環(huán)境說明
 
硬件平臺
  • 便攜式工控機(jī)

微星X99A SLI PLUS主板

Intel i7-5820k 處理器

金士頓 8GB DDR4 內(nèi)存x4

  • 數(shù)據(jù)采集模塊:

pcie高速采集存儲

Spectrum M2i.49128通道,,16bit,,10MS/s采樣率AD采集卡

±200mV到±10V軟件可調(diào)增益設(shè)置

50歐姆或1M歐姆輸入阻抗
板載高穩(wěn)定度采集時(shí)鐘發(fā)生器,支持外時(shí)鐘和外觸發(fā)同步輸入

PCIe2.0 x1接口

512MB板載內(nèi)存
Star-Hub實(shí)現(xiàn)多板卡同步:

多板卡同步

  • GUP實(shí)時(shí)處理模塊:

lGUP實(shí)時(shí)處理模塊

NVIDIA GeForce GTX 980

Maxwell架構(gòu)

支持CUDA 并行處理

CUDA處理器核心達(dá)2048
  • 數(shù)據(jù)存儲模塊

4TB RAID0磁盤陣列

連續(xù)存儲速度可達(dá)1.2GB/s

磁盤陣列由41TB三星固態(tài)硬盤組成,,每個(gè)固態(tài)硬盤支持大500MS/s(實(shí)測)的寫入速度,,組成RAID0陣列后支持大1.2GB/s(實(shí)測)的寫入速度。RAID0磁盤沒有奇偶數(shù)目的要求,,數(shù)據(jù)被平均分割存儲到多個(gè)磁盤上,,總的讀寫速度就是磁盤數(shù)量乘以單個(gè)磁盤的讀寫速度,缺點(diǎn)在于一塊磁盤損壞,,則整個(gè)磁盤陣列即壞,,數(shù)據(jù)無法被修復(fù)。

軟件平臺
  • Win7 x64操作系統(tǒng)
  • SBench6操作軟件

Control CenterControl centerspectrum公司的專有的控制采集卡校準(zhǔn),、license激活,、底層kernel控制的軟件。啟動control centerKernel Register Settings,,可以設(shè)置底層kernel開辟的物理連續(xù)地址空間,,用于DMA大數(shù)據(jù)量存儲使用。

lSBench6操作軟件

我們知道,,目前的操作系統(tǒng)中,,非常嚴(yán)格的把物理存儲空間、內(nèi)核存儲空間,、上層用戶存儲空間區(qū)分開來,。
Windows操作系統(tǒng)對內(nèi)存的管理是按照4kByte來進(jìn)行的。
對于軟件來說,,申請到的虛擬內(nèi)存都是通過內(nèi)存管理單元每4kByte來進(jìn)行分配的,。對于上位機(jī)軟件來說,分配1個(gè)很大的內(nèi)存空間,,在虛擬內(nèi)存上是連續(xù)的,,但是在物理地址上有可能是很多個(gè)獨(dú)立的4kByte組成的。

當(dāng)使用虛擬的內(nèi)存來進(jìn)行DMA傳輸數(shù)據(jù)的時(shí)候,,這個(gè)過程是非常復(fù)雜的,。

因?yàn)椋?/span>DMA傳輸數(shù)據(jù)是直接通過物理地址傳遞的,這樣DMA傳輸就得通過每個(gè)獨(dú)立的4kByte的頁來進(jìn)行傳輸,,這樣每次DMA傳輸?shù)臄?shù)據(jù)都是在不同物理地址4kByte頁上切換到降低DMA傳輸?shù)男省?/span>

Spectrum kernel driverSpectrum公司通過自己底層驅(qū)動,,可以通過軟件向底層申請開辟一段物理地址連續(xù)的地址空間,申請完,,需要重啟電腦,,重啟電腦,,在PC機(jī)boot的過程中,需要多花費(fèi)平時(shí)的80%的啟動時(shí)間,。

五,、總體設(shè)計(jì)
 
硬件總體框架:

硬件總體框架

 
數(shù)據(jù)采集系統(tǒng)在FIFO模式下數(shù)據(jù)的傳輸存儲速度主要受限于PCIE接口的傳輸速度與磁盤的寫入速度。
本系統(tǒng)數(shù)據(jù)采集卡采用PCIex1 Gen2.0接口,,數(shù)據(jù)傳輸速度可達(dá)160MB/s,。采集卡為16bit,采樣率高為10MS/s,,這時(shí)單個(gè)采集卡在FIFO模式下需傳輸?shù)臄?shù)據(jù)量為:
16bit/2*10MS/s*8=160MB/s

恰好達(dá)到PCIe接口的極限速度,。采集到的信號在寫入磁盤時(shí)總的數(shù)據(jù)量為:

160MB/s*4=640MB/s
寫入速度超過單個(gè)固態(tài)硬盤的寫入速度,但使用RAID0陣列時(shí),,則可以滿足寫入的需求,。
六、高速存儲模塊

限制文件存儲速度的終瓶頸還是磁盤的固有特性,,我們所能做到只是改善軟件的實(shí)現(xiàn)去逼近硬盤的極限讀寫速度,。一般windows系統(tǒng)粘貼拷貝文件的時(shí)候,影響存儲速度地方就在于它利用了windows文件緩存機(jī)制,,當(dāng)你拷貝一個(gè)大文件時(shí),,windows會根據(jù)你要拷貝的文件大小緩存很大一部分到系統(tǒng)緩存,這時(shí)候你會看到系統(tǒng)緩存瞬間飆漲,,機(jī)器性能大大降低,,所以我們要避免使用windows緩存機(jī)制,并且盡量讀寫連續(xù)的文件塊,。

利用Window API讀寫文件
 

一般來說,,我們操作一個(gè)windows I/O句柄用的是windows文件讀寫系列APICreateFile, ReadFile, WriteFile等,這些API不僅可以讀寫文件句柄,,所有的I/O設(shè)備句柄都能通過這些API來操作,。比如socket描述符, 串口描述符,管道描述符等,。通過設(shè)置他們的參數(shù),,我們可以選擇以不同的方式操作IO

對于讀寫速度,,重要的是dwFlagsAndAttrib參數(shù),,FILE_FLAG_NO_BUFFERING指示系統(tǒng)不使用快速緩沖區(qū)或緩存,當(dāng)和FILE_FLAG_OVERLAPPED組合,,該標(biāo)志給出大的異步操作量,,因?yàn)?/span>I/O不依賴內(nèi)存管理器的異步操作。然而,,一些I/O操作將會運(yùn)行得長一些,,因?yàn)閿?shù)據(jù)沒有控制在緩存中,。
當(dāng)使用FILE_FLAG_NO_BUFFERING打開文件進(jìn)行工作時(shí),程序必須達(dá)到下列要求:

1. 文件的存取開頭的字節(jié)偏移量必須是扇區(qū)尺寸的整倍數(shù),。

2. 文件存取的字節(jié)數(shù)必須是扇區(qū)尺寸的整倍數(shù),。例如,如果扇區(qū)尺寸是512字節(jié),。程序就可以讀或者寫5121024或者2048字節(jié),,但不能夠是335,981或者7171字節(jié),。

3. 進(jìn)行讀和寫操作的地址必須在扇區(qū)的對齊位置,在內(nèi)存中對齊的地址是扇區(qū),。尺寸的整倍數(shù),。一個(gè)將緩沖區(qū)與扇區(qū)尺寸對齊的途徑是使用VirtualAlloc函數(shù)。

它分配與操作系統(tǒng)內(nèi)存頁大小的整倍數(shù)對齊的內(nèi)存地址.這塊內(nèi)存在地址中同樣與扇區(qū)尺寸大小的整倍數(shù)對齊,。程序可以通過調(diào)用GetDiskFreeSpace來確定扇區(qū)的尺寸,。
 
高速采集存儲配置
為了實(shí)現(xiàn)高速采集存儲,此處用到了windows多線程編程,,一個(gè)線程接收板卡采集到的數(shù)據(jù),,一個(gè)線程負(fù)責(zé)寫文件。為了保證存儲文件的速度需要連續(xù)寫入大文件,,通過申請兩個(gè)大小相同的buffer,,執(zhí)行ping-pang寫文件操作。
 

高速采集存儲配置

 

Buf0Buf1收發(fā)數(shù)據(jù)為ping-pang原理,,Buf0Buf1的狀態(tài)為emptyfull,,當(dāng)數(shù)據(jù)通過TX DMA讀出后,Buf的狀態(tài)置為empty,,當(dāng)數(shù)據(jù)通過RX DMA寫入后,,Buf的狀態(tài)置為fullRX DMATX DMA的狀態(tài)分別有WrBuf0,,WrBuf1,,RdBuf0RdBuf1,,OpCmpt,,NotStartTXHungry0,,TXHungry1幾種狀態(tài),。

對于ADC接收數(shù)據(jù)方向,RX DMAbuf0產(chǎn)生完成中斷后,,首先開始寫buf1操作,,然后建立寫buf0DMA接收鏈表,。同樣當(dāng)RX DMAbuf1產(chǎn)生完成中斷后,首先開始寫buf0操作,,然后建立寫buf1DMA接收鏈表,。

對于PCIE發(fā)送數(shù)據(jù)方向,TX DMAbuf0產(chǎn)生完成中斷后,,首先開始讀buf1操作,,然后建立讀buf0DMA發(fā)送鏈表。同樣當(dāng)TX DMAbuf1產(chǎn)生完成中斷后,,首先開始讀buf0操作,,然后建立讀buf1DMA發(fā)送鏈表。
根據(jù)PC機(jī)實(shí)際內(nèi)存大小,,設(shè)置相應(yīng)的buffer大小,,buffer需要盡可能大。通過API工程里面的宏定義設(shè)置buffer的大小,。
 

buffer的大小

另外幾個(gè)與高速存儲相關(guān)的API如下圖:
 

與高速存儲相關(guān)的API

 

nQTStoreInit輸出參數(shù)為板卡信息塊,,通過調(diào)同此接口申請好Ping-Pang buffer,由于運(yùn)行時(shí)間較長,,所以建議放置在配置過程中執(zhí)行,。nQTStoreData創(chuàng)建好文件,并且開始采集存儲,。在執(zhí)行了一段時(shí)間的采集后可以通過調(diào)用nQTStoreStop來停止采集和存儲,。值得注意的是程序通過Ping-Pang機(jī)制存儲所以會導(dǎo)致后得到的文件大小是Buffer大小的整數(shù)倍,但是會保證上位機(jī)獲取到的數(shù)據(jù)全部都存入到文件中,。為了實(shí)現(xiàn)循環(huán)開始存儲,,停止存儲操作,避免此過程中內(nèi)存的重復(fù)申請與釋放導(dǎo)致降低效率,,把內(nèi)存釋放的操作以下API中:
 

nQTStoreInit輸出參數(shù)為板卡信息塊

程序運(yùn)行

 

在程序運(yùn)行的結(jié)尾,,通過調(diào)用nQTFreeMemrory來釋放Ping-Pang buffer的內(nèi)存。這樣就完成了從打開板卡進(jìn)行數(shù)據(jù)采集到數(shù)據(jù)存儲到工控機(jī)硬盤中的全過程,。
 
與一般存儲方式速度對比
一般存儲方式通過調(diào)用C語言中的fwrite進(jìn)行寫數(shù)據(jù)的操作,,但這樣的方式在數(shù)據(jù)量巨大的情況下與Writefile這種調(diào)用Windows API方式進(jìn)行對比時(shí)速度差異明顯,在使用Writefile方式進(jìn)行大量數(shù)據(jù)寫入時(shí)速度可逼近硬盤的寫入速度,。
下圖為寫入1GB數(shù)據(jù)時(shí)使用fwrite進(jìn)行寫數(shù)據(jù)操作時(shí)實(shí)測的速度:
 

寫入1GB數(shù)據(jù)時(shí)使用fwrite進(jìn)行寫數(shù)據(jù)操作時(shí)實(shí)測的速度

寫入1GB數(shù)據(jù)時(shí)使用fwrite進(jìn)行寫數(shù)據(jù)操作時(shí)實(shí)測的速度

下圖為寫入1GB數(shù)據(jù)時(shí)使用WriteFile進(jìn)行寫數(shù)據(jù)操作時(shí)實(shí)測的速度:

寫入1GB數(shù)據(jù)時(shí)使用fwrite進(jìn)行寫數(shù)據(jù)操作時(shí)實(shí)測的速度

寫入1GB數(shù)據(jù)時(shí)使用WriteFile進(jìn)行寫數(shù)據(jù)操作時(shí)實(shí)測的速度

由圖中測試數(shù)據(jù)可知,,使用WriteFile進(jìn)行寫數(shù)據(jù)時(shí)速度可達(dá)1193.46MB/s,遠(yuǎn)遠(yuǎn)快于使用fwrite時(shí)669.146MB/s的寫入速度,。當(dāng)寫入的數(shù)據(jù)量越大時(shí),,WriteFile的優(yōu)勢越明顯,直至逼近磁盤陣列的極限速度,。
七,、GPU分析處理模塊
 
NVIDIA GPU介紹

GPU內(nèi)存管理

圖形處理單元CPU英文全稱Graphic Processing Unit,,GPU是相對于CPU的一個(gè)概念,NVIDIA公司在1999年發(fā)布GeForce256圖形處理芯片時(shí)首先提出GPU的概念,。GPU使顯卡減少了對CPU的依賴,,并進(jìn)行部分原本CPU的工作,主要是并行計(jì)算部分,。CPU具有強(qiáng)大的浮點(diǎn)數(shù)編程和計(jì)算能力,,在計(jì)算吞吐量和內(nèi)存帶寬上,現(xiàn)代的GPU遠(yuǎn)遠(yuǎn)超過CPU,。
使用NVIDIA CUDA Fast Fourier Transform Library提供了一個(gè)簡單計(jì)算FFT運(yùn)算的接口,,而不用用戶自己實(shí)現(xiàn)FFT算法。
 
GPU內(nèi)存管理

lCPU FFT分析

Host     CPU及系統(tǒng)的內(nèi)存稱為主機(jī)
Device    GPUGPU本身的顯示內(nèi)存稱為設(shè)備

cudaMalloc()C語言中的malloc函數(shù)一樣,,用戶函數(shù)分配線性內(nèi)存空間。

cudaMemcpy():與C語言中的memcpy函數(shù)一樣,,只是此函數(shù)可以在主機(jī)內(nèi)存和GPU內(nèi)存之間互相拷貝數(shù)據(jù),。

cudaFree()  C語言中的free函數(shù)一樣,只是此函數(shù)釋放的是

cudaMalloc  分配的內(nèi)存,,主要用于釋放線性內(nèi)存空間,。

 

CPU與GPU進(jìn)行FFT分析速度對比
 
lCPU FFT分析
MATLAB10M Sample的數(shù)據(jù)進(jìn)行FFT運(yùn)算,時(shí)間0.594697s,,如下圖:

CPU與GPU進(jìn)行FFT分析速度對比

lGPU FFT分析
使用GPU進(jìn)行FFT計(jì)算,,FFT點(diǎn)數(shù)10M Sample,運(yùn)行時(shí)間0.00006175s,。

lGPU FFT分析

GPU FFT運(yùn)算之后的結(jié)果,,10M個(gè)實(shí)部real10M個(gè)虛部imag,用MATLAB進(jìn)行仿真,,如下圖:

用MATLAB進(jìn)行仿真

推薦閱讀

    【本文標(biāo)簽】:高速采集卡 高速信號采集卡 高速數(shù)據(jù)采集卡
    【責(zé)任編輯】:坤馳科技版權(quán)所有:轉(zhuǎn)載請注明出處