基于高速數(shù)據(jù)采集卡的虛擬示波器的應(yīng)用畢業(yè)設(shè)計_第1頁
已閱讀1頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、<p>  本科畢業(yè)設(shè)計(論文)</p><p>  題 目 基于高速數(shù)據(jù)采集卡的虛擬示波器的設(shè)計 </p><p>  系(院) 信息與控制工程系 </p><p>  基于高速數(shù)據(jù)采集卡的虛擬示波器的設(shè)計</p><p><b>  摘要</b></p>

2、<p>  隨著計算機技術(shù)的發(fā)展,儀器工業(yè)正在經(jīng)歷一場巨變。計算機強大的處理和顯示能力,使它可以在數(shù)據(jù)采集、分析和表達中的任意一個方面提升儀器的性能。以虛擬儀器為代表的新型儀器改變了傳統(tǒng)儀器的思想,它們充分利用了計算機強大的軟硬件資源,把計算機技術(shù)和測量技術(shù)緊密結(jié)合起來,是融合了電子測量、信號處理、計算機和網(wǎng)絡(luò)技術(shù)的新型測量儀器,由于成本低、使用方便等優(yōu)點得到了廣泛的應(yīng)用。本文基于GaGe公司的高速數(shù)據(jù)采集卡CS 82G和

3、通用PC平臺,使用VC++ 6.0編程工具,完成了一種快速虛擬示波器的設(shè)計。</p><p>  首先,本文介紹了虛擬儀器的研究背景和意義以及國內(nèi)外的一些研究進展。對虛擬儀器總體進行了概述,討論了虛擬儀器的概念、構(gòu)成、特點、發(fā)展,建立了虛擬儀器的基本框架。然后對虛擬示波器的重要組成部分-數(shù)據(jù)采集系統(tǒng)進行了探討,同時對CS 82G數(shù)據(jù)采集卡進行了深入的研究,在此基礎(chǔ)上,進行了虛擬示波器的系統(tǒng)設(shè)計。本文的重點是第五章

4、虛擬示波器的具體實現(xiàn),這部分完成了虛擬示波器各模塊的詳細(xì)設(shè)計,包括數(shù)據(jù)采集模塊、用戶界面模塊、頻譜分析模塊、數(shù)字濾波模塊、波形顯示模塊和參數(shù)計算模塊的設(shè)計,并給出了設(shè)計和實驗結(jié)果,還討論和實現(xiàn)了軟件設(shè)計中的關(guān)鍵技術(shù),最后進行了系統(tǒng)性能分析。文章的最后進行了課題的總結(jié)和展望。本文對相關(guān)高速、大容量數(shù)據(jù)采集系統(tǒng)和虛擬儀器的設(shè)計有重要的參考價值。</p><p>  關(guān)鍵詞:虛擬儀器 虛擬示波器 數(shù)據(jù)采集 CS

5、82</p><p>  Design of Virtual Oscillograph Based on High Speed Data-acquisition Card</p><p><b>  Abstract</b></p><p>  The instrumentation industry is undergoing a varie

6、ty of exciting changes as a result of the development of PCs, The PC revolution has equipped users with powerful processing and display capabilities of their own. The computer can enhance instrument functionality in any

7、of the three areas-data acquisition, analysis, and presentation. Virtual instrument (VI) changed the ideas of traditional instrument and made full use of the powerful resources of computer. It is a new-style instrument t

8、hat combin</p><p>  The research background and significance of VI are introduced in this dissertation firstly including the research status of VI in China and foreign countries. Then, the general technologi

9、es of VI are summarized including the definition of VI, the component of VI, the characters of VI and the development of VI, which established the framework of VI. Afterwards, the data-acquisition system is discussed det

10、ailedly as well as the studying of the data-acquisition card CS82G. On the basis of those wor</p><p>  Key words:virtual instrument;virtual oscillograph;data-acquisition;CS 82G</p><p><b> 

11、 目錄</b></p><p><b>  第一章 緒 論1</b></p><p><b>  1.1引言1</b></p><p>  1.2 研究的背景和意義1</p><p>  1.3 本文內(nèi)容安排2</p><p>  第二章 虛擬儀器技術(shù)4

12、</p><p>  2.1虛擬儀器的基本概念4</p><p>  2.2虛擬儀器的特點5</p><p>  第三章 基于數(shù)據(jù)采集卡的虛擬示波器的研究6</p><p>  3.1基于PC的數(shù)據(jù)采集系統(tǒng)6</p><p>  3.2 超高速數(shù)據(jù)采集卡CS 82G6</p><p>

13、  3.3 基于數(shù)據(jù)采集卡的虛擬示波器的原理和結(jié)構(gòu)7</p><p>  3.3.1 虛擬示波器的工作原理7</p><p>  3.3.2 系統(tǒng)的結(jié)構(gòu)和特點8</p><p>  第四章 虛擬示波器的方案設(shè)計9</p><p>  4.1硬件和軟件的選擇9</p><p>  4.1.1硬件的選擇9<

14、;/p><p>  4.1.2軟件開發(fā)環(huán)境的選擇10</p><p>  4.2軟件總體方案11</p><p>  第五章 虛擬示波器系統(tǒng)的軟件具體實現(xiàn)13</p><p>  5.1虛擬示波器的系統(tǒng)軟件功能框圖13</p><p>  5.2 數(shù)據(jù)采集模塊的設(shè)計13</p><p> 

15、 5.2.1 數(shù)據(jù)采集的編程過程13</p><p>  5.2.2采集模塊的流程圖15</p><p>  5.3 軟面板的設(shè)計15</p><p>  5.4 頻譜分析模塊的設(shè)計15</p><p>  5.4.1 設(shè)計結(jié)果18</p><p>  5.4.2 數(shù)字濾波模塊的設(shè)計21</p>

16、<p>  5.6 波形顯示模塊的設(shè)計23</p><p>  5.6.1 數(shù)據(jù)內(nèi)插技術(shù)23</p><p>  5.6.2 波形顯示技術(shù)23</p><p>  5.6.3設(shè)計結(jié)果26</p><p>  5.6.4數(shù)據(jù)采集和數(shù)據(jù)處理的多線程實現(xiàn)27</p><p><b>  5.

17、7小結(jié)29</b></p><p>  第六章 總結(jié)和展望31</p><p><b>  6.1總結(jié)31</b></p><p><b>  6.2 展望31</b></p><p><b>  參考文獻33</b></p><p&g

18、t;<b>  致謝34</b></p><p><b>  第一章 緒 論</b></p><p><b>  1.1引言</b></p><p>  虛擬儀器是隨著計算機技術(shù)、電子測量技術(shù)和通信技術(shù)而發(fā)展起來的一種新型儀器,虛擬儀器的出現(xiàn)是測量儀器領(lǐng)域的一個突破, 從根本上更新了測量儀器的概念。

19、它是在以通用計算機為核心的硬件平臺上,由用戶設(shè)計定義,具有虛擬面板,測試功能由測試軟件實現(xiàn)的一種計算機儀器系統(tǒng)。虛擬儀器技術(shù)充分利用計算機系統(tǒng)強大的數(shù)據(jù)處理。 能力,利用軟件完成數(shù)據(jù)的采集、控制、數(shù)據(jù)分析和處理以及測試結(jié)果的顯示等, 通過軟、硬件的配合實現(xiàn)傳統(tǒng)儀器的各種功能, 大大突破了傳統(tǒng)儀器在數(shù)據(jù)處理、顯示、傳送、存儲等方面的限制,使用戶可以方便地對儀器進行維護、擴展和升級。它的優(yōu)勢在于可由用定義自己的專用儀器系統(tǒng),且功能靈活,很容

20、易構(gòu)建,所以應(yīng)用面極為廣泛。尤其在科研、開發(fā)、測量、檢測、計量、測控等領(lǐng)域更是不可多得的好工具。虛擬儀器技術(shù)先進,十分符合國際上流行的“硬件軟件化”的發(fā)展趨勢,因而常被稱作“軟件儀器”。隨著計算機技術(shù)的廣泛應(yīng)用,傳統(tǒng)的儀器設(shè)備缺乏相應(yīng)的計算機接口,因而配合數(shù)據(jù)采集及數(shù)據(jù)處理十分困難。</p><p>  而且,傳統(tǒng)儀器體積相對龐大,多種數(shù)據(jù)測量時常常感到捉襟見肘。我們常見到硬件工程師的工作臺上堆砌著紛亂的儀器,交

21、錯的線纜和繁多待測器件。然而在集成的虛擬測量系統(tǒng)中,我們見到的是整潔的桌面,條理的操作,不但使測量人員從繁復(fù)的儀器堆中解放出來,而且還可實現(xiàn)自動測量、自動記錄、自動數(shù)據(jù)處理。其方便之極固不必多言,而設(shè)備成本的大幅降低卻不可不提。一套完整的實驗測量設(shè)備少則幾萬元,多則幾十萬元。在同等的性能條件下,相應(yīng)的虛擬儀器價格要低二分之一甚至更多。虛擬儀器強大的功能和價格優(yōu)勢,使得它在儀器計量領(lǐng)域具有很強的生命力和十分廣闊的前景。</p>

22、<p>  1.2 研究的背景和意義</p><p>  所謂虛擬儀器就是微機化的智能電子測量儀器。虛擬儀器通過硬件功能模塊和專用軟件構(gòu)成一種良好的人機交互界面,用戶可以自定義測試功能以及使測量對象多樣化。虛擬儀器的外部接口是通過數(shù)據(jù)采集卡將信號數(shù)據(jù)采集后送入計算機,各種復(fù)雜測試功能、數(shù)據(jù)分析和結(jié)果顯示則完全由計算機軟件完成。一臺性能優(yōu)良的虛擬儀器不僅可以實現(xiàn)傳統(tǒng)測量儀器的大部分測量功能,在許多方面

23、較傳統(tǒng)儀器有無法比擬的優(yōu)點,如使用靈活方便、測試功能豐富、價格低廉、一機多用等,這些使得虛擬儀器成為未來電子測量儀器發(fā)展的方向。</p><p>  一臺傳統(tǒng)儀器有3大功能:對被測信號的采集與控制,分析與處理,結(jié)果的表達與輸出。傳統(tǒng)儀器的這些功能都是以硬件(或固化的軟件)的形式存在的。虛擬儀器的特點就是將計算機技術(shù)和儀器技術(shù)有機結(jié)合,充分利用計算機技術(shù),用計算機的顯示器模擬各種儀器的控制面板,以多種形式表達輸出檢

24、測結(jié)果;以計算機軟件實現(xiàn)各種模擬信號分析,處理,完成多種多樣的測試。在電子測量測試儀器中,示波器的使用范圍非常廣泛。傳統(tǒng)示波器包括寬帶示波器,取樣示波器和記憶示波器等,它們頻帶較寬,價格便宜,但測量精度不高,功能比較單一。近年推出的數(shù)字存儲示波器,由于引入微處理器,極大地提高了測量準(zhǔn)確度,同時還具有較強的數(shù)字化處理功能,如FFT、信號平均和自動測頻等。不過,這種示波器在應(yīng)用上存在一些限制因素,例如價格昂貴,儀器功能和模式固定,不具備用戶

25、對儀器進行定義及編程的功能。本文采用基于計算機的虛擬技術(shù),設(shè)計出虛擬存儲示波器,模擬通用雙蹤示波器的面板操作和處理功能。使用個人計算機及其接口電路來采集現(xiàn)場和實驗室信號,并通過圖形用戶界面來模仿示波器的操作面板完成試驗采集,調(diào)理,分析處理和顯示輸出,存儲記錄等功能。</p><p>  當(dāng)今,對低速的虛擬儀器的研究已經(jīng)比較多,而以GaGe公司的高速卡為數(shù)據(jù)采集設(shè)備的虛擬示波器的研究與設(shè)計還未見報道。本課題研究的虛

26、擬示波器是一種重要的虛擬儀器,主要用于超高頻信號的采集、波形顯示和頻譜分析,在雷達信號處理和激光信號處理等領(lǐng)域有著廣泛的應(yīng)用。</p><p>  1.3 本文內(nèi)容安排 </p><p>  本文主要基于GaGe公司PCI接口的CompuScope 82G高速數(shù)據(jù)采集卡和Visual C++ 6.0編程工具,完成了一種快速的虛擬示波器試驗系統(tǒng)的設(shè)計。 </p><p&g

27、t;  第一章為緒論,介紹了虛擬儀器的研究背景和意義以及國內(nèi)外的一些研究進展;第二章為虛擬儀器總體概述,討論了虛擬儀器的概念、構(gòu)成、特點、發(fā)展,建立了虛擬儀器的基本框架。第三章為基于數(shù)據(jù)采集卡虛擬示波器的研究,主要包括對數(shù)據(jù)采集系統(tǒng)各組成部分進行了探討。在這基礎(chǔ)上,給出了基于數(shù)據(jù)采集卡的虛擬示波器的結(jié)構(gòu)。第四章為虛擬示波器的方案設(shè)計,選擇了示波器的硬件和示波器的軟件開發(fā)環(huán)境,介紹了虛擬儀器軟件的設(shè)計方法,提出了系統(tǒng)軟件的總體設(shè)計方案。第

28、五章為虛擬示波器的具體實現(xiàn),是本文的重點,完成了虛擬示波器各模塊的詳細(xì)設(shè)計,包括數(shù)據(jù)采集模塊、用戶界面模塊、數(shù)字濾波模塊和波形顯示模塊的設(shè)計,并給出了設(shè)計結(jié)果,最后討論了軟件設(shè)計中的關(guān)鍵技術(shù)的實現(xiàn)。第六章為總結(jié)和展望,主要對本文的已做工作做了總結(jié),并對虛擬儀器的發(fā)展前景作出了展望。</p><p>  第二章 虛擬儀器技術(shù)</p><p>  2.1虛擬儀器的基本概念</p>

29、<p>  虛擬儀器(Virtual Instruments, 縮寫為VI)是指以通用計算機作為系統(tǒng)控制器、由軟件來實現(xiàn)人機交互和大部分儀器功能的一種計算機儀器系統(tǒng)。用戶可以通過友好的圖形界面(通常叫做虛擬前面板)操作這臺計算機,就象在操作自己定制的一臺傳統(tǒng)儀器一樣。虛擬儀器的概念是對傳統(tǒng)儀器概念的重大突破,它的出現(xiàn)使測量儀器與個人計算機的界限模糊了。</p><p>  所有的測量、控制儀器的功能可

30、由數(shù)據(jù)采集、數(shù)據(jù)分析、結(jié)果輸出與顯示三大部分組成。在這三大功能中,數(shù)據(jù)分析、算法實現(xiàn)和結(jié)果顯示完全由基于計算機的軟件完成,只要另外提供一定的數(shù)據(jù)采集硬件、輸出端口和驅(qū)動設(shè)備,就可構(gòu)成由計算機組成的測量、控制儀器。由此可以看到虛擬儀器與傳統(tǒng)儀器的基本區(qū)別;傳統(tǒng)儀器的這些功能都是以硬件或者固化的軟件的形式存在的,而虛擬儀器的功能則是通過軟件實現(xiàn)對數(shù)據(jù)的分析處理、表達以及圖形化用戶接口(如圖2-1 所示)。 </p><p

31、>  圖2-1 虛擬儀器的內(nèi)部功能劃分</p><p>  測試應(yīng)用程序?qū)⒖蛇x硬件(如GPIB、VXI、PXI、RS—232、DAQ 板)和可重復(fù)用原碼庫函數(shù)等軟件結(jié)合在一起,實現(xiàn)儀器模塊間的通訊、定時與觸發(fā)。原代碼庫函數(shù)為用戶構(gòu)建自己的VI關(guān)系系統(tǒng)提供了基本的軟件模塊。由于VI的模塊化、開放性和靈活性,以及軟件是關(guān)鍵的特點,當(dāng)用戶的測試、控制要求變化時,可以方便的向用戶自己來增減硬、軟件模塊,或重新配置現(xiàn)

32、有系統(tǒng)以滿足新的測試、控制要求。這樣,當(dāng)用戶從一個項目轉(zhuǎn)向另一個項目時,就能簡單地構(gòu)造出新的VI系統(tǒng)而不丟失已有的硬件和軟件資源。</p><p>  2.2虛擬儀器的特點</p><p>  虛擬儀器是以裝有測量應(yīng)用軟件的個人電腦為核心,具有虛擬的儀器操作面板,足夠的硬件支持,有一定通信能力的測量裝置。它和傳統(tǒng)儀器相比具有以下的特點:(1)虛擬儀器的關(guān)鍵環(huán)節(jié)是軟件。</p>

33、<p>  虛擬儀器系統(tǒng)中除PC機外的硬件主要用于數(shù)據(jù)的采集、輸入,至于系統(tǒng)怎樣處理數(shù)據(jù),具有怎樣的面板和數(shù)據(jù)輸出的形式等都是由軟件決定的。虛擬儀器的好壞,很大程度上取決于軟件水平的高低。(2)開發(fā)與維護的費用低,系統(tǒng)組建時間短。</p><p>  當(dāng)需要增加新的測量功能,只需要增加軟件模塊或通用的硬件模塊,縮短了系統(tǒng)的更新時間,而且有利于系統(tǒng)的擴展。應(yīng)用軟件不像傳統(tǒng)儀器的硬件那樣存在元器件老化

34、的問題,大大節(jié)省了維護的費用,延長設(shè)備的使用壽命。(3)測量更準(zhǔn)確。</p><p>  傳統(tǒng)儀器測量個體之間差異大,而虛擬儀器的應(yīng)用軟件在不同的PC機上具有相同的運行效果,在軟件運行這方面不存在個體的差異。(4)測量更方便。</p><p>  因為傳統(tǒng)儀器功能單一,所以對一個信號完成多個參數(shù)的測量需要多臺儀器,使測量受連接方式、電纜度等因素的影響。虛擬儀器只需對信號進行一次采樣,多

35、個軟件模塊對同一組數(shù)據(jù)進行不同的處理就能實現(xiàn)多個參數(shù)的同時測量。(5)具有強大的數(shù)據(jù)處理功能。</p><p>  計算機運算速度的大大提高和數(shù)字信號處理理論的豐富和完善,使虛擬儀器能夠快速準(zhǔn)確的處理數(shù)據(jù)。</p><p>  第三章 基于數(shù)據(jù)采集卡的虛擬示波器的研究</p><p>  基于數(shù)據(jù)采集系統(tǒng)(采集卡)的虛擬示波器是虛擬儀器的一種重要的構(gòu)成方式,其中的

36、核心設(shè)備數(shù)據(jù)采集卡應(yīng)具有高速采樣、多種觸發(fā)、存儲數(shù)據(jù)以及與計算機之間交換數(shù)據(jù)的功能,有的數(shù)據(jù)采集卡還具有系統(tǒng)定時和系統(tǒng)同步等功能,它是外界電信號與計算機之間的橋梁,其性能直接決定著數(shù)據(jù)采集的精度和速度,影響著虛擬示波器的整體性能。</p><p>  3.1基于PC的數(shù)據(jù)采集系統(tǒng) </p><p>  基于PC機的數(shù)據(jù)采集系統(tǒng)(Data AcQuisition,DAQ)大致有兩種,一種是采

37、用插入PC控制槽中的插卡形式實現(xiàn)數(shù)據(jù)采集并將數(shù)據(jù)直接通過PC總線傳入計算機內(nèi)存中;另外一種采用遠(yuǎn)端數(shù)據(jù)采集硬件完成數(shù)據(jù)采集,然后通過串行、并行方式或者USB接口將數(shù)據(jù)傳回計算機。本課題采用的是第一種方式構(gòu)成的數(shù)據(jù)采集系統(tǒng),以便進行高速、大容量的數(shù)據(jù)采集和傳輸。 </p><p>  基于計算機的數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)如圖3-1 所示,該系統(tǒng)由傳感器、信號調(diào)理、數(shù)據(jù)采集(DAQ)硬件、個人計算機、軟件等基本要素構(gòu)成。&

38、lt;/p><p>  圖3-1 基于計算機的數(shù)據(jù)采集系統(tǒng)</p><p>  常用的數(shù)據(jù)采集硬件的功能包括模擬量輸入、模擬量輸出、數(shù)字量輸出、定時I/O和觸發(fā)等。 在數(shù)據(jù)采集系統(tǒng)中,軟件起著將DAQ硬件和PC轉(zhuǎn)換成一個完整的數(shù)據(jù)采集、分析和顯示系統(tǒng)的功能。軟件主要有驅(qū)動器軟件和應(yīng)用軟件兩部分組成。</p><p>  3.2 超高速數(shù)據(jù)采集卡CS 82G </p

39、><p>  本次設(shè)計中采用的CS 82G是一種超高速的基于PC的數(shù)據(jù)采集卡,CS 82G的硬件可以以極高的采樣率和多通道采樣模擬信號并緩存到卡上的存儲器。CS 82G基于PC的一個主要優(yōu)點是它能夠以極高的速率把數(shù)據(jù)傳輸?shù)絇C的RAM中,數(shù)據(jù)可以從RAM中很容易地進行分析、存儲和顯示。CS 82G可以直接插在PC的PCI插槽里,因此不需要輔助的數(shù)據(jù)接口,比如GPIB接口,這也可以解釋它的高速據(jù)傳輸率,圖3-2展示CS

40、 82G的結(jié)構(gòu)框圖。</p><p>  CS 82G 的硬件主要由前置濾波器、衰減器、可程控模擬放大電路、A/D 轉(zhuǎn)換電路、D/A 轉(zhuǎn)換電路、計數(shù)/定時電路、振蕩電路、時序控制電路以及PCI接口電路構(gòu)成,全卡的功能電路由數(shù)字控制邏輯電路統(tǒng)一控制。由此可見,CS 82G本身帶有部分信號調(diào)理的功能,其結(jié)構(gòu)框圖如圖3-2 所示。 </p><p>  輸入信號經(jīng)衰減和放大后送入觸發(fā)電路及A/D

41、轉(zhuǎn)換器。在觸發(fā)電路內(nèi),經(jīng)調(diào)理后的輸入信號或外部信號與基準(zhǔn)電壓發(fā)生器送來的基準(zhǔn)信號進行比較,形成觸發(fā)標(biāo)志。振蕩器產(chǎn)生的高頻振蕩信號掃描時間因數(shù)電路按設(shè)定系數(shù)分頻,經(jīng)脈沖形成電路產(chǎn)生系統(tǒng)所需的時鐘信號,送往地址計數(shù)器,A/D 轉(zhuǎn)換器。地址計數(shù)器產(chǎn)生RA M的讀寫地址及地址溢出標(biāo)志。一個采集周期結(jié)束后,計算機通過PCI總線把RAM中的數(shù)據(jù)讀出,用于數(shù)據(jù)處理和構(gòu)建信號波形。</p><p>  圖3-2 CS 82G的系

42、統(tǒng)框圖</p><p>  3.3 基于數(shù)據(jù)采集卡的虛擬示波器的原理和結(jié)構(gòu) </p><p>  在電子測量中,傳統(tǒng)儀器都是自成系統(tǒng)的,功能單一,模式固定,不具備用戶對儀器進行定義及編程的功能。隨著計算機技術(shù)特別是軟件技術(shù)的發(fā)展,將個人計算機應(yīng)用于測試和分析的虛擬示波器是一個順應(yīng)形勢的新的發(fā)展方向。 </p><p>  3.3.1 虛擬示波器的工作原理 </

43、p><p>  模擬信號經(jīng)同軸電纜進入采集卡的輸入通道,經(jīng)過前置濾波電路、衰減電路、可變增益的放大電路,將信號處理成A/D轉(zhuǎn)換器可以處理的標(biāo)準(zhǔn)電平,經(jīng)過A/D采樣量化轉(zhuǎn)化成計算機可以處理的數(shù)字信號并緩存到卡上的存儲器。其支持軟件通過PC機的PCI總線接口控制模擬通道的阻抗匹配、放大器的增益選擇、啟動A/D轉(zhuǎn)換及轉(zhuǎn)換結(jié)束的識別,并將采集數(shù)據(jù)以DMA方式傳輸?shù)接嬎銠C內(nèi)存,同時對數(shù)據(jù)信號進行分析處理、顯示、存儲及打印輸出等

44、。</p><p>  3.3.2 系統(tǒng)的結(jié)構(gòu)和特點 </p><p>  基于數(shù)據(jù)采集卡的虛擬示波器由支持軟件、數(shù)據(jù)采集卡及PC機組成,其結(jié)構(gòu)如圖3-3所示。</p><p>  圖 3-3 基于數(shù)據(jù)采集卡的虛擬示波器的結(jié)構(gòu)</p><p>  虛擬示波器和傳統(tǒng)示波器的根本區(qū)別在于: </p><p> ?。?)傳統(tǒng)

45、示波器完全用硬件實現(xiàn),功能和模塊固定,其功能的自動測試系統(tǒng),功能及模式由用戶自己定義。 </p><p> ?。?)傳統(tǒng)示波器結(jié)構(gòu)復(fù)雜,維護困難,對工作現(xiàn)場條件有較高的要求。器結(jié)構(gòu)簡單,僅由計算機和一塊數(shù)據(jù)采集卡和一張光盤組成,將采集卡插在PC機的擴展槽上即可工作,軟硬件維護都很方便。</p><p>  第四章 虛擬示波器的方案設(shè)計</p><p>  4.1硬件

46、和軟件的選擇 </p><p>  虛擬示波器主要由儀器硬件和功能軟件兩部分組成。以DAQ方式構(gòu)成的虛擬示波器的硬件主要由計算機和模塊化硬件組成,計算機通常是個人計算機,也可以是任何通用計算機。模塊化硬件主要是數(shù)據(jù)采集卡。本課題設(shè)計的虛擬示波器主要是由一塊PCI總線的高速數(shù)據(jù)采集卡、PC機和用VC++ 6.0開發(fā)的功能模塊軟件組成。 </p><p>  4.1.1硬件的選擇 </p

47、><p>  計算機和數(shù)據(jù)采集卡組成了虛擬示波器的硬件平臺。數(shù)據(jù)采集卡是虛擬示波器的重要組成部件,其性能指標(biāo)直接決定著虛擬示波器的采樣速率、精度等主要指標(biāo)。CPU的速度及計算機的內(nèi)存影響著示波器處理數(shù)據(jù)的速度;計算機的硬盤決定著它的存儲數(shù)據(jù)的容量。 </p><p>  數(shù)據(jù)采集系統(tǒng)的任務(wù)是采集原始的模擬信號,把它們轉(zhuǎn)換為計算機可以處理的數(shù)字信號,其主要指標(biāo)有采樣精度和采樣速度。采樣精度主要由

48、A/D轉(zhuǎn)換器的位數(shù)決定,而采樣速度由A/D轉(zhuǎn)換器最高工作頻率決定,然而,兩個指標(biāo)是相互制約的。 </p><p>  數(shù)據(jù)采集卡的選擇主要與采樣率、采樣通道數(shù)和測量精度有關(guān)。根據(jù)第三章的分析,采樣率是指模擬量輸入通道在單位時間內(nèi)能夠采集的數(shù)據(jù)點數(shù),一般用Hz即采樣頻率來表示,也有的用S/s表示。采樣頻率高,就能在一定時間獲得更多的原始信號信息。為了再現(xiàn)原始信號,必須有足夠高的采樣頻率。如果信號變化比采集卡的數(shù)字化

49、要快,或者采樣太慢,就會產(chǎn)生波形失真。根據(jù)奈奎斯特理論,采樣頻率至少是被測信號最高頻率的兩倍,才不至于產(chǎn)生波形失真。即應(yīng)選用2GHz的數(shù)據(jù)采集卡才可以完成最高頻率為1GHz的被測信號的測量工作。 </p><p>  采樣通道數(shù)是系統(tǒng)可以同時進行采樣的信號通道數(shù),在選取采集卡時需要注意以下幾點:采樣通道數(shù)是否滿足系統(tǒng)要求;在需要差分輸入測量時,板上有無差分輸入以及差分輸入的通道數(shù);在測量多通道時,應(yīng)注意采集卡能否

50、擴展以及最多的可擴展的通道數(shù)。 </p><p>  4.1.2軟件開發(fā)環(huán)境的選擇 </p><p>  在給定計算機和必要儀器硬件之后,構(gòu)成虛擬儀器的關(guān)鍵在于軟件。虛擬儀器系統(tǒng)的一個重要革新就是儀器硬件軟件化,用軟件實現(xiàn)硬件功能。虛擬儀器系統(tǒng)的核心技術(shù)是軟件技術(shù),一個現(xiàn)代化測控系統(tǒng)性能的優(yōu)劣很大程度上取決于軟件平臺的選擇與應(yīng)用軟件的設(shè)計。因此正確選擇軟件開發(fā)環(huán)境對于程序的開發(fā)和設(shè)計起著重

51、要的作用。 </p><p>  目前,能夠用于虛擬儀器系統(tǒng)開發(fā)、比較成熟的軟件開發(fā)平臺主要有兩大類:一類是通用的可視化軟件編程環(huán)境,主要有Microsoft公司的Visual C++和Visual Basic、Insprise公司的Delphi和C++ Builder等;另一類是一些公司推出的專用于虛擬儀器開發(fā)的軟件編程環(huán)境,主要有Agilent公司(由原HP公司分離出來的一個公司)的圖形化編程環(huán)境Agilen

52、tVEE、NI公司的圖形化編程環(huán)境LabVIEW及文本編程環(huán)境LabWindows/CVI。 </p><p>  在以上這些的軟件開發(fā)環(huán)境中,面向儀器的交互式C語言開發(fā)平臺LabWindows/CVI具有編程方法簡單直觀、提供程序代碼自動生成功能及有大量符合VPP規(guī)范的儀器驅(qū)動程序源代碼可供參考和使用等優(yōu)點,是國內(nèi)虛擬儀器系統(tǒng)集成商使用較多的編程開發(fā)環(huán)境。Agilent VEE和LabVIEW則是一種圖形化編程

53、環(huán)境或稱為G語言編程環(huán)境,采用了不同于文本語言的流程圖編程方法,十分適合對軟件編程了解較少的工程技術(shù)人員使用。 </p><p>  Visual C++是一種功能齊全的面向?qū)ο蟮拈_發(fā)工具,可直接對硬件操作,支持多任務(wù)多線程。Visual C++不僅是C++語言的集成開發(fā)環(huán)境,而且與Win32緊密相連,所以利用Visual C++開發(fā)系統(tǒng)可以完成各種各樣應(yīng)用程序的開發(fā),從底層軟件直到上層面向用戶的軟件都可以用Vi

54、sual C++來開發(fā)完成;而且Visual C++強大的調(diào)試功能也為大型復(fù)雜軟件的開發(fā)提供了有效的排錯手段。隨著軟件版本的不斷升級,其功能也越來越強大,幾乎包括了Windows應(yīng)用的各個方面。 </p><p>  Visual C++可以說是匯集Microsoft公司技術(shù)精華的主流產(chǎn)品。它最重要的特征是提供了MFC類庫,封裝了Windows API函數(shù),并建立了應(yīng)用程序框架,使開發(fā)人員可以將主要精力集中在所要

55、解決的具體問題上,尤其是利用Visual C++的AppWizard功能生成的SDI或MDI應(yīng)用程序,進行少量修改后,就可以進入軟件界面的外觀設(shè)計。 </p><p>  由于Visual C++的面向?qū)ο蟪绦蛟O(shè)計的特性十分適合虛擬儀器系統(tǒng)的軟件開發(fā),而且在本設(shè)計中所使用的數(shù)據(jù)采集卡的驅(qū)動程序是由C語言開發(fā),所以我們選用Visual C++6.0作為虛擬示波器系統(tǒng)的軟件開發(fā)工具。</p><p

56、>  4.2軟件總體方案 </p><p>  虛擬示波器是采用基于計算機的虛擬技術(shù),用以模擬傳統(tǒng)示波器的面板操作和處理功能,也就是使用個人計算機及其接口電路來采集現(xiàn)場或?qū)嶒炇倚盘?,并通過軟件的圖形用戶界面(GUI)來模仿示波器的操作面板,來完成信號的采集、分析處理和顯示輸出等功能。 </p><p>  本課題設(shè)計的虛擬示波器,是在高速數(shù)據(jù)采集卡的支持下,配備一定功能的軟件,完成波

57、形的存儲、分析、顯示等功能。傳統(tǒng)的測試儀器由信號采集、信號處理和結(jié)果顯示三大部分組成,這三部分均由硬件構(gòu)成。虛擬示波器也是由這三大部分組成,但是除了數(shù)據(jù)采集部分是由硬件實現(xiàn)之外,其它兩部分都是由軟件實現(xiàn)。 </p><p>  本次設(shè)計利用Visual C++ 6.0作為開發(fā)工具 ,采用了面向?qū)ο蟮某绦蛟O(shè)計方法,在Windows2000下進行。軟件采用模塊化設(shè)計,其總體框圖如圖4-1所示。 </p>

58、<p>  從圖4-1可以看出軟件部分的總體框圖以及數(shù)據(jù)流、控制流的流向。其中主控模塊相當(dāng)于一個任務(wù)調(diào)度中心。當(dāng)軟件開始運行時,首先進入主控模塊,然后啟動數(shù)據(jù)采集線程和數(shù)據(jù)處理線程,于是數(shù)據(jù)采集模塊和數(shù)據(jù)處理模塊開始工作直至用戶停止系統(tǒng)工作。 </p><p>  數(shù)據(jù)流從數(shù)據(jù)采集模塊開始,分別流向數(shù)據(jù)存儲模塊和數(shù)據(jù)處理模塊,數(shù)據(jù)存儲模塊負(fù)責(zé)把用戶感興趣的數(shù)據(jù)存人硬盤,而數(shù)據(jù)處理模塊負(fù)責(zé)數(shù)據(jù)的實時顯示

59、、數(shù)字濾波、頻譜分析和波形的參數(shù)計算。 </p><p>  當(dāng)用戶需要查詢歷史信號時,可以啟動歷史查詢模塊,然后把查詢到的數(shù)據(jù)送往歷史曲線顯示模塊;如果需要打印歷史信號,調(diào)用曲線打印模塊即可。</p><p>  圖4-1 軟件系統(tǒng)總體框圖</p><p>  圖4-2 軟件系統(tǒng)總體流程圖</p><p>  第五章 虛擬示波器系統(tǒng)的軟件具

60、體實現(xiàn)</p><p>  5.1虛擬示波器的系統(tǒng)軟件功能框圖</p><p>  軟件采用模塊化設(shè)計,在功能上劃分為多個模塊,分別為數(shù)據(jù)采集模塊、軟面板模塊(用戶界面模塊)、數(shù)據(jù)處理模塊、數(shù)據(jù)存儲模塊和幫助文件模塊。其中數(shù)據(jù)處理模塊又劃分為頻譜分析模塊、數(shù)字濾波模塊、參數(shù)計算模塊和波形顯示模塊。各個模塊之間的聯(lián)系如圖5-1所示。由于篇幅關(guān)系,本文中只給出了重要模塊的設(shè)計。</p&g

61、t;<p>  圖5-1 系統(tǒng)軟件功能框圖</p><p>  5.2 數(shù)據(jù)采集模塊的設(shè)計 </p><p>  數(shù)據(jù)采集模塊是最為關(guān)鍵的一個程序模塊,這個模塊中應(yīng)用程序會通過采集卡的驅(qū)動程序和硬件進行通信,要發(fā)出各種控制字、參量字到儀器中去,同時又要對硬件的工作狀態(tài)進行判斷和處理,然后讀取采樣值。如果把這個模塊程序在主線程中實現(xiàn),那么,當(dāng)應(yīng)用程序與驅(qū)動程序進行數(shù)據(jù)通信時,主

62、界面就會凍結(jié)。為了解決這個問題,本文直接創(chuàng)建一個子線程來單獨完成與驅(qū)動程序的通信任務(wù),讓主界面專心于響應(yīng)視窗界面的信息。在主線程中通過調(diào)用StartCapture()函數(shù)啟動數(shù)據(jù)采集子線程進行數(shù)據(jù)采集。</p><p>  5.2.1 數(shù)據(jù)采集的編程過程 </p><p> ?。?)初始化采集卡的驅(qū)動程序和硬件 </p><p>  這個過程包括兩個部分,一是確定硬

63、件安裝位置及I/O口和內(nèi)存映射,由GAGESCOP.INC文件來配置內(nèi)存區(qū)域和I/O地址,二是用戶進行的采集卡驅(qū)動初始化,選擇(打開相應(yīng)的)采集卡,讀取配置文件等。驅(qū)動程序的初始化也可以直接調(diào)用InitBoard()函數(shù)或?qū)Υ撕瘮?shù)進行適當(dāng)?shù)男薷暮笳{(diào)用(該函數(shù)的源代碼在app_supp.c文件中)。 </p><p> ?。?)設(shè)置相關(guān)參數(shù)準(zhǔn)備進行數(shù)據(jù)采集 </p><p>  該采集卡的所

64、有的參數(shù)都是通過軟件進行設(shè)置的,驅(qū)動程序中提供了一些數(shù)據(jù)結(jié)構(gòu),使得參數(shù)設(shè)置比較容易進行,也可以不用這些數(shù)據(jù)結(jié)構(gòu)。設(shè)置參數(shù)主要包括:工作模式(單通道,多通道),采樣率、輸入電壓的范圍、輸入阻抗及耦合方式、觸發(fā)源、上升沿、下降沿觸發(fā)、觸發(fā)電平、采樣深度(采樣點數(shù)),所有這些參數(shù)設(shè)置被綜合到一個函數(shù)中:SetBoard();對此函數(shù)進行適當(dāng)?shù)男薷模纯蓾M足采集的要求。 </p><p> ?。?)開始采集數(shù)據(jù) <

65、/p><p>  調(diào)用gage_start_capture()函數(shù)即開始采集數(shù)據(jù),如調(diào)用時傳給該函數(shù)的參數(shù)為非零值,且觸發(fā)條件設(shè)置為軟件觸發(fā),則調(diào)用此函數(shù)后立即開始采集數(shù)據(jù),否則就等待至觸發(fā)條件滿足時開始采集數(shù)據(jù)。當(dāng)計算機上只有一塊GaGe公司的采集卡時,可以用另外兩個函數(shù)來代替gage_start_capture();即順序調(diào)用gage_init_clock()和gage_get_data();執(zhí)行這兩個函數(shù)的速度

66、比執(zhí)行g(shù)age_start_capture()要快許多,因為gage_start_capture()要做一些額外的工作以確保多卡同時有效地工作。 </p><p> ?。?)檢測數(shù)據(jù)是否采集結(jié)束 </p><p>  相關(guān)函數(shù)為gage_triggered(),gage_busy(),gage_force_capture(),gage_abort_capture()。gage_trigge

67、red()是用來檢測采集卡是否已經(jīng)觸發(fā),如果沒有觸發(fā),則在采集卡的RAM上沒有有效數(shù)據(jù)。gage_busy()則是用來判斷是否已經(jīng)采集結(jié)束。正在采集數(shù)據(jù)時,是不能讀取采集卡上的RAM的(該卡上的RAM是單端口的)??梢杂胓age_force_capture()強制觸發(fā)一次,或者用gage_abort_capture()結(jié)束這一次數(shù)據(jù)采集,這樣可以對后續(xù)的數(shù)據(jù)采集產(chǎn)生影響。 </p><p> ?。?)傳輸數(shù)據(jù)從采

68、集卡RAM至計算機的內(nèi)存 </p><p>  采樣點在采集卡的RAM中存儲的位置(地址)可由函數(shù),gage_calculate_addresses(),該函數(shù)返回三個地址值:開始地址、觸發(fā)地址、結(jié)束地址。傳輸數(shù)據(jù)的函數(shù)是gage_transfer_buffer_3();使用它時需要傳遞的參數(shù)為開始地址和要傳送的數(shù)據(jù)量。</p><p>  數(shù)據(jù)采集的主要代碼如下</p>&

69、lt;p><b>  {</b></p><p>  InitBoard(); /*初始化驅(qū)動程序和硬件*/</p><p>  /* 校驗當(dāng)前采集卡的結(jié)構(gòu)* /</p><p>  Gage_get_driver_info(board_info);</p><p>  board_setting();/*對采

70、集卡進行參數(shù)設(shè)置*/</p><p>  /*開始數(shù)據(jù)采集,觸發(fā)源為軟件觸發(fā)*/</p><p>  gage_start_capture ((int16) (board.source =GAGE_SOFTWARE));</p><p>  /*計算出起始地址、觸發(fā)地址、結(jié)束地址*/</p><p>  gage_calculate_ad

71、dresses(GAGE_CHAN_A,board.opmode,sample_rate_table</p><p>  [board.srindex].sr_calc,&trigger[bd],&starting[bd],&ending[bd]);</p><p>  /把采集卡上的數(shù)據(jù)傳輸?shù)接嬎銠C內(nèi)存*/</p><p>  gage_t

72、ransfer_buffer_3(trigger[bd],</p><p>  GAGE_CHAN_A,chan_a_8,points);</p><p><b>  }</b></p><p>  5.2.2采集模塊的流程圖 </p><p>  采集模塊的流程圖如圖5-2所示。 </p><p&g

73、t;  5.3 軟面板的設(shè)計 </p><p>  用戶界面的設(shè)計采用了VC++中切分多視圖技術(shù),界面主要切分為三個視圖:主視圖基類為CscrollView,用于顯示波形;還有兩個視圖基類為CformView,一個用于動態(tài)顯示采集數(shù)據(jù)的特征參數(shù),另一個用于對示波器進行操作。整個軟件的主界面設(shè)計如圖5-3所示。 </p><p>  實現(xiàn)切分多視圖的技術(shù)核心: </p><

74、;p> ?。?)在框架窗口類中聲明一個CSplitterWnd類對象,對MDI應(yīng)用程序,框架窗口類為CChildFrame類;對SDI應(yīng)用程序,框架窗口類為CMainFrame類。CSplitterWnd類是專門繪制和處理分隔條的類。 </p><p> ?。?)在框架窗口類的OnCreateClient()函數(shù)中創(chuàng)建分割條窗口。 </p><p>  (3)為分割條窗口的每個子窗口

75、創(chuàng)建視圖。 </p><p>  示波器主界面分為三個功能模塊,波形顯示模塊,參數(shù)顯示模塊和示波器操作模塊。在波形顯示模塊中,可以同時動態(tài)顯示兩個通道的波形。在參數(shù)顯示模塊中,可以動態(tài)顯示兩個通道的參數(shù),主要有周期、最大值、有效值、功率和頻率,當(dāng)然周期和頻率是針對周期信號來說的。在示波器操作模塊中,又可以分為兩個部分,分別是系統(tǒng)控制和通道控制。系統(tǒng)控制主要是對采樣頻率、觸發(fā)源、觸發(fā)電平、采樣深度的控制;通道控制主

76、要實現(xiàn)兩個通道參數(shù)的設(shè)置和波形顯示的控制。通道參數(shù)主要有輸入電壓的范圍、單/雙通道選擇、輸入阻抗和交直流耦合;顯示控制包括時基控制、波形縮放和單/雙通道顯示選擇。</p><p>  5.4 頻譜分析模塊的設(shè)計 </p><p>  本軟件利用快速傅里葉變換(FFT)進行頻譜分析。頻譜分析采用按時間抽取FFT算法,然后將幅值頻譜分析結(jié)果在用戶界面上以坐標(biāo)曲線形式顯示。進行FFT時可以選擇點

77、數(shù),有1024、2048、4096三種選擇,如果點數(shù)不夠,程序自動補零。</p><p>  圖5-2 數(shù)據(jù)采集程序流程圖</p><p>  5-3 虛擬示波器的主界面</p><p><b>  DFT為:</b></p><p><b>  由于</b></p><p>

78、;<b>  所以</b></p><p>  其中和分別為和的N/2點DFT,即</p><p>  由于和均為N/2為周期,且,所以又可表示為</p><p><b>  5-1</b></p><p><b>  5-2</b></p><p> 

79、 這樣,就將N點DFT分解為兩個N/2點的DFT和式5-1以及5-2的運算。依次類推,經(jīng)過M-1次分解,最后將N點DFT分解成N/2個2點DFT.</p><p>  5.4.1 設(shè)計結(jié)果 </p><p>  頻譜顯示模塊主要完成對不同通道信號頻譜的顯示,它由參數(shù)設(shè)置對話框和頻譜顯示對話框組成。參數(shù)設(shè)置對話框主要完成通道和采樣點數(shù)的選擇,如圖 5-5 所示。</p><

80、;p>  圖5-4 DIT-FET 運算和程序框圖</p><p>  圖5-5 FFT的控制對話框</p><p>  圖5-6 鋸齒波的頻譜圖</p><p>  圖5-7 正弦波的頻譜圖</p><p>  5.4.2 數(shù)字濾波模塊的設(shè)計 </p><p>  在虛擬示波器中,對被測信號背景噪聲干擾的抑制是

81、非常重要的一個任務(wù),一般情況下,采用數(shù)字濾波可以較好地清除干擾。</p><p>  濾波器的設(shè)計采用了經(jīng)典的設(shè)計方法,首先根據(jù)指標(biāo)設(shè)計出巴特沃斯濾波器,然后利用雙線性變換法設(shè)計數(shù)字低通濾波器,這部分的內(nèi)容在一般的數(shù)字信號處理著作中都有詳盡的介紹。</p><p>  數(shù)字濾波模塊主要完成對不同通道的濾波和濾波前后波形的顯示,圖5-8為濾波器的控制對話框,它主要完成通道的選擇、濾波器類型的

82、選擇和一些參數(shù)的輸入。濾波前后波形的顯示仍在主界面中的波形顯示區(qū)進行,圖5-9為鋸齒波通過低通濾波器,其中下面的波形為輸入的鋸齒波,上面的波形為鋸齒波濾波后的波形。</p><p>  圖5-8 濾波器的控制對話框</p><p>  圖5-9 鋸齒波通過低通濾波器后的波形</p><p>  5.6 波形顯示模塊的設(shè)計</p><p>  

83、5.6.1 數(shù)據(jù)內(nèi)插技術(shù) </p><p>  要想觀察采集好的波形,就必須采用某種方式將采集好的數(shù)據(jù)顯示出來,這就要用到數(shù)據(jù)內(nèi)插技術(shù)。選擇不同的內(nèi)插技術(shù)會對存儲帶寬帶來不同的影響。常用的內(nèi)插技術(shù)有:直接點顯示、矢量內(nèi)插和正弦內(nèi)插。 </p><p><b> ?。?)直接點顯示 </b></p><p>  直接點顯示是在顯示器上直接按點顯示

84、,顯示效果較為直觀,但該方式也存在著嚴(yán)重的不足。當(dāng)采樣點較少時,觀察者會把相鄰的兩個點連起來,隨著信號頻率的增加,很可能得出錯誤的結(jié)果。因此,要得到正確的結(jié)果就必須采集更多的點,但是太多的點反而會影響觀察結(jié)果。一般情況下,每個周期要求20~25個點。 </p><p> ?。?)矢量內(nèi)插顯示 </p><p>  矢量內(nèi)插是在采集點之間采用直線擬合方式畫線顯示的方法。它可以消除視覺上混淆,

85、矢量越短效果就越好。對正弦信號而言,如果每周期只有兩個采樣點,那么矢量內(nèi)插就沒有什么效果。一般當(dāng)采樣點增加到10個以上時,才能得到較為準(zhǔn)確的正弦波。因此,采用矢量內(nèi)插的方法,可以將有效存儲帶寬提高兩倍以上。矢量內(nèi)插法適合于顯示脈沖和數(shù)字信號,在顯示正弦波時可能會產(chǎn)生失真。 </p><p>  (3)正弦內(nèi)插顯示 </p><p>  正弦內(nèi)插法是用sin(x)/x函數(shù)曲線將各采樣點連接起

86、來。正弦內(nèi)插器基本上可看作是理想的矩形濾波器,它與矢量法相比不但可以產(chǎn)生精確的波形,也可以得到較高分辨率的定時和幅度測量。 </p><p>  正弦內(nèi)插法分兩步來完成。首先,在每個己采樣點之后插入L-1個零值,這時產(chǎn)生的新序列的奈奎斯特頻率已經(jīng)提高了L倍,然后我們就可以通過適當(dāng)?shù)臄?shù)字濾波器來獲取原始采樣數(shù)據(jù)。 </p><p>  我們可以采用有限長脈沖響應(yīng)(FIR)數(shù)字濾波器來近似該理

87、想濾波器。因此,正弦內(nèi)插法本質(zhì)上是一個線性濾波器。這種方法對于顯示正弦波特別有效,它一般只需每個周期有2.5個采樣點。當(dāng)脈沖信號的上升與下降時間大于采樣周期的1.7倍時,正弦內(nèi)插法對脈沖信號也十分有效。但是,對于變化很快的脈沖信號,該方法就不可能精確的恢復(fù)該信號。</p><p>  5.6.2 波形顯示技術(shù) </p><p>  虛擬示波器的工作原理是對信號波形進行密集的采樣,采樣值被數(shù)

88、字化并被存儲,然后從存儲器中讀出,重建波形并用清晰的、均勻一致軌跡映現(xiàn)在屏幕上。由于檢測的波形經(jīng)數(shù)字化后只是一連串離散的數(shù)據(jù),因此,如何重建波形是設(shè)計虛擬示波器的關(guān)鍵問題。 </p><p>  虛擬示波器與傳統(tǒng)示波器的一大區(qū)別在于它沒有掃描電路,它也不是基于示波管的線性偏轉(zhuǎn)特性而工作,對于虛擬示波器而言,波形重現(xiàn)靠的是計算機的圖形處理功能。因此,它屬于軟件處理的范疇。 </p><p>

89、  與數(shù)字示波器類似,虛擬示波器也有一個不工作區(qū)的問題,捕捉信號需要時間(包括采樣時間和轉(zhuǎn)換時間),還有一些附加時間(包括存儲波形、處理波形和顯示等)。當(dāng)虛擬示波器進行上述工作時它便停止了波形的采集。根據(jù)這個特點,我們在波形的重現(xiàn)上面采用兩種處理方式,第一種方式是采用“照像”技術(shù),也稱為分段方式;第二種方式是采用滾動方式。 </p><p><b> ?。?)照像方式 </b></p&

90、gt;<p>  照像方式是把信號波形一幅一幅地取樣回來,在此同時,也將波形一幅一幅地送至屏幕去顯示。前后兩幅波形在時間上不連續(xù),中間有一段時間差。這種捕捉信息的方式類似于“照像”的過程,故稱之為照像方法。采用照像方法的原因是為了讓人們在觀看波形時能留有一段視覺時間,以便看到穩(wěn)定的波形,這種采樣方法適合于捕捉快速信號的波形。采樣波形的最大頻率取決于A/D板卡的采集速率。</p><p><b&

91、gt; ?。?)滾動方式</b></p><p>  滾動方式是通過繪圖方法滾動數(shù)字化波形,使其連續(xù)不斷地被顯示在屏幕上,它的工作方式很象圖表記錄儀。它的工作原理是每隔一個時鐘周期取樣一次,接著將波形從右到左滾動一位(屏幕的一個點距),滾動模式適合于觀察變化緩慢的信號、隨機信號和非重復(fù)信號。 </p><p>  傳統(tǒng)的滾動顯示方式是這樣實現(xiàn)的,設(shè)采樣值在數(shù)組data[ ]中保

92、存。在顯示波形的過程中,采樣數(shù)據(jù)依次從右向左平移,即在數(shù)組的低端data[0]不斷補進最新采樣數(shù)據(jù)newData,同時數(shù)組的高端data[2*length-1]自動丟失,例如: </p><p>  丟失←data[2*length-1]←?data[i]←data[0]← newData </p><p>  采樣值在屏幕上的定位映象有嚴(yán)格的要求。我們定義時間軸的中點為坐標(biāo)原點,觀察窗口

93、的范圍從-lengh至length 因此,在時間軸坐標(biāo)點為legth-i處,對應(yīng)的縱坐標(biāo)為data[legth-i ]( i = -lenth~length)。</p><p>  圖5-10波形滾動方式顯示</p><p>  在本次設(shè)計中采用了新的算法來實現(xiàn)波形的動態(tài)顯示,新的算法改變了滾動方式只能觀察變化緩慢的信號的限制,使示波器的動態(tài)顯示波形效果得到了很大的改觀。 </p&g

94、t;<p>  算法核心思想如下: </p><p>  (1) 得到所采集數(shù)據(jù)塊的第一個和最后一個數(shù)據(jù)點的橫坐標(biāo)m_xMin和m_xMax,m_xMax-m_xMin為波形的邏輯寬度。 </p><p>  (2) m_xMax-m_xMin的值為邏輯坐標(biāo),把它轉(zhuǎn)化為設(shè)備坐標(biāo)cx,用cx設(shè)定整個滾動視圖的寬度。</p><p>  (3) 為了提高畫

95、圖的效率,只需畫出滾動視圖可視部分的圖形,也就是剪裁區(qū)的圖形,因此要得到剪裁區(qū)。 </p><p>  (4) 畫出坐標(biāo)和剪裁區(qū)內(nèi)的一段波形。 </p><p>  (5) 利用CSplitterWnd::DoScrollBy()函數(shù),根據(jù)采樣間隔的大小決定視圖滾動速度的快慢。這樣視圖滾動以后相應(yīng)的剪裁區(qū)也會發(fā)生改變,促使動態(tài)畫出新的波形。</p><p>  下面

96、是波形顯示的主要代碼</p><p><b>  {</b></p><p><b>  ……</b></p><p>  /*得到第1個數(shù)據(jù)的橫坐標(biāo)*/</p><p>  m_xMin=pMem->m_TestQF3FileInfo.xMin;</p><p>  

97、/*得到最后1個數(shù)據(jù)的橫坐標(biāo)*/</p><p>  m_xMax=pMen->m_TestQF3FileInfo.xMax;</p><p>  /*邏輯坐標(biāo)轉(zhuǎn)換為設(shè)備坐標(biāo)*/</p><p>  LogToDew_X(cx,m_xMax);</p><p>  /*設(shè)定滾動視圖的寬度*/</p><p>  

98、sizeTotal.cx=cx;</p><p>  /*得到裁剪區(qū)矩形*/</p><p>  pDC->GetClipBox(&m_ClipRect);</p><p><b>  /*畫出坐標(biāo)*/</b></p><p>  DrawGrid(pDC);</p><p>  /

99、*畫出一段波形*/</p><p>  DrawCurve(pDC);</p><p>  /*得到滾動視圖*/</p><p>  CGraphView*</p><p>  View1=(CGraphView*)this->m_SW1.GetPane(0,0);</p><p>  /*根據(jù)采樣間隔不斷滾動視

100、圖,動態(tài)顯示波形*/</p><p>  This->m_SW1.DoScrollBy(View,CSize(1,0),TRUE);</p><p><b>  ……</b></p><p><b>  }</b></p><p>  5.6.3設(shè)計結(jié)果 </p><p&g

101、t;  波形顯示模塊主要負(fù)責(zé)兩個通道信號的波形滾動顯示,工具欄上的按鈕可以控制波形滾動的啟動和停止,測試者如果發(fā)現(xiàn)感興趣的波形可以停止?jié)L動,以便進行仔細(xì)的分析,設(shè)計效果如圖5-11所示。</p><p>  圖5-11 波形顯示模塊設(shè)計效果</p><p>  5.6.4數(shù)據(jù)采集和數(shù)據(jù)處理的多線程實現(xiàn) </p><p>  數(shù)據(jù)采集及其波形實時顯示是虛擬示波器中最為

102、重要的模塊,通過充分發(fā)掘Windows的系統(tǒng)資源,我們可以設(shè)計出高質(zhì)量的通用軟件模塊。 </p><p>  Windows NT和Windows 95之后的版本都是多線程、搶先式多任務(wù)的操作系統(tǒng)。在Windows中,一個可執(zhí)行程序的運行時刻實例稱為進程(process)。一個進程可以有多個線程(thread),Windows是按照線程分配CPU時間片的,而分配的機制就是搶先多任務(wù)方式。Windows給所有當(dāng)前進

103、程分配動態(tài)優(yōu)先級,為進程所屬的每一個線程分配相對優(yōu)先級,Windows把進程優(yōu)先級與各線程的相對優(yōu)先級相結(jié)合,就得到該線程的優(yōu)先級數(shù)(范圍是0到31)。在操作系統(tǒng)分配CPU的時間片的時候,高優(yōu)先級的線程總是可以優(yōu)先得到執(zhí)行。同時,高優(yōu)先級的線程還可以終止低優(yōu)先級別線程的執(zhí)行,搶占時間片中剩余的時間。不同線程可以采用定時器、中斷、休眠、同步對象等方法同步。 </p><p>  顯示模塊的特點是必須承擔(dān)繁重的圖形顯

104、示輸出任務(wù),而這部分的實時性要求一般不苛刻。這樣的功能模塊如果用單任務(wù)操作系統(tǒng)(如Dos)或非搶先式操作系統(tǒng)(如Windows3.1)實現(xiàn),數(shù)據(jù)采集任務(wù)將無權(quán)剝奪顯示任務(wù)的執(zhí)行權(quán)利而只能等待后者自行交出對CPU的控制權(quán),從而使顯示模塊的延遲影響波及對時間響應(yīng)要求較嚴(yán)格的數(shù)據(jù)采集任務(wù)。但是在Windows9X下,實現(xiàn)中可以依靠系統(tǒng)的多線程、搶先多任務(wù)機制,將顯示功能在不同于數(shù)據(jù)采集線程的單獨線程中實現(xiàn),然后通過上面提到的優(yōu)先級調(diào)度、線程同

105、步等機制保證數(shù)據(jù)采集線程不被耗時的顯示線程所延誤。在數(shù)據(jù)采集和顯示任務(wù)由不同的線程完成的前提下,采集線程的執(zhí)行和休眠可以采用定時器或中斷調(diào)度等方式主動控制。而顯示線程的調(diào)度主要有兩種策略: </p><p>  (1)將顯示線程的優(yōu)先級設(shè)置成低于數(shù)據(jù)采集線程的優(yōu)先級,那么顯示線程將始終處于等待狀態(tài),只有在采集線程休眠后才能獲得CPU時間片執(zhí)行,這實際上是通過Windows的優(yōu)先級調(diào)度機制完成的線程同步。 <

106、/p><p> ?。?)使用自定義消息,在采集線程每次休眠之前調(diào)用PostMessage()函數(shù)發(fā)出一個消息,由數(shù)據(jù)處理線程的消息響應(yīng)函數(shù)進行響應(yīng),進而激活數(shù)據(jù)處理線程。 </p><p>  在本次設(shè)計中,除了一個處理用戶輸入消息的用戶界面線程(User_Interface</p><p>  Threads)之外,創(chuàng)建了兩個輔助線程(Worker Threads)。

107、在主線程中,主要進行觸發(fā)控制、通道控制、時基控制、增益控制等有關(guān)示波器的操作和控制。一個輔助線程用于數(shù)據(jù)采集,另外一個輔助線程用于數(shù)據(jù)處理,其中最主要的是波形顯示。軟件的多線程設(shè)計框圖如圖5-15所示。由于CS 82G的存儲器為單口存儲器,我們只能采用單緩沖區(qū)的工作方式,就是說,每采集一定長度的點后,采集線程休眠,并喚醒數(shù)據(jù)處理線程,當(dāng)數(shù)據(jù)處理線程有信號時,再喚醒采集線程,循環(huán)進行,直至用戶發(fā)出中止命令。該方法的關(guān)鍵在于線程的同步,就是

108、要保證在采集線程寫內(nèi)存的時候,數(shù)據(jù)處理線程不能讀內(nèi)存,反之亦然,否則,會產(chǎn)生錯誤??梢圆捎门R界區(qū)或者Event同步對象來實現(xiàn),為了保證在一次采集中采集線程不被中斷,而不僅僅是出于內(nèi)存訪問保護的考慮,我們選擇Event同步對象的實現(xiàn)線程間的同步。</p><p>  圖5-12 軟件多線程設(shè)計框圖</p><p>  采用了多線程,那么就可以用一個單獨的線程進行數(shù)據(jù)采集,而另一個線程進行數(shù)據(jù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論