虛擬數字示波器的設計與實現
摘 要: 結合一個虛擬數字示波器的設計開發,介紹了虛擬儀器的基本組成,并重點介紹了基于圖形化編程語言LabVIEW的虛擬儀器編程方法與實現技術。
本文引用地址:http://www.104case.com/article/255642.htm隨著計算機技術的發展,傳統儀器開始向計算機化的方向發展。虛擬儀器是90年代提出的新概念。虛擬儀器技術的提出與發展,標志著二十一世紀自動測試與電子測量儀器領域技術發展的一個重要方向。所謂虛擬儀器,就是在通用的計算機平臺上定義和設計儀器的測試功能,使用者操作這臺計算機,就象是在使用一臺專門設計的電子儀器。
傳統臺式儀器是由儀器廠家設計并定義好功能的一個封閉結構,它有固定的輸入/輸出接口和儀器操作面板,每種儀器實現一類特定的測量功能,并以確定的方式提供給用戶。從一般的儀器設計模型看,一種儀器無非是由數據采集、分析處理、人機交互和顯示等幾部分功能模塊組成的整體。因此,我們可以設想在必要的數據采集硬件和通用計算機支持下,通過軟件設計實現儀器的全部功能,這就是虛擬儀器設計的核心。與傳統儀器相比,虛擬儀器除了在性能、易用性、用戶可定制性等方面具有更多優點外,在工程應用和社會經濟效益方面也具有突出優勢。一方面,目前我國高檔臺式儀器如數字示波器、頻譜分析儀、邏輯分析儀等還主要依賴進口,這些儀器加工工藝復雜、對制造水平要求高,生產突破有困難,采用虛擬儀器技術可以通過只采購必要的通用數據采集硬件來設計自己的儀器系統;另一方面,用戶可以將一些先進的數字信號處理算法應用于虛擬儀器設計,提供傳統臺式儀器不具備的功能,而且完全可以通過軟件配置實現多功能集成的儀器設計。因此,可以說虛擬儀器代表了未來測量儀器設計發展的方向。
虛擬儀器技術目前在國外發展很快,以美國國家儀器公司(NI公司)為代表的一批廠商已經在市場上推出了基于虛擬儀器技術而設計的商品化儀器產品。數字示波器是在科學研究和工程設計中廣泛應用的一種通用儀器。下面結合一個虛擬數字示波器的設計開發具體介紹虛擬儀器的基本組成和基于圖形化編程語言LabVIEW的虛擬儀器編程方法與實現技術。
1 虛擬示波器的結構與組成
本虛擬數字示波器主要由一塊PCI總線的多功能數據采集卡和相應的軟件組成。將它們安裝在一臺運行Windows95/98/NT的PC機上(建議配置在PENTIUMⅡ/233以上),即構成一個功能強大的可存儲數字示波器。該數字示波器操作與顯示主面板如圖1所示。
1.1 數據采集卡
PCI總線傳輸速率高數據吞吐量大是今后數據采集板卡設計的主流。本設計采用的PCI-1200數據采集卡是一塊性價比較好的產品,支持DMA方式和雙緩沖區模式,保證了實時信號不間斷采集與存儲。它支持單極和雙極性模擬信號輸入,信號輸入范圍分別為-5~+5V和0~10V。提供16路單端/8路差動模擬輸入通道、2路獨立的DA輸出通道、24線的TTL型數字I/O、3個16位的定時計數器等多種功能。這些功能使得我們不僅可以用該卡設計虛擬示波器,也可以設計虛擬函數發生器或虛擬計數器,做到一卡多用。當然,限于經費條件,我們選擇的PCI-1200卡的采樣速率只能達到100kS/s,對實際示波器而言,這遠不能滿足信號帶寬的要求。目前市場上采樣速率達200MS/s的PCI數據采集卡已有成熟產品,技術上實現高帶寬的虛擬示波器不存在問題。實際測量時輸入信號通過BNC接頭從輸入端子進入數據采集卡進行采集。
1.2 儀器功能
本虛擬數字示波器設計參考了HP公司的雙通道臺式數字存儲示波器HP54603B的功能,并在儀器分析和處理功能上有所擴展。儀器主要功能包括:雙通道信號輸入、觸發控制、通道控制、時基控制、波形顯示、參數自動測量、頻譜分析、波形存儲和回放等。本虛擬數字示波器還提供網絡接口,允許通過TCP/IP協議實現網絡儀器共享或遠程控制。表1是本虛擬數字示波器與HP54603B的功能對照表。
由表1可以看出,除了由于經費原因使得所選數據采集卡采樣速率低于HP54603B外,本虛擬示波器在顯示、測量、分析、存儲和外部連接等方面的功能都不低于甚至高于HP54603B
2 軟件的設計與實現
2.1 軟件開發環境
虛擬數字示波器軟件設計采用了先進的圖形化編程語言工具LabVIEW 5.1 for Windows98/NT。LabVIEW編程的主要特點就是將虛擬儀器分解為若干基本的功能模塊(相當于硬件設計中的集成電路),模塊的引腳代表輸入/輸出接口。編程者可以通過交互式手段,采用圖形化框圖設計的方法,完成虛擬儀器的邏輯和測量分析功能設計。圖2是虛擬數字示波器頻譜分析模塊程序。
由圖2可以看出,LabVIEW程序設計過程與人們設計儀器的思維過程十分相近,程序框圖就實現了程序代碼功能,避免了一般程序設計從框圖構思到程序表示的繁瑣。LabVIEW編程的另一個優點是將軟件的界面設計與功能設計獨立開來,修改人機交互界面無需對整個程序進行調試,這對設計像儀器操作面板這樣復雜的人機界面而言是十分方便的。LabVIEW還為用戶提供了函數擴展功能,利用LabVIEW中的Code Interface Node(CIN),可以調用用C等傳統編程語言寫的程序代碼;利用LabVIEW中的Call Library Function可以調用標準動態鏈接庫(.DLL)。總之,LabVIEW 作為圖形化編程語言環境,為虛擬儀器開發提供了一種快捷、方便和功能強大的軟件工具。
2.2 主要功能模塊
概括地講,虛擬示波器主要由軟件控制完成信號的采集、處理和顯示。系統軟件總體上包括數據采集、波形顯示、參數測量、頻譜分析及波形存儲和回放等五大模塊,其功能結構框圖如圖3所示。
2.2.1 數據采集模塊
數據采集模塊主要完成數據采集的控制,包括觸發控制、通道選擇控制、時基控制等。其中:
·觸發控制包括觸發模式、觸發斜坡、觸發電平控制;
·通道選擇主要控制單通道或雙通道測量;
·時基控制主要控制采集卡掃描率、每一通道掃描次數(取樣數)。
2.2.2 波形顯示模塊
軟件提供了三種波形顯示模式:
·A B A&B模式:通過顯示通道選擇按鍵摚翑和摚聰,可以任意顯示某一通道或兩通道輸入信號的波形;
·X Y模式:當兩通道都處于選通狀態時,使用此模式來顯示李沙育(Lissajous)圖形、測量相位差或頻率;
·A+B A-B模式:當兩通道都處于選通狀態時,使用此模式來顯示兩通道信號代數相加、相減后的波形。
2.2.3 參數測量模塊
參數測量模塊主要模擬HP54603B的參數測量功能,完成包括Vrms等12個電壓參數和頻率、周期等7個時間參數的測量并顯示其測量結果。
2.2.4 頻譜分析模塊
頻譜分析模塊采用快速FFT算法,完成頻域信號分析。可實現的頻譜分析控制包括:
·Windows選擇,提供了9種頻譜分析窗口;
·Log/Linear選擇,提供了2種坐標顯示模式;
·Display Unit選擇,提供了8種單位。
2.2.5 數據存儲和回放模塊
按鍵撔磁虜控制是否進行數據存儲按鍵摱僚虜控制是否從數據文件中讀取數據。主面板提供了兩個文件名輸入框,前一個為信號波形數據文件名輸入框,后一個為采樣周期文件名輸入框,這兩個文件由寫盤功能和讀盤功能共用。從軟盤或硬盤上讀取的數據同實時采集的數據一樣,能夠進行自動參數測量以及顯示波形并保留在顯示窗口(顯示模式可以設置為三種模式中的任意一種),還可以根據需要設置進行頻譜分析。
2.3 主要控制結構
2.3.1 測量控制結構
通過邏輯按鍵“測量”控制是否進行測量;通過邏輯按鍵“通道”控制通道選擇。
2.3.2 自動調整掃描率控制結構
由邏輯按鍵組“自動”、“手動”來控制是自動調整掃描率還是手動調整掃描率。
2.3.3 正常顯示、記憶顯示控制結構
由雙功能邏輯驅動鍵“正常/記憶”控制,缺省為正常顯示。處于正常狀態時,最多只能顯示A、B兩通道輸入的2個信號的波形;處于記憶狀態時,最多可以記憶顯示A、B兩通道輸入的17個信號的波形(A通道可記憶顯示16組信號數據,B通道只能記憶顯示1組信號數據)。在實際應用中,記憶顯示功能主要用于測量信號的抖動情況或比較分析兩個以上的信號波形。
本文介紹的虛擬數字示波器不僅具有一般臺式數字存儲示波器的功能,而且充分發揮了微機強大的功能和軟件設計的靈活性,主要技術特點表現在:
(1)采用圖形化編程語言LabVIEW和面向對象編程技術,軟件開發效率高,可操作性和可維護性好;
(2)為數字存儲示波器增加了頻域分析功能;
(3)充分利用了計算機的存儲與外設連接的能力,測量結果和波形可直接打印輸出或通過網絡共享;
(4)硬件具有開放性,允許通過升級硬件來提高其性能;
(5)在相同硬件條件下,可以通過修改或增加軟件模塊,形成新的儀器功能。
虛擬儀器設計已經成為測試與儀器技術發展的一個重要方向。隨著高速A/D芯片和電路的進一步集成化,可以設想在不遠的將來,一臺安裝有虛擬儀器軟件的標準微機成為一個多功能的測量儀器站,從根本上改變目前專用儀器的研制和生產方式,具有廣闊的應用前景和巨大的潛在經濟效益。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
評論