專利名稱:一種提高通訊設備以太網口工作穩定性的方法
技術領域:
本發明涉及通訊領域設備的穩定性技術,特別涉及通訊設備的以太網口穩定性技術。
背景技術:
以太網口(下稱網口)是通訊設備中的常用接口。網口穩定性直接決定了通訊設備的系統穩定性。網口工作時主要負責數據包的接收和發送。
網口的控制器的MAC(媒體訪問控制)層提供MII(媒體獨立接口),一般接PHY(物理層)芯片。網口一般通過DMA(直接數據存取)與系統交換收發數據。帶網口的設備的控制系統中,一般都有網口驅動程序,網口驅動實現對網口控制器的初始化、控制、中斷響應、收發數據等。
網口“死”、“吊死”或網口“掛死”是網口工作不穩定的表現,也是一些通訊設備中時常發生的問題,尤其是在采用低端網口控制器的通訊設備中更易出現。當上述問題發生時,系統的其它接口如串口等正常,但網口卻無法PING通。當該問題出現時,整個系統將無法正常工作。因此,提高通訊設備以太網口工作穩定性對整個通訊系統的穩定工作非常關鍵。
發明內容
本發明要解決的問題是克服現有通訊設備以太網口工作穩定性差的缺陷,進而提供一種提高通訊設備以太網口工作穩定性的方法,在不影響系統正常運行的前提下,消除網口偶爾異常對系統的嚴重影響。
本發明采用以下技術方案一種提高通訊設備以太網口工作穩定性的方法,包括以下步驟步驟一對反映網口收、發功能的事件設置全局變量進行計數,分別記做Rcount,Tcount;步驟二定期檢查Rcount,Tcount值;步驟三若Rcount,Tcount值均不為零,則將計數清零,重復步驟一到步驟二;若Rcount或Tcount值中任一為零,則將網口設成自環模式,并發一個自環測試包;步驟四經過一段延遲時間,關閉自環模式;步驟五判斷Rcount,Tcount值;若均不為零,則轉步驟一;若任一為零,則關閉系統中斷,復位網口,重新初始化相關軟、硬件,使得網口能恢復正常工作,再開系統中斷,轉步驟一。
進一步地,所述反映網口收、發功能的事件包括網口的收、發包或收、發中斷。
進一步地,所述自環測試包為廣播包,其目的ip設為一個系統中不存在的ip。
進一步地,所述一段延遲時間設置為操作系統基本時間單位的倍數。
與現有技術相比,采用本發明方法可在線檢測出網口的異常工作狀態,及時地復位網口,并使得網口能重新正常工作,從而提高了系統的穩定性。
具體實施例方式
下面說明本發明的具體實施本發明在網口驅動的收、發中斷或其它流程中分別統計收、發包計數(Rcount,Tcount),利用系統中已有的定時程序,每隔一段時間判收、發包是否為零,若均不為零,就清計數值,若收、發計數任一為零,則設置網口為自環模式,自環發一特定包,在等待該包能被系統收到的一很短時間后,再判收、發包是否為零,若都不為零,說明網口正常,若有一計數為零,則將網口復位,并重新初始化網口。
應用本發明,當網口正常時,網絡中不斷出現的廣播包會使得收、發包計數不為零,因此不影響系統正常的運行。當網口異常時,網口將被復位且重新初始化,從而恢復正常。
例如,在系統的網口驅動程序中,定義收、發中斷的32位的全局計數變量Rcount,Tcount,初始值為零,系統每進入一次發中斷程序,就將Tcount加1,系統每進一次收中斷程序,就將Rcount加1。另外,定義一個64字節的廣播包packet_ff,將其目的ip設為一個系統中不存在的ip,用于自環測試包。設置一個子模塊scan8,系統定時程序每3到15秒調用一次。
子模塊scan8中的處理步驟如下第一步判Rcount和Tcount是否為0,如均不為0則清Rcount,Tcount,返回,否則執行第二步;第二步將網口MAC自環位置位,MAC進入自環狀態;第三步調用發送程序,將準備的自環發送包packet_ff發出;第四步延遲一個或若干個tick(操作系統基本時間單位);第五步將網口MAC自環位復位,MAC脫離自環狀態;第六步再判Rcount和Tcount是否全不為0,如果是,清Rcount和Tcount返回,否則執行第七步;第七步關系統中斷,復位網口,重新初始化網口的緩存,DMA和MAC,則網口可重新工作,再開系統中斷,恢復網口。
綜上所述,本發明提供了一種在線動態檢測網口掛死并再恢復的方法,在不影響系統正常運行的前提下,能解決網口偶爾異常對系統的嚴重影響問題。本發明不同于靜態自檢,本發明能在系統運行時使用。
當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。
權利要求
1.一種提高通訊設備以太網口工作穩定性的方法,包括以下步驟步驟一對反映網口收、發功能的事件設置全局變量進行計數,分別記做Rcount,Tcount;步驟二定期檢查Rcount,Tcount值;步驟三若Rcount,Tcount值均不為零,則將計數清零,重復步驟一到步驟二;若Rcount或Tcount值中任一為零,則將網口設成自環模式,并發一個自環測試包;步驟四經過一段延遲時間,關閉自環模式;步驟五判斷Rcount,Tcount值;若均不為零,則轉步驟一;若任一為零,則關閉系統中斷,復位網口,重新初始化相關軟、硬件,使得網口能恢復正常工作,再開系統中斷,轉步驟一。
2.根據權利要求1所述的方法,其特征在于,所述反映網口收、發功能的事件包括網口的收、發包或收、發中斷。
3.根據權利要求1所述的方法,其特征在于,所述自環測試包為廣播包,其目的ip設為一個系統中不存在的ip。
4.根據權利要求1所述的方法,其特征在于,所述一段延遲時間設置為操作系統基本時間單位的倍數。
全文摘要
本發明旨在提供一種提高通訊設備以太網口工作穩定性的方法,包括以下步驟對反映網口收、發功能的事件設置全局變量進行計數,分別記做Rcount,Tcount;定期檢查Rcount,Tcount值;若Rcount,Tcount值均不為零,則將計數清零,重復以上步驟;若Rcount或Tcount值中任一為零,則將網口設成自環模式,并發一個自環測試包;經過一段延遲時間,關閉自環模式;判斷Rcount,Tcount值;若均不為零,則返回;若任一為零,則關閉系統中斷,復位網口,重新初始化相關軟、硬件,使得網口能恢復正常工作,再開系統中斷,返回。本發明可在線檢測出網口的異常工作狀態,及時地復位網口,并使得網口能重新正常工作,從而提高了系統的穩定性。
文檔編號H04L12/26GK1956387SQ20051009497
公開日2007年5月2日 申請日期2005年10月24日 優先權日2005年10月24日
發明者唐建國, 郭鐘, 王民, 鮑志平 申請人:中興通訊股份有限公司