背景技术
无论在EPON(Ethernet Passive Optical Network,基于以太网的无源光网络)网络还是在GPON(Gigabit Passive Optical Network,吉比特无源光网络)形成的PON网络系统,均是由光线路终端(Optical Line Terminal,OLT)通过光分配网络(Optical Distribution Network,ODN)连接多个光网络单元(Optical Network Unit,ONU)而形成,它是一种点到多点(P2MP)结构的单纤双向接入网络,其典型的组网示意图如图1所示。
在工作过程中,从OLT到ONU的下行数据采用广播方式通过ODN发送给各ONU,各ONU只选择接收属于自己的数据包,丢弃其它数据包,其下行发送原理如图2所示。
从ONU到OLT的上行数据采用TDMA(时分复用)的发送方式,如图3所示。所有上行数据的传输均由OLT控制,OLT在同一时刻只允许一个ONU发送上行数据,ONU只能在自己的时隙发数上行数据。但是,如果在PON网络中有一个ONU因为软件或者硬件异常导致不能按照OLT分配的时隙来关闭光模块发光器,那么该ONU的光模块将一直处于长发光状态。此异常ONU会占据所有上行光信号的时隙,此会导致OLT下的所有其他ONU都无法发送上行的数据,进而会使该OLT下的所有ONU出现业务数据不通和全部掉线的状态。我们称为该类故障ONU为长发光ONU。
为解决此问题,烽火通信科技股份有限公司曾向国家知识产权局申请了一篇名为《一种无源光网络检测长发光ONU的方法》(申请号:201010153494.9)的专利,在该专利中,烽火通信提出了一种检测长发光ONU的检测方法,其工作原理是:ONU判断光模块发出的高电平信号是否超过了无源光网络的最小轮询周期,其中所述最小轮询周期具体为:该ONU占满PON系统最大上行带宽ONU光模块需要保持高电平的时间。当光模块发出的高电平信号超过无源光网络的最小轮询周期以后,则通过GPON媒体存取控制器上的设置的CPU来控制光模块的发光电源VCC_TX进而关闭该光模块。
然而,申请人通过研究该专利后发现,该专利揭示的技术方案存在如下缺陷:
1、在本方案中,由于ONU需要检测光模块高电平的持续时间,如果需要精确检测高电平的持续时间,ONU就必须密集采样光模块是否处于高电平状态,这样会导致ONU的CPU负担非常重,如此会对ONU本身的性能和业务产生影响;如果为了减少CPU负担,将采样的时间点间隔变长,这种情况下会导致检测高电平的持续时间不准确,从而导致误判断长发光现象。
2、直接通过CPU发送高低电平来控制光模块的发光电源并不安全,会有导致误操作的情况出现。因为有些ONU长发光现象是因为暴雨致使ONU设备进水导致的,此时如果CPU挂死,而ONU光模块一直处于高电平状态,这时光模块的电源就无法断开,会导致ONU设备仍然处于长发光状态。
发明内容
有鉴于此,本发明提供一种无源光网络中检测光模块长发光的方法和装置。通过本发明,可以使得在PON系统中检测长发光的ONU更可靠、更精确。
为实现本发明目的,本发明实现方案具体如下:
一种无源光网络中检测光模块长发光的装置,所述装置用于检测无源光网络中的ONU光模块长发光故障,其中所述装置包括:
计时器模块,用于对光模块长发光检测周期进行计时,当光模块长发光检测周期到来时,开启检测光模块长发光进程;当光模块长发光检测周期结束时,关闭光模块长发光检测进程,并等待下一个检测周期的到来;
长发光检测模块,用于对ONU设备的光模块长光发进行检测;
触发翻转模块,用于在所述光模块处于正常状态时,使得所述ONU光模块flag标志位进行翻转;
计数器模块,用于在所述光模块处于非正常状态时,统计长发光检测模块检测到ONU设备的光模块长光发异常的次数,并在统计的ONU光模块长发光异常次数大于设定的阈值时,通知光模块电源切断模块切断所述光模块电源;
光模块电源切断模块,用于当所述计数器模块统计的ONU光模块长发光异常次数大于设定的阈值时,切断所述发生故障的ONU光模块电源,使之不再发光。
本发明同时提供了一种在无源光网络中检测光模块长发光的方法,所述方法应用于检测无源光网络中的ONU光模块长发光故障,其中所述方法包括:
步骤1、ONU设备上电初始化,光模块长发光标志位Flag置为1;
步骤2、长发光检测进程开启,所述长发光检测模块周期性检测光模块的信号输出;
步骤3、判断所述长发光检测模块检测的当前ONU设备输出的光模块信号是否是高电平,如果是,则进行步骤4,否则,长发光标志位Flag为0,则翻转为1,并返回步骤;
步骤4、判断长发光标志位Flag是否为“1”,如果是,则长发光标志位Flag翻转为0,否则,进行步骤5;
步骤5、计数器模块统计光模块异常的次数,并判断累加后的数值是否超过设定的阈值,如果是,则关闭长发光电源模块并发送trap信息告警,否则返回步骤2。
与现有的技术方案相比,本发明实现的技术方案主要是通过检测光模块周期变化的脉冲信号来判断ONU光模块是否处于长发光状态,当判断处于长发光状态时,通过单稳态电路来切断所述光模块的电源,并在发现光模块故障时点亮设备DIAG灯,记录日志信息,并向OLT发送EOAM的TRAP信息。该方案相比于现有技术方案,不仅系统资源开销小,而且判断准确。
具体实施方式
为了实现本发明目的,本发明采用的核心思想为:本发明通过光模块的周期性变化的脉冲信号边沿触发翻转中断来判断是否处于长发光状态。正常工作时,光模块的信号是周期变化的脉冲信号,长发光后恒定为高电平,不会触发翻转中断,由此判断光模块处于长发光状态。另外,本发明通过单稳态电路来避免CPU挂死后带来的误判的情况。这样可以最大限度的判断光模块长发光现象,最大程度杜绝长发光故障,而且判断准确,避免长发光故障带来的大面积ONU设备异常造成的影响。
为使本发明技术方案更加清楚和明白,在本发明中,引入了“触发翻转中断”概念。
具体地,在本发明中,触发翻转中断为了检测ONU设备的光模块是否处于正常发光状态。当所述检测ONU光模块长发光的装置周期性开启检测光模块长发光进程后,所述装置的长发光检测模块会优先处理检测长发光函数,当检测到ONU设备处于正常状态时就触发翻转中断,处理完后关闭该触发翻转中断模块。为实现本发明目的,本发明中使用flag标志位来表示该触发翻转中断是否被触发过,其中flag标志位为“1”时,表示该模块被触发、电平被翻转过,表示ONU设备的光模块发光正常。Flag标志为“0”时,表示该模块未被触发、电平未被翻转,说明ONU设备的光模块一直处于同一个状态,表示它出现了异常。
以下结合本发明具体实施例加以详细说明。如图4所示,为本发明提供在无源光网络中检测光模块长发光的装置结构示意图。所述装置用于检测无源光网络中的ONU光模块长发光故障。所述装置包括:
计时器模块,用于对ONU光模块长发光检测周期进行计时。
具体地,当ONU光模块长发光检测周期到来时,所述计时器模块开启检测光模块长发光进程;当ONU光模块长发光检测周期结束时,所述计时器模块关闭光模块长发光检测进程,并等待下一个检测周期的到来。
长发光检测模块,用于对ONU设备的光模块长光发进行检测。
具体地,当检测长发光进程开启后,所述长发光检测模块轮询检测ONU设备的光模块,当检测到光模块输出电平为高电平,表示该光模块正处于发光状态;反之,如果检测到光模块输出电平为低电平时,则表示所述光模块处于非发光状态。
触发翻转模块,用于在所述光模块处于正常状态时,使得所述ONU光模块flag标志位进行翻转。
具体地,当长发光检测模块检测到光模块输出电平为高电平时,所述触发翻转模块检查flag标志位,若flag为“1”,则表示之前设备的发光状态经历过高低电平,是正常状态。此时所述触发翻转模块需要把flag标志位置“0”;如果所述长发光检测模块检测到光模块输出电平为低电平时,所述触发翻转模块检查flag标志位,若该标志位为“0”,表示这之前经历过高电平,则把该flag置“1”,表示经历过高低电平,属于正常状态。
计数器模块,用于在所述光模块处于非正常状态时,统计长发光检测模块检测到ONU设备的光模块长光发异常的次数,并在统计的ONU光模块长发光异常次数大于设定的阈值时,通知长发光电源切断模块切断所述光模块电源。
具体地,依据本发明实现方法,所述长发光检测模块周期性检测ONU光模块是否出现长发光故障,如果光模块处于长发光状态,所述光模块就一直发光。这样,当长发光检测模块再次检测光模块时,就会检测到所述光模块输出信号为高电平,此时触发翻转模块再查看flag标志位,若为“0”时,表示上一个周期检测时的也为高电平,两次检测都是高电平的状态,该光模块就可能处于异常状态,则长发光计数器增加1。反复循环后,当计数器模块统计的ONU光模块长发光异常次数大于设定的阈值时,可以判断为长发光状态。若在其间有过低电平,此时flag标志为就置为“1”,表示所述ONU光模块处于正常状态,同时对所述计数器模块中的计数进行清零重新进行统计。
光模块电源切断模块,用于当所述计数器模块统计的ONU光模块长发光异常次数大于设定的阈值时,切断所述发生故障的ONU光模块电源,使之不再发光。
进一步地,在本步骤中,为了防止CPU挂死而导致处于长发光状态的光模块的电源无法断开的情形,本发明中将所述光模块电源切断模块设计成如图5所示的单稳态电路。CPU通过看门狗电路对芯片进行喂狗操作来保持光模块的供电,通过停止给该芯片喂狗来达到停止给光模块供电的目的。通过这样的设计,不仅可以判断出光模块故障导致的长发光,还可以判断出因CPU失效时导致的长发光故障。
具体地,如图5所示,CPU内部设置有一个固定计数频率的计数器,当CPU正常工作时,每隔一个固定时间就输出一个脉冲,将计数器清零,此脉冲会将使CPU输出的信号反转,所以CPU就会输出规律的方波,如图6所示。在本发明中,我们把这样输出的脉冲翻转信号叫做看门狗信号。
单稳态多谐振荡器工作原理如图6所示,当它接收到CPU给的一个上升沿脉冲的时候,它就会保持一段时间的高电平(T1时间)。当CPU输出的方波的两个上升沿之间的时间间隔T2,但T2<T1时,单稳态多谐振荡器就能一直维持高电平状态。
当单稳态多谐振荡器输出为高电平的时候,就能为ONU光模块供电。当它输出为低电平的时候,就不能够给ONU光模块供电。
经过单稳态多谐振荡器后输出信号若为高电平,三极管和地之间就导通,此时MOS管的G和S之间的电压差为3.3V,光模块供电就导通。当单稳态多谐振荡器后输出的若为低电平,三极管无法和地之间导通,此时MOS管的G和S之间的电压差为0V,光模块供电就被断开。
当CPU判断ONU设备长发光故障,CPU停止给该芯片喂狗(不输出翻转的脉冲信号),从而停止给光模块供电。当CPU设备异常时,它输出的电平一直为高电平或低电平,此时无法输出上升沿脉冲,单稳态多谐振荡器就只能维持低电平,光模块电源就被断开。这样就可以准确判断CPU挂死,不给光模块供电。
告警模块,用于当所述装置发现ONU光模块存在故障时,所述告警模块点亮ONU设备上的DIAG灯,同时记录日志信息,并向OLT发送EOAM的TRAP信息。
具体地,如图7所示,所述告警模块可以通过在扩展的EOAM报文DATA字段中加入长发光故障光模块所在的ONU信息,并向OLT发送EOAM的trap信息,同时点亮ONU设备上的DIAG灯和记录日志信息,以便维护人员可以迅速地定位故障点。
本发明同时提供一种在无源光网络中检测光模块长发光的方法流程图,具体如图8所示。其中所述方法应用于检测无源光网络中的ONU光模块长发光故障。所述方法包括:
步骤1、ONU设备上电初始化,光模块长发光标志位Flag置为1。
具体地,当ONU设备上电运行初始化过程后,先默认所述ONU设备处于正常状态,因而设置该ONU设备光模块的长发光标志位flag为“1”。用以表示之前设备的发光状态经历过高低电平,处于正常状态。
步骤2、长发光检测进程开启,所述长发光检测模块周期性检测ONU光模块的信号输出。
具体地,当ONU设备启动后,所述计时器模块获知光模块长发光检测周期到来时,开启检测光模块长发光进程;所述长发光检测模块开始轮询检测各ONU设备的光模块信号输出,如果检测到所述ONU光模块输出为高电平,表示光模块正在发光;反之,如果检测到所述ONU光模块输出为低电平,则表示该光模块处于非发光状态。
步骤3、判断所述长发光检测模块检测的当前ONU设备输出的光模块信号是否是高电平,如果是,则进行步骤4,否则,长发光标志位Flag为“0”,则翻转为1,并关闭触发翻转模块开关,并返回步骤2。
具体地,当所述长发光检测模块检测到所述ONU输出为低电平,则表示该光模块处于非发光状态。此时检查flag标志位,若该标志位为“0”,表示在此之前所述ONU设备光模块经历过高电平,此时需要通过触发翻转中断模块把该flag标志位置为“1”,表示经历过高低电平,属于正常状态。并进一步检查触发翻转中断模块的开关,若所述触发翻转中断模块处于开启关态,则自动关闭该开关。同时返回步骤2等待下一个周期到来时,再次对该ONU设备光模块是否长发光进行检测。
步骤4、判断长发光标志位Flag是否为“1”,如果是,则长发光标志位Flag翻转为0,长发光计数器清零,并关闭触发翻转模块开关,否则,进行步骤5。
具体地,当所述长发光检测模块检测到所述ONU光模块输出为高电平,表示所述ONU光模块正在发光;此时进一步检查flag标志位,若flag为“1”表示之前设备的发光状态经历过高低电平,是正常状态。此时需要通过触发翻转模块把flag标志位置“0”。如果此前计数器模块就该ONU设备光模块长发光检测异常的次数进行了计数,还需要一并对该计数器模块的计数进行清零。另外,如果触发翻转中断模块的开关处于开启关态,则还需要自动关闭该开关,以等待下一个周期到来时再开启。
步骤5、计数器模块进行计数,并判断累加后的数值是否超过设定的阈值,如果是,则关闭长发光电源模块并发送trap信息告警,否则返回步骤2。
具体地,如果所述长发光检测模块检测到所述ONU光模块输出为高电平,表示所述ONU光模块正在发光;而再查看flag标志位,若为“0”时,表示上一个周期检测时的也为高电平,此两次检测所述ONU光模块都是处于高电平的状态,表示该光模块就可能处于异常状态,此时所述计数器模块在之前计数的基础上增加1。当依检测周期反复循环后,当计数器模块累加后的数值超过设定的阈值,则可以判断所述ONU设备的光模块一直处于长发光状态,通过所述光模块电源切断模块关闭长发光光模块的电源并发送trap信息告警,同时点亮ONU设备上的DIAG灯,记录日志信息,并向OLT发送EOAM的TRAP信息。
进一步地,为防止CPU挂死而导致处于长发光状态的光模块的电源无法断开的情形,本发明中将所述光模块电源切断模块设计成如图5所示的单稳态电路结构。CPU通过看门狗电路对芯片进行喂狗操作来保持光模块的供电,通过停止给该芯片喂狗来达到停止给光模块供电的目的。通过这样的设计,不仅可以判断出光模块故障导致的长发光,还可以判断出因CPU失效时导致的长发光故障。
具体地,当CPU正常工作时,每隔一个固定时间就输出一个脉冲,进而CPU会输出规律的方波,我们把这样输出的脉冲翻转信号叫做看门狗信号。当所述CPU正常喂狗时,单稳态多谐振荡器就能一直维持高电平状态。当单稳态多谐振荡器输出为高电平的时候,就能为ONU光模块供电。反之,如果CPU不能正常喂狗时,即不输出有规律的方波,所述单稳态多谐振荡器输出为低电平,此时就不能够给ONU光模块供电。
因此,当CPU设备异常时,所述CPU输出的电平一直为高电平或低电平,此时无法输出上升沿脉冲,单稳态多谐振荡器就只能维持低电平,光模块电源就被断开。这样就可以准确判断CPU挂死,不给光模块供电。
通过以上方案可知,本发明实现的技术方案主要是通过检测光模块周期变化的脉冲信号来判断是否处于长发光状态,当判断处于长发光状态时,通过单稳态电路来切断光模块的电源,发现光模块故障时,同时点亮设备DIAG灯,记录日志信息,并向OLT发送EOAM的TRAP信息。该方案相比于现有技术方案,不仅系统资源开销小,而且判断准确。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。