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