肖 峰
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽(yáng)110032)
隨著科技的進(jìn)步以及計(jì)算機(jī)使用的普及, 同時(shí)在微處理技術(shù)不斷發(fā)展的促進(jìn)下,數(shù)據(jù)采集系統(tǒng)在現(xiàn)代生產(chǎn)生活中迅速、廣泛地得到應(yīng)用。此類(lèi)系統(tǒng)的任務(wù)是對(duì)生產(chǎn)現(xiàn)場(chǎng)及工作環(huán)境的各種參數(shù)進(jìn)行采集,送入到計(jì)算機(jī),根據(jù)不同的需求和目的由計(jì)算機(jī)進(jìn)行相應(yīng)的算法處理和圖形化處理,最終得到所需的數(shù)據(jù)類(lèi)型和圖形化顯示。在處理完成后,還要將生成的大量數(shù)據(jù)按照相應(yīng)要求進(jìn)行存儲(chǔ)和備份,以便實(shí)現(xiàn)對(duì)某些物理量的監(jiān)視[1]。這些都需在對(duì)系統(tǒng)的設(shè)計(jì)中加以考慮。
通過(guò)對(duì)數(shù)據(jù)采集組網(wǎng)的應(yīng)用場(chǎng)景進(jìn)行分析,設(shè)計(jì)一種簡(jiǎn)便的組網(wǎng)模型。模型分為三個(gè)部分:由PC機(jī)和監(jiān)控軟件構(gòu)成的監(jiān)控系統(tǒng)(以下簡(jiǎn)稱(chēng)上位機(jī)),由單片機(jī)實(shí)現(xiàn)的接收系統(tǒng)(以下簡(jiǎn)稱(chēng)主機(jī)),以及由傳感器實(shí)現(xiàn)的采集控制系統(tǒng)(以下簡(jiǎn)稱(chēng)從機(jī))。各部分協(xié)調(diào)工作完成數(shù)據(jù)采集和監(jiān)控任務(wù)[2]。其中,上位機(jī)和主機(jī)各有一個(gè),從機(jī)則有多個(gè)。每個(gè)從機(jī)都有自己獨(dú)立的通訊地址。從機(jī)在使用之前,通過(guò)上位機(jī)操控界面進(jìn)行通訊地址的設(shè)置和查詢(xún),從而實(shí)現(xiàn)一個(gè)上位機(jī)、一個(gè)主機(jī)和多個(gè)從機(jī)的快速便捷組網(wǎng)。
設(shè)計(jì)的多通道無(wú)線(xiàn)數(shù)據(jù)接收系統(tǒng)的系統(tǒng)功能結(jié)構(gòu)圖如圖1 所示。
圖1 系統(tǒng)框圖
上位機(jī)部分采用AC220V 供電,包括PC 上位機(jī)、顯示器、鼠標(biāo)和鍵盤(pán),主要完成對(duì)采集到的數(shù)據(jù)進(jìn)行分析、處理和存儲(chǔ),并具有數(shù)據(jù)列表顯示和報(bào)警設(shè)置等功能。
主機(jī)采用5V 和3.3V 供電,5V 主要給液晶顯示供電,以及通過(guò)5V 轉(zhuǎn)3.3V 芯片把電源適配器的5V轉(zhuǎn)換成3.3V,供其他芯片和模塊使用。
單片機(jī)選用STM32F1 系列處理器,這一系列處理器運(yùn)算速度快,接口豐富,存儲(chǔ)空間大,應(yīng)用可移植性好[3]。
無(wú)線(xiàn)通訊部分為采用SiliconLab 公司的無(wú)線(xiàn)收發(fā)芯片SI4463 設(shè)計(jì)的一款433MHz 無(wú)線(xiàn)收發(fā)模塊,空曠通訊距離最遠(yuǎn)可達(dá)兩千米,負(fù)責(zé)與多個(gè)編號(hào)的從機(jī)進(jìn)行通訊,實(shí)現(xiàn)主機(jī)與多個(gè)從機(jī)指令和數(shù)據(jù)的互傳[4];串口通訊模塊選用MAX3232E 芯片進(jìn)行設(shè)計(jì),負(fù)責(zé)與PC 上位機(jī)進(jìn)行通訊,實(shí)現(xiàn)主機(jī)與PC 上位機(jī)指令和數(shù)據(jù)的互傳[5]。
從機(jī)供電系統(tǒng)和處理器的選取與主機(jī)一樣,溫濕度傳感器模塊負(fù)責(zé)對(duì)環(huán)境溫濕度的采集,最后通過(guò)433MHz 無(wú)線(xiàn)模塊發(fā)送給主機(jī),從機(jī)還支持控制繼電器操作,完成對(duì)排風(fēng)機(jī)、卷簾機(jī)、澆灌系統(tǒng)等設(shè)備的控制。
除此之外,系統(tǒng)還支持本地的按鍵操作和液晶顯示,方便用戶(hù)在脫離上位機(jī)的情況下對(duì)系統(tǒng)進(jìn)行簡(jiǎn)單操作。
單片機(jī)電路原理圖如圖2 所示,包括串口通訊接口X7 以及由芯片U3、電容C5 至C9 以及C20 組成的通訊模塊,完成與上位機(jī)的通訊;接口X5 用于完成ISP 程序下載;復(fù)位電路由按鍵S1 及電阻R5、電容C10 組成,下載使能由跳線(xiàn)W1 及電阻R31 和R32 組成,本地?cái)?shù)據(jù)存儲(chǔ)模塊D1 用于存儲(chǔ)主機(jī)的配置參數(shù)等信息,主機(jī)的人機(jī)交互包括帶燈按鍵接口X3(對(duì)應(yīng)按鍵1),X4(對(duì)應(yīng)按鍵2)以及液晶顯示接口X9,液晶屏支持顯示多個(gè)不同編號(hào)從機(jī)的數(shù)據(jù)信息,方便用戶(hù)在脫離上位機(jī)的情況下對(duì)系統(tǒng)的監(jiān)控信息以及監(jiān)控狀態(tài)進(jìn)行簡(jiǎn)單觀察和操作[6]。
圖2 主機(jī)電路原理圖
主機(jī)軟件采用Keil C 編寫(xiě),運(yùn)行于以STM32F1為核心的硬件平臺(tái)上。主機(jī)軟件設(shè)計(jì)由無(wú)線(xiàn)通訊、串口通訊、人機(jī)交互、數(shù)據(jù)處理等部分組成。無(wú)線(xiàn)通訊部分實(shí)現(xiàn)主機(jī)與多個(gè)從機(jī)指令和數(shù)據(jù)的互傳,其中每個(gè)從機(jī)都配置有不同的通訊地址;串口通訊部分實(shí)現(xiàn)主機(jī)與上位機(jī)指令和數(shù)據(jù)的互傳;主機(jī)的人機(jī)交互部分包括按鍵操作和液晶顯示,用戶(hù)可以在脫離上位機(jī)的情況下,對(duì)系統(tǒng)進(jìn)行簡(jiǎn)單的操作,實(shí)現(xiàn)信息監(jiān)控和狀態(tài)監(jiān)控;數(shù)據(jù)處理部分執(zhí)行了采集數(shù)據(jù)的防干擾處理以及轉(zhuǎn)換處理,防干擾處理采用去極值法和冒泡法等算法。具體的主機(jī)軟件流程圖如圖3 所示。
圖3 主機(jī)軟件流程圖
程序開(kāi)始運(yùn)行后,首先進(jìn)行系統(tǒng)初始化工作,包括按鍵初始化、液晶顯示初始化和中斷初始化等,然后進(jìn)行無(wú)線(xiàn)模塊初始化、串口通訊初始化,判斷是否串口接收中斷(即判斷是否接收到來(lái)自上位機(jī)的串口控制命令),如是,則清除中斷標(biāo)志,并根據(jù)命令判斷是設(shè)置從機(jī)編號(hào)命令、查詢(xún)從機(jī)編號(hào)命令還是讀取從機(jī)數(shù)據(jù)命令,如果是上述命令其中之一,則主機(jī)根據(jù)命令格式要求組包后通過(guò)無(wú)線(xiàn)模塊發(fā)送給從機(jī),一直等待主機(jī)發(fā)送完畢后,主機(jī)進(jìn)入接收模式(等待來(lái)自從機(jī)的命令);如否,則判斷按鍵1 選擇從機(jī)編號(hào)是否動(dòng)作,如果是,則記錄從機(jī)編號(hào),液晶顯示相應(yīng)的從機(jī)編號(hào);如否,則判斷按鍵2 確認(rèn)采集從機(jī)數(shù)據(jù)是否動(dòng)作,如果是,則主機(jī)根據(jù)命令格式要求組包后通過(guò)無(wú)線(xiàn)模塊發(fā)送給從機(jī),一直等待主機(jī)發(fā)送完畢后,主機(jī)進(jìn)入接收模式;如否,則判斷是否有外部中斷(即是否有相應(yīng)的從機(jī)發(fā)來(lái)數(shù)據(jù)),如果是,則清除中斷標(biāo)志,然后主機(jī)接收數(shù)據(jù)并做相應(yīng)的數(shù)據(jù)處理,接著主機(jī)再把數(shù)據(jù)發(fā)送給上位機(jī),供上位機(jī)存儲(chǔ)、顯示,主機(jī)也通過(guò)液晶屏顯示對(duì)應(yīng)的數(shù)據(jù),上述程序運(yùn)行完畢后清緩存;如否,則繼續(xù)判斷是否接收到來(lái)自上位機(jī)的串口控制命令。
上位機(jī)軟件采用C#編寫(xiě),運(yùn)行于Windows 操作系統(tǒng)。無(wú)線(xiàn)數(shù)據(jù)采集系統(tǒng)的監(jiān)控軟件可對(duì)采集的數(shù)據(jù)進(jìn)行分析、處理和存儲(chǔ),并具有數(shù)據(jù)列表顯示等功能。軟件支持不同從機(jī)編號(hào)的單次獲取數(shù)據(jù),以及自動(dòng)采集功能,可以導(dǎo)出數(shù)據(jù),數(shù)據(jù)存儲(chǔ)為Excel 格式,方便后續(xù)的分析處理[7-8],導(dǎo)出后的數(shù)據(jù)表外觀如圖4 所示。相關(guān)的軟件界面如圖5、圖6 所示。
圖4 導(dǎo)出數(shù)據(jù)表格圖
圖5 上位機(jī)軟件界面
圖6 設(shè)置、查詢(xún)從機(jī)編號(hào)界面
設(shè)計(jì)基于STM32F1 的多通道無(wú)線(xiàn)數(shù)據(jù)接收系統(tǒng)構(gòu)建,體現(xiàn)出了組網(wǎng)快捷、靈活性高等優(yōu)點(diǎn),能快速收集生產(chǎn)現(xiàn)場(chǎng)及工作環(huán)境的數(shù)據(jù),對(duì)現(xiàn)場(chǎng)環(huán)境以及生產(chǎn)數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控,有效提高生產(chǎn)效率,節(jié)約能源,具有很高的研究?jī)r(jià)值和十分廣闊的應(yīng)用前景。