劉冬敏
(中州大學(xué) 工程技術(shù)學(xué)院,鄭州 450044)
隨著我國信息化進(jìn)程的加快,各單位計算機(jī)系統(tǒng)及通信設(shè)備的數(shù)量都在不斷增加,機(jī)房已經(jīng)成為單位的重要組成部分。機(jī)房有許多配套設(shè)備,包括配電、空調(diào)、消防設(shè)備、漏水檢測設(shè)備等。對于中小型機(jī)房來說,最關(guān)心的是溫濕度、煙感、UPS監(jiān)測,由于中小型機(jī)房在信息化項目中所占比重很多,因此有必要針對這類機(jī)房的實際使用情況,設(shè)計一套經(jīng)濟(jì)型的監(jiān)測系統(tǒng)。
機(jī)房監(jiān)測系統(tǒng)設(shè)計的目標(biāo)是通過通訊及數(shù)據(jù)標(biāo)準(zhǔn)接口和一體化通訊網(wǎng)絡(luò),將各個子系統(tǒng)集成到一個計算機(jī)支持的平臺上,建立起整個機(jī)房的集成監(jiān)測和管理界面,通過統(tǒng)一的圖形化人機(jī)界面,實現(xiàn)各子系統(tǒng)的實時監(jiān)視和管理,并在發(fā)生故障時向管理員報警,以便管理員進(jìn)行補(bǔ)救工作。
目前,市面上對于機(jī)房監(jiān)測的大型成套設(shè)備有許多,也有比較成熟的整體解決方案。這些系統(tǒng)一般是基于組態(tài)模式設(shè)計的[1],在界面上組態(tài)效果很好,但對于硬件的支持單一,必須采用廠家的硬件設(shè)備,而且成本不菲,不適合經(jīng)濟(jì)型中小型機(jī)房所應(yīng)用。對于中小型機(jī)房,能否在保證機(jī)房監(jiān)測的核心功能前提下,降低總成本呢?比如直接采用TCP/IP協(xié)議組網(wǎng),利用服務(wù)器硬件資源運行監(jiān)測系統(tǒng);不需要專業(yè)工控機(jī)和多串口卡,減少硬件成本;使用量身定制的嵌入式設(shè)備和監(jiān)測軟件,縮減不必要的功能,提高軟件的可靠性,降低系統(tǒng)的總費用,并能為用戶所接受。本文將試圖采用低成本的解決方案,重點圍繞嵌入式設(shè)備在中小型機(jī)房監(jiān)測系統(tǒng)的應(yīng)用,描述如何實現(xiàn)嵌入式設(shè)備的軟件、硬件、傳感器的設(shè)計及實現(xiàn),其他輔助模塊只做簡要介紹。
經(jīng)濟(jì)型中小型機(jī)房監(jiān)測系統(tǒng)主要由控制軟件、嵌入式設(shè)備、傳感器等三部分組成??刂栖浖c嵌入式設(shè)備的通信采用TCP/IP協(xié)議,不再采用傳統(tǒng)的RS485總線,不再需要專業(yè)的計算機(jī)和硬件設(shè)備,提高系統(tǒng)的可靠性,同時也降低費用。
控制軟件采用Delphi 7.0編寫,由于信息系統(tǒng)中一般都有商業(yè)數(shù)據(jù)庫服務(wù)器,不再需要重新購買相關(guān)的軟件和硬件,該控制軟件支持Oracle 9i 、SQL Server 2000等主流數(shù)據(jù)庫,歷史運行狀態(tài)和報警記錄可以通過數(shù)據(jù)庫進(jìn)行記錄,方便用戶查詢和打印報表。報警輸出通過短信接口模塊,將報警信息發(fā)送到相關(guān)管理人員的手機(jī)上。嵌入式設(shè)備采用ARM7TMDI為內(nèi)核的高性能CPU,搭載網(wǎng)絡(luò)控制芯片,提供TCP/IP通信服務(wù),利用各種傳感器將采集到的信息發(fā)送到控制軟件。機(jī)房監(jiān)測系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 經(jīng)濟(jì)型中小機(jī)房監(jiān)測系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D
嵌入式設(shè)備主要分為三種功能,一是機(jī)房采集溫濕度,使用高性價比的溫濕度傳感器;二是煙感傳感器,通過GPIO口采集煙霧探測器的開關(guān)量輸出;三是UPS狀態(tài)采集,它是通過RS232串口與UPS進(jìn)行連接,通過UPS通信專用協(xié)議獲取UPS運行信息。
S3C44B0X是以ARM7TMDI為內(nèi)核的高性能CPU,是ARM公司最早為業(yè)界普遍認(rèn)可并且贏得最廣泛應(yīng)用的處理核。S3C44B0X的推薦最高工作頻率為66 MHz,采用0.25um工藝的CMOS標(biāo)準(zhǔn)宏單元和存儲編譯器。它的低功耗精簡和出色的全靜態(tài)設(shè)計特別適合于對成本和功耗敏感的應(yīng)用。
采集終端溫濕度處理模塊通過I2C總線協(xié)議進(jìn)行通信。溫濕度傳感器采用SHTll型數(shù)字式溫濕度傳感器芯片,濕度測量范圍0~100%RH,溫度測量范圍-40~123.8℃,濕度測量精度±3.0%RH,溫度測量精度±0.4℃,響應(yīng)時間<4S 。UPS的傳感器也就是專用的通信協(xié)議UPSCodeII,該協(xié)議是智能不間斷電源的通訊協(xié)議,廣泛應(yīng)用于Powerwrare,F(xiàn)iskars,IBM等大型廠商的產(chǎn)品中。煙感傳感器采用市面上常見的JTY-GD-DG311 聯(lián)網(wǎng)型火災(zāi)探測器,它采用特殊結(jié)構(gòu)設(shè)計的光電傳感器,具有靈敏度高、穩(wěn)定可靠、低功耗、美觀耐用、使用方便等特點。電路和電源可自檢,可進(jìn)行模擬報警測試。
煙感信息是一個開關(guān)量信號,通過兩個I/O口(PC0、PC1)S3C44B0X采集煙感信息; CPU通過I2C總線采集溫濕度傳感器的相關(guān)信息;再通過串口1與UPS設(shè)備進(jìn)行通信??紤]到經(jīng)濟(jì)、實用,該設(shè)備目前只接一個溫濕度傳感器、兩個煙感和一臺UPS設(shè)備,控制部分模塊設(shè)計原理圖如圖2所示。
通過串口命令參數(shù)設(shè)置該硬件設(shè)備的類型,比如嵌入式設(shè)備是配置成UPS設(shè)備信號采集終端還是配置成溫濕度或者煙感采集終端,也還是三者的混合模式。這個需要根據(jù)現(xiàn)場施工情況進(jìn)行配置,一般情況下煙感可以和溫濕度進(jìn)行混合配置,由于串口通信距離短,UPS需要單獨配置一個采集終端。采集到信息經(jīng)過設(shè)備上的網(wǎng)口發(fā)送到控制軟件。
圖2 硬件控制部分原理圖
在嵌入式軟件開發(fā)中,選用ARM公司提供ADS1.2開發(fā)工具進(jìn)行開發(fā)和調(diào)試,ADS l.2提供完整的Windows界面開發(fā)環(huán)境,它使Windows平臺的開發(fā)人員快速適應(yīng)該軟件功能。該軟件的C語言編譯器效率極高,能同時支持C以及C++語言,使軟件、硬件工程師可以很方便地使用C語言進(jìn)行開發(fā)。為了提高調(diào)試速度,增強(qiáng)批量調(diào)試各函數(shù)的功能,可以將函數(shù)的關(guān)鍵狀態(tài)變量輸出到串口,通過上位機(jī)保存各個調(diào)試狀態(tài),再離線分析。本項目中嵌入式設(shè)備按功能可以分為三類,其嵌入式軟件按其大的模塊劃分可以分為兩大模塊,一是通用軟件模塊,一是專用軟件模塊。通用模塊處理參數(shù)配置、設(shè)備初始化、通信等功能,專用軟件模塊處理溫濕度監(jiān)測、煙感監(jiān)測和UPS監(jiān)測功能。
3.2.1 通用軟件模塊
嵌入式設(shè)備在網(wǎng)絡(luò)中與控制軟件通訊采用“客戶端-服務(wù)器”模式,嵌入式設(shè)備作為客戶機(jī),雙方通過TCP協(xié)議進(jìn)行通信。因此在終端上需要運行一個嵌入式TCP/IP協(xié)議棧[3-4],并且每個終端需要配置一個唯一的IP地址、設(shè)備號,以實現(xiàn)與控制軟件點對點的通信。[5]
嵌入式設(shè)備加電后,由匯編語言編寫的引導(dǎo)程序經(jīng)過硬件參數(shù)配置后,引導(dǎo)到Main.c文件中的Main(void)函數(shù)開始執(zhí)行,系統(tǒng)控制權(quán)開始交由C語言編寫的程序。在Main函數(shù)中執(zhí)行串口參數(shù)配置模塊,參數(shù)存儲在I2C總線的E2PROM芯片中,通過串口配置本平臺的一些常用參數(shù),比如設(shè)備的ID、IP地址、設(shè)備類型、控制服務(wù)器端的IP地址和端口以及心跳間隔時間等參數(shù)。如果在三秒鐘內(nèi)沒有檢測到用戶輸入,系統(tǒng)跳過本模塊開始執(zhí)行通信處理模塊,構(gòu)建一個TCP/IP協(xié)議棧,建立與控制軟件的實時通信連接。在正常工作模式下,各個類型的采集終端定時發(fā)送實時采集到各種信息,如果傳感器或者串口通信出現(xiàn)故障,需要發(fā)送設(shè)備故障信息,由控制中心實時報警。除此之外,采集終端每隔一定間隔(可設(shè)為120秒)必須發(fā)出心跳激活信號,把當(dāng)前的狀態(tài)信息報告給控制中心,以示其正常工作,提高整個系統(tǒng)的可靠性。通用軟件模塊的功能流程圖如下圖3所示。
圖3 通用軟件模塊流程圖
3.2.2 專用軟件模塊
整個嵌入式設(shè)備專用軟件模塊分為三個,分別是溫濕度處理模塊、煙感處理模塊和UPS處理模塊,三個模塊按順序串行執(zhí)行,執(zhí)行的頻率可以通過參數(shù)進(jìn)行設(shè)置,如果該設(shè)備沒有配置該類型的模塊,可以直接跳過此模塊執(zhí)行下一個模塊,專用軟件模塊的功能流程圖如圖4所示。由于S3C44B0X自帶有I2C總線,這就極大的簡化了用軟件模擬I2C總線的麻煩,提高了CPU的使用率。微處理器對SHTll的控制是通過5個5位命令代碼來實現(xiàn)的。SHTll可通過DATA數(shù)據(jù)總線直接輸出數(shù)字量濕度值。該濕度值稱為“相對濕度”,需要進(jìn)行線性補(bǔ)償和溫度補(bǔ)償后才能得到較為準(zhǔn)確的濕度值[5-7],具體的補(bǔ)償過程參見文獻(xiàn)[6]。采集到正確的溫度和濕度數(shù)據(jù)放在緩沖隊列中,由主程序通過點到點協(xié)議發(fā)送到控制軟件。
采集終端煙感處理模塊主要任務(wù)是通過兩個I/O口(PC0、PC1)讀出JTY-GD-DG311 聯(lián)網(wǎng)型火災(zāi)探測器開關(guān)量輸出狀態(tài)。為了消除干擾因素,采用多次讀取的辦法,每查詢一次報警的輸出量,系統(tǒng)在1秒的時間內(nèi)連續(xù)讀10次,如果有一個狀態(tài)不一致,該次讀取無效,需要再次讀取。如果在規(guī)定的次數(shù)(3次)內(nèi)不能完成任務(wù),需要給控制中心發(fā)送“設(shè)備故障”命令信息。讀出到正確的煙感信息之后,數(shù)據(jù)放在緩沖隊列中,由主程序再通過點到點協(xié)議發(fā)送到控制軟件。
采集終端UPS處理模塊采用串口處理UPSCodeII協(xié)議,該協(xié)議實際上是一組規(guī)定好的命令名稱,通過串行通訊方式來進(jìn)行上下行數(shù)據(jù)傳送,不同的機(jī)器命令集略有不同,發(fā)送到UPS的命令通常由一個到二個部分組成,即第一行為命令,是以回車為結(jié)束標(biāo)記的4字節(jié)ASCII字符,其中前兩個字符通常是UP,后兩個為特定的命令;如果一個命令包含兩個部分,那么第二部分通常是與該命令相關(guān)的參數(shù),同樣也是以回車符號為結(jié)束標(biāo)志,具體長度并不確定。例如狀態(tài)監(jiān)測命令“UPSS(cr)”顯示UPS當(dāng)前工作狀態(tài); 狀態(tài)監(jiān)測命令“UPDS(cr)”返回UPS的完整狀態(tài)及參數(shù);設(shè)置命令“UPDV(cr)”顯示當(dāng)前UPS設(shè)置值和容限;命令“UPCL(cr)”顯示本機(jī)支持的所有命令,其他命令這里不再一一列舉了,需要參考UPS廠家的通信協(xié)議規(guī)范。在本模塊中,采集終端通過狀態(tài)監(jiān)測命令“UPSS(cr)”和狀態(tài)監(jiān)測命令“UPDS(cr)”即可查詢到當(dāng)前UPS運行的狀態(tài),返回的UPS狀態(tài)按具體廠家協(xié)議進(jìn)行解析,數(shù)據(jù)放在緩沖隊列中,再通過點到點協(xié)議由主程序發(fā)送到控制軟件中,進(jìn)行實時顯示和監(jiān)測。
圖4 專用軟件模塊流程圖
控制采用Delphi 7編寫,通過Windows的Socket與各個嵌入式設(shè)備進(jìn)行通信??刂栖浖倪\行狀態(tài)和報警信息都保存在Oracle 9i或者其他主流數(shù)據(jù)庫中。用戶通過訪問歷史監(jiān)測界面和報警查詢界面,可以查詢到相關(guān)的狀態(tài),報警信息通過短信模塊輸出到管理人員的手機(jī)上,相關(guān)報表支持導(dǎo)出到Excel文件中。控制軟件端口設(shè)置為5151,軟件運行后啟動服務(wù)器端Socket,為嵌入式設(shè)備提供實時通信服務(wù)。能實時處理、顯示各個終端設(shè)備發(fā)送過來的采集信號,再通過與預(yù)設(shè)的參數(shù)進(jìn)行比較,如果超過閾值就進(jìn)行報警,報警模塊考慮到項目的目前已有基礎(chǔ),采用聯(lián)通公司提供的短信接口(數(shù)據(jù)庫消息隊列),報警短信數(shù)據(jù)的傳輸可以通過該接口進(jìn)行發(fā)送或者讀取,不再使用短信模塊,降低使用費用。報警短信通過輪詢的方式,逐一發(fā)送給每個管理人員的手機(jī)。控制軟件的流程如圖5所示。
本文針對中小型機(jī)房設(shè)備實時監(jiān)測的需求,設(shè)計一種低成本機(jī)房監(jiān)測系統(tǒng),主要闡述整個系統(tǒng)的構(gòu)建和關(guān)鍵部分設(shè)計。系統(tǒng)中核心的嵌入式設(shè)備采用S3C44B0X處理器,通過溫濕度傳感器、煙感、UPS協(xié)議采集機(jī)房相關(guān)監(jiān)測數(shù)據(jù),嵌入式軟件采用模塊化設(shè)計,互換性好。該系統(tǒng)的設(shè)計思路為中小型機(jī)房的監(jiān)測提供了一條新路徑,同時也可為大型機(jī)房的監(jiān)測提供一定的借鑒。
圖5 控制軟件流程圖
參考文獻(xiàn):
[1]沈娣麗.小型集散控制系統(tǒng)組態(tài)軟件設(shè)計[D].華中農(nóng)業(yè)大學(xué),2005.
[2]魯力,張波.嵌入式TCP/IP協(xié)議的高速電網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)[J].儀器儀表學(xué)報,2009,30(2):405-409.
[3]何一鳴,鮑玉軍,錢顯毅,等.基于LPC2214的傳感器網(wǎng)關(guān)設(shè)計[J].南京航空航天大學(xué)學(xué)報,2012,44(6):911-916.
[4]明五一,劉武發(fā).基于ARM點到點通訊協(xié)議的設(shè)計及實現(xiàn)[J],才智,2009,7(3):243-244.
[5]姜連祥,許培培.溫濕度傳感器SHT11的感測系統(tǒng)設(shè)計[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(4):49-51.
[6]宋繼軍.基于單片機(jī)的智能溫濕度控制系統(tǒng)設(shè)計[J].科技廣場,2013(10):91-93.
[7]陳樹成,楊志勇,王建佳,等.低功耗農(nóng)業(yè)大棚溫濕度測量儀設(shè)計[J].農(nóng)機(jī)化研究,2014(8):62-66.