本文介紹了基于LabVIEW的外置串口采集控制卡的設(shè)計(jì)思想,詳細(xì)的分析了采集控制卡的研制過(guò)程,并給出了LabVIEW的具體程序設(shè)計(jì)。
引言
目前虛擬儀器開發(fā)廣泛應(yīng)用的是美國(guó)NI公司的LabVIEW開發(fā)平臺(tái)。LabVIEW軟件隱含了對(duì)設(shè)計(jì)虛擬儀器時(shí)所面臨的多種困難的考慮、簡(jiǎn)化了設(shè)計(jì)過(guò)程,對(duì)于開發(fā)虛擬儀器相當(dāng)方便,但因其硬件卡昂貴,影響了虛擬儀器在國(guó)內(nèi)的推廣使用。因而,本文提出了采用LabVIEW虛擬儀器開發(fā)平臺(tái),自行設(shè)計(jì)硬件卡。
設(shè)計(jì)中利用單片機(jī)作為下位機(jī),采用標(biāo)準(zhǔn)RS-232串口與PC機(jī)通訊來(lái)構(gòu)建采集控制系統(tǒng)。上位機(jī)通過(guò)發(fā)送控制采集命令實(shí)行采集控制卡的通道選擇、量程選擇、數(shù)據(jù)采集等,然后將采集到的數(shù)據(jù)通過(guò)串口傳輸給PC機(jī)實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、分析。此外基于串口開發(fā)的采集控制卡還因具有熱插拔的優(yōu)點(diǎn)而具有很強(qiáng)的實(shí)用性。
外置串口采集控制系統(tǒng)構(gòu)成
外置串口采集控制系統(tǒng)主要由下位機(jī)硬/軟件以及上位機(jī)控制軟件兩部分構(gòu)成。下位機(jī)通過(guò)接收PC機(jī)命令來(lái)執(zhí)行相應(yīng)的操作,例如數(shù)據(jù)采集通道的選擇、輸入電壓范圍的選擇、或是其他量的選擇(如溫度、濕度等)。上位機(jī)軟件主要是發(fā)送控制命令,接收、顯示、存儲(chǔ)以及處理數(shù)據(jù)。其中,數(shù)據(jù)的傳輸采用了數(shù)據(jù)幀格式進(jìn)行,通過(guò)識(shí)別幀頭標(biāo)志位等規(guī)則來(lái)保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,本設(shè)計(jì)中是通過(guò)結(jié)合MAXIM公司所提供的A/D轉(zhuǎn)換器MAX197來(lái)實(shí)現(xiàn)的。
采集控制卡硬件設(shè)計(jì)
本設(shè)計(jì)硬件電路以單片機(jī)89C51為控制核心,通過(guò)RS-232與PC機(jī)通訊,實(shí)現(xiàn)整個(gè)數(shù)據(jù)采集系統(tǒng)的數(shù)據(jù)采集控制以及數(shù)據(jù)處理和存儲(chǔ)。單片機(jī)通過(guò)接收PC機(jī)指令來(lái)控制MAX197,其中A/D采集以中斷方式進(jìn)行??刂瓶ㄓ布娐方Y(jié)構(gòu)如圖1所示。
圖1 采集控制卡硬件結(jié)構(gòu)簡(jiǎn)圖
采集控制卡軟件設(shè)計(jì)
單片機(jī)通過(guò)從串口接收通道、量程選擇命令來(lái)執(zhí)行相應(yīng)通道、量程的數(shù)據(jù)采集,然后將數(shù)據(jù)采集的結(jié)果以數(shù)據(jù)幀的格式發(fā)送給PC機(jī)。兩個(gè)字節(jié)的幀頭標(biāo)志、以及兩個(gè)字節(jié)的A/D轉(zhuǎn)換結(jié)果合稱為一幀數(shù)據(jù)。單片機(jī)軟件設(shè)計(jì)流程如圖2所示。
圖2 單片機(jī)程序流程圖
上位機(jī)控制處理程序設(shè)計(jì)
上位機(jī)控制處理程序在LabVIEW平臺(tái)上進(jìn)行開發(fā),LabVIEW程序由兩部分組成:前面板和程序框圖。
LabVIEW前面板的功能等效于傳統(tǒng)儀器前面板,它不僅可以模擬眾多的傳統(tǒng)儀器,而且可以模擬因?yàn)榻Y(jié)構(gòu)復(fù)雜而不可實(shí)現(xiàn)的傳統(tǒng)概念儀器,因此,設(shè)計(jì)具有很大的靈活性。本次設(shè)計(jì)的前面板包括通訊端口、方式等的設(shè)置,對(duì)采集控制卡的配置,當(dāng)前采集轉(zhuǎn)換結(jié)果顯示,采集轉(zhuǎn)換結(jié)果實(shí)時(shí)動(dòng)態(tài)監(jiān)控,以及將采集轉(zhuǎn)換結(jié)果寫入Excel文件的設(shè)置等內(nèi)容。
前面板有如儀器的外形設(shè)計(jì),而程序框圖就是儀器的內(nèi)部電路,是設(shè)計(jì)的核心部分。LabVIEW方便之處就是能很方便的將流程圖轉(zhuǎn)換為圖形編程語(yǔ)言。流程圖中的循環(huán)可以直接調(diào)用LabVIEW中的While循環(huán),順序執(zhí)行可以調(diào)用LabVIEW中Sequence Structure(順序結(jié)構(gòu)),條件執(zhí)行則可以調(diào)用LabVIEW中Case Structure(選擇結(jié)構(gòu))。程序流程圖設(shè)計(jì)如圖3所示。LabVIEW所采用的是并行執(zhí)行結(jié)構(gòu),主流程圖中橫虛線上方的左右兩邊為同時(shí)執(zhí)行的兩個(gè)獨(dú)立的單元。
圖3 程序流程圖
本次設(shè)計(jì)的圖形編程可以分為串口通訊、數(shù)據(jù)接收以及文件讀寫三個(gè)部分。
在LabVIEW中,實(shí)現(xiàn)串口通訊方式有直接調(diào)用NI公司提供的Serial系列子VI; VISA串行系列(位于Functions->All Functions->Instrument I/O->serial中);采用Active X控件來(lái)控制訪問(wèn)串行口(先向LabVIEW中添加一個(gè)Active X Container控件,然后向其中添加MSComm控件)三種方式。本次設(shè)計(jì)采用了第二種方式來(lái)訪問(wèn)和控制串行口,即通過(guò)調(diào)用功能模板的VISA中的Serial系列(包含VISA Configure Serial、VISA Write、VISA Read、VISA Close)來(lái)實(shí)現(xiàn)對(duì)串行口的訪問(wèn)和控制。采用該方式設(shè)計(jì)的優(yōu)點(diǎn)是:每個(gè)函數(shù)開始接收一個(gè)端口號(hào),結(jié)束后輸出一個(gè)其復(fù)制的端口號(hào),這樣在設(shè)計(jì)中就不用擔(dān)心對(duì)于一個(gè)端口有遺忘或是重復(fù)的操作,從而使程序設(shè)計(jì)更加清晰。
LabVIEW中對(duì)于串行口的讀寫都是以字符為單位傳輸其ASCII碼來(lái)實(shí)現(xiàn)的,因而需將需要傳輸?shù)臄?shù)據(jù)字符轉(zhuǎn)換成對(duì)應(yīng)的ASCII碼。本設(shè)計(jì)通過(guò)調(diào)用CIN (代碼接口接點(diǎn))將C語(yǔ)言程序嵌入到整個(gè)設(shè)計(jì)中,然后采用LabVIEW與C語(yǔ)言混合編程來(lái)實(shí)現(xiàn)所需的功能(CIN在LabVIEW中的調(diào)用路徑為Functions→All Functions→Advanced→Code InteRFace Node)。
本設(shè)計(jì)中首先將采集控制系統(tǒng)的通道號(hào)和量程發(fā)送給下位機(jī),然后程序進(jìn)入到相應(yīng)的數(shù)據(jù)接收處理程序。在數(shù)據(jù)接收過(guò)程中采用了數(shù)據(jù)幀方式:下位機(jī)將對(duì)應(yīng)通道號(hào)、相應(yīng)量程的采集結(jié)果以一幀數(shù)據(jù)為單位循環(huán)發(fā)送給PC機(jī),PC機(jī)通過(guò)判斷幀頭來(lái)識(shí)別數(shù)據(jù),從而提高數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。幀數(shù)據(jù)格式如下:
前面兩個(gè)字節(jié)數(shù)據(jù)0xAA和0xAB為幀頭標(biāo)志,DATA1和DATA0為采集結(jié)果,但并非為最終的結(jié)果,它們?nèi)孕枰鄳?yīng)的處理(該處理在服務(wù)子程序中進(jìn)行)。
采集到的數(shù)據(jù)要轉(zhuǎn)換為實(shí)際電壓值后,再進(jìn)行顯示、存儲(chǔ)。本設(shè)計(jì)可以很方便的把每個(gè)實(shí)際電壓值存儲(chǔ)到Excel文件中,以便于查看和處理。而且在存儲(chǔ)的過(guò)程中可以將通道號(hào)、量程、采集數(shù)據(jù)序號(hào)信息都寫入文件,這樣,就很容易生成報(bào)表輸出。
根據(jù)流程圖設(shè)計(jì)的采集控制系統(tǒng)程序框圖如圖4所示。
圖4 采集控制系統(tǒng)程序框圖
系統(tǒng)測(cè)試
將采集控制系統(tǒng)硬件、軟件按要求設(shè)計(jì)好后,運(yùn)行控制軟件,先對(duì)采集控制系統(tǒng)進(jìn)行相應(yīng)的配置,然后可以實(shí)時(shí)觀看某個(gè)通道的電壓值。調(diào)節(jié)輸入電壓,通過(guò)實(shí)時(shí)監(jiān)控界面可以觀看到輸入電壓的變化過(guò)程。程序運(yùn)行結(jié)束后,可以在程序的安裝目錄下找到一個(gè)由先前配置所命名的Excel文件,打開這個(gè)文件就可以看到采集到的所有數(shù)據(jù)(包括通道號(hào)、量程、采集數(shù)據(jù)及所采集數(shù)據(jù)序號(hào)信息)。通過(guò)測(cè)試表明,采集控制系統(tǒng)操作簡(jiǎn)單、方便,采集數(shù)據(jù)準(zhǔn)確、價(jià)格低廉,且有熱插拔優(yōu)點(diǎn)。
結(jié)語(yǔ)
因?yàn)镹I公司所提供的數(shù)據(jù)采集卡價(jià)格昂貴,對(duì)用戶來(lái)說(shuō),自主研制基于LabVIEW的采集控制卡在實(shí)際中有很大的意義,采用LabVIEW平臺(tái)來(lái)實(shí)現(xiàn),很大程度上簡(jiǎn)化了設(shè)計(jì),希望本文能給眾多設(shè)計(jì)者帶來(lái)新的設(shè)計(jì)概念。
轉(zhuǎn)載請(qǐng)注明出處。