UPS接口轉(zhuǎn)換卡的設(shè)計與實現(xiàn)
摘要:針對目前大多數(shù)UPS監(jiān)控系統(tǒng)因采用串行接口監(jiān)控方式,而導致的傳輸距離受限制,不能實現(xiàn)任意距離的分散式遠程監(jiān)控的問題,提出了一種基于SNMP網(wǎng)絡(luò)管理協(xié)議的UPS監(jiān)控系統(tǒng)的設(shè)計方案,設(shè)計了集成SNMF協(xié)議的硬件接口轉(zhuǎn)換卡。采用了帶有SNMP協(xié)議的μClinux操作系統(tǒng),完成了串行接口到網(wǎng)絡(luò)接口的數(shù)據(jù)轉(zhuǎn)換,實現(xiàn)了在SNMP協(xié)議下的UPS網(wǎng)絡(luò)管理和監(jiān)控。
關(guān)鍵詞:監(jiān)控系統(tǒng);SNMP;μClinux;網(wǎng)絡(luò)管理
0 引言
不間斷電源(UPS)能夠給計算機等電力電子設(shè)備提供持續(xù)穩(wěn)定的不間斷電源供應,以避免因供電不穩(wěn)定時而造成的設(shè)備損壞。但是由于UPS有限的備用時間,以及在工作中可能存在的各種異常情況,使得管理人員必須及時準確地了解設(shè)備運行時的電力環(huán)境,掌握UPS的工作狀況。目前大多數(shù)UPS監(jiān)控系統(tǒng)是通過RS232或RS485的串行接口對UPS進行人工值守的方式進行監(jiān)控。但這兩種接口都有傳輸距離的限制,不能實現(xiàn)任意距離的分散式遠程監(jiān)控。針對這一問題,本文提出了一種基于SNMP網(wǎng)絡(luò)管理協(xié)議的UPS監(jiān)控系統(tǒng)的設(shè)計方案,設(shè)計了集成SNMP協(xié)議的硬件接口轉(zhuǎn)換卡,使得僅擁有串行接口的UPS具有連網(wǎng)能力,從而實現(xiàn)了UPS的網(wǎng)絡(luò)管理和監(jiān)控。
1 系統(tǒng)設(shè)計
整個監(jiān)控系統(tǒng)框圖如圖1所示。
整個系統(tǒng)的核心為基于SNMP網(wǎng)絡(luò)管理協(xié)議的接口轉(zhuǎn)換卡。接口轉(zhuǎn)換卡一端通過網(wǎng)線與監(jiān)控計算機相連,管理人員通過計算機可方便地對其進行操作。接口轉(zhuǎn)換卡另一端通過與UPS上的串行接口連接,來獲取UPS工作的各種信息及參數(shù),然后再利用SNMP協(xié)議將接收到的數(shù)據(jù)轉(zhuǎn)換為管理信息庫(MIB)節(jié)點的變量值。管理員通過網(wǎng)絡(luò)管理軟件對MIB節(jié)點變量進行操作,從而獲得各UPS的監(jiān)控信息,實現(xiàn)了安全可靠的遠程分散式管理。
2 接口轉(zhuǎn)換卡
2.1 硬件結(jié)構(gòu)
單個的接口轉(zhuǎn)換卡主要由處理器、串口電路以及以太網(wǎng)接口電路組成。其結(jié)構(gòu)框圖如圖2所示。
[!--empirenews.page--]
用戶可根據(jù)自己的需求,定義包含UPS監(jiān)控信息參數(shù)的管理信息庫,并將其保存。接口轉(zhuǎn)換卡的串行接口電路與UPS上的串行接口相接,控制器通過控制串行接口電路來獲取UPS的工作信息。處理器將接收到的數(shù)據(jù)與管理信息庫中所定義的數(shù)據(jù)一一對應并保存,并通過以太網(wǎng)接口電路定時向網(wǎng)絡(luò)管理系統(tǒng)發(fā)送用戶需要的即時信息。網(wǎng)絡(luò)管理系統(tǒng)對管理信息庫中的變量進行操作,向接口轉(zhuǎn)換卡發(fā)送查詢和設(shè)置節(jié)點等命令,處理器通過查詢MIB中相應的節(jié)點信息,根據(jù)串口通信協(xié)議向UPS發(fā)出相應的命令,再將得到的結(jié)果返回給網(wǎng)絡(luò)監(jiān)控系統(tǒng)。
2.2 以太網(wǎng)接口電路
由于處理器內(nèi)并未提供物理層接口,因此需外接一片物理層芯片,以提供以太網(wǎng)的接入通道。如圖2所示,以太網(wǎng)接口電路由以太網(wǎng)物理層芯片CS8900A,網(wǎng)絡(luò)隔離變壓器FB2022和RJ45接口所組成。
CS8900A采用I/O模式,硬件電路簡單,對寄存器的操作通過I/O端口O寫入或讀出。在I/O模式下,PacketPage存儲器被映射到處理器的8個16位的端口上。在芯片上電后,I/O基地址的默認值被置為300H。使用CS8900A作為以太網(wǎng)的物理層接口,在收到由主機發(fā)來的數(shù)據(jù)報后(從目的地址域到數(shù)據(jù)域),偵聽網(wǎng)絡(luò)線路。如果線路忙,則等到線路空閑為止;否則,立即發(fā)送該數(shù)據(jù)幀。在發(fā)送過程中,首先添加以太網(wǎng)頭(包括前導字段和幀開始標志),然后生成CRC校驗碼,最后將數(shù)據(jù)幀發(fā)送到以太網(wǎng)上。在接收過程中,CS8900A將從以太網(wǎng)收到的數(shù)據(jù)幀在經(jīng)過解碼、去幀頭和地址校驗等步驟后緩存在片內(nèi)。在CRC校驗通過后,CS8900A會根據(jù)初始化配置情況,通知主機接收到了數(shù)據(jù)幀。最后,用DMA模式傳到主機的存儲區(qū)中。接口轉(zhuǎn)換電路中的以太網(wǎng)接口電路電路圖如圖3所示。
如圖3所示,本設(shè)計采用的是在通用的嵌入式微處理器$3C2440A上擴展以太網(wǎng)接口的方式。CS8900A通過總線與處理器相連,中斷與處理器外部中斷相接。S3C2440A的數(shù)據(jù)線DB[15:0]與CS8900A的數(shù)據(jù)線SD[15:0]連接,地址線AB[19:0]與CS8900A的數(shù)據(jù)線SA[19:0]連接,用來實現(xiàn)CS8900A與S3C2440A之間的數(shù)據(jù)傳輸;S3C2440A的NET_IOR引腳連接CS8900A的讀引腳nIOR,NET_IOW引腳連接CS8900A的寫引腳nIOW,用來控制CS8900A的讀寫;CS8900A與網(wǎng)絡(luò)的連接由接收信號線RXD+、RXD-和發(fā)送信號線TXD+、TXD-通過隔離變壓器FB2022與以太網(wǎng)水晶接頭RJ_45相連。隔離變壓器的主要作用是將嵌入式系統(tǒng)與外部線路相隔離,防止干擾和燒壞元器件,實現(xiàn)帶電的插拔功能。其內(nèi)部結(jié)構(gòu)圖如圖4所示。
[!--empirenews.page--]
3 數(shù)據(jù)管理
為了使網(wǎng)絡(luò)管理變得簡潔有效,本設(shè)計中采用了因特網(wǎng)工程任務組(IETF)制定的基于TCP/IP參考模型的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)。通過對SNMP軟件包的解包以及擴展agent代理等操作,將處理器獲取的UPS工作信息轉(zhuǎn)化為MIB節(jié)點變量值。從而實現(xiàn)了由串口監(jiān)控到網(wǎng)絡(luò)監(jiān)控的UPS監(jiān)控方式的轉(zhuǎn)變,使其能夠更為有效地在SNMP協(xié)議下進行監(jiān)控。
3.1 μCiinux的移植
本設(shè)計中采用了帶有SNMP協(xié)議的μClinux操作系統(tǒng),實現(xiàn)方式簡單。不僅完成了串行接口到網(wǎng)絡(luò)接口的轉(zhuǎn)換,還使用戶可以通過監(jiān)控界面按照SNMP協(xié)議標準進行統(tǒng)一管理。對于μClinux系統(tǒng)U-boot是最合適的Bootloader,其設(shè)計過程如圖5所示。
3.2 串行數(shù)據(jù)解析
由于移植SNMP軟件包后用戶只能對當前軟件包中的MIB庫進行操作,因此還需要添加自己定義的MIB庫,將SNMP擴展的代理程序添加到μClinux操作系統(tǒng)中去。根據(jù)專為UPS制定的串口協(xié)議標準MegaTec,可先向UPS發(fā)送信息查詢命令,然后將接收到的數(shù)據(jù)進行解析,從而得到了UPS的基本信息,返回給監(jiān)控系統(tǒng)。MegaTec協(xié)議中規(guī)定了通過串口監(jiān)控UPS的命令格式以及其他各項基本參數(shù),用戶只需發(fā)送相應的命令即可得到需要的UPS工作信息。串口解析數(shù)據(jù)的流程如圖6所示。
4 結(jié)束語
本文提出了一種智能的基于SNMP網(wǎng)絡(luò)管理協(xié)議的UPS接口轉(zhuǎn)換卡的設(shè)計方案。其中以太網(wǎng)接口電路由以太網(wǎng)物理層芯片CS8900A,網(wǎng)絡(luò)隔離變壓器FB2022和RJ45接口所組成。軟件設(shè)計使用了μClinux操作系統(tǒng),可以方便地移植SNMP應用程序,使得僅擁有串行接口的UPS具有連網(wǎng)
能力,實現(xiàn)了UPS由串口監(jiān)控到網(wǎng)絡(luò)監(jiān)控的轉(zhuǎn)變,完成了UPS的網(wǎng)絡(luò)管理和監(jiān)控。