華厚強(qiáng)
(中國(guó)民用航空飛行學(xué)院航空電子電氣學(xué)院,四川廣漢,618307)
虛擬儀器(Virtual Instrumentation, VI)技術(shù)是指將通用計(jì)算機(jī)安裝上軟件并連接好硬件,讓使用者在進(jìn)行計(jì)算機(jī)操作時(shí)就好像在進(jìn)行專用的電子儀器操作的技術(shù)。虛擬儀器利用軟件來(lái)實(shí)現(xiàn)硬件的功能,能實(shí)現(xiàn)”軟件即儀器”[1-4]。示波器是最常見(jiàn)的電子測(cè)量工具和儀器之一,通常模擬示波器都功能單一且結(jié)構(gòu)笨重,數(shù)字示波器雖然可以進(jìn)行多種功能擴(kuò)展,但價(jià)格相對(duì)較貴,普及到實(shí)際應(yīng)用中的困難也相對(duì)較大[5-7]。隨著現(xiàn)代虛擬儀器儀表技術(shù)的進(jìn)步,將傳統(tǒng)的儀器測(cè)量用計(jì)算機(jī)技術(shù)實(shí)現(xiàn)的虛擬示波器系統(tǒng)具有較大應(yīng)用價(jià)值,可以提高實(shí)驗(yàn)測(cè)量?jī)x器的技術(shù)含量,并且性價(jià)比高[8]。
目前國(guó)內(nèi)很多的高檔實(shí)驗(yàn)測(cè)量?jī)x器高度依賴進(jìn)口,不僅價(jià)格昂貴,而且使用面窄,自主研究虛擬儀器儀表技術(shù)具有重大意義[9-11]。本文基于STC12C5A60S2單片機(jī)和LabVIEW 2018軟件開發(fā)平臺(tái)設(shè)計(jì)出一種虛擬示波器,硬件部分主要是普通PC機(jī)和單片機(jī),軟件部分則包括了前面板、串口驅(qū)動(dòng)及相關(guān)的應(yīng)用軟件(主要有頻譜分析、數(shù)字濾波、數(shù)據(jù)存儲(chǔ)和讀取、波形顯示等),可以實(shí)現(xiàn)對(duì)多種波形顯示和輸出[12-13]。
虛擬示波器設(shè)計(jì)有硬件和軟件兩大基本組成部分,如圖1所示。軟件部分包括上位機(jī)軟件設(shè)計(jì)和下位機(jī)程序設(shè)計(jì),下位機(jī)通過(guò)對(duì)單片機(jī)編程實(shí)現(xiàn)一定頻率和幅度范圍內(nèi)信號(hào)數(shù)據(jù)的采集、模數(shù)(A/D)轉(zhuǎn)換及串口通信,上位機(jī)通過(guò)編譯LabVIEW實(shí)現(xiàn)對(duì)信號(hào)波形的顯示。
圖1 虛擬示波器組成框圖
在虛擬示波器運(yùn)行過(guò)程中,函數(shù)發(fā)生器可輸出正弦波、三角波和方波等基本波形,將其輸入至加法電路,加法電路將函數(shù)發(fā)生器輸出波形的每一點(diǎn)電壓值變正(目的是讓單片機(jī)可以采集到波形上每一點(diǎn)),通過(guò)加法電路之后將模擬輸出接至單片機(jī)模擬輸入端P1.0,最后通過(guò)單片機(jī)串口與PC機(jī)通信并且在PC機(jī)上顯示出波形。
虛擬示波器的硬件電路主要包括加法電路、主控芯片、A/D轉(zhuǎn)換模塊、串口電平轉(zhuǎn)換模塊、單片機(jī)的晶振和復(fù)位電路等。
下位機(jī)以STC12C5A60S2單片機(jī)為控制核心,主要負(fù)責(zé)信號(hào)的采集和數(shù)據(jù)上傳,片內(nèi)硬件16×16位乘法器特別適用于快速、高運(yùn)算量的使用;內(nèi)部自帶多個(gè)高精度A/D轉(zhuǎn)換器ADC完善了系統(tǒng)的穩(wěn)定性、可靠性;較多的I/O端口使設(shè)計(jì)變得非常方便;+3.3V的I/O端口電平與ΜAX232C完全兼容。STC12C5A60S2單片機(jī)的串行通信引腳UATXD0、UARXD0分別通過(guò)跳線連接到ΜAX232的T2IN、R2OUT[14]。通過(guò)ADC轉(zhuǎn)換器來(lái)采集從外界輸入的模擬信號(hào),將其轉(zhuǎn)換為數(shù)字信號(hào)后輸出[15]。
上位機(jī)采用LabVIEW 2018平臺(tái)進(jìn)行程序開發(fā),負(fù)責(zé)與下位機(jī)通信,對(duì)上傳的數(shù)據(jù)進(jìn)行相關(guān)處理和結(jié)果顯示。
系統(tǒng)總體程序流程圖如圖2所示。先將單片機(jī)初始化后,由上位機(jī)發(fā)出開始采集命令,單片機(jī)開始A/D轉(zhuǎn)換,以及與PC機(jī)進(jìn)行串口通信,PC機(jī)讀取轉(zhuǎn)換結(jié)果,寫入串口緩沖區(qū),然后讀取數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行處理,最終實(shí)現(xiàn)對(duì)波形的實(shí)時(shí)顯示,如果按下停止采集按鈕,PC機(jī)便不再讀取數(shù)據(jù),停止采集。
圖2 軟件總體流程圖
下位機(jī)工作流程圖如圖3所示。下位機(jī)主要功能是對(duì)信號(hào)進(jìn)行采集,并與PC機(jī)進(jìn)行串口通信。因此,下位機(jī)軟件設(shè)計(jì)主要是針對(duì)STC12C5A60S2的A/D和串口模塊的使用,首先對(duì)單片機(jī)的A/D和串口初始化,然后啟動(dòng)A/D轉(zhuǎn)換,ADC10輸出10位轉(zhuǎn)換結(jié)果,最后將數(shù)據(jù)通過(guò)串口傳送給PC機(jī)。
3.3.1 虛擬示波器前面板設(shè)計(jì)
虛擬示波器的前面板如圖4所示。前面板包括波形顯示、參數(shù)設(shè)定和參數(shù)測(cè)量等功能模塊。
圖4 虛擬示波器前面板圖
3.3.2 虛擬示波器后面板設(shè)計(jì)
后面板程序的設(shè)計(jì)總體上可以分為數(shù)據(jù)采集程序、數(shù)據(jù)處理和波形顯示程序兩大部分,后面板總程序如圖5所示。
圖5 后面板總程序設(shè)計(jì)圖
后面板數(shù)據(jù)采集程序設(shè)計(jì)如圖6所示,該程序主要功能是與單片機(jī)進(jìn)行串口通信,接收單片機(jī)發(fā)送的數(shù)據(jù)以實(shí)現(xiàn)數(shù)據(jù)采集。
圖6 后面板數(shù)據(jù)采集程序設(shè)計(jì)圖
后面板數(shù)據(jù)處理和波形顯示程序設(shè)計(jì)如圖7所示,該程序可以對(duì)PC機(jī)采集到的數(shù)據(jù)進(jìn)行處理,并且實(shí)現(xiàn)波形顯示、數(shù)據(jù)緩沖的功能。
圖7 后面板數(shù)據(jù)處理和波形顯示程序設(shè) 計(jì)圖
完成系統(tǒng)整體后,可以根據(jù)相關(guān)器件的工作原理對(duì)其進(jìn)行相應(yīng)的調(diào)試與集成整合。在調(diào)試過(guò)程中分別采用了硬件調(diào)試與軟件調(diào)試相結(jié)合的調(diào)試思路,力求使設(shè)計(jì)能夠正常實(shí)現(xiàn)相關(guān)功能。
系統(tǒng)通過(guò)串口調(diào)試助手檢測(cè)有沒(méi)有串口信號(hào)。先以單片機(jī)STC12C5A60S2內(nèi)部模擬的方波為對(duì)象進(jìn)行檢測(cè),用來(lái)進(jìn)行串口調(diào)試的硬件電路實(shí)物圖如圖8所示。方波串口代碼顯示結(jié)果如圖9所示。
圖8 串口調(diào)試硬件電路實(shí)物圖
圖9 方波串口代碼顯示圖
通過(guò)串口助手的顯示結(jié)果表明串口通信已實(shí)現(xiàn),波形為方波。然后可以對(duì)單片機(jī)內(nèi)部模擬的正弦波用類似的方法進(jìn)行檢測(cè),顯示結(jié)果表明波形為正弦波時(shí)串口通信同樣已實(shí)現(xiàn)。
虛擬示波器設(shè)計(jì)整體實(shí)物圖如圖10所示。虛擬示波器設(shè)計(jì)完成后,可進(jìn)行系統(tǒng)調(diào)試。調(diào)試過(guò)程中LabVIEW可能出現(xiàn)無(wú)法定位和加載VISA或其所需代碼庫(kù)的問(wèn)題[16],可以安裝相應(yīng)的VISA驅(qū)動(dòng)程序來(lái)解決。通過(guò)添加清除錯(cuò)誤模塊解決了VISA讀取傳輸時(shí)發(fā)生幀錯(cuò)誤的問(wèn)題。
圖10 虛擬示波器設(shè)計(jì)整體實(shí)物圖
當(dāng)輸入信號(hào)是頻率為1kHz、幅值為4V的正弦波時(shí),PC機(jī)上LabVIEW程序顯示結(jié)果和函數(shù)信號(hào)發(fā)生器顯示對(duì)比如圖11所示,圖(a)虛擬示波器和圖(b)函數(shù)信號(hào)發(fā)生器兩者顯示結(jié)果一致,虛擬示波器對(duì)正弦波的波形顯示比較理想,無(wú)失真。
圖11 輸入1kHz、幅值為4V的正弦波時(shí),(a)虛擬示波器和(b)函數(shù)信號(hào)發(fā)生器的顯示結(jié)果對(duì)比圖
類似地,當(dāng)輸入信號(hào)是頻率為1kHz、幅值為4V的三角波和方波時(shí),PC機(jī)上LabVIEW程序顯示結(jié)果和函數(shù)信號(hào)發(fā)生器顯示對(duì)比分別如圖12和圖13所示,在兩圖中,圖(a)虛擬示波器和圖(b)函數(shù)信號(hào)發(fā)生器的顯示結(jié)果均保持一致,虛擬示波器對(duì)三角波和方波的波形顯示比較理想,無(wú)失真。
圖12 輸入1kHz、幅值為4V的三角波時(shí),(a)虛擬示波器和(b)函數(shù)信號(hào)發(fā)生器的顯示結(jié)果對(duì)比圖
圖13 輸入1kHz、幅值為4V的方波時(shí),(a)虛擬示波器和(b)函數(shù)信號(hào)發(fā)生器的顯示結(jié)果對(duì)比圖
綜合以上來(lái)說(shuō),系統(tǒng)調(diào)試結(jié)果表明:當(dāng)輸入頻率為1kHz、幅值為4V的正弦波、三角波和方波信號(hào)時(shí),虛擬示波器和函數(shù)信號(hào)發(fā)生器的顯示結(jié)果都能保持一致,波形顯示比較理想,無(wú)失真。說(shuō)明針對(duì)此時(shí)來(lái)說(shuō),系統(tǒng)設(shè)計(jì)較合理。
若降低輸入信號(hào)的頻率,當(dāng)輸入信號(hào)是頻率為10Hz、幅值為5V的方波時(shí),PC機(jī)上LabVIEW程序顯示結(jié)果和函數(shù)信號(hào)發(fā)生器顯示對(duì)比如圖14所示,兩者顯示結(jié)果一致。系統(tǒng)調(diào)試結(jié)果表明:當(dāng)輸入為較低頻率信號(hào)時(shí),虛擬示波器對(duì)方波的波形顯示比較理想,無(wú)失真,此時(shí)系統(tǒng)設(shè)計(jì)較合理。
圖14 輸入10Hz、幅值為5V的方波時(shí),(a)虛擬示波器和(b)函數(shù)信號(hào)發(fā)生器的顯示結(jié)果對(duì)比圖
若升高輸入信號(hào)的頻率,當(dāng)輸入信號(hào)是頻率為5KHz、幅值為5V的方波時(shí),PC機(jī)上LabVIEW程序顯示結(jié)果和函數(shù)信號(hào)發(fā)生器顯示對(duì)比如圖15所示。系統(tǒng)調(diào)試結(jié)果表明:當(dāng)輸入為較高頻率信號(hào)時(shí),虛擬示波器對(duì)方波的波形顯示失真比較嚴(yán)重,無(wú)法正確顯示,說(shuō)明此虛擬示波器設(shè)計(jì)只適用于較低頻率范圍的輸入信號(hào)顯示。
圖15 輸入5kHz、幅值為5V的方波時(shí),(a)虛擬示波器和(b)函數(shù)信號(hào)發(fā)生器的顯示結(jié)果對(duì)比圖
本虛擬示波器設(shè)計(jì)結(jié)果還不夠理想。由于受制于單片機(jī)的串口通訊速率,采集的信號(hào)只能是低頻的,可以嘗試采集頻率更高的信號(hào),但對(duì)硬件需要做一些調(diào)整。另外,能采集電壓的幅度也受到了參考電壓的限制,可以通過(guò)添加外電路來(lái)采集幅值更高的電壓。
可以從兩個(gè)方面對(duì)本虛擬示波器設(shè)計(jì)進(jìn)行進(jìn)一步研究和改進(jìn):(1)提高ADC的采樣速率。針對(duì)單片機(jī)內(nèi)ADC采樣速率低、帶寬窄,從而影響示波器分辨率和波形顯示的問(wèn)題,可以選用高性能的采集卡或ADC來(lái)搭建虛擬示波器。(2)使虛擬示波器具備網(wǎng)絡(luò)功能。將虛擬示波器與網(wǎng)絡(luò)及遠(yuǎn)程監(jiān)控技術(shù)相結(jié)合,實(shí)現(xiàn)資源共享。隨著嵌入式系統(tǒng)和PC技術(shù)的融合發(fā)展,示波器等虛擬儀器可以具備嵌入式和實(shí)時(shí)功能。
本文基于STC12C5A60S2單片機(jī)及LabVIEW平臺(tái),通過(guò)軟、硬件設(shè)計(jì)實(shí)現(xiàn)對(duì)信號(hào)進(jìn)行采集、處理和顯示的虛擬示波器系統(tǒng),能實(shí)現(xiàn)A/D轉(zhuǎn)換模塊對(duì)信號(hào)進(jìn)行單通道連續(xù)采集,串口模塊通過(guò)串口將數(shù)據(jù)實(shí)時(shí)傳送至PC機(jī)上,實(shí)現(xiàn)對(duì)不同頻率、不同幅度的波形進(jìn)行顯示與分析等功能。隨著高速率A/D芯片和高性能ADC的發(fā)展和運(yùn)用,安裝有虛擬示波器等虛擬儀器軟件的計(jì)算機(jī),可作為多功能測(cè)量?jī)x器站在網(wǎng)絡(luò)上共享使用,具備低成本且高擴(kuò)充性,在工業(yè)測(cè)試與自動(dòng)化、航空航天和汽車等諸多領(lǐng)域都會(huì)有廣闊的應(yīng)用前景。