夏妍 孫碩
摘要 本文設(shè)計(jì)多路數(shù)據(jù)采集系統(tǒng)時(shí),設(shè)計(jì)思想采用虛擬儀器,在LabVIEW軟件平臺(tái)基礎(chǔ)上,以單片機(jī)系統(tǒng)作為數(shù)據(jù)采集部分,分析了該系統(tǒng)的具體設(shè)計(jì)過程,旨在為實(shí)際設(shè)計(jì)工作提供參考。
【關(guān)鍵詞】單片機(jī) LabVIEW 多路數(shù)據(jù)采集系統(tǒng) 設(shè)計(jì)
虛擬儀器是一種軟硬件測(cè)試平臺(tái),以計(jì)算機(jī)為基礎(chǔ),已經(jīng)廣泛的應(yīng)用到工業(yè)控制領(lǐng)域。美國(guó)國(guó)家儀器公司基于虛擬儀器軟件開發(fā)平臺(tái),推出了LabVIEW,其主要面向的領(lǐng)域?yàn)橛?jì)算機(jī)測(cè)控領(lǐng)域,集中了圖形開發(fā)、調(diào)試及運(yùn)行功能。多路數(shù)據(jù)采集系統(tǒng)利用LabVIEW設(shè)計(jì)時(shí),多路信號(hào)的模擬采集通常利用NI公司的數(shù)據(jù)采集板卡,但數(shù)據(jù)采集板卡的價(jià)格比較高,導(dǎo)致開發(fā)成本大,而且開發(fā)周期也比較長(zhǎng)。為解決該問題,本文以單片機(jī)代替數(shù)據(jù)采集板卡,促進(jìn)開發(fā)成本降低的同時(shí),提升數(shù)據(jù)采集效率。
1 系統(tǒng)硬件設(shè)計(jì)
本文設(shè)計(jì)多路數(shù)據(jù)采集系統(tǒng)過程中,系統(tǒng)構(gòu)成包含兩部分,一部分為上位機(jī),采用LabVIEW;另一部分為下位機(jī),單片機(jī)即設(shè)置在此部分中,系統(tǒng)原理圖見圖1。
通常,上位機(jī)并不會(huì)較高的要求硬件,選擇普通PC即可,而下位機(jī)則對(duì)硬件要求較高,因此,本節(jié)主要介紹下位機(jī)硬件的設(shè)計(jì)方法。按照實(shí)際需求,下位機(jī)功能模塊主要包含三部分,分別為信息收集模塊、微型控制器、RS232串行通訊模塊。
1.1 信息收集模塊
該模塊由多部分構(gòu)成,如多路模擬信號(hào)傳輸器、數(shù)據(jù)預(yù)處理電路。設(shè)計(jì)信息收集模塊電路時(shí),一般采用兩種方式,一種為信息收集電路利用單獨(dú)電子元件構(gòu)建,另一種為通過系統(tǒng)內(nèi)部控制器所具備的A/D功能設(shè)計(jì)。嵌入式系統(tǒng)情況下,根據(jù)其硬件設(shè)計(jì)理論,本文在進(jìn)行信息收集模塊電路設(shè)計(jì)過程中,采用第二種方式,使用現(xiàn)購買的多路模擬信號(hào)傳感器。在信號(hào)預(yù)處理部分,計(jì)算放大器電流為其主要使用的,增強(qiáng)原本比較微弱的傳感器信號(hào),使A/D轉(zhuǎn)換輸入電壓需求得到滿足。
1.2 微型控制器
根據(jù)信息收集模塊的設(shè)計(jì)方案,結(jié)合系統(tǒng)對(duì)微型控制器能力的要求,下位機(jī)硬件控制中心選擇STC12C5A60S2單片機(jī),原因是此類型單片機(jī)以8051內(nèi)核為基礎(chǔ)建立,并具備機(jī)械周期/單時(shí)鐘功能,同時(shí),該單片機(jī)內(nèi)部還設(shè)置有FLASH、計(jì)數(shù)器、定時(shí)器、SRAM等,可將信息收集、控制期間的功能要求有效滿足,并與微型控制器的設(shè)計(jì)要求相符合。
1.3 RS232串行通訊模塊
上位機(jī)與下位機(jī)之間進(jìn)行信息通信時(shí),通過RS232串行通信模塊實(shí)現(xiàn)。在下位機(jī)的單片機(jī)中,無論是輸入訊號(hào),或是輸出信號(hào),電平均為TTL,邏輯1、邏輯0均分別約為3.8V、0.4V。以串行接口協(xié)議為依據(jù),RS232具有如下特征:采用負(fù)邏輯、高信號(hào)與低信號(hào)間的變化幅度應(yīng)非常大,基于此,設(shè)計(jì)邏輯1電壓范圍時(shí),選擇-15—-5V,而邏輯O的電壓范圍則選擇+5~_15V,一般來說,邏輯1設(shè)置為-10V、邏輯O設(shè)置為+10V[2]。由此一來,TTL電平需要進(jìn)行轉(zhuǎn)變,變?yōu)镽S232電平,本文采取的實(shí)現(xiàn)此種轉(zhuǎn)變的方法為添加MAX232E芯片。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 RS232通信協(xié)議約定
上位機(jī)要想可靠的、真實(shí)的與下位機(jī)通信,RS232通信協(xié)議必須要自制定。在RS232通信協(xié)議中,包含的約定內(nèi)容比較多,如波特率、停止位、數(shù)據(jù)格式定義、數(shù)據(jù)頭標(biāo)識(shí)符等。本文設(shè)計(jì)過程中,RS232通信協(xié)議包含幾下幾方面約定:
2.1.1 基本通信數(shù)據(jù)格式
波特率設(shè)置為115 200,數(shù)據(jù)位共8位,以1作為停止位,奇偶校驗(yàn)位設(shè)置為N。通信命令格式完整情況下,上位機(jī)將其發(fā)送給下位機(jī)時(shí),按照如下約定進(jìn)行:上位機(jī)把參數(shù)設(shè)置發(fā)送給下位機(jī),同時(shí),數(shù)據(jù)采集命令啟動(dòng),此命令共包含三方面的內(nèi)容:
(1)數(shù)據(jù)起始標(biāo)識(shí)符,為OX55+OXA5形式,
(2)下位機(jī)設(shè)定參數(shù)數(shù)據(jù)塊,字節(jié)共7個(gè),
(3)數(shù)據(jù)結(jié)束標(biāo)識(shí)符,為oxcc。
其中,確定第二方面內(nèi)容的大小時(shí),可以系統(tǒng)自定義的數(shù)據(jù)塊大小為依據(jù),本系統(tǒng)中,數(shù)據(jù)塊自定義為7塊,因此其字節(jié)也為7個(gè)。數(shù)據(jù)采集完成后,上位機(jī)再把停止數(shù)據(jù)采集命令發(fā)送給下位機(jī),數(shù)據(jù)采集工作完成。
2.1.2 采集數(shù)據(jù)格式
下位機(jī)數(shù)據(jù)采集工作完成后,要將其發(fā)送給上位機(jī),發(fā)送時(shí)應(yīng)按照采集數(shù)據(jù)高字節(jié)+低字節(jié)的格式進(jìn)行。下位機(jī)開展數(shù)據(jù)采集工作時(shí),設(shè)定20s為時(shí)間間隔,實(shí)際應(yīng)用中,可按照實(shí)際情況作出相應(yīng)的修改。
2.2 下位機(jī)單片機(jī)軟件設(shè)計(jì)
此部分軟件設(shè)計(jì)中,工作主要包含三方面:
(1)數(shù)據(jù)采集功能模塊設(shè)計(jì),A/D轉(zhuǎn)換功能為STC單片機(jī)的內(nèi)置功能,通過該項(xiàng)功能,數(shù)據(jù)采集功能模塊采集外部多路模擬量的數(shù)據(jù)。
(2) RS232數(shù)據(jù)通信功能模塊設(shè)計(jì),設(shè)計(jì)工作以RS232通信協(xié)議約定為依據(jù)進(jìn)行,實(shí)現(xiàn)方法采取RS232中斷與查詢結(jié)合的方式,設(shè)計(jì)RS232通信程序時(shí),利用串行中斷法達(dá)到接收上位機(jī)一幀通信命令的目的,而下位機(jī)則通過查詢功能將采集完成的數(shù)據(jù)發(fā)送給上位機(jī)。
(3)系統(tǒng)主程序功能模塊,標(biāo)志Recfiag由串行中斷接收,查詢并處理標(biāo)志Recflag為此模塊主要功能。
2.3 上位機(jī)LabVIEW軟件設(shè)計(jì)
上位機(jī)將數(shù)據(jù)采集控制命令發(fā)送給下位機(jī)時(shí),主要通過LabVIEW軟件實(shí)現(xiàn),同時(shí),下位機(jī)將采集數(shù)據(jù)發(fā)送給上位機(jī)后,上位機(jī)也要利用LabVIEW進(jìn)行接收、顯示等?;诖朔N功能需求,在上位機(jī)LabVIEW前面板程序(見圖2)中,主要包含以下幾方面:
(1)串口通信參數(shù)設(shè)置模塊:上位機(jī)及下位機(jī)通信時(shí),RS232通信串口號(hào)等參數(shù)設(shè)置時(shí)利用此部分進(jìn)行;
(2)下位機(jī)參數(shù)設(shè)置:數(shù)據(jù)采集命令發(fā)送給下位機(jī)前,需進(jìn)行采集通道號(hào)等相關(guān)參數(shù)的設(shè)置,通過該模塊實(shí)現(xiàn),本系統(tǒng)設(shè)計(jì)過程中,數(shù)據(jù)采集模擬量設(shè)定為5路,輸入通道數(shù)量需要擴(kuò)展情況下,可以5路為基礎(chǔ),實(shí)施類推,5路報(bào)警門限值設(shè)定后,數(shù)據(jù)采集時(shí),門限值被超過后,報(bào)警現(xiàn)象出現(xiàn)在下位機(jī)中,報(bào)警方式為聲光,此時(shí),系統(tǒng)管理者即可開展相應(yīng)的處理:
(3)運(yùn)行控制選項(xiàng):功能包含下位機(jī)數(shù)據(jù)采集的啟動(dòng)或停止、數(shù)據(jù)存儲(chǔ)等;
(4)實(shí)時(shí)數(shù)據(jù)顯示:將某條采集通道實(shí)時(shí)的數(shù)據(jù)采集情況顯示出來;
(5)實(shí)時(shí)曲線顯示:以曲線方式顯示實(shí)時(shí)的某采集通道數(shù)據(jù)。
接下來,本節(jié)即對(duì)上述各部分做具體的介紹。
2.3.1 串行通信功能模塊
Instrument I/O>serial目錄位于LabVIEW功能面板中,可滿足串行通信需求的集成模塊則包含在此目錄中,通過該模塊,能夠?qū)y(cè)控系統(tǒng)方便的設(shè)計(jì)出來。本系統(tǒng)設(shè)計(jì)過程中,需使用的串行通信模塊包含以下幾種:
(1)初始化時(shí)采用VISA onfigUre SerialPort;
(2)向VISA resource name指定的串行接口寫入write buffer字符時(shí)采用VISA write;
(3)規(guī)定字節(jié)數(shù)的數(shù)據(jù)在VISA resourcename指定的串行接口讀取時(shí)采用VISARead;
(4) VISA resource name指定的串行接口關(guān)閉時(shí)采用VISA Close。
2.3.2 實(shí)時(shí)數(shù)據(jù)處理及顯示功能模塊
數(shù)據(jù)從下位機(jī)中讀取出來后,由數(shù)據(jù)處理模塊做出相應(yīng)的處理,已將實(shí)時(shí)顯示等功能實(shí)現(xiàn)。在實(shí)時(shí)顯示數(shù)據(jù)部分,會(huì)以波形圖的方式、數(shù)值的方式顯示出實(shí)時(shí)的處理后的數(shù)據(jù)。
2.3.3 下位機(jī)參數(shù)設(shè)置功能模塊
該模塊設(shè)置參數(shù)時(shí),方式采用兩種,一種為將設(shè)定值直接輸入,一種為參數(shù)值預(yù)先設(shè)定好,具體采用何種方法,由用戶自行選擇。不過,本系統(tǒng)設(shè)計(jì)時(shí),設(shè)置方式選擇后者,以使用戶的操作更加便利。實(shí)際上,參數(shù)值預(yù)先設(shè)定過程中,并非是具體的參數(shù)值,而是選擇相應(yīng)的參數(shù)序號(hào),序號(hào)發(fā)送到下位機(jī)單片機(jī)中后,單片機(jī)在對(duì)應(yīng)表中查找具體的設(shè)定參數(shù)值。此種方法有利于將通信數(shù)據(jù)長(zhǎng)度減少,使數(shù)據(jù)通訊速度提高,并促進(jìn)程序設(shè)計(jì)工作簡(jiǎn)化,原因是設(shè)定值超過255之后,要想將一個(gè)參數(shù)設(shè)置完成,上位機(jī)進(jìn)行數(shù)據(jù)量上傳時(shí),需要的字節(jié)數(shù)量為2個(gè)。對(duì)于需設(shè)置的全部參數(shù),依據(jù)HEX格式,該模塊將其都放置到索引數(shù)組,之后利用VISA Write函數(shù),向下位機(jī)發(fā)送參數(shù)。
2.3.4 運(yùn)行控制選項(xiàng)功能模塊
該模塊實(shí)現(xiàn)運(yùn)行控制選項(xiàng)時(shí),采用的方式為事件驅(qū)動(dòng),相應(yīng)VI程序編寫到驅(qū)動(dòng)事件中后,即可實(shí)現(xiàn)該模塊的功能。
3 結(jié)論
設(shè)計(jì)多路數(shù)據(jù)采集系統(tǒng)過程中,利用LabVIEW平臺(tái)及單片機(jī)之后,能夠一定程度的簡(jiǎn)化設(shè)計(jì)過程,提高開發(fā)速度,同時(shí),監(jiān)控界面也更加美觀。本文在單片機(jī)及LabVIEW基礎(chǔ)上設(shè)計(jì)的系統(tǒng)經(jīng)實(shí)踐后,結(jié)果顯示,上位機(jī)與下位機(jī)之間可以正常的通信,可實(shí)現(xiàn)采集并實(shí)時(shí)監(jiān)測(cè)多路數(shù)據(jù),具有較為廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]馮傳均,戴文峰,何央,基于VB和單片機(jī)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2016,24 (22):155-157+160.
[2]李鵬.MSP430單片機(jī)在多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中的應(yīng)用[J].無線互聯(lián)科技,2016(07):139-140.
[3]孫進(jìn),基于單片機(jī)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].信息通信,2014 (10): 61-62.
[4]李輝,基于C8051F060單片機(jī)的多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子設(shè)計(jì)工程,2014, 22 (15):186-190.
[5]劉艷.基于LabVIEW和Proteus的單片機(jī)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J],現(xiàn)代電子技術(shù),2013, 36 (09):102-104+108.
[6]郭松輝,張琦,李亞君,基于MSP4 30F149單片機(jī)的工程機(jī)械多路數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].礦山機(jī)械,2016 (01): 94-96+5.