基于STC89C58RD+單片機的空調(diào)網(wǎng)絡(luò)管理系統(tǒng)的控制終端設(shè)備設(shè)計
在學(xué)校等單位,分散安裝空調(diào)存在隨意開、通開造成的電能浪費現(xiàn)象,這不僅增加了單位的運作成本,同時還給管理增加了難度。為解決此問題,利用STC89C58RD+作中央處理器、rtl8019as作網(wǎng)卡、TCP/IP為通信協(xié)議,設(shè)計一款空調(diào)網(wǎng)絡(luò)管理系統(tǒng)的控制終端設(shè)備。便于管理人員通過空調(diào)網(wǎng)絡(luò)管理系統(tǒng)的操作,實現(xiàn)在網(wǎng)絡(luò)上對空調(diào)(受控設(shè)備)的開、關(guān)實施控制,也便于通過空調(diào)網(wǎng)絡(luò)管理系統(tǒng)了解空調(diào)(受控設(shè)備)的運行狀態(tài),并隨時加以管理控制。從而達到節(jié)能降耗和節(jié)支增效的經(jīng)濟、高效的IT管理模式,具有理論意義和應(yīng)用價值。
1 硬件
1.1 終端主機電路
整個電路分為電源、網(wǎng)絡(luò)接口、數(shù)據(jù)處理和控制I/O接口等四部分。電源由一個DC 9 V輸入,分別用78L05和78L06兩個集成穩(wěn)壓器分成+5 V和+6 V的分支電源。+5 V電源為控制終端提供電源;+6 V電源作為光電耦合器的啟動電源,以便在光電耦合器的動作過程中,不影響主機的工作。服務(wù)器通過英特網(wǎng)接口與終端交換信息,再由控制終端通過I/O接口控制或獲取空調(diào)(受控)設(shè)備的即時狀態(tài)。其結(jié)構(gòu)框圖如圖1所示。
1.2 主要元器件
線路板主要由網(wǎng)絡(luò)變壓器FB2022、高度集成的以太網(wǎng)控制器RTL8019AS、鎖存器74HC573、靜態(tài)RAM存儲器62256、主控制STC89C58RD+等芯片,RJ45接口和幾組光電耦合器以及一些外圍元器件組成。其中,主控芯片STC89C58RD+內(nèi)部資源[1]包括:32 KB內(nèi)部閃存;1 280 B片內(nèi)RAM數(shù)據(jù)存儲器;工作頻率0~35 MHz(相當于普通8051的0~420 MHz);有內(nèi)部看門狗電路,解決了外界影響帶來的“死機”問題;具有4級8個中斷源,提供2個額外的外部中斷機制和4組I/O口等。此外,還有寬電壓,低功耗,與其他8051完全兼容的特點。RTL8019AS為臺灣芯片生產(chǎn)商ReaLTEk公司針對第三代快速以太網(wǎng)連接而設(shè)計,它支持多種嵌入式處理器芯片,內(nèi)置FIFO緩存器用于直接發(fā)送和接收數(shù)據(jù)。RTL8019AS支持以太網(wǎng)II和IEEE802.3;軟件兼容8 bit和16 bit的NE2000。對于沒有很復(fù)雜數(shù)據(jù)流處理的本控制終端機來說,低廉的造價也能夠達到較理想的網(wǎng)絡(luò)系統(tǒng)管理效果。
1.3 硬件控制實現(xiàn)
控制終端與空調(diào)間用光電耦合器連接,當控制終端接收到系統(tǒng)“電源開”指令時,相應(yīng)的光電耦合器閉合,打開空調(diào)電源,此時空調(diào)處于伺服狀態(tài),面板上的電源指示燈亮,等待系統(tǒng)或遙控器等發(fā)送“運行”指令。同時,因空調(diào)電源指示燈打開而相應(yīng)的光電耦合器導(dǎo)通,把空調(diào)的即時狀態(tài)信息通過控制終端處理后傳給系統(tǒng)??照{(diào)進入伺服狀態(tài)后,如果接收到系統(tǒng)或其他方式的“運行”操作指令時,空調(diào)就開始運行,面板上的“運行”指示燈亮。同時因面板“運行”指示燈亮而相應(yīng)的光電耦合器導(dǎo)通,把空調(diào)的“運行”狀態(tài)信息通過控制終端處理后傳給系統(tǒng)。當控制終端接收到系統(tǒng)“電源關(guān)”的指令時,將關(guān)閉空調(diào)的運行狀態(tài),并且切斷空調(diào)的電源。此時空調(diào)處于完全停止狀態(tài),遙控及受控設(shè)備本身的任何硬件按鈕操作均無效。就這樣,基于TCP/IP協(xié)議的可靠通信連接,控制終端隨時等待著執(zhí)行服務(wù)器給它的系統(tǒng)指令,并周期性地把受控設(shè)備的即時狀態(tài)信息反饋給服務(wù)器。在試驗中,如表1所示為用LED模擬空調(diào)設(shè)備,由不同IP和端口的兩個終端與同一臺服務(wù)器相連得出的實驗結(jié)果。當控制終端接收到系統(tǒng)發(fā)來的指令“1”時,空調(diào)“總電源”開啟,LED1亮,同時向服務(wù)器反饋“電源開”的信息。在“電源開”的狀態(tài)下,控制終端接收到系統(tǒng)指令“2”時,空調(diào)“總電源關(guān)”,LED1滅;接收到系統(tǒng)指令“3”、“4”時,控制終端和負載相應(yīng)的動作是“運行、LED2亮”、“停止、LED2滅”。當“總電源關(guān)、LED1滅”后,沒有收到系統(tǒng)指令“1”時,其他任何指令對負載的控制無效,終端狀態(tài)燈無顯示,同時反饋給系統(tǒng)的信息為“關(guān)閉中”。
1.4 安全控制原理
在同一管理系統(tǒng)內(nèi),每一個控制終端都固化唯一的物理地址(MAC)、本地IP地址和端口號,除了只與本身固有IP地址的服務(wù)器相應(yīng)端口通信外,不與其他微機發(fā)生關(guān)系;終端與終端之間也不會有任何干擾。其他PC主機在權(quán)限范圍內(nèi)可以通過服務(wù)器瀏覽或操作系統(tǒng)中各控制終端的設(shè)備狀態(tài)。這樣有利于設(shè)備運行的安全性和可靠性。如需系統(tǒng)維護,也只需將安裝好空調(diào)管理系統(tǒng)的備用服務(wù)器的IP地址更改成控制終端對應(yīng)服務(wù)器的IP地址即可。
2 TCP/IP的移植引用
2.1 開源TCP/IP的選擇
從來自不同出處的資料顯示,移植TCP/IP到8 bit低端處理器上,如uIP等不同版本TCP/IP棧的移植已有很多成功的案例。本控制終端的網(wǎng)絡(luò)接口實現(xiàn),是成功地移植引用了ZLIP版的TCP/IP協(xié)議棧[2],其顯著特點是:
(1)有適中的代碼量和RAM使用量。使用22.118 4 MHz晶振、KeilC編譯器、STC89C58RD+單片機下測試的技術(shù)參數(shù)如表2所示。
(2)與BSD套接字基本相同,接口簡單,使用方便。
(3)支持PINg命令的響應(yīng)。
(4)本身為單片機設(shè)計。所有的外部變量都使用了 xdata類型,全部指針都為明確存儲類型的指針,需要重入的函數(shù)已經(jīng)聲明為reentrant,減少了重入函數(shù)在內(nèi)存中的滯留。
2.2 網(wǎng)絡(luò)通信的實現(xiàn)
(1)ZLIP棧符合BSD標準,定義一個套接字類型的全局變量“ExConn”,創(chuàng)建套接字。即:
ExConn = TCPSocket(IPAddr);
(2)寫函數(shù)void OnACCeptRecv(void DT_XDATA* buf,WORD size)REENTRANT_MUL作為連接函數(shù)的參數(shù),以便數(shù)據(jù)傳輸?shù)挠行印?/p>
(3)通過調(diào)用函數(shù)TCPConnect(ExConn,0xc0a80002, 55000,OnAcceptRecv,OnClose)主動與IP“192.168.0.2(IP地址的十六進制表示為0xc0a80002)”相匹配的服務(wù)器進行連接。獲得服務(wù)器分配相應(yīng)的“55000”端口進行套接,實現(xiàn)收發(fā)數(shù)據(jù)和關(guān)閉連接的接口,從此進行正常通信。
(4)主動與服務(wù)器進行連接,提高系統(tǒng)管理的可靠性和安全性。如遇服務(wù)器故障或關(guān)閉,終端會周期性發(fā)出ARP廣播,直到重新正常連接。
3 軟件的實現(xiàn)
3.1 網(wǎng)卡驅(qū)動的引用及更改
3.1.1 網(wǎng)卡驅(qū)動基地址的更改
因為硬件的線路板設(shè)計有差別,將ZLIP里的RTL8019.H的基地址宏定義0xb000改成0x8000(#define RTL_BASE_ADDRESS 0x8000)。
3.1.2 網(wǎng)卡復(fù)位啟動
添加函數(shù):
void rtl8019as_rst()
{
unsigned int idata i;
reset8019=1;
for(i=0;i<250;i++); reset8019=0;
for(i=0;i<250;i++);
}
終端上電時,采用冷啟動復(fù)位,便于終端即時初始化網(wǎng)卡。
3.1.3 控制終端主程序
終端上電,初始化各模塊后,通過創(chuàng)建的套接字主動去與服務(wù)器對接,然后向服務(wù)器發(fā)送準備就緒的信號,周期性地檢測與服務(wù)器連接的情況,靜靜地等待服務(wù)器的指令和觀察受控設(shè)備的狀態(tài)。一旦情況有變,就立即執(zhí)行相應(yīng)的動作。終端工作流程圖如圖2所示。
3.2 控制管理的實現(xiàn)
3.2.1 管理設(shè)備電源
受控設(shè)備的電源只有一種開通方式:即系統(tǒng)管理員通過服務(wù)器的“電源開”指令操作。其他任何形式和個人(專業(yè)維修人員除外)在沒有授權(quán)的前題下操作均無效。
3.2.2 受控設(shè)備的狀態(tài)管理
系統(tǒng)管理員可隨時從空調(diào)網(wǎng)絡(luò)管理系統(tǒng)中了解到設(shè)備的開啟運行狀況,對有異常的設(shè)備及時向工程維修中心發(fā)送維修申請,然后由維修中心解決出現(xiàn)的異常。其他人員可以通過系統(tǒng)平臺瀏覽設(shè)備運行狀況,遞交設(shè)備使用時段申請文件,請求系統(tǒng)管理員給予使用時效權(quán)。空調(diào)(受控設(shè)備)電源一旦開通,就給使用者充分的使用權(quán)限,讓其自由使用。這樣,既給使用者充分的自由,又給管理帶來了方便,就基本上杜絕了隨開、亂開、通開的電能浪費的現(xiàn)象。從而提高了設(shè)備的利用率和完好率,令其運行于經(jīng)濟、高效的網(wǎng)絡(luò)系統(tǒng)管理模式下。
單片機的應(yīng)用有利于產(chǎn)品的小型化、多功能化和智能化,有助于提高勞動效率,減輕勞動強度,改善勞動環(huán)境,減少能源和材料消耗,保證安全等。本控制終端是作為單一的客戶端設(shè)計,把系統(tǒng)管理中大量數(shù)據(jù)處理及存儲的工作交給服務(wù)器去做。這樣大大節(jié)省了控制終端的資源,降低了負荷,讓控制終端專注于處理服務(wù)器發(fā)來的指令并按要求對空調(diào)加以控制。同時,把受控設(shè)備的運行狀態(tài)及時傳送給服務(wù)器,讓系統(tǒng)管理員隨時掌控系統(tǒng)中各空調(diào)的運行狀態(tài)?;诔绦蚪Y(jié)構(gòu)簡單、硬件結(jié)構(gòu)合理、造價低廉且安裝方便的空調(diào)網(wǎng)絡(luò)管理系統(tǒng)控制終端,僅對空調(diào)小作改進,即可輕松把已有的設(shè)備納入統(tǒng)一、高效的智能化管理,讓“物盡其用、物盡其能、物有所值”。
參考文獻
[1] 宏晶科技.8051系列單片機選型[DB/OL].http://www.mcu-memory.com/stc-mcu-select-1.htm.
[2] 李章林.ZLIP使用簡介[DB/OL].[2