基于LabVIEW的信號輸出與數(shù)據(jù)采集系統(tǒng)
作者:高聰杰 李松巖 徐赫
1 引言
近年來,在國防、汽車、儀表等領(lǐng)域,嵌入式計算機系統(tǒng)的應(yīng)用越來越廣泛。由于目前硬件技術(shù)的迅猛發(fā)展以及容錯技術(shù)的廣泛應(yīng)用,因硬件故障而導致的軟件失效越來越少,系統(tǒng)故障的主要原因已經(jīng)從硬件逐步轉(zhuǎn)向軟件。因此如何測試嵌入式計算機系統(tǒng)中的軟件性能就成為人們關(guān)注的焦點,而這其中非常關(guān)鍵的就是如何在仿真環(huán)境下由仿真測試平臺輸出激勵信號驅(qū)動嵌入式計算機系統(tǒng)運行并同時采集它的輸出信號。本文正是基于此設(shè)計了一套基于LabVIEW的信號輸出與數(shù)據(jù)采集系統(tǒng)。
2 LabVIEW簡介
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是目前最為成功、應(yīng)用最為廣泛的虛擬儀器軟件開發(fā)環(huán)境,是由美國國家儀器公司(National InstrumentsTM,簡稱NI)推出的一種基于圖形程序的虛擬儀器儀表開發(fā)平臺。它不僅提供了與遵從GPIB,VXI,RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能,還內(nèi)置了支持TCP/IP,ActiveX等軟件標準的庫函數(shù)。
與傳統(tǒng)編程采取的文本語言相比,LabVIEW使用圖形語言 (各種圖標、圖形符號、連線等)編程,編程簡單方便,界面形象直觀,都是人們熟悉的開關(guān)、旋鈕、波形圖等,是一種直覺式圖形程序語言。LabVIEW編程時,基本不需要編寫程序代碼,而是“繪制”程序流程圖,這樣就可以使沒有豐富編程經(jīng)驗的工程師從繁重的程序文字編碼中解脫出來,把更多的精力放在試驗和測試上。LabVIEW程序運行的方式不像傳統(tǒng)編程語言那樣一條一條語句地往下執(zhí)行,而是以數(shù)據(jù)流方式執(zhí)行程序。也就是說,一個程序節(jié)點要在所有數(shù)據(jù)流都到達時,才開始運行,處理后的數(shù)據(jù)流同時向后面的各個節(jié)點流動,因此可以設(shè)計出同時執(zhí)行多個程序的流程圖。
3 信號輸出與數(shù)據(jù)采集系統(tǒng)的設(shè)計
基于LabVIEW的信號輸出與數(shù)據(jù)采集系統(tǒng)由PC機(PC機沒有特殊的要求,常用的臺式機都可以滿足要求)、數(shù)據(jù)采集卡和信號輸出與數(shù)據(jù)采集程序構(gòu)成。
3.1 數(shù)據(jù)采集卡簡介
系統(tǒng)采用NI公司的PCI-MIO-16E-4型數(shù)據(jù)采集卡。它是NI公司的NI 6040E系列數(shù)據(jù)采集卡之一,是一種性能優(yōu)良、適合PC及兼容機的數(shù)據(jù)采集卡,能夠完成模擬信號輸入/輸出和數(shù)字信號輸入/輸出等功能。它有16個模擬輸入通道(對差分輸入是8對模擬輸入通道)、2個模擬輸出通道、8個數(shù)字量I/O、2個24位的計數(shù)器(用于計時/計數(shù)功能)。
在使用采集卡之前,首先要進行采集卡的安裝,將采集卡插入PC機的PCI插槽。由于是NI公司的數(shù)據(jù)采集卡,因此不需要再編寫采集卡的驅(qū)動程序,只需重新啟動計算機,放入采集卡的驅(qū)動光盤,按照提示就可以自動完成安裝。安裝完成后對設(shè)備號、模擬輸入極性、模擬輸入模式、模擬輸出極性等參數(shù)進行設(shè)置。另外,選用CB-68LP連接塊和R6868帶狀電纜等附件來連接數(shù)據(jù)采集卡和嵌入式計算機系統(tǒng)。
3.2 硬件連接
系統(tǒng)通過數(shù)據(jù)采集卡把嵌入式計算機系統(tǒng)和PC機連接起來,由PC機輸出激勵信號驅(qū)動嵌入式計算機系統(tǒng)運行,同時由PC機采集嵌入式計算機系統(tǒng)運行的輸出信號。硬件連接框圖如圖1所示。
圖1信號輸出與數(shù)據(jù)采集系統(tǒng)硬件連接框圖
3.3 信號輸出與數(shù)據(jù)采集系統(tǒng)的LabVIEW程序
系統(tǒng)能夠?qū)崿F(xiàn)同時輸出和采集模擬信號,它利用傳遞error信息的數(shù)據(jù)線安排并行的執(zhí)行順序。其工作流程如下:首先通過AO Config VI設(shè)置好輸出參數(shù),通過AI Config VI設(shè)置好輸入?yún)?shù);然后將準備好的波形數(shù)據(jù)通過AO Write VI寫入輸出緩沖區(qū);接著由AO Start VI啟動模擬輸出,AI Start VI啟動模擬輸入(要將number of scans to acquire的參數(shù)設(shè)為0,這樣才能連續(xù)采集);在While循環(huán)中,AI Read VI連續(xù)從輸入緩沖區(qū)讀取數(shù)據(jù),輸出緩沖區(qū)中的數(shù)據(jù)經(jīng)AO Write VI被送到DAC輸入端,經(jīng)轉(zhuǎn)換后輸出,直到用戶按下了STOP按鈕或程序出錯才結(jié)束。最后由AO Clear VI清除任務(wù)所占用的全部資源。在本程序中,輸出和采集并不是同步的,首先AI Start和AO Start沒有受同一時鐘源的控制,采集卡的模擬輸入和模擬輸出各有獨立的時鐘;其次它們并不是被同時啟動的,AI Start要稍晚于AO Start,不過兩者的啟動時間相差非常?。〞r間差在幾微秒內(nèi)),在要求不是特別嚴格的場合可以忽略不計。
參數(shù)設(shè)置:輸出通道指定從采集卡的那個模擬輸出通道輸出信號,輸入通道指定由采集卡的那個模擬輸入通道采集信號;輸出通道緩沖區(qū)的大小一般為更新速率的兩倍;輸入通道緩沖區(qū)的大小一般為掃描速率的兩倍,每次讀取的樣本數(shù)設(shè)置為一個小于輸入通道緩沖區(qū)大小的值,一般為輸入通道緩沖區(qū)大小的一半。圖形化程序如圖2所示(本程序輸出的是一個正弦波,可根據(jù)不同的場合替換成所需的信號)。
圖2信號輸出與數(shù)據(jù)采集系統(tǒng)的圖形化程序
4 結(jié)束語
基于LabVIEW的信號輸出與數(shù)據(jù)采集系統(tǒng)方法簡單、可靠適用,能夠?qū)崿F(xiàn)在仿真環(huán)境下驅(qū)動嵌入式計算機系統(tǒng)運行并采集它的輸出信號,為嵌入式軟件的測試奠定了基礎(chǔ)。同時利用虛擬儀器實現(xiàn)了軟件代替硬件,避免了大量專用測試設(shè)備的使用,節(jié)省了成本,提高了效率,達到了良好的效果。
本文作者創(chuàng)新點:用LabVIEW實現(xiàn)了信號輸出與數(shù)據(jù)采集的同時進行,可以在采集數(shù)據(jù)的同時由數(shù)據(jù)采集卡輸出信號,提高了效率。