【正文】
過 ,這種示波器在應用上存在一些限制因素 ,例如價格昂貴 ,儀器功能和模式固定 ,不具備用戶對儀器進行定義及編程的功能。使用個人計算機及其接口電路來采集現(xiàn)場和實驗室信號 ,并通過圖形用戶界面來模仿示波器 的操作面板完成試驗采集 ,調理 ,分析處理和顯示輸出 ,存儲記錄等功能。本課題研究的虛擬示波器是一種重要的虛擬儀器,主要用于超高頻信號的采集、波形顯示和頻譜分析,在雷達信號處理和激光信號處理等領域有著廣泛的應用。 第一章為緒論,介紹了虛擬儀器的研究背景和意義以及國內外的一些研究進展;第二章為虛擬儀器總體概述,討論了虛擬儀器的概念、構成、特點、發(fā)展,建立了虛擬儀器的基本框架。在這基礎上,給出了基于數(shù)據(jù)采集卡的虛擬示波器的結構。第五章為虛擬示波器的具體實現(xiàn),是本文的重點,完成了虛擬示波器各模塊的詳細設計,包括 數(shù)據(jù)采集模塊、用戶界面模塊、數(shù)字濾波模塊和波形顯示模塊 的設計,并給出了設計結果,最后討論了軟件設計中的關鍵技術的實現(xiàn)。 4 第二章 虛擬儀器技術 虛擬儀器 (Virtual Instruments, 縮寫為 VI)是指以通用計算機作為系統(tǒng)控制器、由軟件來實現(xiàn)人機交互和大部分儀器功能的一種計算機儀器系統(tǒng)。虛 擬儀器的概念是對傳統(tǒng)儀器概念的重大突破,它的出現(xiàn)使測量儀器與個人計算機的界限模糊了。在這三大功能中,數(shù)據(jù)分析、算法實現(xiàn)和結果顯示完全由基于計算機的軟件完成,只要另外提供一定的數(shù)據(jù)采集硬件、輸出端口和驅動設備,就可構成由計算機組成的測量、控制儀器。 V X IV X I 儀 器R S 2 3 2R S 2 3 2 儀 器D A T AA N A L Y S I S數(shù) 據(jù) 分 析D I G I T A L S I G N A LP R O C E S S I N G數(shù) 字 信 號 處 理S T A R I S T I C S統(tǒng) 計N U M E R I C AA N A L Y S I數(shù) 據(jù) 分 析D A T AP R E S E N T A T I O N數(shù) 據(jù) 表 達N e t w o r k i n g網(wǎng) 絡F I L E I / O文 件 I / OG R A P H I C AU S E R I N T E R F A C E圖 像 用 戶 接 口A C Q U I S I T I OA N D C O N T R O L采 集 與 控 制P L U G I N D A T AA C Q U I S I T I O N插 入 式 數(shù) 據(jù) 采 集 卡 圖 21 虛擬儀器的內部功能劃分 測試應用程序將可選硬件(如 GPIB、 VXI、 PXI、 RS—23 DAQ 板)和可重復用原碼庫函數(shù)等軟件結合在一起,實現(xiàn)儀器模塊間的通訊、定時與觸發(fā)。由于 VI 的模塊化、開放性和靈活性,以及軟件是關鍵的特點,當用戶的測試、控制要求變化時,可以方便的向用戶自己來增減硬、軟件模塊,或重新配置現(xiàn)有系統(tǒng)以滿足新的測試、控制要求。 5 虛擬儀器的特點 虛擬儀器是以裝有測量應用軟件的個人電腦為核心,具有虛擬的儀器操作面板,足夠的硬件支持,有一定通信能力的測量裝置。 虛擬儀器系統(tǒng)中除 PC 機外的硬件主要用于數(shù)據(jù)的采集、輸入,至于系統(tǒng)怎樣處理數(shù)據(jù),具有怎樣的面板和數(shù)據(jù)輸出的形式等都是由軟件決定的。 (2)開發(fā)與維護的費用低,系統(tǒng)組建時間短。應用軟件不像傳統(tǒng)儀器的硬件那樣存在元器件老化的問題,大大節(jié)省了維護的費用,延長設備的使用壽命。 傳統(tǒng)儀器測量個體之間差異大,而虛擬儀器的應用軟件在不同的 PC 機上具有相同的運行效果,在軟件運行這方面不存在個體的差異。 因為傳統(tǒng)儀器功能單一,所以對一個信號完成多個參數(shù)的測量需要多臺儀器,使測量受連接方式、電纜度等因素的影響。 (5)具有強大的數(shù)據(jù)處理功能。 6 第三章 基于數(shù)據(jù)采集卡的虛擬示波器的研究 基于數(shù)據(jù)采集系統(tǒng)(采集卡)的虛擬示波器是虛擬儀器的一種重要的構成方式,其中的核心設備數(shù)據(jù)采集卡應具有高速采樣、多種觸發(fā)、存儲數(shù)據(jù)以及與計算機之間交換數(shù)據(jù)的功能,有的數(shù)據(jù)采集卡還具有系統(tǒng)定時和系統(tǒng)同步等功能,它是外界電信號與計算機之間的橋梁,其性能直接決定著數(shù)據(jù)采集的精度和速度,影響著虛擬示波器的整體性能。本課題采用的是第一種方式構成的數(shù)據(jù)采集系統(tǒng),以便進行高速、大容量的數(shù)據(jù)采集和傳輸。 傳感器數(shù) 據(jù)采 集硬 件信號調理P C機軟件 圖 31 基于計算機的數(shù)據(jù)采集系統(tǒng) 常用的數(shù)據(jù)采集硬件的功能包括模擬量輸入、模擬量輸出、數(shù)字量輸出、定時 I/O和觸發(fā)等。軟件主要有驅動器軟件和應用軟件兩部分組成。 CS 82G基于 PC的一 個主要優(yōu)點是它能夠以極高的速率把數(shù)據(jù)傳輸?shù)?PC的 RAM中,數(shù)據(jù)可以從 RAM中很容易地進行分析、存儲和顯示。 CS 82G 的硬件主要由前置濾波器、衰減器、可程控模擬放大電路、 A/D 轉換電路、 7 D/A 轉換電路、計數(shù) /定時電路、振蕩電路、時序控制電路以及 PCI 接口電路構成,全卡的功能電路由數(shù)字控制邏輯電路統(tǒng)一控制。 輸入信號經(jīng)衰減和放大后送入觸發(fā)電路及 A/D轉換器。振蕩器產(chǎn)生的高頻振蕩信號掃描時間因數(shù)電路按設定系數(shù)分頻,經(jīng)脈沖形成電路產(chǎn)生系統(tǒng)所需的時鐘信號,送往地址計數(shù)器, A/D 轉換器。一個采集周期結束后,計算機通過 PCI總線把 RAM中的數(shù)據(jù)讀出,用于數(shù)據(jù)處理和構建信號波形。隨著計算機技術特別是軟件技術的發(fā)展,將個人計算機應用于測試和分析的虛擬示波器是一個順應形勢的新的發(fā)展方向。其支持軟件通過 PC機的 PCI總線接口控制模擬通道的阻抗匹配、放大器的增益選擇、啟動 A/D轉換及轉換結束的識別,并將采集數(shù)據(jù)以 DMA方式傳輸?shù)接嬎銠C內存,同時對數(shù)據(jù)信號進行分析處理、顯示、存儲及打印輸出等。 數(shù)據(jù)采集卡計算機PCI 軟 件 圖 33 基于數(shù)據(jù)采集卡的虛擬示波器的結構 虛擬示波器和傳統(tǒng)示波器的根 本區(qū)別在于: ( 1)傳統(tǒng)示波器完全用硬件實現(xiàn),功能和模塊固定 ,其功能的自動測試系統(tǒng),功能及模式由用戶自己定義。器結構簡單,僅由計算機和一塊數(shù)據(jù)采集卡和一張光盤組成,將采集卡插在 PC機的擴展槽上即可工作,軟硬件維護都很方便。以 DAQ 方式構成的虛擬示波器的硬件主要由計算機和模塊化硬件組成,計算機通常是個人計算機,也可以是任何通用計算機。本課題設計的虛擬示波器主要是由一塊 PCI總線的高速數(shù)據(jù)采集卡、 PC 機和用 VC++ 開發(fā)的功能模塊軟件組成。數(shù)據(jù)采集卡是虛擬示波器的重要組成部件,其性能指標直接決定著虛擬示波器的采樣速率、精度等主要指標。 數(shù)據(jù)采集系統(tǒng)的任務是采集原始的模擬信號,把它們轉換為計算機可以處理的數(shù)字信號,其主要指標有采樣精度和采樣速度。 數(shù)據(jù)采集卡的選擇主要與采樣率、采樣通道數(shù)和測量精度有關。采樣頻率高,就能在一定時間獲得更多的原始信號信息。如果信號變化比采集卡的數(shù)字化要快,或者采樣太慢,就會產(chǎn)生波形失真。即應選用 2GHz 的數(shù)據(jù)采集卡才可以完成最高頻率 為 1GHz 的被測信號的測量工作。 軟件開發(fā)環(huán)境的選擇 在給定計算機和必要儀器硬件之后,構成虛擬儀器的關鍵在于軟件。虛擬儀器系統(tǒng)的核心技術是軟件技術,一個現(xiàn)代化測控系統(tǒng)性能的優(yōu)劣很大程度上取決于軟件平臺 的選擇與應用軟件的設計。 10 目前,能夠用于虛擬儀器系統(tǒng)開發(fā)、比較成熟的軟件開發(fā)平臺主要有兩大類:一類是通用的可視化軟件編程環(huán)境,主要有 Microsoft 公司的 Visual C++和 Visual Basic、Insprise 公司的 Delphi 和 C++ Builder 等;另一類是一些公司推出的專用于虛擬儀器開發(fā)的軟件編程環(huán)境,主要有 Agilent 公司(由原 HP 公司分離出來的一個公司)的圖形化編 程 環(huán)境 AgilentVEE、 NI 公 司的 圖 形化 編程 環(huán)境 LabVIEW 及 文 本編 程環(huán) 境LabWindows/CVI。Agilent VEE 和 LabVIEW 則是一種圖形化編程環(huán)境或稱為 G 語言編程環(huán)境,采用了不同于文本語言的流程圖編程方法,十分適合對軟件編程了解較少的工程技術人員使用。 Visual C++不僅是 C++語言的集成開發(fā)環(huán)境,而且與 Win32 緊密相連,所以利用Visual C++開發(fā)系統(tǒng)可以完成各種各樣應用程序的開發(fā),從底層軟件直到上層面向用戶的軟件都可以用 Visual C++來開發(fā)完成;而且 Visual C++強大的調試功能也為大型復雜軟件的開發(fā)提供了有效的排錯手段。 Visual C++可以說是匯集 Microsoft 公司技術精華的主流產(chǎn)品。 由于 Visual C++的面向對象程序設計的特性十分適合虛擬儀器系統(tǒng)的軟件開發(fā),而且在本設計中所使用的數(shù)據(jù)采集卡的驅動程序是由 C語言開發(fā),所以我 們選用 Visual C++作為虛擬示波器系統(tǒng)的軟件開發(fā)工具。 本課題設計的虛擬示波器,是在高速數(shù)據(jù)采集卡的支持下,配備一定功能的軟件,完 11 成波形的存儲、分析、顯示等功能。虛擬示波器也是由這三大部分組成,但是除了數(shù)據(jù)采集部分是由硬件實現(xiàn)之外,其它兩部分都是由軟件 實現(xiàn)。軟件采用模塊化設計,其總體框圖如圖 41所示。其中主控模塊相當于一個任務調度中心。 數(shù)據(jù)流從數(shù)據(jù)采集模塊開始,分別流向數(shù)據(jù)存儲模塊和數(shù)據(jù)處理模塊,數(shù)據(jù)存儲模塊負責把用戶感興趣的數(shù)據(jù)存人 硬盤,而數(shù)據(jù)處理模塊負責數(shù)據(jù)的實時顯示、數(shù)字濾波、頻譜分析和波形的參數(shù)計算。 數(shù) 據(jù) 存 儲 模 塊歷 史 數(shù) 據(jù) 文 件數(shù) 據(jù) 查 詢模 塊曲 線 顯 示模 塊數(shù) 據(jù) 采 集 模 塊主 控 模 塊歷 史 查 詢 模塊曲 線 打 印 模塊數(shù) 據(jù) 處 理 模 塊實時顯示模塊數(shù)字濾波模塊頻譜分析模塊參數(shù)計算模塊幫 助 文 件 模 塊數(shù) 據(jù) 流 控 制 流 圖 41 軟件系統(tǒng)總體框圖 12 主 程 序初 始 化O n S t a r t ( )消 息 循 環(huán) S t a r t C a p t u r e ( )啟 動 采 樣 數(shù) 據(jù)S t a r t P r o e s s i n g ( )啟 動 數(shù) 據(jù) 處 理 線 程采 集 數(shù) 據(jù)發(fā) 送 W M _ R E C I E V E選 擇 處 理 種 類數(shù) 據(jù) 處 理選 擇 數(shù) 據(jù) 區(qū) 間查 詢 數(shù) 據(jù) 算 法存 儲 數(shù) 據(jù)歷 史 曲 線 顯 示打 印 模 塊開 始是 否 存 儲 數(shù) 據(jù)是 否 查 看歷 史 數(shù) 據(jù)g _ b R u n T h r e a dg _ b R u n T h r e a d 是 否 收 到W M _ R E C I E V EY e s Y e sY e sY e sY e s 圖 42 軟件系統(tǒng)總體流程圖 13 第五章 虛擬示波器系統(tǒng)的軟件具體實現(xiàn) 軟件采用模塊化設計,在功能上劃分為多個模塊,分別為 數(shù)據(jù)采集模塊、軟面板模塊(用戶界面模塊)、數(shù)據(jù)處理模塊、數(shù)據(jù)存儲模塊和幫助文件模塊。各個模塊之間的聯(lián)系如圖 51所示。 數(shù) 據(jù) 采 集 軟 面 板數(shù) 據(jù) 存 儲數(shù) 據(jù) 處 理幫 助 文 件數(shù) 字 濾 波頻 譜 分 析參 數(shù) 計 算波 形 顯 示 圖 51 系統(tǒng)軟件功能框圖 數(shù)據(jù)采集模塊的設計 數(shù)據(jù)采集模塊是最為關鍵的一個程序模塊,這個模塊中應用程序會通過采集卡的驅動程序和硬件進行通信,要發(fā)出各種控制字、參量字到儀器中去,同時又要對硬件的工作狀態(tài)進行判 斷和處理,然后讀取采樣值。為了解決這個問題,本文直接創(chuàng)建一個子線程來單獨完成與驅動程序的通信任務,讓主界面專心于響應視窗界面的信息。 數(shù)據(jù)采集的編程過程 ( 1)初始化采集卡的驅動程序和硬件 這個過程包括兩個部分,一是確定硬件安裝位置及 I/O口和內存映射,由 文件來配置內存區(qū)域和 I/O 地址,二是用戶進 行的采集卡驅動初始化,選擇 (打開相應的 )采集卡,讀取配置文件等。 ( 2)設置相關參數(shù)準備進行數(shù)據(jù)采集 該采集卡的所有的參數(shù)都是通過軟件進行設置的,驅動程序中提供了一些數(shù)據(jù)結構, 14 使得參數(shù)設置比較容易進行,也可以不用這些數(shù)據(jù)結構。 ( 3)開始采集數(shù)據(jù) 調用 gage_start_capture()函數(shù)即開始采集數(shù)據(jù),如調用時傳給該函數(shù)的參數(shù)為