UPS(uninterruptible power supply)直譯為不間斷電源系統。作為網絡系統中的保護設備,它主要起到兩個作用:(1)為電腦系統提供備用電源,目的是防止電網供電突然斷電造成對重要文件數據損害;(2)消除電網供電上的“污染”(包括浪涌、波動、脈沖、噪聲等),使電腦中的電子部件免受摧毀性損壞。而如何確保UPS系統的正常運作就成為一門新的課題。監測UPS中的電池狀況,UPS機房的環境溫度,UPS系統的負載情況,都將成為確保UPS系統正常工作不可或缺的一部分。
當前是一個構筑在網絡基礎之上的信息化時代。未來的社會必然是一個以IP網絡和IP業務為主的信息化社會。通過Internet實現對遠程設備進行實時的監控是一個非常有前景的想法。這也就是嵌入式Internet技術的產生背景。嵌入式Internet技術是以Internet技術和嵌入式技術的發展為基礎的。該技術的出現使得各種家用設備的上網成為可能。如果嵌入式設備提供WWW,則用戶就可以通過Internet遠程監測各種設備。
結合實際需要,如何利用Internet方便的實現對不同的UPS機房進行統一監測和管理將成為大型UPS系統的基本要求。
一、概述
本文提出的基于嵌入式web服務器的UPS監測系統有兩部分組成(見圖1):測量網和嵌入式web服務器。其中測量網完成對UPS機房的監測并將測量結果傳送到嵌入式web服務器上;嵌入式web服務器獲取測量結果并且完成web服務器功能,使得用戶可以遠程訪問測量結果。下面分別介紹這兩部分。
圖1 系統結構
二、測量網
圖2可見,測量網主要由集成測量儀和溫濕度模塊組成,組網方式采用通用的RS-485總線方式。每個嵌入式web服務器可以通過RS-485和多臺集成測量儀相連,最多可以掛接32個集成測量儀;而每臺集成測量儀又可以通過RS-485總線和溫濕度模塊相連,同樣最多可以掛接32個溫濕度模塊。
圖2 測量網組成原理圖
集成測量儀主要完成以下幾個功能:(1)測量UPS電池組電壓和充放電電流;(2)測量配電柜三相電壓和電流;(3)同嵌入式web服務器進行通信;(4)同溫濕度模塊進行通信。其中UPS電池組測量和配電柜測量是設計方案中的難點和重點。
考慮到UPS電池組和配電柜的測量比例需要能過靈活搭配且相互之間不影響,故特設計通用的總線將UPS電池組測量和配電柜測量模塊化,制成通用的UPS電池組測量卡和配電柜監測卡。集成測量儀的設計分為:總線板、控制板、UPS電池組測量卡和配電柜監測卡。
控制板完成與嵌入式web服務器和溫濕度模塊的通信,以及測量各個板卡所傳遞的信號;而UPS電池組測量卡和配電柜監測卡將帶測量的信號轉換成芯片可測量的電信號;總線板則控制待測信號進入控制板進行測量(其中電源模塊設計在總線板上)。
溫濕度模塊用于將測量點的溫濕度參數通過RS-485傳給集成測量儀。
通過以上的設計,使用者可以根據具體情況,靈活搭配電池組、配電柜和溫濕度的測量比例,從而滿足不同UPS機房的需求。
三、嵌入式web服務器
硬件實現:
圖3 嵌入式web服務器硬件結構框圖
嵌入式web服務器主要芯片有CYGNAL公司的C8051F020芯片、RTL8019AS以太網控制芯片、IS62LV1024L靜態存儲器、AT45081B FLASH和MAX485。
C8051F020芯片是完全集成的混合信號系統級芯片(SOC),具有與8051指令集完全兼容的CIP-51內核。其時鐘頻率可達25MHz,最大25MIPS,片內具有4kB的SRAM和64kB的Flash,22個中斷源、串行外設總線接口SPI、兩個增強型UART、五個16位定時器、可編程技術器/定時器陣列、看門狗定時器以及電源監視器等內嵌外設。完全可以滿足本系統的需要。
RTL8019AS是臺灣Realtek公司制造的全雙工10Mbps以太網控制芯片。該芯片符合ETHERNET 2與IEEE802.3標準,內置16KB的SRAM、雙DMA通道和FIFO,支持8/16位數據總線和基地址選擇。在本系統中RTL8019AS工作在8位模式下,其中一套DMA用于和C8051F020通信,稱為遠端DMA,另一套DMA用于內部使用,成為本地DMA。微控制器C8051F020通過訪問RTL8019AS上的讀寫指針以判斷是否有以太網數據到達IS62LV1024L和AT45081B為存儲芯片主要是增加系統的存儲容量;MAX485用于和測量系統通信。C8051F020通過MAX485將測量系統的結果存儲到本機,通過RTL8019AS將回應來自internet的訪問。
TCP/IP協議的簡化:
結合工業測量的需求,嵌入式web服務器中的TCP/IP協議的一般都是根據具體情況進行簡化。從而能夠最大限度的節約硬件的硬件和軟件資源。
TCP/IP一般采用簡化的四層模型:應用層、傳輸層、網絡層和鏈路層。
應用層主要完成一個對話過程即負責對數據進行解釋,如HTTP FTP TELNET等協議,在本系統中結合自身需要我們只處理HTTP協議。
傳輸層是負責提供端到端的通信即通過明確定義數據通道和特性傳輸數據,例如定義網絡端口,該層協議由傳輸控制協議TCP(提供可靠的數據傳輸)和用戶數據報協議UDP(提供不可靠的數據傳輸)組成。
應用層協議HTTP使用TCP傳輸控制協議,故本系統只實現TCP協議。
網絡層負責處理從發送方到目的地址的路由信息,同時為建立網絡互聯提供ARP地址解析協議(用于實現物理地址和IP地址的映像)和ICMP因特網控制報文協議(傳遞差錯報文以及其他需要注意的信息)。
鏈路層負責為不同的網絡鏈路提供通明的數據傳輸,在本系統中該層由RTL8019硬件來實現。
圖4 精簡TCP/IP協議棧主要函數
上圖為本系統實現TCP/IP為每一層設計的主要函數。其中,HTTP_SERVER()為HTTP服務程序,該程序接收由傳輸層接收的數據,并根據接收的數據決定是否做出響應;HTTP_SEND()將HTML文件發送到TCP層;TCP_SEND()和TCP_RCEV()分別為發送和接收TCP數據;ICMP_RCVE()和PING_SEND()用來響應因特網控制報文協議;ARP_RESLOVE()、ARP_RCV()E和ARP_SEND()用來實現IP地址和物理地址的映像和對ARP的響應;IP_SEND()和IP_RCVE()用來發送和接收IP數據報;ETH_RCVE()、ETH_SEND()、RCVE_FRAME()和SEND_FRAME()用于實現驅動RTL8019AS接收和發送數據。
軟件實現:
本軟件一方面要實現web服務器的功能,其中包括對IP地址的設置和TCP/IP以及HTTP協議的實現;另一方面要通過RS-485總線從測量網接收測量數據,并更新到html文件中,使得用戶可以得到當前的測量數據。圖5為嵌入式web服務器軟件設計流程。
圖5 嵌入式web服務器軟件設計流程
系統首先進行初始化配置,然后使用CHECK_8019函數查看RTL8019AS的狀態。然后根據系統狀態確定,調用那些函數進行處理。系統首先判斷是否有以太網數據到達,如果是則進行數據進棧處理。如果不是有以太網數據到達,則判斷是否TCP傳送超時(即是否收到TCP_ACK),如果超時則啟動網頁重傳。如果TCP沒有超時則判斷是否已有的TCP連接是否已無數據傳輸。如果是則關閉該連接。如果該連接空閑占用并未超時,則判斷是否ARP傳送超時。超時則重傳ARP,否則判斷是否ARP緩存已經過時。如果是,則清除該緩存,否則判斷是否到時間刷新測量數據。并在所有處理之后返回CHECK_8019函數。
其中“數據進棧處理”的流程如圖6所示,首先通過ETH_RCVE()和RCVE_FRAME()對數據進行處理,判斷是ARP_PACKET還是IP_PACKET,如果是ARP數據則依次經過ARP_RCVE()、ARP_RESLOVE()、和ARP_SEND()進行ARP響應。
如果是IP數據則送往IP_RCVE(),并判斷是TCP_PACKET還是ICMP_PACKET,如果是TCP_PACKET則送TCP_RCVE()。TCP_RCVE()根據接收的數據建立連接并將數據送往HTTP_SERVER()。如果是ICMP_PACKET則送PING_SEND。HTTP_SERVER()響應接收到的數據并依次調用發送函數,將網頁發送到請求方。
圖6 數據進棧處理流程圖
“讀取測量數據”模塊完成以下工作:通過RS-485總線分別從不同的集成測量儀上將測量數據取回,并且將網頁刷新。故用戶能夠訪問到當前最新測量數據。
四、結束語
通過該系統,用戶可以通過internet網遠程對UPS機房進行監控,并且能夠根據自身系統的需求靈活進行系統配置以滿足不同用戶的需求,也可以以此為基礎開發大型的UPS系統管理軟件。
參考文獻
[1] W.Richard stevens,范建華,胥光輝,張濤等譯 TCP/IP詳解 卷1 機械工業出版社;
[2] Bentham Jeremy,陳向群譯,嵌入式系統web服務器 機械工業出版社;
[3] 陳學泉、關宇東 嵌入式TCP/IP協議單片機技術在網絡通信中的應用[J],電子技術應用,2002(8):48-49;
[4] 黃天戌 劉洋 一種嵌入式web服務器的設計與實現 計算機應用 2004(11)