《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種遠(yuǎn)端故障檢測(cè)方案的設(shè)計(jì)與實(shí)現(xiàn)
一種遠(yuǎn)端故障檢測(cè)方案的設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:電子技術(shù)應(yīng)用2013年第12期
張 咪
武漢郵電科學(xué)研究院, 湖北 武漢430074
摘要: 針對(duì)以太網(wǎng)技術(shù)OAM(Operation Administraction and Maintenance)能力較弱的問(wèn)題,提出了一種遠(yuǎn)端故障檢測(cè)的具體實(shí)施方案,設(shè)備上電進(jìn)行軟件初始化時(shí),將Trap數(shù)據(jù)寫(xiě)入FPGA的寄存器中,并增加一個(gè)定時(shí)器控制FPGA向網(wǎng)管設(shè)備發(fā)送連通性檢測(cè)幀,若設(shè)備突然掉電,F(xiàn)PGA會(huì)利用緩沖時(shí)延,向網(wǎng)管發(fā)送遠(yuǎn)端掉電幀trap,使網(wǎng)管獲得設(shè)備掉電信息;若網(wǎng)管在定時(shí)周期內(nèi)沒(méi)有接收到連通幀Trap,則可以判斷設(shè)備鏈路或硬件故障。
關(guān)鍵詞: FPGA OAM 連通性檢測(cè) 掉電 Trap
中圖分類號(hào): TN913
文獻(xiàn)標(biāo)識(shí)碼: B
文章編號(hào): 0258-7998(2013)12-0126-03
A kind scheme of design and implementation of remote fault detection
Zhang Mi
Wuhan Research Institute of Posts & Telecommunications, Wuhan 430074,China
Abstract: In view of the defects of OAM ability of Ethernet, this paper presents a specific implementation scheme for remote fault detection. After device electrifying, the Trap data are written to the registers of FPGA and a timer controls the FPGA sending connectivity testing Trap to network management during the software initialization. If the device power break suddenly, the FPGA use the delay time to send a power-down Trap to network so that the network can get information. If management network is not received connected trap over a span, it turns out that a fault exists in the device or the line.
Key words : OAM; continuity testing; power outages; Trap; FPGA

    隨著數(shù)據(jù)業(yè)務(wù)的廣泛應(yīng)用,以太網(wǎng)技術(shù)在通信網(wǎng)絡(luò)中發(fā)揮著越來(lái)越重要的作用。但是以太網(wǎng)技術(shù)與傳統(tǒng)的同步數(shù)字體系(SDH)相比,在網(wǎng)絡(luò)故障告警、鏈路質(zhì)量、維護(hù)手段等方面都略遜一籌[1]。國(guó)際標(biāo)準(zhǔn)化組織IEEE先后推出了802.3ah(2004)和802.1ag(2007)兩個(gè)標(biāo)準(zhǔn)化協(xié)議來(lái)強(qiáng)化以太網(wǎng)在維護(hù)、告警方面的能力。802.3ah的以太網(wǎng)OAM主要是鏈路方面的監(jiān)測(cè)和維護(hù),是一種偏物理層的OAM,而802.1ag的以太網(wǎng)OAM是偏網(wǎng)絡(luò)和應(yīng)用的OAM[2],主要用在匯聚層和核心層上[3]。

    本文結(jié)合硬件,利用SNMP Trap包來(lái)實(shí)現(xiàn)鏈路連通性監(jiān)測(cè)以及故障告警。主要是實(shí)現(xiàn)偏物理層的OAM功能,與802.3ah和802.1ag相比,該故障告警和鏈路檢測(cè)方法簡(jiǎn)單、實(shí)現(xiàn)方便,適合于一些遠(yuǎn)端二層交換設(shè)備。根據(jù)FPGA[4]的特點(diǎn),外接一個(gè)1 000 ?滋F~2 000 ?滋F的電容,在設(shè)備突然斷電時(shí),通過(guò)FPGA發(fā)送SNMP報(bào)文通知局端設(shè)備,局端設(shè)備記錄并上報(bào)網(wǎng)管,提示網(wǎng)管人員設(shè)備故障。
1 SNMP協(xié)議介紹
    簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議SNMP[5](Simple Network Management Protocol)是目前最常用的網(wǎng)絡(luò)管理協(xié)議。狹義上,它是一種專門用于網(wǎng)絡(luò)管理軟件和網(wǎng)絡(luò)設(shè)備之間的通信協(xié)議;廣義上,它是一組為實(shí)現(xiàn)網(wǎng)絡(luò)的自動(dòng)化管理任務(wù)而制定的一系列通信標(biāo)準(zhǔn),包括管理信息的表示與命名、通信協(xié)議等內(nèi)容。
    SNMP中定義了5種協(xié)議數(shù)據(jù)單元PDU(Protocal Data Unit),按照完成的功能可以分為三類:(1)查詢,設(shè)置SNMP變量;(2)應(yīng)答請(qǐng)求;(3)事件報(bào)告,如Trap。
    Trap是某種入口,到達(dá)該入口會(huì)使SNMP被管設(shè)備主動(dòng)通知SNMP管理器,而不是等待SNMP管理器的再次輪詢。同時(shí)也是管理工作站向代理獲取管理信息的途徑之一。Trap消息是當(dāng)代理探測(cè)到本地存在與網(wǎng)絡(luò)運(yùn)行狀態(tài)有重要關(guān)系的事件發(fā)生時(shí),即向工作站發(fā)送時(shí)間報(bào)告消息。由于事先在代理中指定了發(fā)送的工作管理站,也就是Trap的目的地,因此接收到Trap后,管理工作站不需要向代理發(fā)送確認(rèn)消息。
2 遠(yuǎn)端故障檢測(cè)硬件模塊設(shè)計(jì)
    圖1所示為硬件總體結(jié)構(gòu)示意圖,F(xiàn)PGA與ARM相連,在設(shè)備上電初始化完成之后,軟件就可以將手動(dòng)組好的SNMP Trap數(shù)據(jù)包寫(xiě)入到FPGA的寄存器中儲(chǔ)存起來(lái)。

    圖2所示的FPGA功能示意圖中,P1~P4為4個(gè)媒體獨(dú)立接口(MII接口)。P1和P2為媒體接入控制(MAC)模式接口,用于連接2個(gè)光口物理層收發(fā)器(PHY)芯片;P3和P4為PHY模式接口,用于連接交換芯片的2個(gè)MII端口。實(shí)現(xiàn)P1與P3之間的報(bào)文相互轉(zhuǎn)發(fā),和P2與P4之間的報(bào)文相互轉(zhuǎn)發(fā)。提供一個(gè)簡(jiǎn)化的MII接口(RMII)P0為MAC模式,通過(guò)PHY芯片與交換芯片相連,用于發(fā)送各種協(xié)議報(bào)文。當(dāng)電源跌落時(shí),立即向MII_P1和MII_P2端口同時(shí)發(fā)送掉電告警幀,并定時(shí)向P0協(xié)議端口發(fā)送連通性檢測(cè)幀。

3 遠(yuǎn)端故障檢測(cè)的軟件實(shí)現(xiàn)
    本文實(shí)現(xiàn)的遠(yuǎn)端故障檢測(cè)大致分為:遠(yuǎn)端掉電檢測(cè)和遠(yuǎn)端連通性檢測(cè)。兩種遠(yuǎn)端故障檢測(cè)處理流程如圖3所示。

3.1 遠(yuǎn)端設(shè)備掉電檢測(cè)原理
     遠(yuǎn)端設(shè)備掉電處理可以有很多種實(shí)現(xiàn)方案,本文的實(shí)現(xiàn)方案選擇硬件FPGA。由于遠(yuǎn)端設(shè)備突然斷電時(shí),由軟件組幀和發(fā)幀有可能來(lái)不及,因此選用硬件去實(shí)現(xiàn)。設(shè)備斷電時(shí),ARM、以太網(wǎng)交換芯片會(huì)立刻停止工作,而FPGA會(huì)在硬件布局中通過(guò)連接一個(gè)1 000 μF~2 000 μF的電容,可以有3 ms左右的斷電緩沖時(shí)間,設(shè)備上電初始化完成之后,軟件會(huì)手動(dòng)組一個(gè)SNMP Trap包,存放在FPGA的寄存器中。當(dāng)設(shè)備突然斷電時(shí),F(xiàn)PGA會(huì)檢測(cè)到一個(gè)電壓跌落的信號(hào),由于FPGA有3 ms~6 ms的斷電緩沖時(shí)間,它會(huì)利用這個(gè)時(shí)間將存儲(chǔ)的寄存器中的數(shù)據(jù)讀取出來(lái)向網(wǎng)管發(fā)送,從而使網(wǎng)管能夠檢測(cè)到遠(yuǎn)端設(shè)備掉電的告警。具體的遠(yuǎn)端設(shè)備掉電處理流程圖如圖3(a)所示。軟件組包部分核心代碼為:
funIcConnect(sIC_CTL_BLK *pChip, UINT8 *pData, UINT16 len, void *para)
{    int status = DRV_SUCCESS;
     UINT16 i,UINT8 value;
  pChip->chipWrite(IC_ FRAME_CCF_EN, 0, para);
  pChip->chipWrite(IC_ FRAME_CCF_EN, 1, para);
  for(i = 0; i < len; i ++)
  {
            value = *(pData + i);
         pChip->chipWrite(IC_FRAME_CCF_DATA, value, para);
   }
    pChip->chipWrite(IC_ FRAME_CCF_EN, 2, para);
}
3.2 遠(yuǎn)端設(shè)備連通性檢測(cè)原理

      設(shè)備上電鏈路檢測(cè)幀實(shí)際只檢測(cè)設(shè)備的硬件及連接到網(wǎng)管的這條鏈路是否正常,不包括設(shè)備上的軟件是否能正常運(yùn)行。進(jìn)行鏈路檢測(cè)就是區(qū)分設(shè)備失連是設(shè)備軟件問(wèn)題還是硬件問(wèn)題。因?yàn)樵谡G闆r下,即使軟件出現(xiàn)故障,由硬件直接發(fā)出的鏈路檢測(cè)報(bào)文也應(yīng)該能被網(wǎng)管接收到。
    設(shè)備上電軟件初始化完成之后,由軟件手動(dòng)組一個(gè)類SNMP Trap 包會(huì)寫(xiě)入到FPGA的寄存器中,寄存器會(huì)根據(jù)FPGA開(kāi)始發(fā)包時(shí)間和發(fā)包控制間隔時(shí)間信號(hào)給網(wǎng)管服務(wù)器發(fā)送一個(gè)連通性檢測(cè)幀,正常情況下網(wǎng)管可以一直收到鏈路連通性檢測(cè)幀。如果設(shè)備上電之后,網(wǎng)管沒(méi)有接收到任何Trap,則說(shuō)明軟件出現(xiàn)異常;而如果設(shè)備正常運(yùn)行之后,網(wǎng)管服務(wù)器沒(méi)有收到掉電檢測(cè)告警幀和連通性檢測(cè)幀,則可以判斷是連接網(wǎng)管的這條鏈路出現(xiàn)中斷,或者設(shè)備硬件出現(xiàn)故障。網(wǎng)管與設(shè)備會(huì)話的過(guò)程中有2個(gè)時(shí)間需要注意,(1)FPGA開(kāi)始發(fā)包時(shí)間,另一個(gè)是連通性檢測(cè)幀發(fā)包時(shí)間間隔。FPGA開(kāi)始發(fā)包時(shí)間是通過(guò)軟件得到1 s~30 s的任意時(shí)間點(diǎn),如果設(shè)備上電之后FPGA即開(kāi)始發(fā)送,而在一個(gè)PTN網(wǎng)絡(luò)的邊緣可能存在幾千臺(tái)甚至上萬(wàn)臺(tái)的遠(yuǎn)端設(shè)備,如果這些設(shè)備同時(shí)上電,而且都不做發(fā)包時(shí)間控制,則可能會(huì)在出現(xiàn)同一時(shí)間內(nèi)網(wǎng)絡(luò)中有上萬(wàn)個(gè)這樣的報(bào)文,導(dǎo)致網(wǎng)絡(luò)風(fēng)暴,從而影響業(yè)務(wù)。因此發(fā)包時(shí)間由軟件控制,則同一時(shí)間網(wǎng)絡(luò)上出現(xiàn)大量鏈路檢測(cè)報(bào)文的幾率會(huì)小很多,也不會(huì)影響業(yè)務(wù)。連通性檢測(cè)幀的發(fā)包時(shí)間間隔既可以由軟件控制,也可以由硬件控制。如果發(fā)送時(shí)間間隔過(guò)小,則網(wǎng)管服務(wù)器需要頻繁地處理這些Trap信息,對(duì)于正常的業(yè)務(wù)監(jiān)控信息會(huì)造成影響。本文由網(wǎng)管服務(wù)器設(shè)置發(fā)包時(shí)間間隔,將設(shè)置的時(shí)間間隔寫(xiě)入硬件定時(shí)器中,控制FPGA發(fā)送連通性檢測(cè)幀的頻率。具體的連通性檢測(cè)流程圖如圖3(b)所示。軟件核心代碼為:
funAlm(sIC_ CTL_BLK *pChip, UINT8 *pData, UINT16 len,
void *para)
{    int status = DRV_SUCCESS;          
    UINT16 i,UINT8 value;
      pChip->chipWrite(IC_ FRAME_PDAF_SET, 0, para);
      pChip->chipWrite(IC_FRAME_PDAF_SET, 1, para);
    for(i zhiqi= 0; i < len; i ++)
      {
             value = *(pData + i);
                pChip->chipWrite(IC_FRAME_PDAF_DATA,value,
            para);
    }
    pChip->chipWrite(IC _FRAME_PDAF_SET, 2, para);
}   
4 實(shí)驗(yàn)結(jié)果及數(shù)據(jù)
    設(shè)置Trap的目的IP為10.11.2.23,設(shè)備IP為 10.11.2.158,掉電檢測(cè)幀的Destination Port 為162,鏈路連通性檢測(cè)的Destination Port為163。設(shè)備上電后,利用抓包軟件Wireshark可以得到如圖4所示的鏈路連通性檢測(cè)幀。將設(shè)備突然斷電, 通過(guò)Wireshark可以得到如圖5所示的設(shè)備掉電檢測(cè)幀。

 

 

    本文根據(jù)實(shí)際環(huán)境,在實(shí)驗(yàn)室對(duì)遠(yuǎn)端設(shè)備進(jìn)行了多次的突然掉電測(cè)試,在遠(yuǎn)端到網(wǎng)管線路正常的情況下,掉電告警信息都能立刻上報(bào)到網(wǎng)管,該方案已經(jīng)在九江山水電訊設(shè)備有限公司的產(chǎn)品中得到驗(yàn)證,從而進(jìn)一步完善了功能故障測(cè)試對(duì)遠(yuǎn)端設(shè)備的管理。
參考文獻(xiàn)
[1] 郭祥本,羅瑩.以太網(wǎng)OAM原理與實(shí)現(xiàn)[J]. 通信技術(shù),2009(12):42-43.
[2] 徐榮,鄧春勝.電信級(jí)以太網(wǎng)[M].北京:人民郵電出本社,2009.
[3] KUROSE J F,ROSE K W. Computer networking: atopdown approach,fourth edition[M].Pearson Education, 2008.
[4] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M]. 北京:北京航空航天大學(xué)出版社,2008.
[5] 劉建卿,盧融凱.基于SNMP的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用, 2012,31(10):52-54.

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