1. 引言
隨著計算機軟硬件技術和信號處理技術的迅速發(fā)展,不僅使得已經(jīng)提出多年的虛擬儀器成為現(xiàn)實,,并且逐步得到日益廣泛的應用和廣大科學工作者以及工程人員的青睞,。總的來說,,虛擬儀器是計算機軟硬件技術的產(chǎn)物,。與傳統(tǒng)儀器相比,它改變了以往的按鈕,、按鍵和旋鈕等的操作方式和簡單的顯示界面,,虛擬儀器借助于 PC計算機WINDOWS操作系統(tǒng)強大的圖形功能,使人機交互的操作更加友好和便捷;對于數(shù)據(jù)處理,,應用計算機軟件的強大功能可以靈活地選擇所需要的算法處理(數(shù)字濾波,、統(tǒng)計分析和數(shù)值計算),而不像傳統(tǒng)儀器那樣,,其數(shù)據(jù)處理功能固定,。
目前,國內(nèi)外許多公司(比如美國的NI公司)都有相當優(yōu)良的虛擬儀器產(chǎn)品,,然而其價格之高,,讓我們這些高校科研室的工作者們“敬而遠之”,。然而,,隨著電子元器件產(chǎn)品的不斷高密度集成化以及計算機軟件工具開發(fā)的日益多樣性和開放性,這些科技技術發(fā)展為我們自研自制虛擬儀器提供了良好的開發(fā)手段和方法,。本文詳細介紹了自行設計適合自身需要的虛擬儀器的全過程,。實現(xiàn)了自制虛擬儀器的可行性、經(jīng)濟性,、快速性和便攜性,。
2. 整體設計
虛擬儀器是以計算機硬件為平臺,以傳感器、模塊化硬件接口卡以及測量軟件構成的虛實相結合的測量系統(tǒng),。虛擬儀器的數(shù)據(jù)和控制信號必須通過計算機總線來獲取和傳輸?,F(xiàn)有的虛擬儀器大多建立在PC、PCI,、ISA等并行通用總線或IEEE488,、VXI、PXI等儀器專用總線的基礎上,。在仔細研究了虛擬儀器的設計制作后,,不難發(fā)現(xiàn)虛擬儀器采用了現(xiàn)代計算機的外圍接口和數(shù)據(jù)處理軟件外,其數(shù)據(jù)采集部分硬件設計和傳統(tǒng)的儀器制作過程是相同的,??偟膩碚f,虛擬儀器的設計分硬件部分和軟件部分兩大塊設計,。
無論是傳統(tǒng)的儀器還是虛擬儀器都少不了信號采集部分,,傳統(tǒng)的儀器把信號采集后加以信號處理并直接顯示出來,沒有和計算機交互的過程,。虛擬儀器是將信號采集后的結果利用計算機接口技術送往計算機進行后期的處理和顯示,。所以我們的虛擬儀器的硬件設計包括數(shù)據(jù)采集板卡和板卡接口的設計。如果板卡接口采用并行總線(PCI,、ISA等),,那么板卡裝卸麻煩,易受到機箱內(nèi)環(huán)境的干擾,,而且受計算機插槽數(shù)量,、電源功率以及地址、中斷資源的限制;如果使用專用的儀器總線,,其成本和時間上受限制,。在此我們采用USB總線作為硬件板卡接口,USB總線解決了一般通用總線的缺點,,具有速度快,、連線少、即插即用,、自帶電源以及支持熱插拔等特性,,并且其開發(fā)時間較短,能夠?qū)崿F(xiàn)便攜式的要求,。因而我們擬設計的虛擬儀器的硬件板卡是帶有USB接口的數(shù)據(jù)采集卡,。
虛擬儀器軟件部分的設計包括硬件板卡底層固件、板卡驅(qū)動程序,、上層信號處理程序以及顯示操作面板設計,。其中,,驅(qū)動程序設計采用DriverStudio驅(qū)動程序開發(fā)工具,采用美國NI公司的WINDOWS/CVI進行信號處理顯示和用戶操作面板的設計,。
A) 硬件的設計
虛擬儀器的好壞關鍵是硬件部分的設計,,而硬件的關鍵是數(shù)據(jù)采集卡的設計。硬件部分主要是數(shù)據(jù)采集卡及其接口電路設計硬件部分完成信號的接受及模擬信號的預處理和轉(zhuǎn)換,,經(jīng)模/數(shù)轉(zhuǎn)換的數(shù)據(jù)送至計算機進行處理及結果顯示等硬件功能,。數(shù)據(jù)采集卡和PC機是虛擬儀器的基本硬件,是應用軟件的物理環(huán)境,。數(shù)據(jù)采集卡是虛擬儀器的重要部件和唯一需要開發(fā)的硬件電路,,其元件特性、電路結構是決定虛擬儀器性能指標的主要因素,。根據(jù)需設計的虛擬儀器的用途和性能要求,,擬設計的數(shù)據(jù)采集板卡性能指標如下:①最大數(shù)據(jù)采集率為1MSPS;②信號輸入范圍為+40伏~-40伏,,。我們選用了美信MAXIM公司的數(shù)模轉(zhuǎn)換器 MAXIM114,,它的最大信號采集數(shù)率為1MSPS。對于USB接口芯片,,我們采用Philips公司的PDIUSBD12芯片,PDIUSBD12芯片是高性能USB接口芯片,,集成了SIE,、FIFO存儲器、收發(fā)器以及電壓調(diào)整器,,它符合USB1.1版本規(guī)范,,在批量模式和同步模式下均可實現(xiàn) 1MB/S的數(shù)據(jù)傳輸速率,能夠滿足擬設計的虛擬儀器的要求,。整個板卡主要的電路原理設計如圖一所示,。

圖 一
數(shù)據(jù)采集卡的工作原理:
首先,PC機上發(fā)出啟動數(shù)據(jù)采集的請求,,MAXIM114開始進行信號采樣以及模數(shù)轉(zhuǎn)換,,模數(shù)轉(zhuǎn)換后的結果存儲到雙端口存儲器IDT7024 中,IDT7024的存儲深度為2K,,單片機SST89E564通過輪詢計數(shù)器54HC4040的BA10位,,一旦發(fā)現(xiàn)此位變?yōu)楦唠娢唬銖碾p端口數(shù)據(jù)存儲器中讀出數(shù)據(jù),,并把數(shù)據(jù)傳給USB接口送往PC機,。其中,當雙端口存儲器IDT7024存滿2K個數(shù)據(jù)時便給計數(shù)器54HC4040發(fā)出清零信號,,從此雙端口存儲器IDT7024進行下一輪的2K數(shù)據(jù)存儲的過程,。USB接口中的數(shù)據(jù)傳輸方式有控制傳輸,、中斷傳輸、批量傳輸和同步傳輸,。根據(jù)USB接口芯片 PDIUSBD12的特點,,在此,USB數(shù)據(jù)傳輸采用非同步的批量傳輸方式,,單片機SST89E564一次只能發(fā)送64字節(jié)的數(shù)據(jù)給USB接口芯片 PDIUSBD12,。
B) 軟件設計
軟件部分的設計分為:數(shù)據(jù)采集板卡底層固件開發(fā)、板卡的驅(qū)動程序的開發(fā)和上層應用程序的開發(fā),。
?。?)對于帶有USB接口的數(shù)據(jù)采集板卡的固件開發(fā),主要有主循環(huán)程序(發(fā)送USB請求,、處理USB總線事件和自定義功能處理),、硬件提取層程序(對單片機的I/O口、數(shù)據(jù)總線等硬件接口進行操作),、PDIUSBD12命令接口程序(對PDIUSBD12器件進行操作的模塊子程序集),、中斷服務程序(當PDIUSBD12向單片機發(fā)出中斷請求時,讀取PDIUSBD12的中斷傳輸來的數(shù)據(jù),,并設定事件標志和Setup包數(shù)據(jù)緩沖區(qū)傳輸給主循環(huán)程序)和標準請求處理程序(對USB的標準設備請求進行處理),。全部的程序都是用C51編寫的,在這不列出具體的程序,。
?。?)在編好了單片機中的固件程序以后,進行USB板卡的驅(qū)動程序編寫,。開發(fā)驅(qū)動程序的工具有windriver,、微軟提供的DDK和 Compuware的DriverStudio工具包,我們使用DriverStudio驅(qū)動程序開發(fā)工具,,對于熟悉面向?qū)ο缶幊痰能浖_發(fā)員,,DriverStudio是一個良好的驅(qū)動開發(fā)工具,并且開發(fā)時間比較短,。DriverStudio工具包中的DriverWorks提供了三個類:KDriver,、KPnpDevice和KPnpLowerDevice,這三個類用于實現(xiàn)WDM驅(qū)動程序的框架結構,。
在用到以上類外,,開發(fā)USB驅(qū)動程序還用到了DriverWorks提供的三個用于實現(xiàn)USB設備操作的類:KUsbLowerDevice、 KUsbInterface和KUsbPipe類,。其中,,KPnpLowerDevice實例代表端點0,允許USB驅(qū)動程序通過默認控制管道控制USB 設備,如配置USB設備,,傳輸各種控制和狀態(tài)請求;KusbInterface類的作用更多是結構上的而非功能上的,,其成員函數(shù)幾乎不與實際物理設備交互作用,,驅(qū)動程序用這個類獲取接口和管道信息;KusbPipe類對應與管道,管道是主機和一個端點的信息連接,,這個類用于初始化管道信息和管道操作控制,。驅(qū)動程序代碼在此略。
?。?)虛擬儀器軟面板的開發(fā)在LABWINDOWS提供的CVI環(huán)境下完成的,。這種圖形開發(fā)環(huán)境比其它高級語言(C和VC)開發(fā)的圖形界面不僅容易而且效果更好。并且這個工具提供了許多信號處理算法的功能模塊,。用戶可以在應用控制面板上自由組合所需要的信號處理功能,。能夠?qū)崿F(xiàn)數(shù)據(jù)處理和信號較正確的實時顯示的效果。如果有C或者VC編程基礎,,可以在較短時間編寫出比較完美的所要的應用程序,。在這不列寫出具體的程序。
3. 總論
自制便攜式虛擬儀器設計已經(jīng)完成,,基本上能滿足我們所需的工程項目的測試要求,,而且運行良好。證實了一種快速的,、經(jīng)濟的和有效的虛擬儀器設計方法,。但是在虛擬儀器精度和實時顯示功能方面還是有待提高,這是在和大公司的虛擬儀器相比下的不足之處,。這些值得我們繼續(xù)深入鉆研的地方,。
參考文獻:
[1] 沈蘭蓀 高速數(shù)據(jù)采集系統(tǒng)的原理與應用 人民郵電出版社,1995
[2] 邱寄帆 虛擬數(shù)字存儲示波器高速數(shù)據(jù)采集卡的設計與實現(xiàn) 電測與儀表,,2001年第6期
[3] 張風均等 LabWindows/CVI 開發(fā)入門和進階 .北京:北京航空航天大學出版社,2001
[4] Walter Oney Programming the Windows Driver Model MicroSoft Press ,,1999