基于LabWindows/CVI虛擬示波器的設(shè)計(jì)與實(shí)現(xiàn)
0 引 言
隨著虛擬儀器技術(shù)的發(fā)展,采用“虛擬儀器”來取代傳統(tǒng)儀器的新的測控方法正在取代傳統(tǒng)的測控系統(tǒng),即利用數(shù)據(jù)采集卡、信號調(diào)理卡或其他計(jì)算機(jī)外圍硬件進(jìn)行信號的采集與檢測,然后由計(jì)算機(jī)來實(shí)現(xiàn)對信號的處理、計(jì)算和分析以及測試結(jié)果的顯示。
Labwindows/CⅥ是基于標(biāo)準(zhǔn)C語言的集成軟件開發(fā)環(huán)境,其開發(fā)虛擬儀器的步驟主要是先確定程序的基本框架,創(chuàng)建用戶界面,然后完成程序代碼的編寫,最后創(chuàng)建工程文件,將程序文件、頭文件、用戶界面文件加入工程中,編譯調(diào)試生成可執(zhí)行文件。
1 數(shù)據(jù)采集卡的設(shè)計(jì)
傳統(tǒng)的數(shù)據(jù)采集卡包括多路開關(guān)、放大器、采樣/保持器、A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器等器件組成。PCI(peripheral component interconnect)總線即外部部件互連總線,是一種高性能32/64位地址數(shù)據(jù)復(fù)用高速外圍設(shè)備接口局部總線。隨著微處理機(jī)的性能不斷提高,人們對微機(jī)系統(tǒng)的I/O帶寬不斷提出新的要求,原有的標(biāo)準(zhǔn)總線,如ISA、EISA和Mc已經(jīng)逐漸不能勝任現(xiàn)代數(shù)據(jù)采集技術(shù)的要求。PCI局部總線的引入,打破了數(shù)據(jù)傳輸?shù)钠款i,以其優(yōu)異的性能和適應(yīng)性,成為微機(jī)總線的主流,基于PCI總線的數(shù)據(jù)采集系統(tǒng)是高速數(shù)據(jù)采集系統(tǒng)的發(fā)展方向?;赑CI總線的數(shù)據(jù)采集卡的整體結(jié)構(gòu)可以設(shè)計(jì)如圖1所示:
完成數(shù)據(jù)采集卡的硬件設(shè)計(jì)后,需要進(jìn)行板卡的驅(qū)動程序編寫。其中的WDM(Window Driver Model)是Microsof訟司力推的驅(qū)動模型,其提供了更多特性,包括即插即用、電源管理、WMI等,且WDM還是一個(gè)跨平臺的驅(qū)動程序模型,可以在不修改代碼的情況下重新編譯就可以在不同平臺上運(yùn)行了。
2 虛擬示波器軟件設(shè)計(jì)
虛擬示波器測試系統(tǒng)是通過外圍硬件電路獲得離散數(shù)據(jù)并對該信號進(jìn)行時(shí)域的顯示和分析。從而獲得近似真實(shí)儀器的測試結(jié)果。本設(shè)計(jì)利用數(shù)據(jù)采集卡獲得模擬信號,其軟件結(jié)構(gòu)如圖2所示:
1)信號采集模塊
由于本設(shè)計(jì)采用非NI數(shù)據(jù)采集卡,不能直接運(yùn)用LabWindows/CVI的函數(shù)庫來實(shí)現(xiàn)。但是板卡設(shè)計(jì)的驅(qū)動程序一般是以動態(tài)鏈接庫的形式提供的,所以對于LabWindows/CVI而言,可以直接利用驅(qū)動程序中的動態(tài)鏈接庫來實(shí)驗(yàn)數(shù)據(jù)文件的采樣。我們把采集到的數(shù)據(jù)存儲在一個(gè)一維數(shù)組中以便進(jìn)行分析運(yùn)算。
2)波形顯示模塊
設(shè)計(jì)采用LabWindows/CVI提供的Graph來顯示波形,對于采集到的數(shù)據(jù),存放在一個(gè)大小可調(diào)節(jié)的動態(tài)數(shù)組中,對該數(shù)據(jù)進(jìn)行時(shí)域分析并畫圖顯示。波形顯示模塊還包括AB通道波形的疊加,相減等基本運(yùn)算。其實(shí)現(xiàn)方法就是利用C語言對數(shù)據(jù)元素的簡單加減。
3)時(shí)域分析模塊
時(shí)域分析包括A、B通道的自相關(guān),AB通道信號互相關(guān)分析,AB通道的卷積,AB通道的李沙育圖。相關(guān)運(yùn)算設(shè)計(jì)利用LabWindows/CVI函數(shù)庫中的Convolve()函數(shù)來完成。卷積是通過Correlate()函數(shù)來完成。圖2左側(cè)是AB通道的信號,其中脈沖信號可表示為:正弦信號可以表示為:x(n)=sin(k),0≤k≤1024,k∈Z圖3右側(cè)表示x(n)卷積u(k)的結(jié)果。其中橫坐標(biāo)表示采樣點(diǎn)數(shù)共1024個(gè)點(diǎn),縱坐標(biāo)表示幅值。幅值增益1V/d,
4)信號調(diào)節(jié)模塊
信號調(diào)節(jié)模塊主要設(shè)計(jì)完成信號的垂直增益,垂直位移,水平增益的調(diào)節(jié)。設(shè)計(jì)的具體實(shí)現(xiàn)也是通過C語言對數(shù)組的操作實(shí)現(xiàn)。圖4表示信號調(diào)節(jié)模塊程序流程圖。
5)存儲模塊
真實(shí)示波器由于存儲硬件的限制,只能存儲2~4個(gè)數(shù)據(jù),而在在虛擬的數(shù)字存儲示波器中,利用硬盤等存儲介質(zhì),可以任意存取無限多個(gè)數(shù)據(jù),而且存儲更加安全。具體實(shí)現(xiàn)方法是:存儲對被測信號取樣,然后轉(zhuǎn)換成數(shù)組,再將數(shù)組保存到文件中,讀取時(shí)恰好相反,其工作流程如圖5所示。
3 測試結(jié)果及仿真分析
按照LabWindows/CVI的設(shè)計(jì)流程,我們完成虛擬示波器的設(shè)計(jì),并對正弦信號進(jìn)行采樣分析,結(jié)果如圖6所示:
虛擬儀器的主要問題就是儀器的仿真,而仿真包括兩個(gè)方面的內(nèi)容,一個(gè)是儀器功能的仿真,另一個(gè)就是儀器外觀及面板的仿真。本設(shè)計(jì)著重于儀器功能的仿真。
1)數(shù)據(jù)處理功能及波形存儲功能的仿真
通過虛擬儀器軟件功能設(shè)計(jì),我們完成信號的顯示、相關(guān)運(yùn)算、卷積運(yùn)算、文件的存儲與讀取,基本實(shí)現(xiàn)了示波器的功能。達(dá)到仿真的目標(biāo)。
2)頻帶寬度仿真
一般來說,用計(jì)算機(jī)直接生成的虛擬示波器的帶寬實(shí)際上就是計(jì)算機(jī)的帶寬,其所能測量的頻率的上限取決于計(jì)算機(jī)的性能。而實(shí)際上示波器受到種種因素的限制,其帶寬遠(yuǎn)遠(yuǎn)低于計(jì)算機(jī)的帶寬。限制示波器帶寬的因素主要有:
①示波器上限工作頻率的限制。
②Y通道放大器帶寬的限制。
③時(shí)基電路掃描速度的限制。
為了達(dá)到仿真的效果,為虛擬示波器設(shè)計(jì)了一個(gè)100MHz,-3dB的低通數(shù)字濾波器。使用契必雪夫等IIR濾波器雖然能夠較好的保持被測信號的幅頻特性,但其相頻特性很不理想。因此,采用矩形窗設(shè)計(jì)了一個(gè)FIR濾波器,保證了經(jīng)過濾波器的信號能夠線性的逼近被測信號的相位。矩形窗的頻譜特性如下式(見圖7)所示。
如圖7所示:H(ejω)
4 結(jié)束語
虛擬儀器的出現(xiàn)對于測試測量行業(yè)是一個(gè)轉(zhuǎn)折點(diǎn),它意味著我們可以根據(jù)自己的需要隨時(shí)隨地的通過對虛擬儀器軟件模塊的更改而改變儀器的性能。但是,想要完成一個(gè)高性能的虛擬測試系統(tǒng)的開發(fā)仍然很困難。不同的接口總線之間的不可交換性,使得我們必須得為每一種接口總線開發(fā)不同的硬件驅(qū)動程序,從而降低了虛擬儀器的通用性。高性能虛擬儀器接口電路的復(fù)雜與數(shù)據(jù)高速測量需求之間的矛盾也是制約其廣泛應(yīng)用的原因。然而,虛擬儀器技術(shù)作為新興的儀器儀表技術(shù),它的發(fā)展也不過短短的數(shù)十年,相信隨著計(jì)算機(jī)技術(shù),虛擬儀器技術(shù)的不斷發(fā)展與完善,其必將取代傳統(tǒng)儀器而成為儀器儀表行業(yè)的主力軍。