張大為 李建海 劉迪
(海軍航空工程學(xué)院控制系,山東煙臺(tái) 264001)
信號(hào)發(fā)生器是在科學(xué)研究和工程設(shè)計(jì)中廣泛應(yīng)用的一種通用儀器,通常用于電子電路的性能測(cè)試和參數(shù)測(cè)量[1]。傳統(tǒng)的信號(hào)發(fā)生器是封閉的系統(tǒng),具有信號(hào)輸入、輸出的能力,并有固定的用戶(hù)界面,但普遍存在著接口不靈活,系統(tǒng)封閉,功能固定,不易開(kāi)發(fā)、升級(jí)、維護(hù)等缺陷。虛擬儀器(Virtual Instrument,VI)是二十世紀(jì)90年代發(fā)展起來(lái)的一項(xiàng)新技術(shù),它將計(jì)算機(jī)與功能化硬件模塊有機(jī)結(jié)合,用戶(hù)可通過(guò)圖形界面操作計(jì)算機(jī)[2]。在虛擬儀器中,圖像和數(shù)據(jù)采集、分析控制、結(jié)果輸出等功能均由軟件完成,硬件僅僅用于解決信號(hào)的輸入輸出,體現(xiàn)了 “軟件即儀器”的思想。LabVIEW是由美國(guó)國(guó)家儀器公司創(chuàng)立的一種功能強(qiáng)大而又靈活的儀器和分析軟件應(yīng)用開(kāi)發(fā)工具,它提供一系列工具用于數(shù)據(jù)顯示、用戶(hù)界面設(shè)計(jì)、Web信息發(fā)布、報(bào)告生成、數(shù)據(jù)管理及軟件連接。利用 LabVIEW 可以方便快捷地建立自己的虛擬儀器,進(jìn)行原理研究、設(shè)計(jì)、測(cè)試,并實(shí)現(xiàn)儀器系統(tǒng),極大提高了工作效率[3,4]。本文設(shè)計(jì)的信號(hào)發(fā)生器硬件部分采用技術(shù)成熟可靠的聲卡作為數(shù)據(jù)采集設(shè)備;軟件部分依托LabVIEW 2009虛擬儀器開(kāi)發(fā)平臺(tái)進(jìn)行功能模塊開(kāi)發(fā)。
信號(hào)發(fā)生器總體結(jié)構(gòu)如圖1所示。硬件部分采用普通計(jì)算機(jī)的聲卡作為數(shù)據(jù)采集設(shè)備,軟件部分采用圖形化編程語(yǔ)言L(fǎng)abVIEW。
圖1 虛擬信號(hào)發(fā)生器的總體結(jié)構(gòu)
虛擬信號(hào)發(fā)生器產(chǎn)生的波形通過(guò)聲卡轉(zhuǎn)換輸出,經(jīng)過(guò)適當(dāng)?shù)碾妷赫{(diào)節(jié)電路,就可作為實(shí)驗(yàn)電路的激勵(lì)信號(hào)源,同時(shí),實(shí)驗(yàn)電路的輸出信號(hào)經(jīng)過(guò)電壓調(diào)節(jié)后,送入聲卡轉(zhuǎn)換,再由虛擬示波器分析和顯示。
虛擬示波器采集信號(hào)時(shí),信號(hào)通過(guò)聲卡的Line In輸入;虛擬信號(hào)發(fā)生器輸出信號(hào)時(shí),信號(hào)通過(guò)聲卡的Line Out輸出。系統(tǒng)中的電壓調(diào)節(jié)只對(duì)超出聲卡電壓范圍的信號(hào)進(jìn)行調(diào)節(jié),對(duì)于滿(mǎn)足電壓范圍的一般信號(hào)則不需調(diào)節(jié)。
信號(hào)采集時(shí),輸入電壓不能太大,一般聲卡接受的上限是1.5 V,若測(cè)量大于1.5 V的信號(hào)時(shí),需外接信號(hào)調(diào)理電路,把信號(hào)衰減到聲卡的量程范圍之內(nèi);信號(hào)輸出時(shí),輸出電壓一般較小,若需輸出高于1.5 V的電壓信號(hào)時(shí),則需要外接信號(hào)調(diào)理電路,按比例調(diào)整信號(hào)。
利用虛擬儀器技術(shù)設(shè)計(jì)開(kāi)發(fā)信號(hào)發(fā)生器實(shí)際是利用采集卡的模擬輸出功能來(lái)連續(xù)產(chǎn)生由軟件設(shè)定好的仿真信號(hào)。仿真信號(hào)是指按照信號(hào)變化規(guī)律,采用時(shí)間間隔取樣函數(shù)值的方法得到的用離散時(shí)間序列表示的數(shù)字信號(hào),可用于取代實(shí)際模擬信號(hào)的離散值。
聲卡作為語(yǔ)音信號(hào)與計(jì)算機(jī)的通用接口,其主要功能是經(jīng)過(guò)DSP音效芯片的處理,進(jìn)行模擬音頻信號(hào)和數(shù)字信號(hào)的轉(zhuǎn)換,因此,就其功能看,聲卡完全可作為一塊數(shù)據(jù)采集卡來(lái)使用[5]。并且聲卡價(jià)格低廉、性能穩(wěn)定,現(xiàn)在普通計(jì)算機(jī)上均已集成了聲卡,在教學(xué)實(shí)驗(yàn)中以聲卡取代常規(guī)的數(shù)據(jù)采集設(shè)備不失為一種很好的選擇,而且LabVIEW中提供了很多用于聲卡操作的函數(shù),所以用聲卡搭建數(shù)據(jù)采集系統(tǒng)是非常方便的。聲卡主要由聲音控制/處理芯片、功放芯片、聲音輸入/輸出接口三部分組成。其工作流程如圖2所示。聲卡錄音工作流程為:模擬音頻信號(hào)經(jīng)過(guò)聲卡前置處理器及A/D轉(zhuǎn)換后送入緩沖區(qū),通過(guò)各種數(shù)字信號(hào)處理手段對(duì)出入緩存區(qū)的數(shù)據(jù)進(jìn)行處理,完成聲音降噪、音效處理等工作,最后將處理好的數(shù)據(jù)保存到儲(chǔ)存設(shè)備。
聲卡聲音信號(hào)回放流程為:把處理好的數(shù)據(jù)傳送到輸出緩沖區(qū),經(jīng)由聲卡的D/A轉(zhuǎn)化,將數(shù)字信號(hào)轉(zhuǎn)換成模擬信號(hào),經(jīng)功率放大送到揚(yáng)聲器。
圖2 聲卡工作流程
在實(shí)際數(shù)據(jù)采集和信號(hào)輸出時(shí),分別選用Line In和Line Out接口,通過(guò)3.5 mm音頻插頭將信號(hào)從聲卡的Line In接口輸入,從Line Out接口輸出。
本文信號(hào)發(fā)生器設(shè)計(jì)中考慮到實(shí)驗(yàn)儀器的實(shí)際操作特點(diǎn),采用了如圖3所示的連續(xù)模擬信號(hào)輸出機(jī)制。首先,創(chuàng)建任務(wù)并完成通道配置,然后將初始信號(hào)模板寫(xiě)入要輸出的緩存中,繼而啟動(dòng)任務(wù)開(kāi)始模擬輸出,接下來(lái)進(jìn)入循環(huán),在循環(huán)中繼續(xù)生成信號(hào)模板并寫(xiě)入輸出緩存。這樣在硬件設(shè)備將緩存數(shù)據(jù)連續(xù)輸出到數(shù)模轉(zhuǎn)換器的同時(shí),程序定時(shí)將一段新的信號(hào)模板寫(xiě)入緩存,只要設(shè)置合適的緩存大小,就能使寫(xiě)入和輸出互不干擾,此時(shí),只要保持前后輸入的信號(hào)模板連續(xù),輸出信號(hào)也即連續(xù)。采用此種機(jī)制,信號(hào)模板無(wú)需是整周期的,而且信號(hào)參數(shù)的改變也不會(huì)影響任務(wù)的執(zhí)行。
圖3 虛擬信號(hào)發(fā)生器信號(hào)生成流程圖
LabVIEW圖形化程序設(shè)計(jì)語(yǔ)言編程簡(jiǎn)單、直觀、開(kāi)發(fā)效率高,適用于構(gòu)建簡(jiǎn)單的虛擬儀器,因而選擇LabVIEW作為開(kāi)發(fā)平臺(tái)。LabVIEW應(yīng)用程序稱(chēng)為VI,每個(gè)VI都由程序前面板、框圖程序和圖標(biāo)連接三部分組成[6]。程序前面板模擬真實(shí)儀表的前面板,用于設(shè)置輸入數(shù)值和觀察輸出量。每塊程序前面板都對(duì)應(yīng)一段框圖程序,框圖程序采用 LabVIEW 圖形編程語(yǔ)言編寫(xiě),圖標(biāo)連接器是調(diào)用子程序的接口,利用連線(xiàn)工具即可與其它程序模塊相連.利用框圖程序編輯好三個(gè)VI,建成信號(hào)發(fā)生器圖標(biāo)、系統(tǒng)圖標(biāo)、示波器圖標(biāo)。這樣,實(shí)驗(yàn)時(shí)只需調(diào)用這幾個(gè)圖標(biāo),在框圖程序編輯面板上用連線(xiàn)工具連接即可組成虛擬試驗(yàn)系統(tǒng)。實(shí)驗(yàn)時(shí),首先選擇系統(tǒng)類(lèi)型和參數(shù),然后在程序前面板上的信號(hào)發(fā)生器中選擇激勵(lì)信號(hào)與頻率值,虛擬示波器即可得到輸出波形。
本文設(shè)計(jì)的軟件程序調(diào)用了幾個(gè)有關(guān)聲卡的重要子VI,具體構(gòu)造過(guò)程如下:
第一,調(diào)用Sound Out Configure.vi配置聲卡并開(kāi)始進(jìn)行信號(hào)的輸出,程序默認(rèn)設(shè)置采樣速率為44.1 kHz,通道數(shù)為2,采樣位數(shù)為16位,緩存大小為每通道5000個(gè)樣本。
第二,循環(huán)結(jié)束后,調(diào)用 Sound Output Write.vi,向緩存中寫(xiě)入由仿真信號(hào)發(fā)生模塊產(chǎn)生的仿真信號(hào),在外面加一個(gè)While循環(huán),實(shí)現(xiàn)連續(xù)寫(xiě)入數(shù)據(jù)。
第三,循環(huán)結(jié)束后,調(diào)用 Sound output Clear.vi,停止輸出并執(zhí)行相應(yīng)的其它操作。
虛擬信號(hào)發(fā)生器的前面板主要分為三個(gè)部分:公共參數(shù)設(shè)置部分、各類(lèi)信號(hào)參數(shù)設(shè)置部分和輸出波形顯示部分。
公共參數(shù)設(shè)置部分可以設(shè)置聲卡的采樣參數(shù)、采樣速率、采樣位數(shù)、輸出通道和緩存區(qū)容量,同時(shí)實(shí)現(xiàn)信號(hào)發(fā)生器功能的選擇;在公共參數(shù)設(shè)置部分選擇想要得到的波形,然后在信號(hào)參數(shù)設(shè)置部分對(duì)波形參數(shù)進(jìn)行設(shè)定;輸出波形顯示部分可以清楚的看到當(dāng)前輸出信號(hào)的理論波形。
系統(tǒng)調(diào)試表明,設(shè)計(jì)的信號(hào)發(fā)生器可實(shí)現(xiàn)如下功能:有標(biāo)準(zhǔn)的正弦波、方波、三角波、鋸齒波波形輸出;有疊加正弦波、高斯白噪聲及各種自定義波形輸出;可以將波形保存在文本文件中;能夠從波形的文本文件中讀出波形并在前面板顯示;可以方便地調(diào)整各類(lèi)波形的參數(shù)設(shè)置。
以L(fǎng)abView為開(kāi)發(fā)平臺(tái),設(shè)計(jì)了一種性能良好的虛擬信號(hào)發(fā)生器。該信號(hào)發(fā)生器采用聲卡作為數(shù)據(jù)采集設(shè)備,軟件部分依托LabView進(jìn)行模塊化設(shè)計(jì)。設(shè)計(jì)的虛擬信號(hào)發(fā)生器能出色地完成各種信號(hào)的生成功能,充分發(fā)揮了虛擬儀器技術(shù)在數(shù)據(jù)采集和信號(hào)生成中的優(yōu)勢(shì),具有結(jié)構(gòu)簡(jiǎn)單、操作簡(jiǎn)便、擴(kuò)展性強(qiáng)等優(yōu)點(diǎn)。
:
[1]陳小橋, 黃恩民, 張雪濱等. 基于單片機(jī)與 AD9851的信號(hào)發(fā)生器[J]. 實(shí)驗(yàn)室研究與探索, 2011, 30 (8):98-102.
[2]黃松嶺, 吳靜. 虛擬儀器設(shè)計(jì)基礎(chǔ)教程[M]. 北京:清華大學(xué)出版社, 2008.
[3]陳永明, 王紅超, 李繼芳等. 基于 LabVIEW 的波形發(fā)生器[J]. 電子測(cè)量技術(shù), 2006, 29(5): 84-86.
[4]張桐, 陳國(guó)順. 精通LabVIEW程序設(shè)計(jì)[M]. 北京:電子工業(yè)出版社, 2008.
[5]肖立, 盧再奇, 付強(qiáng). 利用聲卡形成正弦波函數(shù)發(fā)生器[J]. 微處理機(jī), 2003, (3): 54-56.
[6]郭山國(guó), 王國(guó)章, 王建軍等. 基于LabVIEW的虛擬信號(hào)發(fā)生器的設(shè)計(jì)研究[J]. 機(jī)械工程與自動(dòng)化,2011, 166(3): 10-11.