亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于VC++的PCI?6220應(yīng)用編程設(shè)計(jì)

        2015-04-13 19:26:22林立杰胡志英
        現(xiàn)代電子技術(shù) 2015年1期
        關(guān)鍵詞:單端板卡計(jì)時(shí)

        林立杰 胡志英

        摘 要: 對(duì)于NI公司的低成本多用途數(shù)據(jù)采集板卡PCI?6220,給出了一些VC++應(yīng)用程序設(shè)計(jì)。首先介紹了該板卡的功能特性,其次對(duì)該板卡的測(cè)試和應(yīng)用方法進(jìn)行了研究,結(jié)合該板卡的功能特性,調(diào)用API庫(kù)函數(shù)進(jìn)行編程設(shè)計(jì),使其適合于該板卡的應(yīng)用場(chǎng)合。

        關(guān)鍵字: 板卡功能; 數(shù)據(jù)采集; 采樣率; 軟件編程

        中圖分類號(hào): TN911?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)01?0147?03

        Abstract: Design of some VC++ application programs is given for the low?cost and multi?purpose data acquisition card PCI?6220. The card′s function features are introduced. The card′s test and application methods are researched. In combination with the card′s function features, the functions called from the API Library are used for programming design, make them suitable for application occasions of the card.

        Keywords: card function; data acquisition; sample rate; soft programming

        0 引 言

        NI?DAQmx是NI公司數(shù)據(jù)采集驅(qū)動(dòng)軟件的簡(jiǎn)稱,是用于NI數(shù)據(jù)采集(DAQ)設(shè)備通信、能夠?yàn)樵O(shè)備配置虛擬通道和測(cè)量任務(wù)的圖形化工具,可基于虛擬通道和任務(wù)生成NI?DAQmx代碼,提供速度快的單點(diǎn)模擬I/O和多線程設(shè)計(jì); 無(wú)需連接實(shí)際的硬件,方便應(yīng)用程序的測(cè)試和修改等。

        NI PCI?6220屬于M系列板卡,該系列的板卡都使用NI公司數(shù)據(jù)采集驅(qū)動(dòng)軟件NI?DAQmx。每個(gè)驅(qū)動(dòng)都有自己的API函數(shù),包括相應(yīng)的硬件配置和軟件配置。M系列板卡有多達(dá)16種編程功能接口信號(hào)。M系列設(shè)備板卡使用板上振蕩器生成一個(gè)40 MHz的頻率時(shí)鐘,為板卡提供時(shí)鐘源。

        1 功能特性

        1.1 模擬數(shù)據(jù)采集功能

        板卡具有16路分辨率為16位的模擬輸入端口,模擬輸入接線方式可以按照8路差分方式(AI0~AI7:AI8~AI15),也可以按照16路單端接地方式,設(shè)計(jì)者可以根據(jù)信號(hào)抗干擾性要求進(jìn)行選擇。

        板卡最大采樣率為250 KS/s單通道采樣或者按照所有通道總和采樣率為250 KS/s進(jìn)行。實(shí)際采樣率可以由設(shè)計(jì)者在相應(yīng)API函數(shù)中按照實(shí)際需要進(jìn)行設(shè)置,并不需要設(shè)置為最大值。模擬電壓輸入最大電壓能夠承受±10 V。

        1.2 數(shù)字I/O功能

        板卡具有24條數(shù)字I/O線,8路高速可達(dá)1 MHz時(shí)鐘線,可以通過(guò)編程實(shí)現(xiàn)數(shù)字信號(hào)讀和數(shù)字信號(hào)輸出功能。

        1.3 觸發(fā)計(jì)時(shí)功能

        板卡具有2個(gè)32位80 MHz計(jì)時(shí)器,可以通過(guò)計(jì)時(shí)觸發(fā)控制輸出0.5 ms級(jí)脈沖波形。

        2 板卡測(cè)試及應(yīng)用研究

        在板卡應(yīng)用前需要明確以下概念:

        (1) 物理通道和虛擬通道

        物理通道表示直接在上面測(cè)量、產(chǎn)生電壓或數(shù)字信號(hào)的物理管腳或終端。例如物理通道標(biāo)示為Dev0/ai1,表示設(shè)備標(biāo)識(shí)符為Dev0,通道標(biāo)識(shí)符為ai1,為模擬輸入通道1。而虛擬通道則與每次測(cè)量任務(wù)相結(jié)合,對(duì)應(yīng)于各物理通道及其設(shè)置,包括在端口連接、測(cè)量或生成的信號(hào)類型、縮放信息。在NI?DAQmx 中,各項(xiàng)測(cè)量都不能缺少虛擬通道。通過(guò)配置虛擬通道作為任務(wù)的一部分或獨(dú)立于一個(gè)任務(wù)。

        (2) 任務(wù)

        任務(wù)是具有定時(shí)、觸發(fā)或其他特性的一個(gè)或多個(gè)虛擬通道。理論上,任務(wù)就是要執(zhí)行的測(cè)量任務(wù)或生成信號(hào)任務(wù)。可以在任務(wù)中設(shè)置或者保存所有的配置信息,并且可以將任務(wù)用于應(yīng)用程序。

        (3) 采樣率

        數(shù)據(jù)采集需要考慮采樣類型,PCI?6220板卡采樣類型有DAQmx_Val_ContSamps連續(xù)采樣和DAQmx_Val_FiniteSamps 有限采樣兩種。連續(xù)采樣表示在一段時(shí)間內(nèi)不間斷對(duì)端口讀數(shù)據(jù),而有限采樣表示點(diǎn)擊一次即采集一次數(shù)據(jù)。采樣率通常又被稱為掃描率(the Scan Rate),采樣率越高,采集的信號(hào)精度就越高。

        2.1 板卡應(yīng)用前測(cè)試

        在機(jī)器PCI插槽插入NI PCI?6220板卡后,安裝驅(qū)動(dòng)程序,需檢測(cè)板卡功能是否正常。 運(yùn)行NI公司提供的Measurement &Automation Explorer軟件,點(diǎn)擊“設(shè)備和接口”項(xiàng)目下出現(xiàn)的“NI PCI?6220(68?pin):“Dev1”選項(xiàng),如圖1所示。點(diǎn)擊右邊欄“自檢”,檢驗(yàn)設(shè)備是否安裝自檢正常。

        2.2 模擬輸入采集

        模擬輸入通常采用單端輸入和差分輸入方式。單端輸入表示信號(hào)一端接輸入端口,另一端接公共參考地,單端輸入連接如圖2所示。差分輸入表示信號(hào)兩端分別輸入給兩個(gè)模擬輸入端,信號(hào)大小為兩個(gè)模擬輸入端電壓差,差分輸入連接如圖3所示。通常建議采用差分輸入方式,這種方法抗干擾能力強(qiáng),能較好抑制共模電壓輸入影響。

        2.3 測(cè)量流程圖

        圖4舉例描述創(chuàng)建測(cè)量電壓的模擬輸入測(cè)量流程,與數(shù)字I/O的測(cè)量流程類似,只需替換其中的測(cè)量函數(shù)。

        3 應(yīng)用編程設(shè)計(jì)[1?2]

        為使用NI DAQmx API函數(shù),需要在VC++ 6.0的“project?>Settings?>Link”下鏈接庫(kù)文件NIDAQmx.lib,同時(shí)在程序中引用頭文件NIDAQmx.h。

        3.1 模擬輸入編程[3?4]

        如果需要讀取通道第0~5和第15通道的單端連續(xù)電壓,其測(cè)量范圍為0~10 V。如2.3節(jié)所示,測(cè)量前需要?jiǎng)?chuàng)建通道,生成測(cè)量任務(wù)DAQmxCreateTask("",&*phTaskHandle);申明DAQmxCreateAIVoltageChan(*phTaskHandle,"Dev1/ai0:5,Dev1/ai15","",DAQmx_Val_RSE,0,10.0,DAQmx_Val_Volts,NULL);然后開(kāi)啟任務(wù)DAQmxStartTask(*phTaskHandle);最后調(diào)用函數(shù)DAQmxReadAnalogF64(hTaskHandle,?1,1,DAQmx_Val_GroupByChannel ,fReadData,7,&nReadVal,NULL);將7個(gè)數(shù)據(jù)不間斷地讀取到fReadData中。在WindowsXP操作系統(tǒng)下,為了提高實(shí)時(shí)性,可以調(diào)用硬件定時(shí)精度函數(shù)QueryPerformanceCounter進(jìn)行計(jì)時(shí),可精確到1 ms。

        3.2 數(shù)字I/O輸入編程[5]

        如果需要讀取PORT1的數(shù)字I/O通道數(shù)據(jù),測(cè)量前也需要?jiǎng)?chuàng)建通道,生成測(cè)量任務(wù)DAQmxCreateTask("",&*phTaskHandle);然后調(diào)用申明虛擬通道的函數(shù)DAQmxCreateDIChan(*phTaskHandle,"Dev1/port1/line0:7","",DAQmx_Val_ChanForAllLines));開(kāi)啟任務(wù)DAQmxStartTask(*phTaskHandle);再調(diào)用讀所有通道數(shù)據(jù)的函數(shù)DAQmxReadDigitalLines(hTaskHandle,1,10.0,DAQmx_Val_GroupByChannel,nReadData,8,&nReadNum,&nBytesPerSamp,NULL),讀取8個(gè)數(shù)據(jù)。

        3.3 數(shù)字I/O輸出波形編程[6]

        通過(guò)數(shù)字I/O通道輸出數(shù)字波形相對(duì)于前面兩種編程模式要復(fù)雜,需要用到計(jì)時(shí)觸發(fā)功能。特別是如果要輸出兩路有關(guān)聯(lián)性的脈沖波形,需要算出兩路脈沖波形之間的最小計(jì)時(shí)波形精度。這里給出通過(guò)計(jì)時(shí)器CTRO計(jì)時(shí)、PORT0的0和1端口輸出關(guān)聯(lián)脈沖精度的編程方法。首先創(chuàng)建計(jì)時(shí)任務(wù)DAQmxCreateTask("",&*phTaskHandle),其中phTaskHandle為計(jì)時(shí)任務(wù)句柄指針;調(diào)用DAQmxCreateCOPulseChanFreq(*phTaskHandle,"Dev1/ctr0","",DAQmx_Val_Hz,DAQmx_Val_Low,0.0,UpdateRate,0.50)函數(shù)生成0.5 ms精度的計(jì)時(shí)脈沖頻率,其中UpdateRate約束為1/0.5 ms;調(diào)用函數(shù)DAQmxCreateTask("",wdTaskHandle)創(chuàng)建輸出脈沖波形任務(wù),其中wdTaskHandle表示脈沖輸出任務(wù)指針;接著調(diào)用DAQmxCreateDOChan(*wdTaskHandle,"Dev1/port0/line0:1","",DAQmx_Val_ChanPerLine )函數(shù)申明虛擬任務(wù)通道;再調(diào)用DAQmxCfgSampClkTiming(*wdTaskHandle,"/Dev1/Ctr0InternalOutput",UpdateRate,DAQmx_Val_Falling,DAQmx_Val_FiniteSamps,nBufLength)函數(shù)表示CTR0內(nèi)部輸出計(jì)時(shí)屬性為下降沿、有限采樣;接著調(diào)用函數(shù)DAQmxWriteDigitalLines (*wdTaskHandle, nBufLength, 0, 10.0, DAQmx_Val_GroupByChannel, uDataBuf, NULL, NULL)申明寫數(shù)據(jù)線方式輸出uDataBuf內(nèi)包含的數(shù)據(jù),連續(xù)啟動(dòng)計(jì)時(shí)任務(wù)和波形輸出任務(wù)后開(kāi)始執(zhí)行波形輸出任務(wù)。

        4 結(jié) 論

        在PCI?6220板卡模擬輸入試驗(yàn)中,要充分注意到差分方式和單端方式采集電壓的不同,信號(hào)接地方式將會(huì)影響到電壓采集的真實(shí)性,如果通道數(shù)目足夠,盡量采樣差分方式采集模擬信號(hào)。

        波形輸出編程需要精確考慮計(jì)時(shí)觸發(fā)的時(shí)間精度,尤其對(duì)于輸出關(guān)聯(lián)脈沖波形來(lái)說(shuō),需要計(jì)算在計(jì)時(shí)精度條件下波形編碼方式,即0、1信號(hào)的數(shù)量,以此確定輸出數(shù)據(jù)緩沖區(qū)的大小和長(zhǎng)度。

        上述編程方式經(jīng)過(guò)一定實(shí)驗(yàn)驗(yàn)證,表明該采集板卡對(duì)慢變信號(hào)、高速信號(hào)等模擬輸入信號(hào)以及數(shù)字I/O信號(hào)都能夠很好地完成數(shù)據(jù)采集任務(wù)。脈沖波形輸出的編程流程更復(fù)雜化,需要考慮的方面更多,本文在這里提供參考。

        參考文獻(xiàn)

        [1] LRINRVKRT R C. Visual C++ Bible[M].北京:電子工業(yè)出版,1999.

        [2] 徐曉剛,高兆法,王秀娟.Visual c 6.0入門與提高[M].北京:清華大學(xué)出版社,1999.

        [3] 崔常府.基于NI的計(jì)算機(jī)控制程序開(kāi)發(fā)[D].青島:中國(guó)石油大學(xué)(華東),2009.

        [4] 李凈,楊俊武,錢旭.用多媒體定時(shí)器精確控制采樣頻率[J].計(jì)算機(jī)應(yīng)用,2000(12):67?68.

        [5] 陳銀輝,張銀鴻.LabView 8.20程序設(shè)計(jì)從入門到精通[M].北京:清華大學(xué)出版社,2007.

        [6] 黃松嶺.虛擬儀器設(shè)計(jì)基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2008.

        猜你喜歡
        單端板卡計(jì)時(shí)
        暢游計(jì)時(shí)天地
        車迷(2022年1期)2022-03-29 00:50:24
        腕表計(jì)時(shí)2.0
        12時(shí)計(jì)時(shí)法與24時(shí)計(jì)時(shí)法的互化
        基于PCI9054的多總線通信板卡的研制
        基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
        24時(shí)計(jì)時(shí)法
        多路輸出單端反激開(kāi)關(guān)變換器設(shè)計(jì)
        基于DSP的單端反激式開(kāi)關(guān)電源的建模與分析
        一種基于光纖數(shù)據(jù)傳輸?shù)亩喟蹇ㄜ浖绦驘龑懠夹g(shù)
        單端反激開(kāi)關(guān)電源反饋網(wǎng)絡(luò)的研究
        免费无码专区毛片高潮喷水| 四虎成人精品国产一区a| 国产精品美女一级在线观看| 亚洲女同性恋激情网站| 亚洲蜜臀av一区二区三区| 国产免费爽爽视频在线观看| 人妻无码一区二区三区四区| 精品国产一区二区三区香蕉| 久久精品亚洲熟女九色| 日韩少妇人妻中文字幕| 三年在线观看免费大全下载| 亚洲国产麻豆综合一区| 白丝美女扒开内露出内裤视频 | 色先锋资源久久综合5566| 亚洲av永久无码精品成人| 国内精品国产三级国产| 午夜无遮挡男女啪啪免费软件| 男人扒开女人双腿猛进女人机机里| 美腿丝袜av在线播放| 亚洲精品成人无百码中文毛片| 人妻丰满熟妇av无码区hd| 久久青青草原亚洲AV无码麻豆| 久久综合九色综合久久久| 久久99精品久久久久久噜噜| 日日躁夜夜躁狠狠躁超碰97| 亚洲人成绝费网站色www| 一区二区三区在线视频观看| 精品国产一二三产品区别在哪 | 亚洲成熟丰满熟妇高潮XXXXX| 少妇太爽了在线观看免费 | 亚洲暴爽av天天爽日日碰| 国产不卡一区二区av| 风韵丰满熟妇啪啪区99杏| 天堂aⅴ无码一区二区三区| 无码一区二区三区不卡AV| 亚洲三级香港三级久久| 免费观看18禁无遮挡真人网站| 97se亚洲国产综合自在线图片| 亚洲精品一区二区三区蜜臀| 久久99精品久久久大学生| 亚洲精品国产成人无码区a片|