《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 核心交換機(jī)嵌入式重啟裝置研究與設(shè)計
核心交換機(jī)嵌入式重啟裝置研究與設(shè)計
來源:電子技術(shù)應(yīng)用2010年第11期
劉振海
揚(yáng)州廣播電視大學(xué) 邗江分校, 江蘇 揚(yáng)州225009
摘要: 介紹了SNMP協(xié)議及獲取核心交換機(jī)信息的方法,,給出了具體的系統(tǒng)設(shè)計方案。應(yīng)用ARM+Linux構(gòu)成嵌入式系統(tǒng),通過帶外管理方法,,實(shí)現(xiàn)了在核心交換機(jī)死機(jī)等異常情況下自動對其進(jìn)行重啟的功能,大大減輕了網(wǎng)絡(luò)管理員的負(fù)擔(dān),。
中圖分類號: TP393.1
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2010)10-0141-04
Research and design of core switch embedded restart device
LIU Zhen Hai
Hanjiang Branch, Yangzhou Radio and TV University, Yangzhou 225009, China
Abstract: In this paper, the SNMP protocol and the method to obtain information of core switch are introduced in detail, simultaneously a specific system design scheme is proposed. Based on the ARM+Linux, the embedded system is designed. Furthermore, by using out-of-band management methods, the automated restart function of the core switch is achieved when it is in abnormal situations such as system halted, and the burden of network administrators is greatly reduced.
Key words : SNMP protocol; core switch; embedded; restart

    交換機(jī)是局域網(wǎng)中用來交換,、傳輸數(shù)據(jù)信息的樞紐,其工作狀態(tài)的好壞直接關(guān)聯(lián)著局域網(wǎng)網(wǎng)絡(luò)的數(shù)據(jù)傳輸穩(wěn)定性。特別是作為整個局域網(wǎng)中心的核心交換機(jī),,一旦出現(xiàn)問題,,則意味著整個網(wǎng)絡(luò)癱瘓。因此,,保障核心交換機(jī)的穩(wěn)定運(yùn)行是網(wǎng)絡(luò)管理的一項重要工作,。
    實(shí)踐表明,核心交換機(jī)出現(xiàn)硬件故障的概率極少,,但交換機(jī)在長時間工作過程中,,很容易出現(xiàn)一些軟件故障,如死機(jī),、緩存溢出,、交換機(jī)端口“假死”等情況,解決這類問題的簡單方法就是重啟機(jī)器,。所以重啟交換機(jī)是網(wǎng)絡(luò)管理員經(jīng)常做的工作,。而管理員的辦公地點(diǎn)有時距離交換機(jī)很遠(yuǎn),而且很多核心交換機(jī)沒有開關(guān),,只能通過拔插電源的方法進(jìn)行重啟,,這種方法對機(jī)器會造成不良影響。通過超級終端與交換機(jī)連接,用命令進(jìn)行重啟,,也不太方便,。
    雖然遠(yuǎn)程監(jiān)控已很普遍,但遠(yuǎn)程監(jiān)控基于網(wǎng)絡(luò)和交換機(jī)端口,,一旦網(wǎng)絡(luò)堵塞或交換機(jī)死機(jī)就無法實(shí)現(xiàn)信息的監(jiān)測和控制,。而基于SNMP嵌入式重啟裝置可以解決這一問題,它不需人工干預(yù),,便可在特殊情況下自動實(shí)現(xiàn)對交換機(jī)的重啟工作,。
1 設(shè)計思路
    所設(shè)計的嵌入式系統(tǒng)應(yīng)具備:RJ-45口和RS-232接口,RJ-45口與交換機(jī)的一個Ethernet口相連,,通過SNMP協(xié)議獲取交換機(jī)管理對象庫MIB信息[1],,檢測交換機(jī)是否正常;RS-232接口與交換機(jī)的Console口相連,,通過帶外管理方式實(shí)現(xiàn)異常情況下對交換機(jī)重啟功能,。
2 硬件實(shí)現(xiàn)
    嵌入式裝置的硬件結(jié)構(gòu)框圖如圖1所示。

2.1微處理器選擇
    傳統(tǒng)的8位/16位微控制器由于速度慢,、功耗大,,并且實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議困難,已越來越不能滿足高速發(fā)展的網(wǎng)絡(luò)管理需要,,隨著ARM(Advanced RISC Machine)RISC處理器的不斷成熟和嵌入式Linux的不斷完善,ARM+Linux嵌入式解決方案日益流行,因此,,本系統(tǒng)微處理器選用ARM920T,。ARM920T具有5級指令流水線,采用哈佛結(jié)構(gòu),具有16/32位RISC體系結(jié)構(gòu)和ARM指令集,,處理速度為1.1 MIPS/MHz,內(nèi)置MMU,、獨(dú)立的16 KB數(shù)據(jù)Cache、16 KB指令Cache和高速AMBA(Advanced Microcon-troller Bus Architecture)總線接口等功能[2],。
2.2 網(wǎng)卡接口設(shè)計
    該系統(tǒng)需要連接交換機(jī)以太網(wǎng)端口,,通過SNMP協(xié)議獲取交換機(jī)管理對象庫MIB信息。系統(tǒng)采用DAVICOM公司的DM9000AEP作為以太網(wǎng)MAC控制器與處理接口,。該器件具有10 Mb/s和100 Mb/s的自適應(yīng)物理層收發(fā)器,,支持802.3x全雙工控制流標(biāo)準(zhǔn),具有4 KB的雙字SRAM,,可以減輕CPU的負(fù)擔(dān),,因此使系統(tǒng)更穩(wěn)定,處理和傳輸數(shù)據(jù)速度更快,。RJ-45插座采用HanRun公司的內(nèi)置網(wǎng)絡(luò)變壓器,、狀態(tài)顯示燈和電阻網(wǎng)絡(luò)的HR911105A,具有信號耦合,、電氣隔離,、阻抗匹配、抑制干擾等優(yōu)點(diǎn),。
    ARM920T網(wǎng)絡(luò)接口設(shè)計電路如圖2所示,。DM9000AEP芯片的SD0~SD15為16根數(shù)據(jù)線,與ARM920T數(shù)據(jù)線相連;命令選擇引腳CMD為高電平,,訪問數(shù)據(jù)端口,,CMD為低電平,訪問地址端口;IOR#為讀信號引腳,,與ARM920T的讀信號LnOE引腳相連,;IOW#為寫信號引腳,與ARM920T的寫信號LnWE引腳相連,;CS#為片選信號,,與ARM920T的片選信號nGCS3引腳相連;INT為中斷請求信號,高電平有效,,與ARM920T的IRQ-LAN相連;發(fā)送端TX+,、TX-和接收端RX+,、RX-分別連接到HR911105A的發(fā)送端和接收端。

2.3 串口接口設(shè)計
    該系統(tǒng)用帶外管理方式對交換機(jī)實(shí)現(xiàn)重啟操作,,需要RS-232接口與交換機(jī)Console口相連,。ARM920T本身就具有串行通信接口,,只需將TTL電平轉(zhuǎn)化為RS-232電平即可。Sipex公司的SP3232芯片可以實(shí)現(xiàn)這一功能,而且SP3232芯片所需的供電電壓低,,適合嵌入式系統(tǒng)應(yīng)用,,其外圍電路連接簡單,僅需幾個0.1 μF的電容即可,。串口接口設(shè)計如圖3所示,。圖3中TXD表示接收數(shù)據(jù),RXD表示發(fā)送數(shù)據(jù),,RTS表示請求發(fā)送,,CTS表示清除發(fā)送。當(dāng)RTS請求發(fā)送數(shù)據(jù)時,,需經(jīng)CTS信號檢測,,只有CTS信號允許才能發(fā)送數(shù)據(jù)。

2.4 存儲器設(shè)計
 存儲器由SDRAM和Flash構(gòu)成,。SDRAM存儲器用來存放操作系統(tǒng)(從Flash解壓縮拷入)以及存放各類動態(tài)數(shù)據(jù),。設(shè)計中系統(tǒng)采用SAMSUNG公司的K4S561632,容量為32 MB,。用2片K4S561632實(shí)現(xiàn)位擴(kuò)展,,使數(shù)據(jù)總線寬度達(dá)到32 bit,總?cè)萘窟_(dá)到64 MB,將其地址空間映射在ARM920T的bank6;Flash存儲器有NOR和NAND兩種,用來存放Linux引導(dǎo)加載程序(BootLoader),。NOR Flash的特點(diǎn)是芯片內(nèi)執(zhí)行(Execute In Place),,即程序可直接在Flash閃存內(nèi)運(yùn)行,不必把代碼讀到系統(tǒng)RAM中,。NOR Flash的傳輸效率很高,,在1~4 MB的小容量時具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能,。NAND Flash結(jié)構(gòu)能提供極高的單元密度,,可以達(dá)到高存儲密度,并且寫入和擦除的速度也很快,,應(yīng)用NAND Flash的困難在于Flash的管理和需要特殊的系統(tǒng)接口,。本系統(tǒng)采用Intel公司的NOR Flash 28F640芯片,其容量為8 MB,將其地址空間映射在ARM920T的bank0。
3 軟件實(shí)現(xiàn)
3.1操作系統(tǒng)

    ARM芯片獲得了許多實(shí)時操作系統(tǒng)供應(yīng)商的支持,有:Windows CE,、Linux,、Palm OS、VxWorks,、pSOS,、 Nucleus等。因Linux源代碼的公開特性,,Linux系統(tǒng)的應(yīng)用越來越廣泛,。將Linux應(yīng)用于ARM芯片,,可以采用一些現(xiàn)成的針對ARM芯片的嵌入式Linux系統(tǒng),也可根據(jù)需要自行對Linux內(nèi)核進(jìn)行裁剪,。本系統(tǒng)采用自行裁剪的方法,,使用make menuconfig命令對Linux內(nèi)核進(jìn)行配置,整個配置以維持系統(tǒng)運(yùn)行的最小化為原則,。需要注意的是內(nèi)核應(yīng)支持proc,、ext2文件系統(tǒng)、UNIX domain sockets,、TCP/IP networking,、UART等選項,以保證系統(tǒng)能實(shí)現(xiàn)RJ-45口和RS-232接口對外通信。實(shí)現(xiàn)這些功能的內(nèi)核靜態(tài)壓縮映像大約為500 KB[3],。為了實(shí)現(xiàn)系統(tǒng)功能,,還需編寫相應(yīng)的網(wǎng)絡(luò)接口和串口驅(qū)動程序,建立根文件系統(tǒng),。
3.2 引導(dǎo)加載程序
    操作系統(tǒng)的啟動離不開引導(dǎo)程序,,Linux引導(dǎo)加載程序(BootLoader)由NOR Flash的地址0x0處開始執(zhí)行,完成存儲設(shè)備初始化,、堆棧初始化,、用戶環(huán)境初始化等,最終BootLoader把操作系統(tǒng)內(nèi)核映像加載到RAM中,。本系統(tǒng)引導(dǎo)加載程序采用ARM-BOOT修改而成,。
3.3主程序
    主程序每次在設(shè)備開機(jī)后自動運(yùn)行,在交換機(jī)上先配置一個VLAN接口用于與嵌入式設(shè)備通信,。嵌入式設(shè)備的網(wǎng)絡(luò)接口IP地址應(yīng)與交換機(jī)的這個VLAN接口IP處于同一網(wǎng)段,。為避免與常用私網(wǎng)地址沖突,可以將VLAN接口IP設(shè)為192.168.255.1,,將嵌入式設(shè)備的網(wǎng)絡(luò)接口IP地址設(shè)為192.168.255.2,。定時器時間設(shè)為1 min,每隔1 min對交換機(jī)發(fā)送1次SNMP報文,,獲取交換機(jī)狀態(tài)進(jìn)行分析,,如連續(xù)3次(3 min)發(fā)現(xiàn)通信失敗或判定交換機(jī)狀態(tài)異常,則對交換機(jī)進(jìn)行重啟,。主程序流程圖如圖4所示,。

3.4 交換機(jī)狀態(tài)監(jiān)測程序
    簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)是Internet組織用來管理Internet的網(wǎng)絡(luò)協(xié)議,其定義了傳送管理信息的協(xié)議消息格式及管理者和設(shè)備代理相互之間進(jìn)行消息傳送的規(guī)程,。在SNMP管理模型中有三個基本組成部分:管理者(Manager),,被管代理(Agent)和管理信息庫(MIB)。管理者的管理工作是通過輪詢代理來完成的,管理者可以通過SNMP 操作直接與被管代理通信,獲得即時的設(shè)備信息,,對網(wǎng)絡(luò)設(shè)備進(jìn)行遠(yuǎn)程配置管理或者操作,,也可以通過對數(shù)據(jù)庫的訪問獲得網(wǎng)絡(luò)設(shè)備的歷史信息,以決定網(wǎng)絡(luò)配置變化等操作,。SNMP被管代理是指用于跟蹤監(jiān)測被管理設(shè)備狀態(tài)的特殊軟件或硬件,,每個代理都擁有自己本地的MIB。MIB信息即被管資源,,而網(wǎng)絡(luò)管理中的資源是以對象表示的,,每個對象表示被管資源的某方面屬性,這些對象形成了MIB庫。MIB是一個樹形結(jié)構(gòu),,SNMP協(xié)議消息通過遍歷MIB樹形目錄中的節(jié)點(diǎn)來訪問網(wǎng)絡(luò)中的設(shè)備,。網(wǎng)絡(luò)管理者通過對MIB庫的存取訪問實(shí)現(xiàn)配置管理、性能管理,、故障管理,、安全管理、計費(fèi)管理等五大管理功能,。SNMP提供有三類操作:Get,、Set和Trap。Get操作實(shí)現(xiàn)對被管理對象所表示的管理信息的讀操作,,Set操作實(shí)現(xiàn)對被管理對象的管理信息進(jìn)行寫操作,,Trap 操作實(shí)現(xiàn)被管理設(shè)備向管理工作站報告設(shè)備出現(xiàn)的異常事件。
    交換機(jī)狀態(tài)異?;蛩罊C(jī)的原因主要有:散熱不好致溫度過高,;病毒攻擊;交換機(jī)背板帶寬過低,;負(fù)荷過大等,。交換機(jī)狀態(tài)異常或死機(jī)最終表現(xiàn)為:CPU利用率和內(nèi)存利用率過高,、端口丟包率過大,、與交換機(jī)端口連接不通等。因此,,需要對交換機(jī)的CPU利用率,、內(nèi)存利用率、端口丟包率等進(jìn)行監(jiān)測,,同時依據(jù)與交換機(jī)的SNMP通信是否正常來判斷交換機(jī)是否出現(xiàn)異?;蛩罊C(jī)。本系統(tǒng)通過SNMP協(xié)議與交換機(jī)的SNMP被管代理通信,,讀取(Get)相應(yīng)MIB節(jié)點(diǎn)數(shù)據(jù),,獲知CPU利用率、內(nèi)存利用率,、端口丟包率等信息,。
    下面以華為3com公司的S7500系列交換機(jī)為例,,說明本系統(tǒng)需要使用的MIB節(jié)點(diǎn),如表1所示。

    狀態(tài)監(jiān)測程序的流程圖如圖5所示,。

3.5 交換機(jī)重啟程序
    遠(yuǎn)程監(jiān)控一般是通過網(wǎng)絡(luò)經(jīng)交換機(jī)以太網(wǎng)口對交換機(jī)實(shí)行控制,,大多數(shù)情況下是可行的,但在交換機(jī)死機(jī)時,,所有端口都不通,,無法通過以太網(wǎng)口對交換機(jī)發(fā)送命令,對交換機(jī)實(shí)行帶內(nèi)管理,。對這種特殊情況,,帶外管理是唯一可行的方法。
    帶外管理是通過RS232總線與交換機(jī)的Console口進(jìn)行串行通信,給交換機(jī)下達(dá)命令,。一般波特率為9 600 b/s,,無流控,每幀包括8位數(shù)據(jù),、1位起始位,、1位停止位共計10 bit,無奇偶校驗位,。
    需要注意的是,,不同交換機(jī)要實(shí)現(xiàn)重啟,發(fā)送的指令字符可能不一樣,,要根據(jù)具體交換機(jī)型號而定,。以華為3com公司的S7500系列交換機(jī)為例,重啟程序的流程圖如圖6所示,。

    本嵌入式系統(tǒng)實(shí)現(xiàn)了在核心交換機(jī)死機(jī)等特殊情況下自動對其進(jìn)行重啟的功能,,大大減輕了網(wǎng)絡(luò)管理員的負(fù)擔(dān)。將本系統(tǒng)進(jìn)行擴(kuò)展,,可以根據(jù)需要實(shí)現(xiàn)對交換機(jī)特定方面的本地監(jiān)測和控制功能,。特別是該系統(tǒng)將來可以與核心交換機(jī)融為一體,有效增強(qiáng)核心交換設(shè)備的智能化和自我修復(fù)能力,。
參考文獻(xiàn)
[1]  MCCLOGHRIE K, ROSE M. Management information base  for network management of TCP/IP-based internets [DB/OL] [M]. http://www.rfc-editor.org/rfc/rfc1066.txt; August    1988.
[2]  曲鵬,,嚴(yán)勝剛,李博丞.基于嵌入式Web服務(wù)器的智能家居主控制系統(tǒng)[J/OL].http://www.21ic.com/app/embed/200907/45684.htm. 2009-07-30.
[3]  劉振海.基于軟盤的Linux系統(tǒng)的制作[J].微計算機(jī)應(yīng)用,2004,25(6):700-710.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。