廖 晶,周衛(wèi)星,廖 歡
摘 要:在LabVIEW開發(fā)環(huán)境下,為實時顯示數(shù)據(jù)采集結(jié)果,通過結(jié)合虛擬儀器的概念,采用IVI驅(qū)動程序NI Scope和隊列同步控制技術(shù)快速搭建實時數(shù)據(jù)采集系統(tǒng)。結(jié)果表明該系統(tǒng)可實現(xiàn)對模擬輸入信號的實時采集和數(shù)據(jù)顯示及可控制存儲等功能,效果較好。特別是使用圖形化編程語言,簡化代碼,操作方便,人機界面友好,可擴展性強。
關(guān)鍵詞:LabVIEW;NI Scope;虛擬儀器;實時數(shù)據(jù)采集
中圖分類號:TN274文獻標識碼:B
文章編號:1004-373X(2009)20-178-03
Design of Real-time Data Acquisition System Based on NI Scope
LIAO Jing,ZHOU Weixing,LIAO Huan
(School of Physics & Telecommunication Engineering,South China Normal University,Guangzhou,510006,China)
Abstract:In order to display the result of real-time data acquisition,combining to the idea of virtual instrument by using the virtual instrument of the development software LabVIEW,the real-time data acquisition system can be built quickly by using IVI device driver NI Scope and the queue for synchronizing control.The result indicates that the system can preferably realize and display the real-time data acquisition from analog input signal,data memory and so on.Especially by using the graphics programming language,the system can simplify codes,more convenient to operate with friendly interface and strong scalability.
Keywords:LabVIEW;NI Scope;virtual instrument;real-time data acquisition
0 引 言
虛擬儀器的概念最早是由美國國家儀器公司(National Instrument)提出來的,經(jīng)過十幾年的發(fā)展,目前正沿著總線與驅(qū)動程序標準化、硬件、軟件模塊化、編程平臺圖像化和硬件模塊即插即用方向發(fā)展。隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,虛擬儀器將在數(shù)據(jù)采集、自動測試和測量儀器領(lǐng)域得到廣泛應用,擬儀器技術(shù)十分符合國際上流行的“硬件軟件化”的發(fā)展趨勢,尤其是在高??蒲泻凸I(yè)生產(chǎn)領(lǐng)域中發(fā)展前景非常廣闊。
1 虛擬儀器概述
1.1 虛擬儀器簡介
虛擬儀器核心技術(shù)思想是“軟件即是儀器”,在通用的集成硬件平臺上,結(jié)合高性能的模塊化硬件和高效靈活的軟件使本來需要硬件實現(xiàn)的技術(shù)軟件化。一般當標準化硬件平臺確定后,通過標準的儀器驅(qū)動軟件可實現(xiàn)模塊化的硬件(如GPIB,VXI,DAQ板等)之間的通信、定時應用等需求;而靈活高效的開發(fā)應用軟件能創(chuàng)建完全自定義的用戶界面和系統(tǒng),實現(xiàn)傳統(tǒng)儀器中由硬件完成的儀器功能。虛擬儀器技術(shù)的優(yōu)勢在于儀器性能的改進和功能擴展只需用戶選擇適合其應用要求的硬件模塊以及更新相關(guān)軟件程序設(shè)計,即可重新配置現(xiàn)有系統(tǒng),增加程序可復用性,大大縮短整個系統(tǒng)開發(fā)換代周期,降低成本,方便實現(xiàn)多種功能。
1.2 虛擬儀器構(gòu)成
虛擬儀器一般由通用儀器硬件平臺和應用軟件組成,如圖1所示。
圖1 虛擬儀器結(jié)構(gòu)圖
虛擬儀器硬件平臺主要有兩部分,分別是用于集成的硬件平臺和模塊化I/O接口設(shè)備。虛擬儀器的軟件部分包括應用軟件和I/O驅(qū)動軟件兩部分,應用軟件包含實現(xiàn)虛擬面板功能的前面板的軟件程序和定義測試功能的流程圖軟件程序,如LabVIEW等;I/O接口儀器驅(qū)動程序用來完成特定外部硬件設(shè)備的擴展、驅(qū)動和通信,可以由虛擬儀器開發(fā)環(huán)境提供。只有同時擁有高效的軟件、模塊化I/O硬件和用于集成的軟硬件平臺這三大組成部分,才能充分發(fā)揮虛擬儀器技術(shù)性能高、擴展性強、開發(fā)時間少以及出色的集成這四大優(yōu)勢。
1.3 圖形化編程語言LabVIEW
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種用圖標代替文本行創(chuàng)建應用程序的圖形化編程語言,采用數(shù)據(jù)流編程方式,程序框圖中節(jié)點之間的數(shù)據(jù)流向決定了程序的執(zhí)行順序,用圖表表示函數(shù),用連線表示數(shù)據(jù)流方向。LabVIEW程序稱為虛擬儀器(Virtual Instrument,VI)程序。一個最基本的VI由前面板(Panel)、框圖程序(Diagram Program)和圖標/連接端口(Icon /Terminal)三部分組成。LabVIEW為虛擬儀器設(shè)計者提供了一個便捷、輕松的設(shè)計環(huán)境,不僅能輕松方便地完成與各種軟硬件的連接,還提供強大的后續(xù)數(shù)據(jù)處理能力,交互式的測量工具和更高層的系統(tǒng)管理軟件工具。LabVIEW能夠支持串行接口、GPIB,VXI,PXI等標準總線和多種數(shù)據(jù)采集板,以驅(qū)動不同儀器公司的儀器,用戶可以高效、快速地編寫出相應的應用程序,自行設(shè)計儀器驅(qū)動程序,完成諸如數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)顯示以及儀器控制和通信等多種功能。在較高性價比的條件下,降低系統(tǒng)開發(fā)和維護費用,縮短技術(shù)更新周期。
2 系統(tǒng)結(jié)構(gòu)設(shè)計
該系統(tǒng)使用NI公司PXI-1042Q機箱和NI PXI-5122高速數(shù)字化儀模塊組建數(shù)據(jù)采集硬件平臺。PXI(PCI Extensions for Instrumentation),它的主要優(yōu)勢在于利用了已經(jīng)驗證的,符合工業(yè)標準的技術(shù),在高速的Compact PCI總線基礎(chǔ)之上,加入類似VXI所具有的定時、觸發(fā)和同步功能。PXI作為一種專為工業(yè)數(shù)據(jù)采集與自動化應用高性能模塊化硬件平臺,具有開放式架構(gòu),內(nèi)有高端的定時和觸發(fā)總線,結(jié)合模塊化的I/O硬件和相應的測試測量開發(fā)軟件,便可以較好地完成數(shù)據(jù)采集任務(wù)。
2.1 系統(tǒng)硬件部分
PXI-5122高速數(shù)字化儀是硬件部分的核心,可直接插入PXI-1042Q機箱插槽中,屬于內(nèi)置式驅(qū)動。通過LabVIEW嵌入的驅(qū)動函數(shù)可配置其觸發(fā)方式,如即時觸發(fā)、軟件觸發(fā)、數(shù)字觸發(fā)等,還可配置采樣速率,采樣記錄長度等。PXI-5122提供雙輸入通道,每個通道最高100 MS/s實時采樣率,分辨率14 b,采用交叉采樣方式的采樣率可提高到200 MS/s,帶有去噪和100 MHz抗混疊濾波器,具有動態(tài)范圍大、板上采樣存儲器容量大等特點。這里配置為單通道即時觸發(fā)模式,以便實現(xiàn)實時的連續(xù)采樣。根據(jù)采樣定理,設(shè)置的最小采樣速率至少是被采樣信號頻率的兩倍。數(shù)據(jù)采集系統(tǒng)示意圖如圖2所示。
圖2 PXI數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)圖
2.2 系統(tǒng)軟件部分
系統(tǒng)軟件部分主要由標準I/O模塊驅(qū)動,采用隊列同步控制和數(shù)據(jù)顯示三大部分組成。系統(tǒng)程序流程圖如圖3所示。
圖3 隊列同步控制程序流程圖
首先通過NI,Scope示波器驅(qū)動來完成PXI-5122的配置和初始化,將此部分放置到由單個while循環(huán)控制的獨立線程中便可以實現(xiàn)連續(xù)數(shù)據(jù)采集。被采集的數(shù)據(jù)被放入隊列中,隊列允許多個任務(wù)同時訪問,其他獨立線程的模塊可同時并行地從中讀取數(shù)據(jù),實時完成各自的功能,如數(shù)據(jù)存儲、數(shù)據(jù)顯示等。
2.2.1 I/O驅(qū)動模塊
NI Scope示波器驅(qū)動是NI公司提供的八類可互換的虛擬儀器IVI(Interchangeable Virtual Instrument)規(guī)范驅(qū)動之一,由于IVI規(guī)范驅(qū)動是基于虛擬儀器軟件架構(gòu)VISA(Virtual Instrument Software Architecture),可以實現(xiàn)程序與硬件接口的不相關(guān)。此外,NI Scope提供了規(guī)范和標準API函數(shù)和DAQ驅(qū)動程序庫,它將儀器的功能完整封裝,讓用戶更快更容易地開發(fā)系統(tǒng)。成功安裝NI Scope示波器驅(qū)動后,在LabVIEW程序框圖中,打開“函數(shù)”菜單下,打開“測量I/O”可以看到“NI Scope”工具包,選擇初始化、水平方向設(shè)置、豎直方向設(shè)置、通道設(shè)置、觸發(fā)方式設(shè)置等函數(shù),自定義NI PXI-5122驅(qū)動程序。該系統(tǒng)設(shè)置偏移量為零,即時觸發(fā)采樣模式,采樣記錄數(shù)值默認為1,采樣頻率和采樣記錄長度由輸入控件控制,采樣的通道名稱默認為“channel 0”,實現(xiàn)連續(xù)采樣。NI PXI-5122驅(qū)動程序具體如圖4所示。
2.2.2 同步技術(shù)
系統(tǒng)各模塊分別由單個循環(huán)控制,并且各循環(huán)之間相互獨立,每一個循環(huán)都有一個獨立的線程獨自運行,構(gòu)成了一個包含多個并行任務(wù)虛擬儀器系統(tǒng)。各個循環(huán)之間也有數(shù)據(jù)交流,相互關(guān)聯(lián),為了實現(xiàn)在同一個程序中處理好各循環(huán)或并行任務(wù)之間的同步或通信,則需要使用同步控制技術(shù)。系統(tǒng)選用隊列(Queue)技術(shù)來控制這些循環(huán)可以避免對設(shè)備的訪問沖突。
圖4 PXI-5122驅(qū)動程序示意圖
隊列結(jié)構(gòu)是一種先進先出的結(jié)構(gòu)。隊列可以保證有序的數(shù)據(jù)傳遞,避免競爭或沖突。一般當多個用戶需要使用同一個資源時,就可以通過隊列來對多個用戶進行排隊處理;同時,也允許多個用戶訪問一個隊列,這樣就可以加快隊列的處理速度。
同樣,在程序框圖中打開“函數(shù)”,選擇“編程”中的“同步”,可看待“隊列”函數(shù)包。通過“獲取隊列引用”先建立一個隊列,可設(shè)置隊列名稱,元素類型,隊列大小等屬性。圖5中顯示數(shù)據(jù)采集循環(huán),數(shù)據(jù)存儲循環(huán),數(shù)據(jù)顯示循環(huán)共同使用一個隊列,即數(shù)據(jù)循環(huán)中使用“元素入隊列”函數(shù)將采集數(shù)據(jù)不斷地存放到隊列中,數(shù)據(jù)存儲和數(shù)據(jù)顯示循環(huán)使用“元素出隊列”函數(shù)從隊列中不斷地讀取數(shù)據(jù),實現(xiàn)了系統(tǒng)實時采集和存儲的功能。若某個模塊的任務(wù)運行過快或過慢,隊列可以起到緩存作用,進行約束或補償,不會導致數(shù)據(jù)丟失或重復讀取。
2.2.3 數(shù)據(jù)存儲
高速數(shù)據(jù)流文件TDM Streaming文件以流文件形式存儲數(shù)據(jù),讀寫速度比較快,適合用來存儲海量數(shù)據(jù),常用于實時系統(tǒng)。TDMS文件除了可以存儲信號數(shù)據(jù)外,還可以為每個信號添加附加信息:文件、組、通道等。通過TDMS文件操作函數(shù)可對被采集的信號進行快速的讀,寫,屬性設(shè)置及提取,管理簡單;在寫操作后可以調(diào)用TDMS File Viewer VI函數(shù),打開TDMS文件瀏覽器,查看數(shù)據(jù)和屬性值。TDMS的寫操作如圖5所示。
圖5 TDMS文件寫操作程序示意圖
3 實驗結(jié)果
數(shù)據(jù)采集系統(tǒng)前面板如圖6所示,根據(jù)所設(shè)計的數(shù)據(jù)采集系統(tǒng),分別進行了數(shù)據(jù)采集、數(shù)據(jù)輸入,數(shù)據(jù)存儲及波形顯示等實驗。數(shù)據(jù)保存在以.tdms為后綴名的波形文件中。圖6所示為對頻率10 kHz,幅度為0.5 V的模擬正弦波信號使用單通道采樣,輸入的采樣頻率為1 MHz,實際采樣頻率為1 MHz。經(jīng)過實際驗證,對三角波,方波等合理采樣,結(jié)果比較滿意。
圖6 數(shù)據(jù)采集系統(tǒng)前面板
4 結(jié) 語
該數(shù)據(jù)采集系統(tǒng)實際是用于對中波段范圍內(nèi)調(diào)幅信號的實時采集,方便對采集后的數(shù)據(jù)直接進行各種數(shù)學分析。一方面可將結(jié)果直觀的顯示在前面板上,另一方面也可同時將數(shù)據(jù)進行存儲,以供日后分析使用。此外,由于LabVIEW是一個功能強大的虛擬儀器編譯環(huán)境,簡化編程過程,尤其是使用IVI驅(qū)動程序,極大地簡化代碼,用戶不需要關(guān)心儀器底層是如何通信,只需要關(guān)注任務(wù)本身,給予系統(tǒng)更多的靈活性。以后只需要根據(jù)實際功能要求,修改相應的軟件編程即可進行系統(tǒng)拓展。整個數(shù)據(jù)采集系統(tǒng)在實際使用中方便活,不受具體線路的限制。
參考文獻
[1]楊樂平,李海濤,肖相生,等.LabVIEW 程序設(shè)計與應用[M].北京:電子工業(yè)出版社,2001.
[2]Walter Tuttlebee.軟件無線電技術(shù)與實現(xiàn)[M].北京:電子工業(yè)出版社,2004.
[3]姜宇柏,游思晴.軟件無線電原理與工程應用[M].北京:機械工業(yè)出版社,2006.
[4]周浩敏,王睿.測試信號處理技術(shù)[M].北京:北京航空航天大學出版社,2004.
[5]Emmanuel C Ifeachor,Barrie W Jervis.數(shù)字信號處理實踐方法[M].北京:電子工業(yè)出版社,2003.
[6]陳錫輝,張銀鴻.LabVIEW 8.20程序設(shè)計從入門到精通[M].北京:清華大學出版社,2007.
[7]楊樂平,李海濤,趙勇,等.LabVIEW高級程序設(shè)計[M].北京:清華大學出版社,2003.
[8]John G Ackenhusen.實時信號處理[M].北京:電子工業(yè)出版社,2002.
[9]姚素芬,趙建強,馮超瓊.基于LabVIEW傳感器實驗平臺的開發(fā)[A].第三屆全國信息獲取與處理學術(shù)會議論文集[C].2005.
[10]臧觀建,劉正平.基于LabVIEW的聯(lián)合時頻分析[J].華東交通大學學報,2007,24(4):121-124.
[11]周紅霞,張恒杰,張春芳.基于LabVIEW的虛擬儀器及串口通信的實現(xiàn)[J].石家莊職業(yè)技術(shù)學院學報,2007,19(4):17-19.
[12]張偉.基于虛擬儀器的諧波測量研究[A].中國儀器儀表學會第六屆青年學術(shù)會議文集[C].2004.