国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于LabWindows/CVI高速并行數(shù)據(jù)采集系統(tǒng)USB4814的設計

2015-03-31 19:16:56孫茂一趙普俊崔荃
現(xiàn)代電子技術 2015年5期
關鍵詞:虛擬儀器數(shù)據(jù)采集

孫茂一 趙普俊 崔荃

摘 要: 基于LabWindows/CVI軟件開發(fā)平臺,利用USB4814數(shù)據(jù)采集卡設計了高精度并行數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)的特點是選用高采樣率高精度的14位A/D轉(zhuǎn)換芯片進行A/D轉(zhuǎn)換電路設計,并行采集卡每一路都應用獨立的A/D轉(zhuǎn)換器。采用同步并行設計,通道間串擾極小,無相位差,具有極高的測量精度和相位一致性。系統(tǒng)運用USB 3.0傳輸接口技術,發(fā)揮了USB 3.0接口的優(yōu)勢,提高了數(shù)據(jù)傳輸速度,滿足了高數(shù)據(jù)吞吐量要求。對系統(tǒng)的設計可達到高性價比、多功能、低功耗等特點的數(shù)據(jù)采集的目的。

關鍵詞: 虛擬儀器; LabWindows/CVI; USB4814; 數(shù)據(jù)采集

中圖分類號: TN911?34; TP29 文獻標識碼: A 文章編號: 1004?373X(2015)05?0120?03

Design of high?speed parallel data acquisition system based on LabWindows/CVI

SUN Mao?yi, ZHAO Pu?jun, CUI Quan

(China National Institute of Measurement and Testing Technology, Chengdu 610021, China)

Abstract:A high?speed parallel data acquisition system was designed on LabWindows/CVI software development platform by using the USB4814 data acquisition card. As for the characteristic of this system, 14?bit A/D conversion chip with sampling rate and high accuracy was selected in A/D converter circuit design. An independent A/D converter is used in each channel of the parallel acquisition card. Since the synchronous parallel design is adopted, the crosstalk between the channels is very weak and there is no phase difference. It has a very high accuracy and consistency phase. The system uses USB3.0 transmission interface technology, and takes advantage of USB3.0 interface. It improved data transfer speed, and met the high data throughput requirement. The design of this system has characteristics of high performance?price ratio, multi?function and low?power consumption.

Keywords: virtual instrument; LabWindows/CVI; USB4814; data acquisition

0 引 言

隨著信息技術的迅速發(fā)展,數(shù)據(jù)采集和處理技術廣泛應用于雷達、通信等領域。而在早期的計算機系統(tǒng)上通信必須使用串口或并口來發(fā)送數(shù)據(jù),每個接口都需要占用計算機很多資源,傳統(tǒng)的接口一般都用PCI總線或RS 232串行總線。PCI總線有較高的傳輸速率,可達132 Mb/s,也可以即插即用,但是其擴充槽有限且插拔不方便;RS 232串行總線雖然連接比較方便,但是傳輸速率太慢,不易用于高速傳送數(shù)據(jù)以及傳送大量數(shù)據(jù)。USB(通用串行總線)集中了PCI和RS 232串行總線的優(yōu)點,具有方便的即插即用和熱插拔特性以及較高的傳輸速率,因此,將USB技術應用于數(shù)據(jù)采集是非常合適的,可以達到數(shù)據(jù)采集系統(tǒng)的高速率處理[1?2]。本文設計了一套基于USB 3.0的便攜式高精度數(shù)據(jù)采集系統(tǒng),相對于USB以前版本,USB 3.0最突出的優(yōu)點就是在數(shù)據(jù)傳輸率上有了很大的提高,在原來低速率1.5 Mb/s和全速的12 Mb/s兩種模式基礎上,USB 3.0極大地提高了帶寬——高達5 Gb/s全雙工[3]。同時本文介紹了用LabWindows/CVI開發(fā)數(shù)據(jù)采集系統(tǒng)的方法和步驟。

1 硬件簡介

該系統(tǒng)是基于USB 3.0的高速并行數(shù)據(jù)采集卡,有4個通道,單通道的采樣率最高可達100 MS/s。采集卡的硬件主要由阻抗匹配電路、A/D轉(zhuǎn)換電路、存儲電路、FPGA控制電路、USB接口電路組成。其中A/D轉(zhuǎn)換電路采用的是一款專門對高頻、寬動態(tài)范圍信號進行數(shù)字化處理的14位80 MS/s、低功率3 V A/D轉(zhuǎn)換器,用以完成極為苛刻的成像和通信應用的要求。FPGA控制電路選用的是CycloneIII系列EP3C55F484C8芯片,該芯片具有成本低、功耗小的優(yōu)點。USB接口電路采用存儲器直接訪問(DMA)技術,它是一種高速的數(shù)據(jù)傳輸操作,允許在外部設備和存儲器之間直接讀寫數(shù)據(jù),即不通過CPU,也不需要CPU干預,整個數(shù)據(jù)傳輸操作在DMA控制器下進行,CPU除了在數(shù)據(jù)傳輸開始和結束時作一點處理外,在傳輸過程中CPU可以進行其他的工作。這樣,在大部分時間里,CPU和輸入輸出都處在并行操作。因此,使整個計算機系統(tǒng)的效率大大提高,USB4814硬件原理如圖1所示。

2 軟件設計

該系統(tǒng)的應用程序開發(fā)選用了LabWindows/CVI,它是在Windows環(huán)境下面向計算機測控領域的虛擬儀器軟件開發(fā)平臺。該程序以ANSI C為核心,將功能強大的C語言與測控專業(yè)工具有機地結合起來,在編程過程中直接調(diào)用用戶界面函數(shù)和高級分析庫函數(shù),能方便地進行頻譜分析、信號濾波、功率譜分析、微積分等數(shù)據(jù)處理功能[4?5]。

2.1 動態(tài)鏈接庫

動態(tài)鏈接庫(DLL)是微軟公司在微軟視窗操作系統(tǒng)(即Windows操作系統(tǒng))中實現(xiàn)共享函數(shù)庫概念的一種方式,是一種函數(shù)或資源庫。庫中的函數(shù)可以被應用程序或其他DLL調(diào)用[6?7]。動態(tài)鏈接庫提供了一種方法,使進程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。

2.2 USB4814DLL.DLL函數(shù)簡介

USB4814的庫文件包括USB4814DLL.DLL,USB4814DLL.LIB,USB4814DLL.H三個文件。通過調(diào)用動態(tài)鏈接庫里的函數(shù)可以完成對USB4148卡的控制。下面是函數(shù)的部分程序代碼:

intUSB4814_VBSysInit(unsigned int*sn,double*BaseLine,double*GainTable); //USB4814初始化

unsigned int _stdcall USB4814_VBSetHardWare(unsignedintSampleIdx; //采樣率序號

unsigned int RangeIdx0;unsigned int RangeIdx1;unsigned int RangeIdx2;

unsigned int RangeIdx3;

unsigned int TrigMode;

unsigned int TrigEdge; //觸發(fā)邊沿

unsigned int TrigSource; //觸發(fā)源

unsigned int SampleLengthIdx; //采樣長度

unsigned int TrigPreIdx;

//預觸發(fā);double TrigLevel;//觸發(fā)電平)

unsigned int USB4814_Acq(void); //啟動采集

unsigned int USB4814_Idle(void); //暫停采集

unsigned int USB4814_Exit(void); //退出采集

unsigned int USB4814_PackData(int Dots,double *WaveData1,double *WaveData2) //讀取數(shù)據(jù)

2.3 函數(shù)編程步驟

函數(shù)編程步驟如圖2所示。

3 應用程序設計

3.1 程序設計分析

按照軟件實現(xiàn)的功能, 把應用程序需要處理的任務分為用戶界面控制、數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)分析和處理等[8]。軟件中以用戶界面為主線程,其他為次線程。數(shù)據(jù)采集系統(tǒng)主要完成的任務有實時采集波形,對輸入信號的波形進行直觀的顯示,對幅值、頻率等進行譜分析,完成對分析結果的存盤和調(diào)用[9?10]。用戶界面如圖3所示。

圖4為對某一信號的FFT頻譜分析。

3.2 部分源程序

部分源程序如下:

//USB4814卡初始化;

ackstatus=USB4814_Init(&pSysInfo.Idnumber,pSysInfo.BaseLine,pSysInfo.GainTable);

if(ackstatus){ MessagePopup("info","USB4814 initialization is successful!");

ackstatus=DEVICE_SUCCESSFULLY_OPENED; }

//設置采樣控制參數(shù);

void *callbackData, int eventData1, int eventData2)

{ switch (event)

{ case EVENT_COMMIT:SetCtrlStatus(DISABLE);

mFlag.RunStatus=1;

mFlag.flagread=0;

CreatFile_IFSave(); //如果存盤,創(chuàng)建存盤文件

PackSampleSettingParameter(); //獲取面板的參數(shù)設置

mFlag.mSampleDotsPerCh=HALFFIFOPERCH*mNINTTIMESAGROUP;SetAxisRange(panel_Handle,PANEL_WAVE,VAL_MANUAL,0,mFlag.mSampleDotsPerCh-1,VAL_MANUAL,myscale*(-1.0),myscale); if(ackstatus==DEVICE_SUCCESSFULLY_OPENED)

{USB4814_VBSetHardWare(pSysInfo.ClkMode,……)//設置采集參數(shù)USB4814_Acq();

//啟動采集}SetCtrlVal(panel_Handle,PANEL_LED,1)

SetCursorMode(HIDE);

//創(chuàng)建一個新線程來處理波形數(shù)據(jù)

[CmtScheduleThreadPoolFunction(DEFAULT_THREAD_POOL_]HANDLE,DaqThreadFunction, NULL,&threadFunctionId1);[DaqThreadStatus=RUNING;][CmtSetCurrentThreadPriority(THREAD_]PRIORITY_HIGHEST);break;}return 0;

//數(shù)據(jù)采集線程

static int CVICALLBACK DaqThreadFunction (void *functionData)

……

{if(USB4814_PackFifoData(4096*mNINTTIMESAGROUP,iadcdata[0],iadcdata[1],iadcdata[2],iadcdata[3],iadcdata[4],iadcdata[5],iadcdata[6],iadcdata[7]))

……}

//釋放驅(qū)動程序,退出軟件

{{……

CmtWaitForThreadPoolFunctionCompletion

(DEFAULT_THREAD_POOL_HANDLE,threadFunctionId1,

OPT_TP_PROCESS_EVENTS_WHILE_WAITING);

CmtReleaseThreadPoolFunctionID

(DEFAULT_THREAD_POOL_HANDLE,

threadFunctionId1);……;QuitUserInterface (0);

break;}

return 0;}

4 結 語

本文基于 LabWindows/ CVI這一軟件開發(fā)平臺,設計了一種高速并行USB4814數(shù)據(jù)采集系統(tǒng)。利用多線程、DLL技術極大地提高了系統(tǒng)性能,使采集系統(tǒng)具有實時性、可擴展性等特點。經(jīng)過測試該系統(tǒng)可以實現(xiàn)并行數(shù)據(jù)采集,每通道最高采樣率達80 MS/s。并能實現(xiàn)1 MS/s連續(xù)采樣不丟數(shù)據(jù),完全符合設計要求。

參考文獻

[1] 劉君華,白鵬.虛擬儀器編程語言LabWindows/CVI教程[M].北京:電子工業(yè)出版社,2001.

[2] 王建新,楊世鳳,隋美麗.LabWindows/CVI測試技術及工程應用[M].北京:化學工業(yè)出版社,2006.

[3] Compaq. Universal serial bus specification, revision 3. 0 [R]. USA: Compaq, 2004.

[4] Anon. CY7C68013data sheet [EB/OL]. [2014?08?04]. http:// www.alldatasheet.com/datas.

[5] National Instrument Corporation. LabWindows/CVI user manuel [M].USA: National Instrument Corporation, 2002.

[6] 李興.虛擬儀器的軟件開發(fā)[J].原子能科學技術,1999,33(2):125?128.

[7] 周永強.虛擬儀器數(shù)據(jù)采集系統(tǒng)的研制[J].長江科學院學報,1999(2):43?46.

[8] 王志強,孫書鷹,孫世宇.USB設備驅(qū)動程序開發(fā)技術研究[J].微計算機信息,2006(2):265?268.

[9] 師黎.虛擬儀器技術在實驗室建設中的應用研究[J].鄭州工業(yè)大學學報,1999(2):98?99.

[10] 王蘭省.虛擬儀器系統(tǒng)開放技術[J].測控技術,1999(4):64?65.

猜你喜歡
虛擬儀器數(shù)據(jù)采集
PCB 刻制機功能開發(fā)及在虛擬儀器實驗室建設中的應用
電子制作(2017年13期)2017-12-15 09:00:26
虛擬儀器及其在電工電子實驗中的應用
電子制作(2017年1期)2017-05-17 03:54:33
一種基于虛擬儀器的電控柴油機實驗臺的設計
電子制作(2017年9期)2017-04-17 03:00:35
虛擬儀器技術在農(nóng)業(yè)裝備測控中的應用
CS5463在植栽用電子鎮(zhèn)流器老化監(jiān)控系統(tǒng)中的應用
大數(shù)據(jù)時代高校數(shù)據(jù)管理的思考
科技視界(2016年18期)2016-11-03 22:51:40
鐵路客流時空分布研究綜述
基于廣播模式的數(shù)據(jù)實時采集與處理系統(tǒng)
軟件工程(2016年8期)2016-10-25 15:54:18
通用Web表單數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)
軟件工程(2016年8期)2016-10-25 15:52:53
基于開源系統(tǒng)的綜合業(yè)務數(shù)據(jù)采集系統(tǒng)的開發(fā)研究
新营市| 滨海县| 花垣县| 博白县| 长兴县| 英吉沙县| 吉林市| 托里县| 庄河市| 凤城市| 蒙山县| 开化县| 西华县| 东安县| 会理县| 定兴县| 峨边| 四川省| 巫溪县| 樟树市| 伊金霍洛旗| 那坡县| 确山县| 宁夏| 崇信县| 奎屯市| 陇南市| 河南省| 疏附县| 益阳市| 安平县| 廉江市| 页游| 周宁县| 噶尔县| 长兴县| 西峡县| 清丰县| 石楼县| 乌鲁木齐县| 博乐市|