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