張大為 李建海 劉迪
(海軍航空工程學院控制系,山東煙臺 264001)
信號發(fā)生器是在科學研究和工程設計中廣泛應用的一種通用儀器,通常用于電子電路的性能測試和參數(shù)測量[1]。傳統(tǒng)的信號發(fā)生器是封閉的系統(tǒng),具有信號輸入、輸出的能力,并有固定的用戶界面,但普遍存在著接口不靈活,系統(tǒng)封閉,功能固定,不易開發(fā)、升級、維護等缺陷。虛擬儀器(Virtual Instrument,VI)是二十世紀90年代發(fā)展起來的一項新技術,它將計算機與功能化硬件模塊有機結合,用戶可通過圖形界面操作計算機[2]。在虛擬儀器中,圖像和數(shù)據(jù)采集、分析控制、結果輸出等功能均由軟件完成,硬件僅僅用于解決信號的輸入輸出,體現(xiàn)了 “軟件即儀器”的思想。LabVIEW是由美國國家儀器公司創(chuàng)立的一種功能強大而又靈活的儀器和分析軟件應用開發(fā)工具,它提供一系列工具用于數(shù)據(jù)顯示、用戶界面設計、Web信息發(fā)布、報告生成、數(shù)據(jù)管理及軟件連接。利用 LabVIEW 可以方便快捷地建立自己的虛擬儀器,進行原理研究、設計、測試,并實現(xiàn)儀器系統(tǒng),極大提高了工作效率[3,4]。本文設計的信號發(fā)生器硬件部分采用技術成熟可靠的聲卡作為數(shù)據(jù)采集設備;軟件部分依托LabVIEW 2009虛擬儀器開發(fā)平臺進行功能模塊開發(fā)。
信號發(fā)生器總體結構如圖1所示。硬件部分采用普通計算機的聲卡作為數(shù)據(jù)采集設備,軟件部分采用圖形化編程語言LabVIEW。

圖1 虛擬信號發(fā)生器的總體結構
虛擬信號發(fā)生器產生的波形通過聲卡轉換輸出,經(jīng)過適當?shù)碾妷赫{節(jié)電路,就可作為實驗電路的激勵信號源,同時,實驗電路的輸出信號經(jīng)過電壓調節(jié)后,送入聲卡轉換,再由虛擬示波器分析和顯示。
虛擬示波器采集信號時,信號通過聲卡的Line In輸入;虛擬信號發(fā)生器輸出信號時,信號通過聲卡的Line Out輸出。系統(tǒng)中的電壓調節(jié)只對超出聲卡電壓范圍的信號進行調節(jié),對于滿足電壓范圍的一般信號則不需調節(jié)。
信號采集時,輸入電壓不能太大,一般聲卡接受的上限是1.5 V,若測量大于1.5 V的信號時,需外接信號調理電路,把信號衰減到聲卡的量程范圍之內;信號輸出時,輸出電壓一般較小,若需輸出高于1.5 V的電壓信號時,則需要外接信號調理電路,按比例調整信號。
利用虛擬儀器技術設計開發(fā)信號發(fā)生器實際是利用采集卡的模擬輸出功能來連續(xù)產生由軟件設定好的仿真信號。仿真信號是指按照信號變化規(guī)律,采用時間間隔取樣函數(shù)值的方法得到的用離散時間序列表示的數(shù)字信號,可用于取代實際模擬信號的離散值。
聲卡作為語音信號與計算機的通用接口,其主要功能是經(jīng)過DSP音效芯片的處理,進行模擬音頻信號和數(shù)字信號的轉換,因此,就其功能看,聲卡完全可作為一塊數(shù)據(jù)采集卡來使用[5]。并且聲卡價格低廉、性能穩(wěn)定,現(xiàn)在普通計算機上均已集成了聲卡,在教學實驗中以聲卡取代常規(guī)的數(shù)據(jù)采集設備不失為一種很好的選擇,而且LabVIEW中提供了很多用于聲卡操作的函數(shù),所以用聲卡搭建數(shù)據(jù)采集系統(tǒng)是非常方便的。聲卡主要由聲音控制/處理芯片、功放芯片、聲音輸入/輸出接口三部分組成。其工作流程如圖2所示。聲卡錄音工作流程為:模擬音頻信號經(jīng)過聲卡前置處理器及A/D轉換后送入緩沖區(qū),通過各種數(shù)字信號處理手段對出入緩存區(qū)的數(shù)據(jù)進行處理,完成聲音降噪、音效處理等工作,最后將處理好的數(shù)據(jù)保存到儲存設備。
聲卡聲音信號回放流程為:把處理好的數(shù)據(jù)傳送到輸出緩沖區(qū),經(jīng)由聲卡的D/A轉化,將數(shù)字信號轉換成模擬信號,經(jīng)功率放大送到揚聲器。

圖2 聲卡工作流程
在實際數(shù)據(jù)采集和信號輸出時,分別選用Line In和Line Out接口,通過3.5 mm音頻插頭將信號從聲卡的Line In接口輸入,從Line Out接口輸出。
本文信號發(fā)生器設計中考慮到實驗儀器的實際操作特點,采用了如圖3所示的連續(xù)模擬信號輸出機制。首先,創(chuàng)建任務并完成通道配置,然后將初始信號模板寫入要輸出的緩存中,繼而啟動任務開始模擬輸出,接下來進入循環(huán),在循環(huán)中繼續(xù)生成信號模板并寫入輸出緩存。這樣在硬件設備將緩存數(shù)據(jù)連續(xù)輸出到數(shù)模轉換器的同時,程序定時將一段新的信號模板寫入緩存,只要設置合適的緩存大小,就能使寫入和輸出互不干擾,此時,只要保持前后輸入的信號模板連續(xù),輸出信號也即連續(xù)。采用此種機制,信號模板無需是整周期的,而且信號參數(shù)的改變也不會影響任務的執(zhí)行。

圖3 虛擬信號發(fā)生器信號生成流程圖
LabVIEW圖形化程序設計語言編程簡單、直觀、開發(fā)效率高,適用于構建簡單的虛擬儀器,因而選擇LabVIEW作為開發(fā)平臺。LabVIEW應用程序稱為VI,每個VI都由程序前面板、框圖程序和圖標連接三部分組成[6]。程序前面板模擬真實儀表的前面板,用于設置輸入數(shù)值和觀察輸出量。每塊程序前面板都對應一段框圖程序,框圖程序采用 LabVIEW 圖形編程語言編寫,圖標連接器是調用子程序的接口,利用連線工具即可與其它程序模塊相連.利用框圖程序編輯好三個VI,建成信號發(fā)生器圖標、系統(tǒng)圖標、示波器圖標。這樣,實驗時只需調用這幾個圖標,在框圖程序編輯面板上用連線工具連接即可組成虛擬試驗系統(tǒng)。實驗時,首先選擇系統(tǒng)類型和參數(shù),然后在程序前面板上的信號發(fā)生器中選擇激勵信號與頻率值,虛擬示波器即可得到輸出波形。
本文設計的軟件程序調用了幾個有關聲卡的重要子VI,具體構造過程如下:
第一,調用Sound Out Configure.vi配置聲卡并開始進行信號的輸出,程序默認設置采樣速率為44.1 kHz,通道數(shù)為2,采樣位數(shù)為16位,緩存大小為每通道5000個樣本。
第二,循環(huán)結束后,調用 Sound Output Write.vi,向緩存中寫入由仿真信號發(fā)生模塊產生的仿真信號,在外面加一個While循環(huán),實現(xiàn)連續(xù)寫入數(shù)據(jù)。
第三,循環(huán)結束后,調用 Sound output Clear.vi,停止輸出并執(zhí)行相應的其它操作。
虛擬信號發(fā)生器的前面板主要分為三個部分:公共參數(shù)設置部分、各類信號參數(shù)設置部分和輸出波形顯示部分。
公共參數(shù)設置部分可以設置聲卡的采樣參數(shù)、采樣速率、采樣位數(shù)、輸出通道和緩存區(qū)容量,同時實現(xiàn)信號發(fā)生器功能的選擇;在公共參數(shù)設置部分選擇想要得到的波形,然后在信號參數(shù)設置部分對波形參數(shù)進行設定;輸出波形顯示部分可以清楚的看到當前輸出信號的理論波形。
系統(tǒng)調試表明,設計的信號發(fā)生器可實現(xiàn)如下功能:有標準的正弦波、方波、三角波、鋸齒波波形輸出;有疊加正弦波、高斯白噪聲及各種自定義波形輸出;可以將波形保存在文本文件中;能夠從波形的文本文件中讀出波形并在前面板顯示;可以方便地調整各類波形的參數(shù)設置。
以LabView為開發(fā)平臺,設計了一種性能良好的虛擬信號發(fā)生器。該信號發(fā)生器采用聲卡作為數(shù)據(jù)采集設備,軟件部分依托LabView進行模塊化設計。設計的虛擬信號發(fā)生器能出色地完成各種信號的生成功能,充分發(fā)揮了虛擬儀器技術在數(shù)據(jù)采集和信號生成中的優(yōu)勢,具有結構簡單、操作簡便、擴展性強等優(yōu)點。
:
[1]陳小橋, 黃恩民, 張雪濱等. 基于單片機與 AD9851的信號發(fā)生器[J]. 實驗室研究與探索, 2011, 30 (8):98-102.
[2]黃松嶺, 吳靜. 虛擬儀器設計基礎教程[M]. 北京:清華大學出版社, 2008.
[3]陳永明, 王紅超, 李繼芳等. 基于 LabVIEW 的波形發(fā)生器[J]. 電子測量技術, 2006, 29(5): 84-86.
[4]張桐, 陳國順. 精通LabVIEW程序設計[M]. 北京:電子工業(yè)出版社, 2008.
[5]肖立, 盧再奇, 付強. 利用聲卡形成正弦波函數(shù)發(fā)生器[J]. 微處理機, 2003, (3): 54-56.
[6]郭山國, 王國章, 王建軍等. 基于LabVIEW的虛擬信號發(fā)生器的設計研究[J]. 機械工程與自動化,2011, 166(3): 10-11.