《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于LabVIEW的普通數據采集卡驅動研究
基于LabVIEW的普通數據采集卡驅動研究
武劍,李巴津
摘要: 虛擬儀器技術是20世紀90年代發展起來的一種新技術,融計算機和總線技術、微電子技術、測量技術于一身,它是對傳統儀器的重大突破,是計算機技術與儀器技術相結合的產物。它利用計算機系統的強大功能,結合相應的硬件,大大突破傳統儀器在數據處理、顯示和存儲以及系統維護和擴展等方面的限制。虛擬儀器的眾多優點使其得到了廣泛的應用,然而當今著名的虛擬儀器開發軟件(如LabVIEW等)只能支持NI公司生產的數據采集卡,而不能直接驅動普通的數據采集卡。本文重點研究了在虛擬儀器開發軟件平臺LabVIEW下使用普通數據采集卡的方法。
Abstract:
Key words :

    引 言
    虛擬儀器技術是20世紀90年代發展起來的一種新技術,融計算機和總線技術、微電子技術、測量技術于一身,它是對傳統儀器的重大突破,是計算機技術與儀器技術相結合的產物。它利用計算機系統的強大功能,結合相應的硬件,大大突破傳統儀器在數據處理、顯示和存儲以及系統維護和擴展等方面的限制。虛擬儀器的眾多優點使其得到了廣泛的應用,然而當今著名的虛擬儀器開發軟件(如LabVIEW等)只能支持NI公司生產的數據采集卡,而不能直接驅動普通的數據采集卡。本文重點研究了在虛擬儀器開發軟件平臺LabVIEW下使用普通數據采集卡的方法。


1 虛擬儀器開發平臺LabVIEW與數據采集卡的連接
    LabVIEW是美國NI公司推出的一種基于G語言(Graphics Language),即圖形化編程語言的虛擬儀器軟件開發工具,具有強大的數據采集功能,通常只支持NI公司的數據采集卡,而這些卡的價格比較昂貴。因此,為了能在LabVIEW平臺上驅動普通的數據采集卡,用戶必須通過LabVIEW所提供的調用庫函數節點(call Library Function Node,CLFN)及代碼接口節點(Code Interface Node,CIN)等功能,將功能強大、編程靈活、而且已有很多現成程序模塊的C語言同Lab-VIEW中編程直觀方便的圖形化G語言結合起來,從而實現用普通的數據采集卡來采集數據的功能,使LabVIEW在對硬件的支持上有了一個質的飛躍。
    在LabVIEW中利用CLFN節點可以較容易地實現訪問動態鏈接庫(DLL),而且在購買數據采集卡的時,廠商一般會給用戶提供動態鏈接庫。所以研究在LabVIEW平臺下調用動態鏈接庫驅動普通的數據采集卡來實現數據采集更具有普遍性。


2 基于動態鏈接庫的普通數據采集卡的驅動
2.1 動態鏈接庫概述
    動態鏈接是一種應用程序在運行時與庫文件連接起來的技術。動態鏈接庫(DLL)是一個可以多方共享的程序模塊,提供函數供Windows應用程序或其他的動態鏈接函數庫直接或間接調用,只有在別的模塊中調用了它的某個函數以后才發生作用。它是在應用程序運行時被裝入和鏈接的,而不是把庫代碼復制到應用程序中,只是在程序中記錄了函數的入口點和接口。動態鏈接庫獨立于編程語言,因此LabVIEW可以調用用大多數語言(如Visual C++,C++ Builder等)編寫生成的動態鏈接庫。在調用DLL的函數時,必須知道以下4個信息:函數返回的數據類型,函數調用的方式,函數的參數及類型,DLL庫文件的位置等。
2.2 LabVIEW對DLL的調用
    通過對Call Library Function Node的配置可以實現DLL的調用,關鍵要了解被調用的函數名稱、功能及其輸入/輸出參數。配置節點的目的在于指定DLL模塊中與LabVIEW數據交換的相應驅動函數。調用Call Library Function模塊,雙擊此模塊,在彈出CLF對話框中進行節點配置,CLF函數配置對話框見圖1。第一個參數“庫名或路徑”,填入需要調用的動態鏈接庫文件的名字和路徑。第二個參數“函數名”,是鏈接庫中要調用的函數名稱。當在庫名或路徑欄中設定了DLL的路徑后,在函數名下拉框中就可以看到該動態鏈接庫所包含的所有函數名。第三個參數“調用規范”,此欄中可以設置該動態鏈接庫是標準WINAPI調用還是普通的C調用。一般來說,都采用C調用,但是對于API調用則必須選擇stdeall(WINAPI),最后一個需要注意的參數選項是線程安全選擇,此欄中可以選擇DLL是否可以被重入調用,默認情況是在UI線程中運行,即該動態鏈接庫只能在User Interrace Thread下運行。如果動態鏈接庫中被調用的函數返回時間很長,那么就會導致LabVIEW不能執行UI線程中的其他任務,因此界面反應可能會很慢,甚至停止。這時候最好把它設為重入,若設置為重人,則該動態鏈接庫可以由多個線程同時調用,但前提是必須保證該DLL能被多個線程同時安全調用。

    在參數配置菜單下設置函數的返回值類型和輸入參數。對話框右側對應每一個參數的參數名稱、類型、數據類型、參數傳遞方式。其中,需要注意的是數據類型選項,在不同的編譯平臺下,數據類型的定義名稱是不一樣的。為了將數據類型一一對應,在LabVIEW中必須對數據類型名稱定義進行轉換。


3 普通數據采集卡在LabVIEW平臺下的應用實例
    以北京優采公司的UA301A型A/D數據采集卡為例,該采集卡在LabVIEW平臺下不能直接被驅動。該采集卡提供了一個動態鏈接庫ua300a.dll,此動態鏈接庫中提供了許多簡潔高效的采集和控制函數,支持UA301A采集器的各種功能。

    UA301A為12位的A/D卡,系統中采用的是雙極性輸入信號和雙極性原碼的編碼方法。轉換的結果為二進制數,轉換后得到0~4 095的數字量。為了直觀表示被測物理量,需將轉換后的數字量變換為具有實際工程意義的數值。當單極性信號輸入時,模擬電壓值V與數字量D的對應關系可描述為:V=D/4 095×10;當輸入信號為雙極性時,兩者的對應關系為:V=(D-2 048)/4 095×10。這個轉換過程在驅動設計中可采用Case結構來完成,把選擇輸入信號為單極性還是雙極性作為這個Case結構的布爾值輸入。數據采集驅動程序框圖如圖2所示。

 

    圖2中4個CLF節點分別用來調用OpenUA300,minitz,readdataz,CloseUA300這四個函數。
    對于LabVIEW與DLL函數之間傳遞數組類型數據,無論采用何種數組格式進行傳遞,都需要在Lab-VIEW中為數組預先分配空間,也就是給該數組開辟緩存,不然會導致程序崩潰。該程序在采集數據前預先為其初始化一個二維數組空間,為了使采集到的數據在數組中的位置始終對應于采樣的每一通道,初始化數組空間時設置每通道采樣點數為行,采集通道數為列,這樣數據從采集卡FIFO存入緩存時,每一列對應每一通道的數據,省去了后續通過循環索引出各通道數據的繁瑣。
    為了實現數據的連續采集,系統應保持在循環狀態,設計中采用WhiIe循環來實現這一功能,但是Lab-VIEW在執行While循環時,如果用戶沒有給它設定循環時間間隔,則它將以CPU的極限速度運行。這樣可能會導致整個LabVIEW程序看上去像死機一樣,所以需要給While循環加上一個指定的時間間隔。在采集前首先設置采樣通道、采樣頻率、采樣點數、增益和數據傳輸方式等參數,該接口驅動的前面板見圖3。

4 結 語
    由此可以看出,在LabVIEW中調用動態鏈接庫函數,來驅動普通數據采集卡的技術,顯示出了Lab-VIEW強大的外部程序接口能力。應用此方法設計數據采集系統一方面可充分利用LabVIEW的界面友好、圖形顯示和虛擬儀器強大的開發功能等優點;另一方面又能大大降低系統的開發成本,可以使LabVIEW在對硬件的支持上有一個質的飛躍。通過LabVIEW的外部程序接口CLF節點訪問動態鏈接庫來調用Windows標準庫函數,使得LabVIEW支持的數據采集板卡范圍突破了限制,同時也為Lab-VIEW訪問底層函數提供了一種新的思路。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲综合国产精品| 一区二区不卡在线视频 午夜欧美不卡'| 黑人巨大精品欧美黑白配亚洲| 欧美视频二区| 欧美精品在线观看| 欧美不卡在线| 蜜月aⅴ免费一区二区三区 | 亚洲免费成人| 亚洲国产精品一区二区久 | 一区二区三区免费网站| 日韩亚洲欧美在线观看| 亚洲日本欧美日韩高观看| 亚洲电影一级黄| 久久国产精品99久久久久久老狼| 翔田千里一区二区| 久久国产福利| 亚洲国产精品久久久久秋霞蜜臀 | 国产精品九九| 国产精品视频内| 国产欧美韩国高清| 国产在线麻豆精品观看| 国产一区在线看| 永久久久久久| 亚洲肉体裸体xxxx137| 99国产精品国产精品久久 | 亚洲欧美国产视频| 久久aⅴ国产紧身牛仔裤| 久久国产一区二区| 老色批av在线精品| 欧美剧在线观看| 国产精品电影观看| 国产精品一页| 极品av少妇一区二区| 亚洲高清在线视频| 99这里有精品| 午夜精品福利在线| 亚洲国产欧美精品| 99re热这里只有精品免费视频| 亚洲性色视频| 久久av最新网址| 免费在线欧美视频| 欧美色大人视频| 国产精品影片在线观看| 黄色在线成人| 亚洲伦理中文字幕| 亚洲欧美成人| 亚洲破处大片| 午夜久久资源| 美日韩精品免费观看视频| 欧美日韩成人综合在线一区二区| 国产精品久久二区| 极品少妇一区二区三区精品视频| 亚洲人成欧美中文字幕| 亚洲在线视频免费观看| 亚洲成色最大综合在线| 亚洲视频自拍偷拍| 久久精品最新地址| 欧美精品精品一区| 国产欧美精品日韩区二区麻豆天美 | 亚洲日本中文字幕区| 正在播放欧美视频| 久久精品免费电影| 欧美日韩一区二区国产| 国产在线观看一区| 一本色道88久久加勒比精品| 亚洲第一福利视频| 亚洲一区在线直播| 欧美成年人网| 国产伦精品一区| 亚洲精品精选| 久久国产欧美日韩精品| 亚洲一区二区三区精品动漫| 免费成人av资源网| 国产欧美精品| av不卡在线看| 亚洲精品久久久久久下一站 | 亚洲日本电影| 欧美一级免费视频| 亚洲午夜女主播在线直播| 久久综合九色九九| 国产精品腿扒开做爽爽爽挤奶网站| 91久久精品一区二区三区| 欧美一级欧美一级在线播放| 亚洲一区中文| 欧美精品v日韩精品v韩国精品v | 欧美日韩在线高清| 亚洲国产第一| 欧美一区二区三区免费视频| 亚洲一区二区在线| 欧美激情国产精品| 国产亚洲精品一区二区| 中文精品视频一区二区在线观看| 亚洲欧洲一区二区在线播放| 久久精品一区二区三区四区| 国产精品每日更新| 日韩午夜精品| 日韩亚洲国产精品| 欧美不卡视频一区| 精品福利av| 欧美一区二区在线播放| 亚洲欧美另类在线| 欧美日韩在线三区| 亚洲精品免费观看| 亚洲免费电影在线观看| 欧美 日韩 国产 一区| 国内精品亚洲| 久久精品免费观看| 久久婷婷国产综合国色天香| 国产女人水真多18毛片18精品视频| 在线一区欧美| 亚洲一区二区动漫| 欧美日韩国产小视频| 91久久久久| 亚洲毛片网站| 欧美精品亚洲精品| 亚洲精品国产精品乱码不99按摩 | 在线亚洲欧美专区二区| 欧美国产第一页| 在线观看视频一区| 亚洲经典自拍| 欧美黄色日本| 日韩一级大片| 亚洲一区二区久久| 国产精品第一区| 亚洲欧美激情诱惑| 久久av资源网| 韩日精品中文字幕| 亚洲第一在线综合在线| 欧美**字幕| 亚洲激情社区| 亚洲亚洲精品在线观看| 国产精品成人免费视频| 亚洲影视中文字幕| 久久精品视频va| 狠久久av成人天堂| 亚洲精品乱码久久久久久日本蜜臀| 免费欧美在线| 亚洲精品中文字幕女同| 亚洲一区三区在线观看| 国产女主播在线一区二区| 欧美一进一出视频| 老司机午夜精品视频在线观看| ●精品国产综合乱码久久久久| 亚洲精品日韩在线| 欧美日韩在线播放三区| 亚洲免费网址| 久热精品在线| 亚洲精品美女免费| 亚久久调教视频| 一区二区亚洲精品| av不卡在线观看| 国产精品久久久久毛片软件| 欧美一级黄色录像| 欧美激情精品久久久久久免费印度| 999在线观看精品免费不卡网站| 午夜久久99| 伊大人香蕉综合8在线视| aⅴ色国产欧美| 国产欧美一区二区精品性色| 亚洲国产成人久久综合一区| 欧美日韩1区| 午夜精品久久久久久99热| 免费欧美电影| 亚洲午夜电影在线观看| 久久久青草婷婷精品综合日韩| 亚洲激情在线观看视频免费| 午夜免费电影一区在线观看 | 亚洲国产精品一区二区尤物区 | 国产精品视频网| 最新成人av网站| 国产精品www| 亚洲国产二区| 国产精品久久97| 亚洲娇小video精品| 国产精品久久久久久久久借妻| 久久精品亚洲国产奇米99| 欧美日韩午夜| 亚洲国产成人porn| 国产精品毛片a∨一区二区三区| 亚洲欧洲精品成人久久奇米网| 国产精品捆绑调教| 亚洲日本成人网| 国产嫩草一区二区三区在线观看| 亚洲精品美女91| 国产视频一区二区在线观看 | 宅男精品导航| 欧美电影免费观看| 午夜精品区一区二区三| 欧美日韩岛国| 亚洲七七久久综合桃花剧情介绍| 国产精品嫩草99av在线| 亚洲伦理精品| 国产综合香蕉五月婷在线| 亚洲一级影院| 91久久久久久久久久久久久| 久久久久久亚洲精品中文字幕| 在线视频你懂得一区二区三区| 美女图片一区二区| 欧美一区二区三区精品| 国产精品久久久久久久午夜|