999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LabVIEW的通用數(shù)據(jù)采集卡軟件系統(tǒng)

2015-01-27 01:30:30宋方偉

宋方偉,陳 航

(中國(guó)兵器工業(yè)第五八研究所 特種電子技術(shù)部,四川 綿陽(yáng) 621000)

0 引言

傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的開(kāi)發(fā)流程包括:底層硬件設(shè)計(jì)、底層驅(qū)動(dòng)設(shè)計(jì)、動(dòng)態(tài)鏈接庫(kù)設(shè)計(jì)和應(yīng)用程序設(shè)計(jì)。其中,底層硬件設(shè)計(jì)是開(kāi)發(fā)具有數(shù)據(jù)采集功能的計(jì)算機(jī)擴(kuò)展卡,并通過(guò)USB、PXI、PCI、PCI Express、RapidIO等總線(xiàn)接入主控機(jī)。軟件系統(tǒng)包括:驅(qū)動(dòng)程序、動(dòng)態(tài)鏈接庫(kù)和數(shù)據(jù)采集應(yīng)用程序。以Windows 系統(tǒng)下的底層驅(qū)動(dòng)開(kāi)發(fā)為例,通常使用DDK 和DriverStudio 等Windows驅(qū)動(dòng)開(kāi)發(fā)工具,在VC++開(kāi)發(fā)環(huán)境下進(jìn)行底層驅(qū)動(dòng)的開(kāi)發(fā)并提供數(shù)據(jù)采集應(yīng)用程序調(diào)用的動(dòng)態(tài)鏈接庫(kù)。用VC++開(kāi)發(fā)數(shù)據(jù)采集卡的應(yīng)用程序較為常用,但其缺點(diǎn)顯而易見(jiàn):①VC++沒(méi)有集成信號(hào)的采集、分析和圖形化顯示功能,開(kāi)發(fā)圖形化分析應(yīng)用程序難度大;②應(yīng)用程序需要評(píng)審,以保證其正確性;③應(yīng)用程序的可移植性不好,不同公司的代碼不能復(fù)用。

鑒于上述問(wèn)題,本文提出基于LabVIEW 的通用數(shù)據(jù)采集卡軟件系統(tǒng)的設(shè)計(jì)方法。利用LabVIEW 內(nèi)置信號(hào)采集、測(cè)量分析與數(shù)據(jù)顯示功能,實(shí)現(xiàn)不同數(shù)據(jù)采集卡軟件系統(tǒng)的標(biāo)準(zhǔn)化和通用化。

1 系統(tǒng)開(kāi)發(fā)結(jié)構(gòu)

基于LabVIEW 的通用數(shù)據(jù)采集卡軟件系統(tǒng)的開(kāi)發(fā)流程如圖1 所示。圖中:首先,基于DriverStudio 開(kāi)發(fā)驅(qū)動(dòng)程序,封裝成為L(zhǎng)abVIEW 調(diào)用庫(kù)函數(shù)節(jié)點(diǎn)(CLF)調(diào)用的動(dòng)態(tài)鏈接庫(kù)(DLL)要求的標(biāo)準(zhǔn)庫(kù)函數(shù),然后Lab-VIEW 通過(guò)CLF 節(jié)點(diǎn)方式調(diào)用標(biāo)準(zhǔn)DLL 函數(shù)接口并封裝成常用的LabVIEW 數(shù)據(jù)采集子VI,最后利用通用的LabVIEW 數(shù)據(jù)采集應(yīng)用程序完成數(shù)據(jù)采集。從流程可以看出,只要將DLL 按照標(biāo)準(zhǔn)的函數(shù)接口規(guī)范封裝,Lab-VIEW 子VI 和應(yīng)用程序的代碼完全通用。

圖1 系統(tǒng)開(kāi)發(fā)流程

2 驅(qū)動(dòng)設(shè)計(jì)和動(dòng)態(tài)鏈接庫(kù)接口定義

2.1 基于DriverStudio 的數(shù)據(jù)采集卡驅(qū)動(dòng)程序

使用DriverStudio 驅(qū)動(dòng)開(kāi)發(fā)工具,從開(kāi)始菜單啟動(dòng)Driver Wizards,選擇Driver Works Project,開(kāi)始創(chuàng)建一個(gè)驅(qū)動(dòng)程序框架[1]。以基于PCI 總線(xiàn)的數(shù)據(jù)采集卡為例:

(1)選擇總線(xiàn)類(lèi)型時(shí),選用PCI 總線(xiàn),依據(jù)采集卡手冊(cè)填寫(xiě)PCI 廠商ID 號(hào)和PCI 設(shè)備的ID 號(hào)。

(2)添加I/O 資源和內(nèi)存資源時(shí),添加的資源需和硬件的基地址寄存器對(duì)應(yīng)。

(3)最后,為I/O 通信方式添加控制代碼。例如添加PCI_AD_IOCTL_GetSampleData 采集數(shù)據(jù)幀的控制代碼,完成驅(qū)動(dòng)程序框架。會(huì)看到需要的i/o 通訊頭文件包括添加控制命令定義:

#define PCI_AD_IOCTL_GetSampleData CTL_CODE(FILE_DEVICE_UNKNOWN,0x807,METHOD_IN_DIRECT,FILE_ANY_ACCESS)

2.2 CLF 的調(diào)用DLL 函數(shù)接口定義

DLL 使用CDeviceInterfaceClass 的實(shí)例去獲得DeviceInterface 實(shí)例。DeviceInterface 成員函數(shù)DevicePath 返回一個(gè)路徑名指針,發(fā)送給CreateFile 去打開(kāi)設(shè)備。打開(kāi)設(shè)備以后,DLL 通過(guò)函數(shù)ReadFile,WriteFile 和DeviceIoControl 函數(shù)調(diào)用訪問(wèn)設(shè)備。DLL 通過(guò)DeviceIoControl 向系統(tǒng)發(fā)出讀取采集數(shù)據(jù)的命令后,系統(tǒng)向驅(qū)動(dòng)程序發(fā)送KIrp(I/O 請(qǐng)求包),驅(qū)動(dòng)程序獲取該請(qǐng)求包,然后執(zhí)行上節(jié)添加的函數(shù)[2]。

通用LabVIEW 數(shù)據(jù)采集應(yīng)用程序常用5 個(gè)子VI,因此DLL 定義5 個(gè)CLF 調(diào)用的函數(shù)接口,其名稱(chēng)、參數(shù)及其描述如下[3]:

int AiConfig_interface(int nDevNo ,int nStart_Chan ,int Chans, int nFifo);

** 函數(shù)描述:打開(kāi)板卡,初始化,設(shè)置起始通道和中斷事件。

** 輸入?yún)?shù):nDevNo: 設(shè)備號(hào);nStart_Chan:起始通道;Chans: 通道個(gè)數(shù); nFifo:緩沖區(qū)大?。?/p>

int AiStart_interface (int nFreq ,int nSampleDataCount) ;

** 函數(shù)描述:設(shè)置采樣頻率和采樣點(diǎn)數(shù),然后啟動(dòng)采樣

** 輸入?yún)?shù):nFreq: 單通道采樣頻率

SampleDataCount: 需采樣的點(diǎn)數(shù)(設(shè)置為通道個(gè)數(shù)的倍數(shù))

int AiRread_interface(int ndlen,double chnBuf [][]);

** 函數(shù)描述:等待中斷到來(lái),然后讀取采集的數(shù)據(jù)

** 輸入?yún)?shù):dlen :讀取采樣點(diǎn)的數(shù)目

** 輸出參數(shù):chnBuf: 采集數(shù)據(jù)數(shù)組

int AiClear_interface (void) ;

** 函數(shù)描述:停止采樣,并釋放分配資源

3 數(shù)據(jù)采集子VI 封裝和通用應(yīng)用程序設(shè)計(jì)

3.1 基于FCL 的常見(jiàn)數(shù)據(jù)采集子VI 封裝

LabVIEW 提供的數(shù)據(jù)采集卡的常用驅(qū)動(dòng)方式有兩種,調(diào)用C 語(yǔ)言源代碼方式(CIN 方式),以及調(diào)用CLF方式[3]。本文選擇通過(guò)CLF 方式,路徑為在LabVIEW 開(kāi)發(fā)工具面板依次選擇(Function ->Advanced ->Call Library Function)實(shí)現(xiàn)對(duì)上節(jié)形成的DLL 庫(kù)函數(shù)的調(diào)用,并根據(jù)函數(shù)返回值產(chǎn)生錯(cuò)誤簇。例如:將AiClear_interface 函數(shù)作為CLF 調(diào)用的函數(shù),其參數(shù)作為子VI 的端子,通過(guò)連接器進(jìn)行圖形化編程,形成AIClear.vi 子VI,如下:

圖2 AI Clear.vi 代碼

通過(guò)這種方式形成LabVIEW 數(shù)據(jù)采集應(yīng)用程序常用的5 個(gè)子Vi,AI Config.vi、AI Start.vi、AI Read.vi、AI Clear.vi。

3.2 LabVIEW 下通用的數(shù)據(jù)采集應(yīng)用程序

LabVIEW 下通用的數(shù)據(jù)采集應(yīng)用程序如圖3 所示,代碼十分簡(jiǎn)潔,開(kāi)發(fā)容易。另外,LabVIEW 可以自動(dòng)規(guī)劃多線(xiàn)程任務(wù),可充分利用系統(tǒng)處理器的處理能力,從而提高模塊的采集效率。

圖3 LabVIEW 下通用的數(shù)據(jù)采集應(yīng)用程序

4 結(jié)束語(yǔ)

筆者使用兩張不同的CPCI 數(shù)據(jù)采集卡,按照本文方法封裝標(biāo)準(zhǔn)的動(dòng)態(tài)鏈接庫(kù)接口。安裝驅(qū)動(dòng)后僅更換DLL,向采集卡的兩個(gè)通道輸入正弦波和三角波,使用通用的LabVIEW 數(shù)據(jù)采集程序,兩張采集卡都采集到如圖4 的信號(hào)。另外可以使用LabVIEW 強(qiáng)大的信號(hào)分析工具進(jìn)行信號(hào)分析。

圖4 基于LabVIEW 的通用DAQ 代碼采集的信號(hào)

綜上所述:本文采取方法成功集成了VC++和LabVIEW 圖形化編程語(yǔ)言各自?xún)?yōu)勢(shì),開(kāi)發(fā)人員只需注重底層驅(qū)動(dòng)開(kāi)發(fā),開(kāi)發(fā)難度降低,開(kāi)發(fā)周期大大縮短,并可以使用LabVIEW 強(qiáng)大可視化信號(hào)分析工具,排除了在VC++環(huán)境下應(yīng)用程序引入錯(cuò)誤的可能性,軟件系統(tǒng)質(zhì)量得以提升。具有通用性強(qiáng)、易于開(kāi)發(fā)、數(shù)據(jù)處理簡(jiǎn)單、性能穩(wěn)定等特點(diǎn),值得數(shù)據(jù)采集卡軟件人員采用。

[1]武安河,邰銘,于洪濤.Windows 2000/XP WDM 設(shè)備驅(qū)動(dòng)程序開(kāi)發(fā)[M].北京: 電子工業(yè)出版社,2003.

[2]張春雨. PCI 總線(xiàn)數(shù)據(jù)輸出板驅(qū)動(dòng)程序的開(kāi)發(fā)[J].重慶工學(xué)院學(xué)報(bào)(自然科學(xué)版),2008,6.

[3]LabVIEW Advanced Performance&Communication Course Manual[Z].NationalInstruments Corporation,2001.

[4]熊煥庭.在LabVIEW 中數(shù)據(jù)采集卡的三種驅(qū)動(dòng)方法[J]. 電測(cè)與儀表,2001,428.

主站蜘蛛池模板: 国产资源站| 精品少妇三级亚洲| 国产区成人精品视频| 亚洲第一成年人网站| 99热这里都是国产精品| 欧美精品v日韩精品v国产精品| 丰满人妻一区二区三区视频| 全色黄大色大片免费久久老太| 精品99在线观看| 操美女免费网站| 免费视频在线2021入口| 国产免费久久精品99re丫丫一| 69免费在线视频| 美女啪啪无遮挡| 亚洲va精品中文字幕| 色悠久久综合| 成人小视频网| 在线不卡免费视频| 日韩欧美中文字幕在线韩免费 | 久久这里只有精品23| 久久青青草原亚洲av无码| 免费黄色国产视频| 国产一区在线视频观看| 国产日韩欧美中文| 性视频久久| www.亚洲色图.com| 婷五月综合| 91麻豆精品视频| 日韩第九页| 国产精品成人免费综合| 综合久久五月天| 最新亚洲人成网站在线观看| 欧美精品啪啪| 亚卅精品无码久久毛片乌克兰 | 熟女成人国产精品视频| 国产真实乱子伦精品视手机观看| 国产美女叼嘿视频免费看| 天堂在线www网亚洲| 岛国精品一区免费视频在线观看| 国产成人精品视频一区二区电影| 成人自拍视频在线观看| 国产麻豆福利av在线播放 | 欧美色视频日本| 亚洲成A人V欧美综合| 国产精品极品美女自在线网站| 欧美激情视频一区二区三区免费| 欧美va亚洲va香蕉在线| 国产在线自在拍91精品黑人| 免费观看无遮挡www的小视频| 一本大道香蕉久中文在线播放| 国产女人在线| 国产福利免费在线观看| 999国内精品视频免费| 麻豆精品久久久久久久99蜜桃| 亚洲天堂网在线观看视频| 国产女人在线| 日本免费福利视频| 日本欧美成人免费| 91尤物国产尤物福利在线| 久久精品国产精品一区二区| 伊人查蕉在线观看国产精品| 国产成人AV综合久久| 亚洲成人黄色在线观看| 无码'专区第一页| 精品三级网站| 国产午夜无码专区喷水| 色噜噜狠狠色综合网图区| 亚洲最大情网站在线观看| 亚洲福利片无码最新在线播放| 日韩一级毛一欧美一国产| 国内精品视频区在线2021| 精品伊人久久久久7777人| 午夜国产大片免费观看| 日韩精品一区二区三区中文无码| 国内精品一区二区在线观看| 97精品伊人久久大香线蕉| 国产美女在线观看| 国产欧美自拍视频| 国内精品视频| 久久香蕉国产线看观| 欧美不卡在线视频| 99热这里只有免费国产精品|