《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 一種遠(yuǎn)端故障檢測方案的設(shè)計與實現(xiàn)
一種遠(yuǎn)端故障檢測方案的設(shè)計與實現(xiàn)
來源:電子技術(shù)應(yīng)用2013年第12期
張 咪
武漢郵電科學(xué)研究院, 湖北 武漢430074
摘要: 針對以太網(wǎng)技術(shù)OAM(Operation Administraction and Maintenance)能力較弱的問題,提出了一種遠(yuǎn)端故障檢測的具體實施方案,設(shè)備上電進(jìn)行軟件初始化時,將Trap數(shù)據(jù)寫入FPGA的寄存器中,并增加一個定時器控制FPGA向網(wǎng)管設(shè)備發(fā)送連通性檢測幀,若設(shè)備突然掉電,F(xiàn)PGA會利用緩沖時延,向網(wǎng)管發(fā)送遠(yuǎn)端掉電幀trap,使網(wǎng)管獲得設(shè)備掉電信息;若網(wǎng)管在定時周期內(nèi)沒有接收到連通幀Trap,則可以判斷設(shè)備鏈路或硬件故障。
關(guān)鍵詞: FPGA OAM 連通性檢測 掉電 Trap
中圖分類號: TN913
文獻(xiàn)標(biāo)識碼: B
文章編號: 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ā)揮著越來越重要的作用。但是以太網(wǎng)技術(shù)與傳統(tǒng)的同步數(shù)字體系(SDH)相比,在網(wǎng)絡(luò)故障告警、鏈路質(zhì)量、維護手段等方面都略遜一籌[1]。國際標(biāo)準(zhǔn)化組織IEEE先后推出了802.3ah(2004)和802.1ag(2007)兩個標(biāo)準(zhǔn)化協(xié)議來強化以太網(wǎng)在維護、告警方面的能力。802.3ah的以太網(wǎng)OAM主要是鏈路方面的監(jiān)測和維護,是一種偏物理層的OAM,而802.1ag的以太網(wǎng)OAM是偏網(wǎng)絡(luò)和應(yīng)用的OAM[2],主要用在匯聚層和核心層上[3]。

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

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

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

3.1 遠(yuǎn)端設(shè)備掉電檢測原理
     遠(yuǎn)端設(shè)備掉電處理可以有很多種實現(xiàn)方案,本文的實現(xiàn)方案選擇硬件FPGA。由于遠(yuǎn)端設(shè)備突然斷電時,由軟件組幀和發(fā)幀有可能來不及,因此選用硬件去實現(xiàn)。設(shè)備斷電時,ARM、以太網(wǎng)交換芯片會立刻停止工作,而FPGA會在硬件布局中通過連接一個1 000 μF~2 000 μF的電容,可以有3 ms左右的斷電緩沖時間,設(shè)備上電初始化完成之后,軟件會手動組一個SNMP Trap包,存放在FPGA的寄存器中。當(dāng)設(shè)備突然斷電時,F(xiàn)PGA會檢測到一個電壓跌落的信號,由于FPGA有3 ms~6 ms的斷電緩沖時間,它會利用這個時間將存儲的寄存器中的數(shù)據(jù)讀取出來向網(wǎng)管發(fā)送,從而使網(wǎng)管能夠檢測到遠(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è)備連通性檢測原理

      設(shè)備上電鏈路檢測幀實際只檢測設(shè)備的硬件及連接到網(wǎng)管的這條鏈路是否正常,不包括設(shè)備上的軟件是否能正常運行。進(jìn)行鏈路檢測就是區(qū)分設(shè)備失連是設(shè)備軟件問題還是硬件問題。因為在正常情況下,即使軟件出現(xiàn)故障,由硬件直接發(fā)出的鏈路檢測報文也應(yīng)該能被網(wǎng)管接收到。
    設(shè)備上電軟件初始化完成之后,由軟件手動組一個類SNMP Trap 包會寫入到FPGA的寄存器中,寄存器會根據(jù)FPGA開始發(fā)包時間和發(fā)包控制間隔時間信號給網(wǎng)管服務(wù)器發(fā)送一個連通性檢測幀,正常情況下網(wǎng)管可以一直收到鏈路連通性檢測幀。如果設(shè)備上電之后,網(wǎng)管沒有接收到任何Trap,則說明軟件出現(xiàn)異常;而如果設(shè)備正常運行之后,網(wǎng)管服務(wù)器沒有收到掉電檢測告警幀和連通性檢測幀,則可以判斷是連接網(wǎng)管的這條鏈路出現(xiàn)中斷,或者設(shè)備硬件出現(xiàn)故障。網(wǎng)管與設(shè)備會話的過程中有2個時間需要注意,(1)FPGA開始發(fā)包時間,另一個是連通性檢測幀發(fā)包時間間隔。FPGA開始發(fā)包時間是通過軟件得到1 s~30 s的任意時間點,如果設(shè)備上電之后FPGA即開始發(fā)送,而在一個PTN網(wǎng)絡(luò)的邊緣可能存在幾千臺甚至上萬臺的遠(yuǎn)端設(shè)備,如果這些設(shè)備同時上電,而且都不做發(fā)包時間控制,則可能會在出現(xiàn)同一時間內(nèi)網(wǎng)絡(luò)中有上萬個這樣的報文,導(dǎo)致網(wǎng)絡(luò)風(fēng)暴,從而影響業(yè)務(wù)。因此發(fā)包時間由軟件控制,則同一時間網(wǎng)絡(luò)上出現(xiàn)大量鏈路檢測報文的幾率會小很多,也不會影響業(yè)務(wù)。連通性檢測幀的發(fā)包時間間隔既可以由軟件控制,也可以由硬件控制。如果發(fā)送時間間隔過小,則網(wǎng)管服務(wù)器需要頻繁地處理這些Trap信息,對于正常的業(yè)務(wù)監(jiān)控信息會造成影響。本文由網(wǎng)管服務(wù)器設(shè)置發(fā)包時間間隔,將設(shè)置的時間間隔寫入硬件定時器中,控制FPGA發(fā)送連通性檢測幀的頻率。具體的連通性檢測流程圖如圖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 實驗結(jié)果及數(shù)據(jù)
    設(shè)置Trap的目的IP為10.11.2.23,設(shè)備IP為 10.11.2.158,掉電檢測幀的Destination Port 為162,鏈路連通性檢測的Destination Port為163。設(shè)備上電后,利用抓包軟件Wireshark可以得到如圖4所示的鏈路連通性檢測幀。將設(shè)備突然斷電, 通過Wireshark可以得到如圖5所示的設(shè)備掉電檢測幀。

 

 

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

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