freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

虛擬示波器設計-資料下載頁

2025-08-23 19:31本頁面

【導讀】隨著計算機技術(shù)的發(fā)展,儀器工業(yè)正在經(jīng)歷一場巨變。計算機強大的處理和。顯示能力,使它可以在數(shù)據(jù)采集、分析和表達中的任意一個方面提升儀器的性能。到了廣泛的應用。本文介紹了虛擬儀器的基本框架和總體設計思想。在此基礎上,提出了了基。文中重點講解了該簡易虛擬示波器各模。析、波形存儲以及坐標轉(zhuǎn)換等模塊,并給出了具體的設計方法和實驗結(jié)果。最后對虛擬示波器進行了系統(tǒng)測試和性能分析,達到了預先的設計要求。本設計的最大特點是成本低。該簡易示波器的Y軸通道采用計算機中的聲卡,左右的模擬帶寬,適合低頻數(shù)據(jù)采集應用場合。

  

【正文】 之處。為了節(jié)省 CPU資源,計算機的 CPU并不是每次聲卡 A/D或 D/A結(jié)束后都 要響應一次中斷, 24 而是采用了緩沖區(qū)的工作方式 [11]。在這種工作方式下,聲卡的 A/D、 D/A都對某一緩沖區(qū)進行操作。以輸入聲音的 A/D變換為例,每次轉(zhuǎn)換完畢后,聲卡控制芯片都將數(shù)據(jù)存放在緩沖區(qū),待緩沖區(qū)滿時,發(fā)出中斷給 CPU, CPU響應中斷后一次性將緩沖區(qū)內(nèi)的數(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工作方式 )下,內(nèi)存以 8KB為單位被分成很多頁,對內(nèi)存的任何訪問都是按頁進行的, CPU保證了讀寫 8KB長度的內(nèi)存緩沖區(qū)時,速度足夠快,并且一般不會被其他外來事件打斷。設置 8192字節(jié)或其整數(shù)倍 (例如 32768字節(jié) )大小的緩沖區(qū),可以較好地保證聲卡與 CPU的協(xié)調(diào)工作。 (4) 沒有基準電壓 聲卡不提供基準電壓,因此無論是 A/D還是 D/A在使用時,都需要用戶自己參照基準電壓進行標定。 四、聲卡的頻率范圍與頻率響 應 人耳對頻率的感覺從 20Hz到 20KHz之間,而聲卡的頻率響應上限范圍在 20kHz。 五、聲卡用于數(shù)據(jù)采集時的一些設置 (1) 聲卡的設置 一般聲卡主要用于輸出聲音,輸入部分可能沒有處于正常工作狀態(tài)。建議首先使用耳機和 MIC檢查聲卡的功能,特別是輸入功能 (錄音功能 )是否正常。如果不 25 正常,需要檢查聲卡的設置。一般來說,這里的設置有兩層含義,首先是要配置所需的功能,其次是要保證已經(jīng)配置的功能不處于關(guān)閉 (靜音 )狀態(tài) [14,16,17]。下面介紹對 Line In和 Mic In的檢查和設置。 圖 32 音量控制窗口對話框 圖 33 音量控制屬性對話框 26 按圖 32所示,在“選項”菜單下選“屬性”,得到圖 33部分所示的對話框 ,在此對話框上選擇“錄音”,并配置列表中的選項即可。注意圖 32中的相關(guān)功能都不在靜音狀態(tài)。 (2) 硬件連接 硬件連接采用兩種連接線: 1一條一頭是 ,另外一頭是鱷魚夾的連。 2是雙頭為 (在市場上可以買到 )。為測試聲卡的頻響特性,可使用測試線 2將聲卡的輸入端與輸出端連接起來,形成一個閉合的環(huán)路。連接時要 注意區(qū)分 Mic In口與 SPK Out口,不要把它們當作 Line In與 Line Out接入。如果測試輸入信號,則使用測試線 1把信號源連接到聲卡輸入端 Line In口;如果測試輸出信號,就把該測試線連接到聲卡輸出端 Line Out口。 LabVIEW 中有關(guān)聲卡函數(shù)簡介 LabVIEW中提供了一系列使用 Windows底層函數(shù)編寫的與聲卡有關(guān)的函數(shù) [13,14]。這些函數(shù)集中在圖 34所示的 Sound VI下。由于使用 Windows底層函數(shù) (不用更高級方便的 MCI函數(shù)以及 DirectX接口 )直接與聲卡 驅(qū)動程序打交道,因而封裝層次低,速度快,而且可以訪問,采集緩沖區(qū)中任意位置的數(shù)據(jù),具有很大的靈活性,能夠滿足實時不間斷采集的需要。 圖 34 Sound VI 27 在本設計中主要運用到的是 Sound Input這個子模板。表 31是 Sound Input中提供的函數(shù)。 表 31 Sound Input函數(shù)簡介 圖標 函數(shù)名稱 功能說明 SI Config 該函數(shù)的主要功能是設置聲卡中與數(shù)據(jù)采集相關(guān)的一些硬件參數(shù),如采樣率,數(shù)據(jù)格式,緩沖區(qū)長度等。聲卡的采樣率由內(nèi)部時鐘控制,只有 34種固定頻率 可選,一般將采樣頻率設置為 44100Hz,數(shù)據(jù)格式設置為16bit。緩沖區(qū)長度可選默認值。 SI Start 該函數(shù)用于通知聲卡開始采集外部數(shù)據(jù),采集到的數(shù)據(jù)會被暫存在緩沖區(qū)中,這一過程無需程序干預,由聲卡硬件使用 DMA直接完成,保證了采集過程的連續(xù)性。 SI Read 該函數(shù)用于等待采樣數(shù)據(jù)緩沖區(qū)滿的消息。當產(chǎn)生這一消息時,它將數(shù)據(jù)緩沖區(qū)的內(nèi)容讀取到用戶程序的數(shù)組中,產(chǎn)生一個采樣數(shù)據(jù)集合。若計算機速度不夠快,使得緩沖區(qū)內(nèi)容被覆蓋,則會產(chǎn)生一個錯誤信息。這時應調(diào)節(jié)緩沖區(qū)大小,在采樣時間與數(shù) 據(jù)讀取之間找到一個理想的平衡點。 SI Stop 該函數(shù)用于通知聲卡停止采集外部數(shù)據(jù)。己采集而未被讀出的數(shù)據(jù)會留在緩沖區(qū),可以使用 SI Read函數(shù)一次讀完。 SI Clear 該函數(shù)用于完成最終的清理工作,例如關(guān)閉聲卡采樣通道,釋放請求的一系列系統(tǒng)資源〔包括 DMA,緩沖區(qū)內(nèi)存,聲卡端口等 〕 28 第 4 章 軟件模塊設計 在本章中將詳細介紹各個功能模塊及其生成過程。下面是程序流程框圖: 圖 41 虛擬示波器程序流程框圖 初始化 信號采集 樣值送緩沖 觸發(fā)識別 是觸發(fā)點 顯示緩沖區(qū) 1024 個點 有按鍵 按鍵處理 Y N Y N 29 LabVIEW 簡介 LabVIEW(實驗室虛擬儀器工程平臺 )是一個程序開發(fā)環(huán)境。它類似于VisualBasic,Visual C++。但 LabVIEW的特點在于:它使用圖形化編程語言 G在流程圖中創(chuàng)建源程序,而沒有使用基于文本的語言來產(chǎn)生源程序代碼 [16]。 LabVIEW是一個多線程、最佳化的圖形編譯器,它能在最大程度上優(yōu)化系統(tǒng)的 性能。無論是使用基于計算機的插入式儀器設備,還是使用 GPIB, VXI, Ether 接口或是串口的獨立儀器設備, LabVIEW內(nèi)置 的驅(qū)動程序庫和具有工業(yè)標準的設備驅(qū)動軟件都可以對儀器系統(tǒng)進行全面的控制 [21]。 LabVIEW數(shù)據(jù)采集庫包含了許多有關(guān)采集和生成數(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ā)布測量結(jié)果 [17]。 LabVIEW專業(yè)版開發(fā)系統(tǒng)包括應用程序生成器 (Application Builder),可以創(chuàng)建并發(fā)布獨立的可執(zhí)行程序、共享庫或動態(tài)連接庫 (DLL)。使用共享庫可以使開發(fā)的應用程序代碼進行重新使用。 DLL提供最大的靈活性,可以將 LabVIEW與其它開發(fā)工具如 VB, VC和 NI的 Measurement Studio結(jié)合起來。 LabVIEW應用程序生成器可以創(chuàng)建安裝程序,以便在 Windows環(huán)境中執(zhí)行可運行程序 [21]。 G 語言簡介 LabVIEW是一個功能比較完整的軟件開發(fā)環(huán)境,但它是為代替常規(guī)的 BASIC和 C 30 語言而設計的,它是一種編程語言而不僅僅是一個軟件開發(fā)環(huán)境。它除了編程方式不同外,具有編程語言的所有特點,稱之為圖形化編程語言 (簡稱 G語言 )。 G語言是一種適合應用于任何編程任務,具有擴展函數(shù)庫的通用編程環(huán)境。和 BASIC及 C語言一樣, G語言也定義了數(shù)據(jù)類型、結(jié)構(gòu)類型和模塊調(diào)用語法規(guī)則等編程語言的基本要素,在功能完整性和應用靈活性上不遜于任何高級語言,同時 G語言豐富的擴展函數(shù)庫還為用戶編程提供極大的方便。 G語言與傳統(tǒng)高級 編程語言最大的差別在于編程方式一般高級語言采用文本編程,而 G語言采用圖形化編程語言。 G語言是 LabVIEW的核心 [4],熟練掌握 G語言的編程要素和語法規(guī)則,是開發(fā)LabVIEW應用程序的最重要的基礎 [13]。 LabVIEW 程序組成 該環(huán)境包含包括三個部分:程序前面板、框圖程序和圖標連接端口 [18]。程序前面板用于設置輸入數(shù)值和觀察輸出量,用于模擬真實儀表的前面板。在程序前面板上,輸入量被稱為控制 (Controls),為虛擬儀器的框圖程序提供數(shù)據(jù);輸出量被稱為顯示 (Indicators),顯示虛 擬儀器流程圖中獲得或產(chǎn)生的數(shù)據(jù)。控制和顯示是以各種圖標形式出現(xiàn)在前面板上,如旋鈕、開關(guān)、按鈕、圖表、圖形等,這使得前面板直觀易懂 [3,7]。 一個程序前面板都對應著一段框圖程序??驁D程序用 LabVIEW圖形編程語言編寫,可以把它理解成傳統(tǒng)程序的源代碼。框圖程序由節(jié)點 (Node)、數(shù)據(jù)連線 (Wire)構(gòu)成。節(jié)點式 VI程序中的執(zhí)行元素,類似于文本編程語言程序中的語句、函數(shù)或子程序。節(jié)點之間數(shù)據(jù)連線按照一定的邏輯關(guān)系相互連接,可定義框圖程序內(nèi)的數(shù)據(jù)流動方向。節(jié)點之間、節(jié)點與前面板對象之間是同數(shù)據(jù)端口和數(shù)據(jù) 連線來傳 31 遞數(shù)據(jù)的。數(shù)據(jù)端口是數(shù)據(jù)在前面板對象和框圖程序之間傳輸?shù)耐ǖ?,是?shù)據(jù)在框圖程序內(nèi)節(jié)點之間傳輸?shù)慕涌凇? LabVIEW中有兩種類型的數(shù)據(jù)端口:控制端口和指示端口以及節(jié)點端口??刂贫丝诤椭甘径丝谟糜谇懊姘鍖ο?,當 VI程序運行時,從控制輸入的數(shù)據(jù)通過控制端傳遞到框圖程序,供其中的程序使用,產(chǎn)生的輸出數(shù)據(jù)在通過指示端口傳輸?shù)角懊姘鍖闹甘局酗@示。每個節(jié)點端口都有一個或數(shù)個數(shù)據(jù)端口用于輸入或輸出 [14]。 LabVIEW采用的一種獲得專利的數(shù)據(jù)流編程模式,這不同于一些基于文本的編程語言的線性結(jié)構(gòu),不同于執(zhí)行 一個傳統(tǒng)的控制流方法??刂屏鲌?zhí)行的是指令驅(qū)動,而數(shù)據(jù)流執(zhí)行的是數(shù)據(jù)流驅(qū)動或依賴數(shù)據(jù)的 [18]。 但一個虛擬儀器的圖標被放置在另一個虛擬儀器的流程圖中時,它就是一個子儀器 (SubVI)[19]。圖標連接端口可以把 VI變成一個 SubVI,然后像子程序一樣在其他程序中調(diào)用。圖標是 SubVI的直觀標記,是 SubVI在其他程序框圖中被調(diào)用的節(jié)點表現(xiàn)形式:而連接端口則表示該 SubVI與調(diào)用它的 VI之間進行數(shù)據(jù)交換的輸入/輸出口,就像傳統(tǒng)編程語言子程序的參數(shù)。 數(shù)據(jù)采集與處理模塊 數(shù)據(jù)采集模塊是虛擬示波器軟件的硬 件驅(qū)動部分,在這里主要是利用 LabVIEW 里面的聲卡函數(shù)完成聲卡的硬件參數(shù)設置、啟動聲卡采集數(shù)據(jù)、等待采樣數(shù)據(jù)緩沖區(qū)滿的消息、通知聲卡停止采集等等任務 [24]。 具體的數(shù)據(jù)采集流程是: (1)初始化:對聲卡中與數(shù)據(jù)采集相關(guān)的一些硬件參數(shù)進行設置; (2)然后,聲卡開始采集數(shù)據(jù),并將采集到的數(shù)據(jù)暫存在先進先出的 32 緩沖區(qū)中; (3)當緩沖區(qū)存滿數(shù)據(jù)后,一方面將數(shù)據(jù)讀取到用戶程序的數(shù)組中,產(chǎn)生一個采樣數(shù)據(jù)集合,并在程序中對數(shù)據(jù)進行各種處理; (4)另一方面,得到緩沖區(qū)滿的消息后,通知聲卡暫時停止采集外部數(shù)據(jù),并進 一步清空緩存里的內(nèi)容。 如圖 42所示,為數(shù)據(jù)采集與處理模塊。 圖 42 數(shù)據(jù)采集與處理模塊 (1) 程序說明: 在 LabVIEW軟件中,對于聲卡的聲道可以分為 mono 8bit(單聲道 8位 ), mono 16bit(單聲道 16位 ), stereo 8bit(立體聲 8位 )和 stereo 16bit(立體聲 16位 ),其中, 16位聲道比 8位聲道采樣的信號質(zhì)量好,立體聲 (stereo)比單聲道 (mono)采樣信號好,最好的采樣通道形式是 stereo 16bit,這樣采樣的波形穩(wěn)定 ,而且干擾小。另外,用單聲道采樣,左右聲道信號都相同,而且每個聲道的幅值只有原信號幅值的 1/2;采用立體聲采樣,左右聲道互不干擾,可以采兩路不同的信號, 33 而且采樣的信號幅值與原幅值相同。 當然,還有一個更重要的原因是,如果選擇 mono(單聲道 ), SI出來的數(shù)據(jù)是 標量,不能組成數(shù)組,進而不便于數(shù)據(jù)的各種處理。所以這里設計中我采用的是 stereo 16bit進行雙聲道采樣。 聲卡的采樣頻率 (rate)有 4種選擇,即 8000Hz, 11025Hz, 22050Hz和 44100Hz,采樣頻率不同,采到的波形的質(zhì) 量也不同,應視具體情況而采用合適的頻率,在本設計中,為了得到良好的演示效果,我采用了 44100Hz的采樣頻率。而在采樣率的選擇方面,我采用了一個 case循環(huán),目的是在采樣率為 44100Hz的條件下,在循環(huán)內(nèi)產(chǎn)生波形數(shù)據(jù)。這個在后面波形產(chǎn)生模塊中進行詳細解釋。 (2) 主要操作說明: 在 block diagram中: 1) All Function→ Graphics amp。 Sound→ Sound→ Sound Input選擇 Sound Input函數(shù)。 2) Execution Control→ While Loop選擇 While循環(huán)。 3) Execution Control→ Case Structure選擇 Case循環(huán)。 4) 右鍵點擊 SI Config函數(shù)的 Sound Format輸入,選擇 create control,自動生成 Sound Format簇類型控鍵。其中包含三項數(shù)據(jù),分別為: sound quality; rate; bits per sample。 5) 右鍵點擊 SI Config函數(shù)的 Buffer Size輸入,選擇 create control,自動生成無符號長整數(shù)類型的控鍵。 6) All Functions→ Cluster→ Unbundle選擇 Unbundle函數(shù)。對輸入簇 Cluster 34 進行解包。當接入 cluster輸入?yún)?shù)后,輸出端子數(shù)自動調(diào)整為與 cluster含元素數(shù)目相同。 觸發(fā)控制模塊 傳統(tǒng)示波器中,電子射線不停的掃描屏幕,屏幕上才會出現(xiàn)光跡。為了保證在屏幕上出現(xiàn)穩(wěn)定的波形圖象, x軸通道必須能選擇適當?shù)耐交蛘哂|發(fā)信號,這個信號用于產(chǎn)生線性掃描電壓的閘門 (稱時基閘門 ),在這時基閘門控制下產(chǎn)生穩(wěn)定的線性掃描電壓。下圖是傳統(tǒng)示波器的典型的觸發(fā)同步電路方框圖 [17]: 內(nèi) 外 去掃描電路 外輸入 圖 43 傳統(tǒng)示波器的典型的觸發(fā)同步電路方框圖 (1) 觸發(fā)選送電路。用來選送垂直系統(tǒng)的被測信號,作為內(nèi)觸發(fā)同步信號。 (2) 輸入偶合電路。用來選擇不同的偶合方式,以使在有不同的觸發(fā)同步信號輸入時,都能獲得良好的同步。 (3) 放大器。用來放大觸發(fā)同步信號。在這里附有極性變換電 路,可輸出兩個不同極性的觸發(fā)同步信號。 (4) 脈沖發(fā)生器。用來形成觸發(fā)同步脈沖,常為微分尖脈沖,輸出到掃描發(fā)生器。 觸發(fā)選送 放大器 脈沖發(fā)生器 輸入耦合 35 此脈沖與觸發(fā)同步信號成同步或分頻關(guān)系。 觸發(fā)控制模塊 在虛擬示波器中的觸發(fā)同步與傳統(tǒng)示波器的觸發(fā)同步有某些相同,也有很多不同地方?;痉椒ㄊ牵簭木彌_器的雙通道中選取一個通道中的數(shù)據(jù) ( ),并把這組數(shù)、設定的某個作為觸發(fā)電平的值進行比較,滿足觸發(fā)條件時,啟動觸發(fā),并輸出數(shù)組中對應元素的索引值,在設定子數(shù)組長度 (1024)的情況下,把從該元素起的 1024個元素 組成一個新的數(shù)組 ( ),并把這組數(shù)據(jù)作為波形數(shù)據(jù)的 Y值。 圖 44 通道選擇與觸發(fā)控制模塊 程序說明: 從緩沖器的雙通道中選取一個通道中的數(shù)據(jù),與電壓標定的系數(shù)相除后作為 36 觸發(fā)子模塊的輸入。這里電壓標定的系數(shù)決定了后面波形數(shù)據(jù)的幅度。 觸發(fā)控制子模塊有四個輸入:數(shù)據(jù)輸入、“觸發(fā)否”判斷、“觸發(fā)沿”判斷、觸發(fā)電平。一個輸出:觸發(fā)后數(shù)據(jù)輸出。 子程序模塊 圖 45 觸發(fā)子程序控制面板 圖 46 觸發(fā)子程序模塊 程序說明: 37 這里 用到了 Array (數(shù)組子集函數(shù) ),如圖 47,該函數(shù)返回數(shù)組中從 Index開始的長度為 length的部分數(shù)組元素 [34]。 圖 47 Array subset 在子程序中,把子子程序“ slope”的輸出作為 Index值,而數(shù)組長度選擇 1024。這是因為:聲卡的緩存深度是 8192字節(jié),選擇 16位立體聲輸出,則其中一個聲道的波形數(shù)據(jù)長度是 8192247。 2247。 2=2048字節(jié)??紤]到聲卡采集數(shù)據(jù)的不穩(wěn)定,波形上可能會有一些鋸齒:①如果選擇上升沿觸發(fā),觸發(fā)點處的下一個數(shù)據(jù)低于觸發(fā)點處的值,而上 一個數(shù)據(jù)高于這個值,那么就會得到這個值往回 1024字節(jié)的數(shù)組數(shù)據(jù);②如果觸發(fā)點處的下一個數(shù)據(jù)高于于觸發(fā)點處的值,而上一個數(shù)據(jù)低于這個值,那么就會得到這個值往后 1024字節(jié)的數(shù)組數(shù)據(jù)。所以,為了得到比較準確的數(shù)組數(shù)據(jù),選擇 1024字節(jié)的子數(shù)組長度。輸入的數(shù)據(jù)進入“內(nèi)部判斷”后,進行觸發(fā)判斷。 子子程序模塊
點擊復制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1