虛擬儀器技術(shù)及其在數(shù)據(jù)采集中的應(yīng)用
圖2 消息基接口的框圖
為了滿足幾種典型系統(tǒng)通道控制的要求,使通道的數(shù)量足夠多,通道的選取比較靈活,可以利用寄存器電路、可預(yù)置計(jì)數(shù)器電路以及一些其他邏輯電路的配合,將采樣通道設(shè)計(jì)成最多64路、最少2路可以任意選擇,而且可以從任意一路開始采樣,也可以到任意一路結(jié)束采樣,只要截止通道號大于起始通道號就可以了。整個(gè)控制在虛擬儀器軟面板上進(jìn)行操作,通過消息基接口將命令寫在這部分的控制寄存器中,從而設(shè)置計(jì)數(shù)器的初值以及采樣的通道總數(shù)。
(4) 定時(shí)采樣控制
由于不同的自動測試系統(tǒng)對采樣時(shí)間間隔的要求不同,以及同一系統(tǒng)在不同的試驗(yàn)中 需要的采樣時(shí)間間隔也不盡相同,故可以采用程控的方式將采樣時(shí)間間隔設(shè)置在2 μs~13. 0 ms之間任意選擇,可以增加或減少的最小單位是2 μs。所有這些選擇設(shè)置可以在虛擬儀器軟面板上進(jìn)行。
(5) 采樣點(diǎn)數(shù)控制
根據(jù)不同測試系統(tǒng)的需求,將采樣點(diǎn)數(shù)設(shè)計(jì)成可在一個(gè)比較大的范圍中任意選擇,該選擇同樣是在軟面板上進(jìn)行。
(6) 采樣方式控制
總結(jié)各種自動測試系統(tǒng)的采樣方式不外乎軟件觸發(fā)采樣和硬件 觸發(fā)采樣。在硬件觸發(fā)采樣中又包括同步整周期采樣和非同步整周期采樣,這2種采樣又可 以是定時(shí)進(jìn)行的或等轉(zhuǎn)速差進(jìn)行的。所有這些采樣方式,對于數(shù)據(jù)采集器來說都可以在軟面 板上進(jìn)行選擇。
2.2 軟件設(shè)計(jì)
軟件是虛擬儀器的關(guān)鍵,為使VI系統(tǒng)結(jié)構(gòu)清晰簡潔,一般可采用組件化設(shè)計(jì)思想,將各部分彼此獨(dú)立的軟件單元分別制成標(biāo)準(zhǔn)的組件,然后按照系統(tǒng)的總體要求組成完整的應(yīng)用系統(tǒng),一個(gè)標(biāo)準(zhǔn)的組件化的虛擬儀器軟件系統(tǒng),如圖3所示。
圖3 組件化的虛擬儀器軟件系統(tǒng)
基于虛擬儀器的數(shù)據(jù)采集器的軟件包括系統(tǒng)管理軟件、應(yīng)用程序、儀器驅(qū)動軟件和I/O接 口 軟件。以往這4部分需要用戶自己組織或開發(fā),往往很困難,但現(xiàn)在NI公司提供了所有這 四部分軟件,使應(yīng)用開發(fā)比以往容易得多。
下面簡單介紹以NI公司的Lab Windows/CVI為開發(fā)環(huán)境,來進(jìn)行VXI虛擬儀器的驅(qū)動程序開發(fā)的方法。
第一步:生成儀器模塊的用戶接口資源文件(UIR)。用戶接口資源、文件是儀器模塊 開 發(fā)者利用Lab Windows/CVI的用戶界面編輯器為儀器模塊設(shè)計(jì)的一個(gè)圖形用戶界面(GUI)。 一個(gè)Lab Windows/CVI的GUI由面板、命令按鈕、圖標(biāo)、下拉菜單、曲線、旋鈕、指示表以及 許多其他控制項(xiàng)和說明項(xiàng)構(gòu)成。
第二步:Lab Windows/CVI事件驅(qū)動編程。應(yīng)用程序開發(fā)環(huán)境Lab Windows/CVI中設(shè)計(jì)一個(gè) 用戶接口,實(shí)際上是在用戶計(jì)算機(jī)屏幕上定義一個(gè)面板,他由各種控制項(xiàng)(如命令按鈕、菜 單、曲線等)構(gòu)成。用戶選中這些控制項(xiàng)就可以產(chǎn)生一系列用戶接口事件(events)。例如 ,當(dāng)用戶單擊一個(gè)命令按鈕,這個(gè)按鈕產(chǎn)生一個(gè)用戶接口事件,并傳遞給開發(fā)者編寫的C語 言驅(qū)動程序。這是運(yùn)用了Windows編程的事件驅(qū)動機(jī)制。Lab Windows/CVI中使用不同類型的 控制項(xiàng),在界面編輯器中將顯示不同類型的信息,并產(chǎn)生不同操作的接口事件。在Lab Wind ows/CVI的開發(fā)平臺中,對事件驅(qū)動進(jìn)行C程序編程時(shí)可采用2種基本的方法:回調(diào)函數(shù)法和 事件循環(huán)處理法。
回調(diào)函數(shù)法是開發(fā)者為每一個(gè)用戶界面的控制項(xiàng)寫一個(gè)獨(dú)立的用戶界面的控制函數(shù) ,當(dāng)選中某個(gè)控制項(xiàng),就調(diào)用相應(yīng)的函數(shù)進(jìn)行事件處理。在循環(huán)處理法中,只處理GUI控制 項(xiàng)所產(chǎn)生的COMMIT事件。通過Get User Event函數(shù)過濾,將所有的COMMIT事件區(qū)分開,識別 出是由哪個(gè)控制項(xiàng)所產(chǎn)生的事件,并執(zhí)行相應(yīng)的處理。
第三步:應(yīng)用函數(shù)/VI集與應(yīng)用程序軟件包編寫。應(yīng)用函數(shù)/VI集需針對具體儀器模塊 功能進(jìn)行編程,應(yīng)用程序軟件包只是一些功能強(qiáng)大、需要完善的數(shù)據(jù)處理能力的模塊才需要 提供,如波形分析儀模塊、DSP模塊等。
圖4是基于虛擬儀器的系統(tǒng)測試流程。
圖4 虛擬儀器的系統(tǒng)測試流程圖
本文探討了虛擬儀器的基本組成,以及實(shí)際的虛擬儀器軟硬件設(shè)計(jì)的一般方法,這些方法經(jīng)過實(shí)際設(shè)計(jì)工作運(yùn)用證明是可靠的,可供系統(tǒng)工程技術(shù)人員在組建具體的基于VXI總線的虛擬儀器數(shù)據(jù)采集、測試時(shí)參考使用。
參考文獻(xiàn)
[1] 趙勇.虛擬儀器軟件平臺和發(fā)展趨勢[J].國外電子測量技術(shù),2002,(1)
[2] 陳光禹.VXI總線測試平臺[M].北京:電子科技大學(xué)出版社,1996
[3] 孫昕,張忠亭,薛長斌.集成VXI總線自動測試系統(tǒng)的方法[J].測控技術(shù),1996,15(4)
[4] 張毅剛,彭喜元,姜寧達(dá),等.自動測試系統(tǒng)[M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2001
[5] 汪紅.基于組件的虛擬儀器軟件系統(tǒng)[J].微型計(jì)算機(jī)信息,2001,( 1):76-77
評論