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