于文波,于 洋,徐立波,于 佳,郭新寧
(1.沈陽工程學(xué)院 電力學(xué)院,沈陽 110136;2.沈陽工程學(xué)院 計算機(jī)基礎(chǔ)教學(xué)部,沈陽 110136)
虛擬示波器開發(fā)平臺對比研究
于文波1,于洋1,徐立波2,于佳1,郭新寧2
(1.沈陽工程學(xué)院 電力學(xué)院,沈陽110136;2.沈陽工程學(xué)院 計算機(jī)基礎(chǔ)教學(xué)部,沈陽110136)
摘要:虛擬示波器是一種虛擬儀器,由硬件和軟件構(gòu)成,能夠完成數(shù)據(jù)采集、波形顯示、信號分析處理及波形存儲回放等功能。介紹了虛擬示波器軟件開發(fā)平臺的現(xiàn)狀和存在的問題,詳細(xì)的闡述了LabVIEW、LabWindows/CVI、Matlab、VisualBasic、VC++、Android、Java等7個開發(fā)平臺的功能及特點,展望了虛擬示波器開發(fā)平臺的發(fā)展前景,對不同的平臺進(jìn)行了對比分析,可方便研發(fā)者快速找到適合自己的開發(fā)平臺。
關(guān)鍵詞:虛擬儀器;示波器;開發(fā)平臺 ;LabVIEW
0引言
隨著計算機(jī)技術(shù)和軟件技術(shù)的高速發(fā)展,虛擬儀器在處理方面、智能化方面以及性價比方面與傳統(tǒng)儀器相比有著巨大的優(yōu)勢。虛擬示波器是實驗室常用的虛擬儀器,選用合理的平臺開發(fā)一款功能完善、精準(zhǔn)度高、高性價比的虛擬示波器對于提升科研研發(fā)速度與降低科研成本具有重大的意義。虛擬示波器更新?lián)Q代較快,如何選好一個虛擬示波器的研發(fā)平臺是多數(shù)開發(fā)者面臨的普遍問題。一個適合自己的虛擬示波器開發(fā)平臺有利于產(chǎn)品的開發(fā)與研究,亦可縮短研發(fā)周期。
1虛擬示波器開發(fā)平臺現(xiàn)狀與存在的問題
1.1虛擬示波器的結(jié)構(gòu)
虛擬示波器是一種以計算機(jī)技術(shù)為平臺與儀器硬件相結(jié)合組成的測量平臺,它主要由數(shù)據(jù)采集系統(tǒng)、計算機(jī)、應(yīng)用軟件三部分組成。數(shù)據(jù)采集系統(tǒng)顧名思義是采集數(shù)據(jù)的,它主要靠硬件來采集數(shù)據(jù),它采集數(shù)據(jù)的精度與硬件設(shè)備性能有著密切的關(guān)系;計算機(jī)是用戶主要的工作界面,用戶通過計算機(jī)來發(fā)布指令和查看輸出結(jié)果;應(yīng)用軟件是虛擬示波器的核心,它將數(shù)據(jù)采集系統(tǒng)和計算機(jī)進(jìn)行連接。虛擬示波器的好壞很大一部分取決于應(yīng)用軟件編寫。故要研發(fā)出一個性能好的應(yīng)用軟件就需要一個適合開發(fā)者自身的開發(fā)平臺。
1.2虛擬示波器開發(fā)平臺現(xiàn)狀
虛擬儀器是以計算機(jī)技術(shù)為基礎(chǔ)形成的新型儀器,它利用計算機(jī)高性能的硬件來完成大量的數(shù)據(jù)計算和構(gòu)建強(qiáng)大的圖形環(huán)境。通過軟件的設(shè)計,用戶可根據(jù)自己的需求來定義和設(shè)計虛擬儀器的功能,以便設(shè)計者對被測量的物品進(jìn)行采集、判斷、分析、數(shù)據(jù)顯示及數(shù)據(jù)的儲存和生成。虛擬儀器的出現(xiàn)改變了傳統(tǒng)儀器的概念及其模式。據(jù)“世界儀表與自動化”雜志顯示,截止到21世紀(jì)中葉,虛擬儀器的市場占有率達(dá)到電測儀器的50%。這一數(shù)據(jù)說明了虛擬儀器不僅成為電測行業(yè)的發(fā)展方向,而且虛擬儀器會逐步取代傳統(tǒng)的硬件儀器。隨著計算機(jī)、通信、電子技術(shù)的發(fā)展,越來越多的廠家看好了虛擬儀器這一市場。目前虛擬儀器主要應(yīng)用在測量方面、監(jiān)控方面、工程處理、遠(yuǎn)程教育以及報表生成技術(shù)上。特別是在教育行業(yè)的推動下,這樣具有先進(jìn)技術(shù)含量的虛擬儀器自然成為科研者研究的對象。
隨著虛擬儀器技術(shù)的發(fā)展,以虛擬示波器為代表的虛擬儀器開發(fā)平臺也得到了更新?lián)Q代。最先出現(xiàn)能編譯虛擬示波器的是VB,但是VB是由文字語言編譯的,很不方便,所以應(yīng)用很少。之后NI公司發(fā)布了LabVIEW軟件,LabVIEW軟件是通過圖形語言進(jìn)行編譯的,非常直觀的反映程序的順序與功能,操作與編譯簡單并能夠結(jié)合Matlab軟件,故一直沿用至今。Android作為新興的開發(fā)平臺,有著大量的新用戶,但是技術(shù)還不成熟,有待發(fā)展。
1.3虛擬示波器開發(fā)平臺存在的問題
自1986年美國儀器公司(National Instruments corp,NI)提出虛擬儀器的概念至今已有將近30年,虛擬儀器技術(shù)飛速發(fā)展。虛擬儀器重要代表之一虛擬示波器也得到更新?lián)Q代,就其開發(fā)平臺而言仍然存在著很多問題。
一是硬件與軟件數(shù)據(jù)轉(zhuǎn)換的問題。采集數(shù)據(jù)需要從虛擬示波器數(shù)據(jù)采集系統(tǒng)獲取,但是軟件與硬件數(shù)據(jù)轉(zhuǎn)換是需要一定的算法來計算的。隨著時代的發(fā)展,人們對數(shù)據(jù)精準(zhǔn)度要求越來越高,如何找到一個更精準(zhǔn)的算法是虛擬示波器開發(fā)平臺的迫切需求。
二是兼容問題。隨著用戶需求增加,虛擬示波器往往需要增加一些最新的器件,例如協(xié)議分析儀、邏輯分析儀、數(shù)字電壓電流表等等,如何通過虛擬示波器平臺來替換舊設(shè)備或者添加新的功能并保證設(shè)備能夠正常運行,也需要研發(fā)與制定相關(guān)規(guī)則。
三是用戶操作界面的問題。經(jīng)過多年的發(fā)展,UI得到了很好的發(fā)展與補(bǔ)充,但如何能讓非專業(yè)人員快速熟悉較早使用,對于虛擬示波器的普及與發(fā)展也至關(guān)重要。
2虛擬示波器的常用開發(fā)平臺
2.1LabVIEW開發(fā)平臺
LabVIEW是一個叫做杰夫·考度斯基(Jeff Kodosky)發(fā)明的,隸屬美國國家儀器公司。早期是為了儀器自動控制,經(jīng)過20多年的發(fā)展逐漸成為一種高級成熟的編程語言[1]。LabVIEW引用虛擬儀表的概念,使研發(fā)人員通過面板進(jìn)行開發(fā)使用。此外LabVIEW還提供信號截取與分析、數(shù)據(jù)的邏輯運算、聲音波動分析等功能。目前LabVIEW支持大部分主流系統(tǒng)包括Windows、Linux、Mac OS、Unix等。LabVIEW語言又稱G語言,是一種數(shù)據(jù)流編程語言,研發(fā)人員可以將各個不同功能的節(jié)點通過繪制導(dǎo)線的方式,決定程序的執(zhí)行順序與功能。
編制虛擬示波器程序時需要實現(xiàn)數(shù)據(jù)采集、信號處理、波形顯示、波形存儲和回放等功能。信號的采取利用PCI、USB、DAQ等硬件來收集,收集的信號經(jīng)過信號處理模塊,將信號進(jìn)行放大和濾波處理,通過前面板上的旋鈕與開關(guān)調(diào)試,最終形成所需要的實驗結(jié)果。
2.2LabWindows/CVI開發(fā)平臺
LabWindows/CVI由美國國家儀器公司研發(fā)的交互式C語言開發(fā)平臺,可以將C語言與專業(yè)測控平臺與數(shù)據(jù)分析平臺相結(jié)合,利用交互式編程方法和豐富的函數(shù)庫等大大增強(qiáng)C語言功能,為熟悉C語言的研發(fā)者提供一個理想的開發(fā)環(huán)境[2]。
LabWindows/CVI編寫的虛擬示波器利用多線程技術(shù)的數(shù)據(jù)管理機(jī)制。操作系統(tǒng)可以單個數(shù)據(jù)提供單獨的CPU時間片,操作系統(tǒng)為每個數(shù)據(jù)采集線程提供單獨的時間片,并且可以頻繁切換,運用多線程的優(yōu)勢管理多個數(shù)據(jù)。
2.3Matlab
Matlab是一種高級技術(shù)計算語言,具有算法開發(fā)、數(shù)據(jù)分析、數(shù)據(jù)計算、數(shù)據(jù)可視化等功能。盡管Matlab主要應(yīng)用于計算,但是擴(kuò)展工具箱功能繁多,可以適應(yīng)其他領(lǐng)域,例如信號處理與通訊、控制系統(tǒng)設(shè)計與分析等[3],同時還有配套軟件Simulink提供開發(fā)環(huán)境,提供研發(fā)者進(jìn)行編譯。
基于Matlab設(shè)計的虛擬示波器可以充分利用Matlab軟件進(jìn)行數(shù)據(jù)分析功能,不僅方便需要大量數(shù)據(jù)分析的實驗研究,也為控制系統(tǒng)設(shè)計分析提供優(yōu)化途徑。Matlab軟件將硬件收集的信息通過工具箱中的函數(shù)來完成,通過畫圖程序?qū)?shù)據(jù)呈現(xiàn)出來。
2.4VisualBasic開發(fā)平臺
VisualBasic是由微軟公司開發(fā)包含協(xié)助開發(fā)環(huán)境,它是源于Basic編程語言。VB有圖形用戶界面和快速應(yīng)用程序開發(fā)系統(tǒng),程序可以使用DAO、RDO、ADO連接數(shù)據(jù)庫,或者創(chuàng)建ActiveX控件。VB有著良好的界面程序,是一款很好的入門軟件,但是不適合開發(fā)復(fù)雜繁重的運算程序。
VB無法單獨開發(fā)虛擬示波器,需要與LabVIEW等軟件相結(jié)合,在數(shù)據(jù)處理、數(shù)據(jù)分析方面補(bǔ)足其他軟件無法睥睨的計算與分析能力,共同開發(fā)一款具有強(qiáng)大測控功能的軟件系統(tǒng)。
2.5VisualC++開發(fā)平臺
VisualC++是Microsoft公司推出的Win32環(huán)境程序,VisualC++有集成的開發(fā)環(huán)境,特別是整合Windows API、Miscrosoft.net框架和DirectX API等,并且可以允許用戶進(jìn)行調(diào)試和單步調(diào)試,在編寫大軟件程序時有明顯的優(yōu)勢[4]。
基于VisualC++的虛擬示波器,還是由硬件來采集數(shù)據(jù),通過Modbus協(xié)議軟件包來實現(xiàn)智能的I/O的信息交換,之后可以將數(shù)據(jù)在WM Paint消息處理函數(shù)ONPaint繪制完成。
2.6Android開發(fā)平臺
安卓是基于LINUX源代碼開發(fā)的移動操作系統(tǒng)。安卓是由安迪·魯賓(Andy Rubin)等人開發(fā),目的是創(chuàng)建數(shù)碼相機(jī)的智能系統(tǒng),但后來相機(jī)市場需求不夠大,加上智能收集市場高速發(fā)展[5],在2005年由Google收購,改造成智能手機(jī)操作系統(tǒng)。
安卓開發(fā)的虛擬示波器,它的優(yōu)勢是可移植性好,可以在大多安卓平臺運行。通過Usb數(shù)據(jù)通信將數(shù)據(jù)儲存到SD卡中,再經(jīng)過設(shè)計的軟件對波形進(jìn)行放大、縮小、平移等操作,并且通過JNI方式實現(xiàn)濾波功能,最終將圖像展現(xiàn)在移動設(shè)備上。
2.7Java開發(fā)平臺
Java是一種與VC++相似的計算機(jī)編程語言,它是由太陽微系統(tǒng)的詹姆斯·高斯林設(shè)計的雛形。Java本打算應(yīng)用于小的家用電器上,但是后來沒有市場預(yù)期那么高。1990年Sun公司看到互聯(lián)網(wǎng)的前景后將Java改造,在1995年正式成為正式的網(wǎng)絡(luò)編程語言。
Java示波器基本都是網(wǎng)絡(luò)化的虛擬示波器,主要以網(wǎng)絡(luò)作為信息傳遞載體,將數(shù)據(jù)傳輸?shù)奖镜夭@示出來,用戶可以通過一個類似Java中的Canvas控制面板彈出的屬性窗口來更改面板屬性,同時通過ploty繪出波形圖。
上述的7種虛擬示波器開發(fā)平臺是主流開發(fā)平臺,除此之外還有一些不常見的開發(fā)系統(tǒng)如SPOC、Qt/Embedded等等,在這里就不一一介紹。
3虛擬示波器開發(fā)平臺的對比分析
市場上的諸多編寫軟件,各有各的優(yōu)缺點,如何選擇一款適合的開發(fā)平臺尤為重要。虛擬示波器開發(fā)平臺優(yōu)缺點對比分析如表1所示[6]。LabVIEW雖然是最受歡迎的編寫軟件,但是也有一些不足。首先LabVIEW前期投入成本過大,不僅需要資金,還需要學(xué)習(xí)程序編寫,沒有模擬示波器方便,而且為了提高儀器精準(zhǔn)度,必須購買NI公司昂貴的硬件設(shè)備。LabWindows利用多線程的處理方式,不僅可以避免單元故障長時間占用 CPU的問題,提高軟件安全性和運行效率,而且可以實現(xiàn)軟件模塊化,提升平臺的維護(hù)性。但是因為LabWindows是基于C語言的,所以開發(fā)困難。Matlab軟件無法單獨使用,必須依靠Labview等程序,所以Matlab缺點包含LabVIEW的缺點。VB盡管有著良好的視窗,編寫入門簡單,但是編譯語言是文字語言,遠(yuǎn)不如LabVIEW圖形化語言直觀簡便。VisualC++最大優(yōu)點是允許調(diào)試和分步運行,可檢測編寫錯誤,提高程序編寫效率,但是因為是采用VC文字語言,開發(fā)速度慢,要求專業(yè)的C語言程序員。Android因為是移動平臺,所以硬件性能是最致命的缺陷,加上Android還不夠成熟,所以現(xiàn)在還趕不上主流的平臺。
表1 虛擬示波器開發(fā)平臺優(yōu)缺點對比表
4虛擬示波器開發(fā)平臺的發(fā)展趨勢
虛擬儀器的高速發(fā)展,即將取代傳統(tǒng)領(lǐng)域的各類模擬測量儀器,加上網(wǎng)絡(luò)通信技術(shù)的高速發(fā)展,虛擬儀器必將網(wǎng)絡(luò)化。虛擬儀器技術(shù)與通信技術(shù)相結(jié)合,研發(fā)者可以在任何時間、任何地點取得測試數(shù)據(jù)。對應(yīng)著虛擬儀器的發(fā)展,編寫平臺軟件也將得到大量功能上的跟新。最值得一提的是Android系統(tǒng),安卓成為當(dāng)今最大的移動智能平臺,有著其他編寫系統(tǒng)無法超越的使用人數(shù)。如果產(chǎn)品投入使用,使用者可能只需要一部手機(jī)來完成實驗結(jié)果的測量與分析。隨著移動產(chǎn)品網(wǎng)絡(luò)化覆蓋,Android必將成為以后主流的編寫平臺。在遠(yuǎn)程教學(xué)中,虛擬儀器起到了無法替代的作用。遠(yuǎn)端學(xué)員借助網(wǎng)絡(luò)在任意時間與地點進(jìn)行虛擬儀器實驗和學(xué)習(xí)。同時中心實驗室的虛擬儀器系統(tǒng)與遠(yuǎn)端學(xué)員計算機(jī)虛擬儀器系統(tǒng)通過Internet連接,只需要發(fā)送少量的數(shù)據(jù)就可以使網(wǎng)絡(luò)虛擬儀器系統(tǒng)的建立,方便遠(yuǎn)程教學(xué)。
虛擬儀器也可以應(yīng)用于航空航天、軍事企業(yè)、汽車工程、電力工程、地質(zhì)勘探和生物醫(yī)療等行業(yè)。例如,在汽車工程中,DAQ板虛擬儀器系統(tǒng)以PC基礎(chǔ),不僅可實現(xiàn)虛擬化過程監(jiān)控和控制,也可以進(jìn)行遠(yuǎn)程監(jiān)控和數(shù)據(jù)采集。在航空航天中,虛擬儀器可以模擬工作環(huán)境,進(jìn)行噪聲測試、發(fā)動機(jī)功能測試、飛行控制系統(tǒng)測試。
5結(jié)語
虛擬示波器是基于計算機(jī)平臺與儀器硬件相結(jié)合來完成信號處理和波形顯示的測量平臺,能夠?qū)崿F(xiàn)比傳統(tǒng)儀器更多功能的虛擬儀器。性能良好的虛擬示波器將由優(yōu)秀的開發(fā)平臺支撐,開發(fā)平臺的發(fā)展?fàn)顩r必將制約著虛擬示波器的發(fā)展,好的開發(fā)平臺能夠加快虛擬示波器的研發(fā)與發(fā)展。在實際應(yīng)用中,恰當(dāng)?shù)倪x擇開發(fā)平臺尤為重要,也可以將各個平臺有機(jī)的結(jié)合,開發(fā)出性能優(yōu)良的虛擬示波器,對于虛擬儀器行業(yè)的發(fā)展將起到不可忽視的作用。
參考文獻(xiàn):
[1]蘇娜.虛擬儀器LabVIEW的發(fā)展與應(yīng)用[J].計算機(jī)光盤軟件與應(yīng)用,2013,(23):131-132.
[2]張紅光,李正明.基于LabWindows/CVI的虛擬示波器研究與設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(9):168-170.
[3]羅彬,曾岳南,張雪群.基于MATLAB的虛擬示波器設(shè)計[J].儀器儀表用戶,2006,(4):107-109.
[4]李同立.基于VC++的虛擬示波器軟件設(shè)計[D].軟件導(dǎo)刊,2013,(11):56-59.
[5]王升.基于Android平臺的虛擬示波器開發(fā)[D].哈爾濱:哈爾濱理工大學(xué),2014.
[6]王海龍.虛擬示波器開發(fā)軟件的比較[J].電子世界,2014,(5):121-122.
Comparative Study of the Development Platform of
Virtual Oscilloscope
YU Wen-bo1,YU Yang1,XU Li-bo2YU Jia1, GUO Xin-ning2
(1.College of Electric Power,Shenyang Institute of Engineering,Shenyang 110136, China;
2.Computer Science Teaching Department,Shenyang Institute of Engineering,Shenyang 110136, China)
Abstract:The virtual oscilloscope is a kind of virtual instrument, composed of hardware and software. It can complete data acquisition, waveform display, signal processing and waveform storage and playback functions.The paper mainly introduces the current situation of the development platform of virtual oscilloscope and problems. Describes in detail the functions and characteristics of the development platform,it including LabVIEW, LabWindows/CVI, Matlab, VisualBasic, VC++, Android, Java etc.. Looks forward to the development prospect of the development platform of virtual oscilloscope. It gives a comparative a nalysis of different platforms. To facilitate developers to quickly find suitable for their own development platform.
Key words:virtual instrument;oscilloscope;development platform;labVIEW
浙江交通職業(yè)技術(shù)學(xué)院學(xué)報,第16卷第1期,2015年3月
Journal of Zhejiang Institute of Communications
Vol.16 No.1,Mar.2015
作者簡介:程文(1989-),女,湖北隨州人,助教,碩士,E-mail:chengw@zjvtit.edu.cn。
收稿日期:2015-01-27
文章編號:1671-234X(2015)01-0038-04
中圖分類號:TM13;TP393?
文獻(xiàn)標(biāo)識碼:A doi:10.3969/j.issn.1671-234X.2015.01.009