【文章內容簡介】
電路、衰減電路、可變增益的放大電路,將信號處理成 A/D 轉換器可以處理的標準電平,經(jīng)過 A/D 采樣量化轉化成計算機可以處理的數(shù)字信號并緩存到卡上的存儲器。其支持軟件通過 PC 機的 PCI 總線接口控制模擬通道的阻抗匹配、放大器的增益2 虛擬示波器設計理論9選擇、啟動 A/D 轉換及轉換結束的識別,并將采集數(shù)據(jù)以 DMA 的方式傳輸?shù)接嬎銠C內存,同時對數(shù)據(jù)信號進行分析處理、顯示、存儲及打印傳輸?shù)取J褂?LABVIEW 構建基于聲卡的虛擬示波器的思路是很清晰的。實際的數(shù)據(jù)采集流程是:(1)初始化:對聲卡中與數(shù)據(jù)采集相關的一些硬件參數(shù)進行設置;(2)然后,聲卡開始采集數(shù)據(jù),并將采集到的數(shù)據(jù)暫存在先進先出的緩沖區(qū)中;(3)當緩沖區(qū)存滿數(shù)據(jù)后,一方面將數(shù)據(jù)讀取到用戶程序的數(shù)組中,產(chǎn)生一個采集數(shù)據(jù)集合,并在程序中對數(shù)據(jù)進行各種處理;(4)另一方面,得到緩沖區(qū)滿的消息后,通知聲卡暫時停止采集外部數(shù)據(jù),并進一步清空緩存里的內容。聲卡數(shù)據(jù)采集流程如圖 22 所示,這個流程與一般數(shù)據(jù)采集卡并無多大差別,這也是本設計的最基本的骨干。2 圖 22 聲卡數(shù)據(jù)采集流程圖虛擬示波器是采用基于計算機的虛擬技術,用以模擬通用示波器的面板操作和處理功能,也就是使用個人計算機及接口電路來采集現(xiàn)場或實驗室信號,并通過圖形用戶界面(GUI)來模仿示波器的操作面板,完成信號采集、調理、分析處理和顯示輸出等功能 [8]。本文所設計的虛擬示波器,是在數(shù)據(jù)采集硬件的支持下,配備一定功能的軟件,完成波形的存儲、分析、顯示等功能。一般測試儀器由信號采集、信號處理和結果顯示三大部分組成,這三大部分均由硬件構成。虛擬示波器也是由這三大部分組成,但是除了信號采集部分是由硬件實現(xiàn)之外,其它兩部分都是由軟件實現(xiàn)。本文設計的虛擬示波器總體上包括數(shù)據(jù)采集、波形顯示、參數(shù)測量、頻譜分析、等幾大模塊組成,虛擬示波器的結構框圖如下 23 所示。西安交通大學城市學院本科畢業(yè)設計(論文)10信號輸入數(shù)據(jù)采集 數(shù)據(jù)處理波形顯示參數(shù)測量頻譜分析圖 23 示波器的結構框圖結構框圖說明:信號輸入是由計算機輸入一段聲音,然后由聲卡進行數(shù)據(jù)采集,聲卡將采集到的信號存入緩存區(qū),LABVIEW 中的聲音函數(shù)從緩存區(qū)中讀取數(shù)據(jù),讀取到數(shù)據(jù)以后點擊運行按鈕,示波器中就可以將信號的波形、參數(shù)測量和頻譜分析顯示出來。 聲卡的作用從數(shù)據(jù)采集的角度看,聲卡是一種音頻范圍內的數(shù)據(jù)內數(shù)據(jù)采集卡,是計算機與外部的模擬量間環(huán)境聯(lián)系的重要途徑。LABVIEW 提供了操作聲卡的函數(shù)。聲卡的主要功能包括錄制與播放、編輯與合成處理、MIDI 接口三個部分。(1)錄制與播放通過聲卡,人們可將來自話筒、收錄機等外部音源的聲音錄入計算機,并轉換成數(shù)字文件進行存儲和編輯等操作;人們也可以將數(shù)字文件還原成聲音信號,通過揚聲器回放,例如為電子游戲配音,以及播放 CD、VD、DVD、MP3和卡拉 OK 等。注意,在錄制和回放時,不僅要進行 D/A 和 A/D 轉換,還要進行壓縮和解壓縮處理。(2)編輯和合成處理通過對聲音文件進行多種特技效果的處理,包括加入回聲,倒放,淡入淡出,往返放音以及左右兩個聲道交叉放音等,可以實現(xiàn)對各種聲源音量的控制和混合。(3)MIDI(Musical Instrument Digital Interface 樂器數(shù)字接口)接口通過MIDI 接口和波表合成,可以記錄和回放各種接近真實樂器原聲的音樂。從一般意義上來看,上述功能主要是數(shù)據(jù)采集和信號處理,很自然的就可2 虛擬示波器設計理論11以聯(lián)想到用聲卡實現(xiàn)示波器、信號處理器、頻譜分析儀等虛擬儀器 [9]。 聲卡的硬件結構圖 24 是一個聲卡的硬件結構示意圖。一般聲卡有 45 個對外接口。其中,輸出接口有 2 個,分別是 Ware Out 和 SPK Out。Ware Out(或 Line Out)給出的信號沒有經(jīng)過放大,需要外接功率放大器,例如可以接到有源音箱;SPK Out給出的信號是通過功率放大的信號,可以直接接到喇叭上。這些接口可以用來作為雙通道信號發(fā)生器的輸出。L i n e I nM i c I nW a v e O u tS P K O u tM I D I I nA / DD S P D / A波 表M I D I 合 成 器圖 24 聲卡的硬件結構示意圖輸入接口 Line In 和 Mic In 的區(qū)別在于,后者可以接入較弱的信號,幅值大約為 ,顯然這個信號較易受干擾,因而常使用 Line In,它可以接入幅值約為不超過 的信號。注意,這兩個輸入端口都有隔直電容,這意味著直流信號不能被聲卡所接受。多數(shù)聲卡的輸入也是雙通道的,但接入插頭線往往將這兩個通道短接成一個通道。另外這兩個通道是共地的 [10]。 聲卡的主要技術參數(shù)(1)采樣的位數(shù)采樣位數(shù)可以理解為聲卡處理聲音的解析度。這個數(shù)值越大,解析度就越高,錄制和回放的聲音也就越真實。聲卡的位數(shù)是指聲卡在采集和播放聲音文件時所使用的數(shù)字聲音信號的二進制位數(shù),它客觀的反映了數(shù)字聲音信號對輸入聲音信號描述的準確度。例如,8 位代表 ;16 位的代表 。2568?64021?比較之下,一段相同的音樂信息,16 位聲卡能把它分為 64000 個精度單位進行處理,而 8 位聲卡只能處理 256 個精度單位,最終采樣效果當然是無法相提并論的。(2)采樣頻率目前,聲卡的最高采樣頻率為 ,少數(shù)達到 48kHz。對于民用聲卡,西安交通大學城市學院本科畢業(yè)設計(論文)12一般將采樣頻率設為 4 檔,分別是、8kHz。 只能達到 FM 廣播的聲音品質; 是理論上的 CD 音質界限,48kHz 則更好一些。對 20kHz 范圍內的音頻信號,最高的采樣頻率才 48kHz,雖然理論上沒有問題,但似乎余量不大。使用聲卡比較大的局限在于,它不允許用戶在最高采樣頻率之下隨意設定采樣頻率,而只能分為 4 檔設定。這樣雖然可使制造成本降低,但卻不便于使用。用戶基本上不可能控制整周期采樣,只能通過信號處理的方法來彌補非整周期采樣帶來的問題。(3)緩沖區(qū)與一般數(shù)據(jù)采樣卡不同,聲卡面臨的 D/A 和 A/D 任務通常是連續(xù)狀態(tài)的。為了在一個簡易的結構下較好的完成某個任務,聲卡緩沖區(qū)的設計有其獨到之處。為了節(jié)省 CPU 資源,計算機的 CPU 并不是每次聲卡 A/D 或 D/A 結束后都要響應一次中斷,而是采用了緩沖區(qū)的工作方式。在這種工作方式下,聲卡的A/D、D/A 都對某一緩沖區(qū)進行操作。以輸入聲音的 A/D 變換為例,每次轉換完畢后,聲卡控制芯片都將數(shù)據(jù)存放在緩沖區(qū),待緩沖區(qū)滿時,發(fā)出中斷給CPU,CPU 響應中斷后一次性將緩沖區(qū)內的數(shù)據(jù)全部讀走。計算機總線的數(shù)據(jù)傳輸速率非常高,讀取緩沖區(qū)數(shù)據(jù)所用時間極短,不會影響 A/D 變換的連續(xù)性。緩沖區(qū)的工作方式大大降低了 CPU 響應中斷頻度,節(jié)省了系統(tǒng)資源,聲卡輸出聲音的 D/A 變換也是類似的。一般聲卡使用的緩沖區(qū)長度的默認值是 8KB(8192 字節(jié)) 。這是由于對 x86系列處理器來說,在保護模式(Windows 等系統(tǒng)使用的 CPU 工作方式)下,內存以 8KB 為單位被分成很多頁,對內存的任何訪問都是按頁進行,CPU 保證了讀寫 8KB 長度的內存緩沖區(qū)時,速度足夠快,并且一般不會被其他外來事件打斷。設置 8192 字節(jié)或其整數(shù)倍(例如 32768 字節(jié))大小的緩沖區(qū),可以較好的保證聲卡與 CPU 的協(xié)調工作。(4)沒有基準電壓聲卡不提供基準電壓,因此無論是 D/A 還是 A/D 在使用時,都需要用戶自己參照基準電壓進行標定 [11]。 聲卡用于數(shù)據(jù)采集時的設置(1)聲卡的設置一般聲卡主要用于輸出聲音,輸入部分可能沒有處于正常工作狀態(tài)。建議首先使用耳機和 MIC 檢查聲卡的功能,特別是輸入功能(錄音功能)是否正常。如果不正常,需要檢查聲卡的設置。一般來說,這里的設置有兩層含義,首先是要配置所需的功能,其次是要保證已經(jīng)配置的功能不處于關閉(靜音)狀態(tài)。2 虛擬示波器設計理論13下面介紹對 Line In 和 Mic In 的檢查和設置。按圖 25 所示,在“選項”菜單下選“屬性” ,得到圖 25(b)圖所示的對話框,在此對話框上選擇“錄音” ,并配置列表中的選項即可。注意圖 25 中的相關功能都不能處于靜音狀態(tài)。如圖 25(a)所示。圖 25(a )音量控制窗口圖 25(b)音量控制屬性圖 25 音量控制窗口和音量控制屬性對話框(2)硬件連接硬件連接采用兩種連接線:1 一條一頭是 插孔,另一頭是鱷魚夾的連接線,2 是雙頭為 插孔的音頻連接線(在市場上可以買的到) 。為測試聲卡的頻響特性,可使用測試線 2 將聲卡的輸入端與輸出端連接起來,形成一個閉合的環(huán)路。連接時要注意區(qū)分 Mic In 口和 SPK Out 口,不要把它們當作Line In 與 Line Out 接入。如果測試輸入信號,則使用測試線 1 把信號源連接到聲卡輸入端 Line In 口;如果測試輸出信號,就把該測試線連接到聲卡輸出端 Line Out 口。西安交通大學城市學院本科畢業(yè)設計(論文)14 本章小結本章主要介紹了虛擬示波器的工作原理及各個功能模塊的流程實現(xiàn)原理。本文用聲卡代替數(shù)據(jù)采集卡來采集信號的。主要介紹了聲卡的各個功能,包括聲卡的作用、硬件結構,并對聲卡的技術參數(shù)做了詳細的介紹。最后介紹了聲卡用于數(shù)據(jù)采集時的一些設置。2 虛擬示波器設計理論15西安交通大學城市學院本科畢業(yè)設計(論文)163 虛擬示波器軟件設計 LABVIEW 簡介LABVIEW 是(實驗室虛擬儀器工作平臺)是一個程序開發(fā)環(huán)境。它類似于Visual Basic,Visual C++。但是 LABVIEW 的特點在于:它使用圖形化編程語言 G 在流程圖中創(chuàng)建源程序,而沒有使用基于的文本語言來產(chǎn)生源程序代碼。LABVIEW 是一個多線程、最佳化的圖形編譯器,它能在最大程度上優(yōu)化系統(tǒng)的性能。無論是使用基于計算機的插入式儀器設備,還是使用GPIB,VXI,Ether 接口或是串口的獨立儀器設備,LABVIEW 內置的驅動程序庫和具有工業(yè)標準的設備驅動軟件都可以對儀器系統(tǒng)進行全面的控制。LABVIEW 的數(shù)據(jù)采集庫包含了許多有關采集和生成數(shù)據(jù)的函數(shù),它們與 NI 的插卡式或遠程數(shù)據(jù)采集產(chǎn)品協(xié)同工作。數(shù)據(jù)采集卡是進行高速直接控制以及低速控制的理想設備。它能夠為集成式測量方案提供功能強大且完備的測量分析庫,這些軟件庫可以完成極限測試、頻率分析、濾波及信號生成等任務。LABVIEW具有許多特性,能使測量和自動化應用方案完成適用于用戶企業(yè)的生產(chǎn)經(jīng)營,能將應用方案以網(wǎng)頁的形式發(fā)表,或在互聯(lián)網(wǎng)的應用程序間進行數(shù)據(jù)傳遞。LABVIEW 擁有完整的 Web 服務器,可以隨時發(fā)布測量結果。LABVIEW 專業(yè)版開發(fā)系統(tǒng)包括應用程序生成器(Application Builder) ,可以創(chuàng)建并發(fā)布獨立的可執(zhí)行程序、共享庫或動態(tài)連接庫(DLL) 。使用共享庫可以使開發(fā)的應用程序代碼進行重新使用。DLL 提供最大的靈活性,可以將 LABVIEW 與其他開發(fā)工具如VB,VC 和 NI 的 Measurement Studio 結合起來。LABVIEW 應用程序生成器可以創(chuàng)建安裝程序,以便在 Windows 環(huán)境中執(zhí)行可運行程序[12]。 G 語言簡介 LABVIEW 是一個功能比較完整的軟件開發(fā)環(huán)境,但它是為代替常規(guī)的BASIC 和 C 語言設計的,它是一種編程語言而不僅僅是一個軟件開發(fā)環(huán)境。它除了編程方式不同外,具有編程語言的所有特點,稱之為圖形化編程語言(簡稱 G 語言) 。 G 語言是一種適合應用于編程任務,具有擴展函數(shù)庫的通用編程環(huán)境。和BASIC 和 C 語言一樣,G 語言也定義了數(shù)據(jù)類型、結構類型和模塊調用語法規(guī)則等編程語言的基本要素,在功能完整性和應用靈活性上不遜于任何高級語言