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