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