一、基于LabVIEW的通用數據采集卡的驅動
介紹一種通過LabVIEW提供的Call Library Function Node實現對動態鏈接庫(DLL)調用的方法,完成對通用數據采集卡的驅動,實現LabVIEW與通用數據采集卡的結合。?
LabVIEW驅動通用數據采集插卡的方法有三種。
其一,直接用LabVIEW的Function模板內Advanced子模板的Port I/O圖標編程,通過手動對基地址的設置,直接從特定的地址內存中讀取數據。若采樣速度要求不高,它是很方便直觀的方法;其二,利用LabVIEW的Functions模板內Advanced子模板中CIN(Code Interface Node)圖標,它適用于直接調用文字編程語言(如VC)所編寫的代碼。用CIN結點生成A/D驅動程序的子VI的方法可充分發揮A/D的高轉換速度,獲得高的采樣速率。但編程較煩雜,不能由LabVIEW直接修改;其三,用LabVIEW的Functions模板內Advanced子模板中Call Library Function Node圖標,動態鏈接數據采集卡的DLL庫函數。DLL實際上是一個函數庫,只在應用程序運行時DLL中的函數才被隨時調用和連接。和靜態連接庫相比,DLL可以和其他應用程序共享庫中的函數和資源。許多數據采集插卡生產商提供DLL庫函數形式的驅動程序,用戶可使用某種DLL鏈接庫的編程工具,如VC、VB編寫應用程序來調用它。同樣,LabVIEW也提供了該功能,就是圖標Call Library Function Node,放在Function模板內的Advanced子模板中,通過設置該節點來直接調用DLL。?
在本研究系統中采用第三種方法,實現了在線切削力的數據采集。采用基于ISA總線的數據采集卡ACL-8111,DLL直接由生產廠家提供。?
輸入信號范圍:±5V,±2.5V,±1.25V,±0.625V,±0.3125V(軟件編程選擇);最高采樣頻率:30kHz;觸發模式:軟件、在板可編程定時器或外觸發;數據傳輸:程序控制、中斷控制;IRQ級別:可編程IRQ2,3,4,5,6,7;通道數:8路單端通道。
本系統輸入信號范圍±5V,采樣頻率2000Hz,A/D數據轉換觸發模式采用在板可編程定時器觸發,數據傳輸采用中斷控制,中斷級別設置為5,通道數為3,三個通道分別采集和傳輸獲得X,Y、Z三向切削力。?
待采集的模擬信號通過電荷放大器放大,根據預先設定選擇不同的增益;輸出的信號進行A/D轉換,轉換結束后,將12位轉換結果自動存在數據寄存器中,然后通過中斷控制將數據取出,送入計算機內存進行處理。在使用時,將采集卡直接插入計算機ISA插槽中,使用其預先設定的基地址220H。?
二、數據采集與轉換中的關鍵問題
數據采集與轉換系統用于將模擬信號轉換為數字形式進行分析或傳輸。模擬信號輸入通常是由互感器和傳感器將壓力、溫度、應力或張力、流量等真實信號轉換為相應的電信號。系統保存信號準確性和完整性的能力是衡量系統的主要指標。如何設計一個高性能的數據采集與轉換系統需要考慮多方面的因素,本文就其中的一些關鍵問題給出自己的討論。
數據采集轉換系統的基本框架
模擬信號進行采集并轉換為相應數字形式所需的基本元素包括:模擬多路復用器和信號調節;放大器;模數轉換器;PC 或 MCU。
圖1 為數據采集系統典型框圖。目前的數據采集系統通常包括數據采集與轉換所需的所有元素,不過有時可能不包含模擬多路復用之前的輸入濾波與信號調節。模擬信號由模擬乘法器進行時間多路復用;多路復用器輸出信號通過放大器輸入A/D轉換器。我們可對采樣/保持進行編程,以便采集并保持經各 A/D 轉換器轉換成的數字多路數據采樣。轉換后的數據以并行或串行形式出現在 A/D 轉換器的輸出中,以備終端設備做進一步處理。
圖1
系統采樣率
被轉換數據的應用與最終使用決定了數據采集與轉換系統所需的采樣率和轉換率。系統采樣率由最高帶寬通道、數據通道的數量以及每次循環的采樣數決定。
圖2
混疊誤差
根據奈奎斯特采樣定理,在理想的采樣數據系統中,數據帶寬的每次循環要求最少兩次采樣,這樣恢復被采樣信號才不會丟失信息。因此,確定系統采樣率時首先要考慮的就是混疊誤差,也就是由于在信號頻率的每次循環中采樣數量不足所造成的信息丟失。圖 2 顯示了在數據帶寬的每次循環中采樣數量不足所造成的混疊誤差。
每次循環需要多少個采樣
這個問題的答案取決于允許的平均誤差容限、重建方法(如果存在)以及數據的最終使用。
采樣數據的平均精度可通過以下途徑加以改進:(1) 增加每次循環的采樣數;(2) 多路復用前預采樣濾波,或 (3) 過濾 D/A 轉換器輸出。圖3顯示了采樣數據的重建,這里 fS= 2fMAX。
如圖 4 所示,每次循環采樣數只要稍許增加,采樣數據的平均精度就會大幅上升。理論限制在于持續采樣時采集與轉換系統的吞吐量精度。對于數據的零階重建,從圖 4 可以看出,重建采樣數據達到平均 90% 乃至更高的精度要求對數據帶寬的每次循環進行10次采樣。通常所用的范圍是每次循環7~10 次采樣。
圖3
圖4
采樣誤差
采樣誤差的定義是:采樣過程中動態數據變化的不確定性所造成的采樣數據點的幅值與時間誤差。在數據采集和轉換系統中,通過使用采樣/保持器或快速的 A/D轉換器,就能減小采樣誤差或使之不顯著。對于正弦數據,最大采樣誤差出現在零交叉情況下,這時會出現最大的 dv/dt。
關于 A/D 轉換器的幾點說明
A/D轉換器的轉換速度和分辨率是最重要的兩個參數。下面簡單討論一下 A/D 轉換器術語將有助于讀者更好地了解系統分辨率與精度。
速度:主要由A/D 轉換器的采樣時間及轉換時間構成。A/D轉換器手冊均會在采樣動態參數 (Sampling Dynamics)標出轉換速度。有時是數據吞吐率(Throughput Rate)。逐次逼近型AD轉換器采樣速率或數據吞吐率一般從幾十千次每秒到幾兆次每秒。
分辨率:A/D 轉換器的比特數決定著數據采集系統的分辨率。A/D 轉換器分辨率的定義如下:---1 LSB = VFSR/2n,
LSB = 最低有效位,VFSR =滿量程輸入電壓范圍,這里,n為A/D轉換器的分辨率。比特數決定著數字碼的數量,對A/D轉換器而言有2n個離散數字代碼。就本文的討論而言,我們將使用二進制逐次逼近A/D轉換器。表1顯示了典型A/D轉換器的分辨率和 LSB的值。
表1
信噪比:理想AD轉換器的信噪比為 SNRdB=6.02×n-1.76,表2 為AD 轉換器位數與信噪比的簡單對照表。
表2
精度:假定所有模擬值都位于 A/D 轉換器輸入處。A/D 轉換器量化或編碼特定的模擬輸入值為相應的數字代碼作為一種輸出。上述數字代碼有著內在的不確定性或 ±1/2LSB 的量化誤差。這就是說,量化的數字代碼所代表的模擬電壓與相鄰數字代碼中間點的距離在 ±1/2LSB 之內。A/D轉換器的精度不會超過內在的 ±1/2LSB 的量化誤差所允許的范疇。增益、偏移和線性誤差等模擬誤差也會影響 A/D 轉換器的精度。增益和偏移通??烧{節為零,但線性誤差是不可調的,因為它是由固定值的梯形電阻器網絡和網絡開關匹配造成的。大多數高質量A/D轉換器的線性誤差都低于±1/2LSB。另一個需要重點考慮的誤差是微分線性誤差。在理想的 A/D 轉換器中,相鄰過渡點間的步進大小為一個 LSB。微分線性誤差就是在實際 A/D 轉換器中相鄰過渡點與理想的 LSB 步進差距。該誤差必須小于一個 LSB,這樣才能保證不會丟失代碼。線性誤差為 ±1/2LSB 的 A/D 轉換器不一定意味著不會丟失代碼。圖5為微分線性、失調及增益誤差圖。
圖5
二進制代碼:二進制編碼的數據格式是數字計算機類型應用中最常見的,其處理通常以二進制形式進行。A/D 轉換器中最常用的二進制編碼為:
1. 單極標準二進制 (USB)——用0~±10V等。
2. 雙極偏移二進制 (BOB)——用于雙極模擬信號范圍,如 ±5V、±10V 等
3. 雙極雙組件 (BTC)——用于許多數字計算機應用中的雙極模擬信號范圍。
在 A/D 轉換器中使用兩種 BCD 編碼,單極 BCD 和符號數值 BCD (SMD)。
表3
三、數據采集測量結果改善的常用校正方法
改善測量結果需要進行配置、校準以及優秀的軟件開發技術。本文旨在使您了解優化測量結果的軟、硬件技巧,內容包括:選擇并配置數據采集設備、補償測量誤差以及采用優秀的軟件技術。
當您將電子信號連接到數據采集設備時,您總是希望讀數能匹配輸入信號的電氣數值。但我們知道沒有一種測量硬件是完美的,所以為了改善測量結果我們必須采用最佳的硬件配置。
根據應用需求,您必須首先要明確數據采集卡所需的模擬輸入、輸出通道以及數字I/O線的最少數目。其次還要考慮的重要因素有:采樣率、輸入范圍、輸入方式和精度。
第一個要考慮的問題是現場接線,根據您要采集的信號源類型,您可以使用差分、非參考單端、參考單端三種輸入方式來配置數據采集卡。
總的說來,差分測量系統較為可取,因為它能消除接地環路感應誤差并能在一定程度上削弱由環境引起的噪聲。而另一方面,單端輸入方式提供兩倍數據采集通道數,可是僅適用于引入誤差比數據所需精度小的情況。表1為選擇合適的信號源模擬輸入方式提供了指導
選擇合適的增益系數也是非常重要的。保證數據采集產品進行精確采集和轉換所設定的電壓范圍叫做輸入信號范圍。為得到最佳的測量精度,使模擬信號的最大最小值盡可能占滿整個ADC(+/-10V或0-10V)范圍,這樣就可使測量結果充分利用現有的數字位。
在數據采集系統中選擇合適的增益
圖1表示同在10V的輸入范圍下使用不同的增益系數,輸入5V信號得到的采集結果。請注意:選取合適的增益系數能夠充分利用ADC并改善您的測試結果。
任何測量結果都只是您要測量的“真實值”的估計值,事實上您永遠也無法完美地測量出真實值。這是因為您測量的準確性會受到物理因素的限制,而且測量的精度也取決于這種限制。
在特定的范圍內,16位數據采集卡有216(65536)種數值,而12位數據采集卡有212 (4096)種數值。理想情況下,這些數值在整個測量范圍內是均勻分布的,而且測量硬件會把實際測量值取整成最接近的數值并返回計算機內存。事實上有許多人認為,這種取整誤差(通常稱為量化誤差)是決定精度的唯一因素。實際上,這種量化誤差,在 12位多功能數據采集卡中只占總誤差的35%,而在類似的16位卡中就更微不足道了。不管您使用12位還是16位數據采集卡,都不能只考慮這種量化誤差。
放大器中的缺陷,如電阻器容限和模擬-數字轉換特性,都會產生增益誤差。這種誤差通常以總讀數的百分比表示。為了補償這部分誤差,您可以進行內部校準。內部校準不僅能夠補償增益誤差還能補償溫度變化引起的誤差。這需要一個帶有溫度相關誤差容限的板載參考源。數據采集設備和其它類型的傳統儀器都采用內部校準,通常也被稱為自校準。
E系列校準VI
在LabVIEW中,您可以使用“E系列校準VI(E-Series Calibrate VI)”來對數據采集設備進行校準(圖2)。一旦板卡處于工作環境,經常校準能確保最精確、最穩定及可重復的測量結果,在自校準過程中可對模擬輸入和模擬輸出都能完成自校準。
由于有增益前偏差、增益后偏差和增益誤差校準,自校準會建立一個校準常數集合。完成一次校準之后,新的校準常數將被加載到板卡的存儲器上。舊的校準常數可以保存到EEPROM中,這樣在必要時可以重新加載。一旦板卡停止供電,如果還需要校準常數,那保存工作則是非常重要的。如果沒有把校準常數保存到EEPROM中,關閉計算機之后這些數據就丟失了。
放大器的缺陷或者模擬-數字轉換會產生非線性誤差。在輸入范圍內,增益系數的微小變化就會產生非線性誤差,這種誤差一般表示為滿量程的百分數。到現在還沒有一種簡單的校準方法能夠補償這種非線性誤差。因此仔細挑選數據采集卡是非常關鍵的。設備的相關精度表示非線性誤差的總值,相關精度定義為數據采集設備測量精度的最低有效位數。它包括所有非線性誤差和量化誤差,不包括偏差和增益誤差。知道了數據采集卡的相關精度就可以為所有讀數建立容限。
為進一步提高測試結果的精度,還必須補償任何偏移誤差。偏移誤差在輸入范圍內是不變的,因此,糾正起來相對容易些。您可以先測量短路通道的偏移誤差,然后用以后的讀數減去這個值。
采用優秀的軟件技術
提高讀數精度的一種很好的軟件技術就是求平均值。求平均值的前提是噪聲和測量誤差是隨機的,因此,根據中心極限定理,誤差服從正態分布(高斯分布)。選取多個點后呈高斯分布,計算出平均值,平均值在統計上非常接近真實值。因此,所選取的要平均的點越多,平均值的標準偏差就越小。因為標準偏差會隨著樣本數量增加而減小,所以應當盡可能提高用于平均的采樣點數。
定期的自校準也是一種好方法,它能夠在任何時候保持測量精度。執行定期內部校準(建議每天進行)可以補償溫度和環境變化引起的誤差。
四、基于LabVIEW和PCI-5124的數據采集系統設計
摘要:設計一種基于虛擬儀器LabVIEW和高速數字化儀NI PCI-5124的高采樣率、長時間的數據采集分析實驗系統。該系統可實現20 MHz甚至更高采樣率以及數據信號長時間的實時采集,并具有實時存儲、回放、信號分析、報表打印功能。實驗表明:該系統具有程序設計簡單、通用性好、可移植性高、界面設計簡單大方、易于操作等優點。
傳統數據采集系統一般由單片機與硬件采集電路或數據采集卡配置計算機組成。這種數據采集系統存在開發難度大、可移植性差、數據采集效率低、實時存儲容量小等缺點。其存儲容量取決于數據采集卡的板載內存的大小,一般只有8 MB或12 MB,而現代工程運用中的數據采集系統需具有很高的采樣速率,完成海量數據的實時存儲。針對傳統數據采集系統存在的不足,這里采用虛擬儀器(LabVIEW)和高速數字化儀NI PCI-5124設計一種可以長時間連續采集、實時存儲的數據采集系統。
本系統只使用PC機、數據采集卡以及編程語言即可在Windows操作系統下實現對數據的采集、存儲、處理,開發成本低,通訊能力強,易于使用。系統改善了傳統數據采集系統的存儲量小、采集效率低等缺點,可實現信號的長時間實時采集、存儲、回放、分析、報表打印等功能。
1 系統硬件設備簡介
該系統硬件設計結構原理框圖如圖l所示。
系統硬件設計主要包括PC控制機和高速數據采集卡。由于許多插入式的數據采集DAQ(Data Acquisition)設備采集數據不僅受到采樣速率的限制,而且受到板載內存和數據到PC機內存的傳輸速率的限制。
針對以上問題,本設計選用插入式DAQ產品中價位低、速率快、精度高的高速數字化儀NI PCI-5124。它可以直接插入計算機的PC捕槽,即插即用使用方便,具有200 MS/s的實時采樣至4.0 GS/s的等效時段采樣;標準8~256 MB大容量板載內存;基于PCI總線的12位分辨率的雙同步采樣通道;使用新技術實現在2個150 MHz帶寬的、帶有去噪和抗混疊濾波器的輸入信道中同步采樣;高達75 dBc的無寄生動態范圍SFDR(Spufious-Free Dynamic Range);基于NI同步和存儲核心SMC (Synchronization and Memory Core)構架,具備每通道512 MB板載內存、快速數據傳輸和緊密的同步功能。工程師們可以在幾十皮秒(ps)內同步基于SMC的模塊化儀器,主要有邊緣、視窗、滯環、視頻和數字等觸發方式,主要用于高通道和混合信號應用。
專用數據采集長的驅動方式分為外掛式驅動和內置式驅動兩種。對于NI公司生產的各種專用數據采集卡,可使用LabVIEW內的DAQ庫直接對端口進行各種操作,即內置式驅動。NI數據采集卡提供對LabVIEW豐富且完備的支持,驅動函數在底層的基礎函數上進行高度封裝,用戶無需深入了解采集卡的具體工作,只要掌握驅動函數輸入/輸出端口的意義,就能進行數據采集開發。因此用戶使用NI PCI-5124時,只需將所需接口從程序中直接調用至系統開發環境中,即可實現采集、存儲以及回放等功能。
2 數據采集系統設計
2.1 程序設計
LabVIEW是一種基于圖形語言編程的可視化軟件開發平臺,與VC、VB等其他可視化編程語言相比,其函數庫豐富、調試方便,而且開發界面簡單,界面風格與傳統儀器相似。LabVIEW是一個外觀和操作均能模仿實際儀器的程序開發環境,類似于C、BASIC等編程語言。但LabVIEW的特點在于使用圖形化編程G語言在流程圖中創建源程序,而非使用基于文本的語言產生源程序代碼。與傳統C、C++等編程語言不同,LabVI-EW采用強大的圖形化語言編程,面向測試工程師而非專業程序員,編程方便,人機交互界面直觀友好,具有強大的數據可視化分析和儀器控制能力。
本實驗系統主要由數據采集、存儲和數據處理等部分組成。其中數據采集包括采集設置和數據采集波形顯示;數據處理包括信號時頻域參量測量、信噪比測量以及報表打印等。系統工作流程如圖2所示。
本系統基本工作過程是:肩動LabVIEW程序后,首先設置高速數據采集卡PCI-5124的通道、采樣模式、采樣頻率、觸發類型、觸發電平等,然后啟動采集,進行長時間連續的數據采集并利用流艋技術將采集到的信息實時存儲于計算機硬盤,由于采集到的信息量很大,因此對采集到的數據進行離線處理,以減輕計算機CPU負擔,提高數據處理速度。
2.2 數據采集模塊
數據采集是從傳感器和其他待測設備等模擬和數字被測單元中自動采集各種參量(物理、化學、生物量等)信息的過程。數據采集操作的結果直接影響后續數據處理、分析,數據采集功能模塊利用NI-Scope函數進行數據采集,為了讓數據采集設備在后臺連續采集數據并送入緩存區,首先,初次安裝好NI PCI-5124數據采集卡和驅動程序以后,計算機將自動設置其I/O地址和中斷號,并分配內存資源,打通LabVIEW程序和底層驅動NI-Scope的通道。其次,在程序界面設置采樣頻率、采集通道、數據存儲方式并啟動程序實時采集。由于需要觸發某事件后(例如點擊“運行采集”按鈕)進行采集,本設計采用可編程掃描和當前軟件觸發采集模式:采集啟動后,下層NI-Scope驅動程序獨立控制硬件高速數字化儀PCI-5124進行數據采集,并將采集結果利用流盤存儲方式跳過采集卡的緩沖區直接讀取到應用軟件的計算機硬盤中,處理數據。數據采集波形如圖3所示,該模塊完成連續數據采集,實時顯示信號并刷新。
2.3 數據存儲回放模塊
數據存儲功能模塊由文件的類型簇、數據文件存儲路徑、TDMS Dialog函數、open TDMS函數、write TDMS函數、close TDMS函數以及error函數組成,本程序中調用openTDMS函數打開TDMS文件,當運行至此時,數據會依據原先設置的存儲路徑和類型將數據持續寫入指定計算機文件中。由于本設計要存儲海量數據,因此采用基于流盤技術的存儲方式。流盤是一項在進行多次寫操作時保持文件打開的技術,即持續從或者向存儲器(Memory)中傳輸數據。存儲器可以是設備的板上緩存(Onboard Memory)、控制器上的RAM或計算機上的硬盤,本設計使用“文件I/O函數”設計合理的流盤存儲基本架構。
回放是為了使用戶存實時采集存儲和數據分析測量結束后,還可以在需要時重新觀察和深入分析所采集的數據。數據回放功能程序運行至open TDMS函數時,將運行連接至open(只讀),即可打開對應的數據存盤文件,采集到的波形數據按照帶索引的二進制TDMS文件形式存放于計算機硬盤中。在選擇波形回放時,后臺程序首先要確定波形數據中數組元素所對應的采樣時刻,當選擇同放按鈕時,給定的初始運行時間會與待同放的波形數據的第1個元素所對應的時刻進行比較,從而確定待回放數據的第1個數據元素的時刻,從此開始回放數據波形,直到用戶發出停止指令。整個文件完全是Windows系統文件,大大提高存儲和釋放的速率,加快數據處理速度,回放波形如圖4所示。
2.4 數據分析模塊
數據分析主要包括測量信號參量、幅度相位譜和功率譜。時域分析是一種直接在時問域中對系統進行分析的方法,具有直觀、準確的優點,可以提供數據采集系統時間響應所需的全部信息。本系統主要是標定所采集信號的周期、平均值、周期均方根、有效值以及頻率等,實時了解信號各種參數。
數據報表打印主要是將所采集信號的原始波形和回放波形以圖片格式傳遞至打印樣式子VI,并設置該子VI,使得程序需要打印時,就可通過調用該子VI打開前面板的采集波形和回放波形,顯示報表內容并進行打印預覽。
3 結論
進行系統實驗測試時,使用主頻為1.8l GHz、處理器為64位,512 M內存的PC;采樣速率為20MByte/s的高速數字化儀PCI-5124,實現長達30 min的連續數據采集和海量數據存儲。利用虛擬儀器LabVIEW和高速數字化儀PCI-5124開發的長時間連續采集存儲系統完成了信號實時的采集、顯示、存儲以及對采集歷史數據進行回放的功能。
與傳統數據采集儀器相比,該系統具有性價比高、開發時間短、通用性強、數據處理準確簡單、可移植性強(可以將VC、C、MATLAB等程序進行遞歸調用)、人性化界面設計、易于操作等優點,LabVIEW簡單的編寫語言和易于編寫的控制,控件,簡化了編程過程,用戶無需掌握數據采集卡的硬件知識,只需了解和掌握其驅動程序的功能,就能利用LabVIEW進行數據程序的開發和運用,這將成為未來數據采集發展的趨勢。
評論