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