本申请涉及通信,特别是涉及一种光模块i2c电路的异常处理方法、装置、设备和介质。
背景技术:
1、随着通信技术的发展,出现了交换机设备。交换机设备广泛应用于企业网络、大型园区网络和数据中心,在这些大型网络环境中像桥梁一样连接各个网络设备。其本身是否稳定可靠决定了整个网络的性能和稳定性。
2、光模块是交换机重要部件,因其支持热插拔的特性,常常有插入不到位、金手指氧化等各种问题。特别是客户线上设备问题,常常需要到客户现场进行排查,严重影响响应速度,带来很不好的客户体验。
3、在低成本设计方案中常常使用多个光模块连接到一条i2c总线的设计,目前光模块i2c异常故障常用的是cpu软件处理。当i2c访问异常出现锁死时,发送9个连续clock尝试解锁,如果不能解锁成功则将一直复位整个i2c switch进行隔离。这种方式,不能确定是哪个环节的问题,异常定位不精确。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种光模块i2c电路的异常处理方法、装置、设备和介质。
2、一种光模块i2c电路的异常处理方法,光模块i2c电路包括cpu以及至少一个光模块,上述的cpu通过i2c总线与各所述光模块连接,上述的方法包括:
3、cpu向当前光模块发送访问指令;
4、当访问失败时,cpu获取i2c总线的信号状态;
5、当i2c总线的信号状态中scl为锁死状态时,cpu跳过当前光模块访问下一个光模块,并对当前光模块进行告警提示。
6、在其中一个实施例中,上述的光模块i2c电路还包括与cpu连接的cpld,cpld还与i2c总线连接,cpu获取i2c总线的信号状态,包括:
7、cpld实时监控i2c总线的信号状态,并将i2c总线的信号状态存入i2c状态寄存器;
8、cpu读取i2c状态寄存器,以获取i2c总线的信号状态;或者
9、cpld在监控到i2c总线的信号状态为锁死状态时,向cpu上报异常信息。
10、在其中一个实施例中,上述的i2c总线的信号状态中还包括sda的信号状态,上述的方法还包括:
11、当sda的信号状态为锁死状态时,cpu执行解锁,当解锁不成功时,cpu执行跳过当前光模块访问下一个光模块的步骤。
12、在其中一个实施例中,上述的方法还包括:
13、当访问失败且i2c总线的信号状态无锁死时,cpu重新向当前光模块发送访问指令;
14、当访问失败且访问次数达到预设次数时,cpu执行跳过当前光模块访问下一个光模块的步骤。
15、在其中一个实施例中,上述的光模块i2c电路还包括与各光模块连接的switch,switch通过i2c总线连接cpu,cpu跳过当前光模块访问下一个光模块,并对当前光模块进行告警提示之前,上述的方法还包括:
16、cpu控制switch复位以及解复位,以释放switch和cpu之间的i2c总线;
17、cpu对当前光模块创建异常标记,并根据异常标记跳过当前光模块访问下一个光模块。
18、在其中一个实施例中,上述的方法还包括:
19、cpu控制与当前光模块对应的指示灯点亮;和/或
20、cpu根据异常标记以及i2c总线的信号状态中scl状态为锁死状态,生成提示信息,通过串口打印提示信息;和/或
21、cpu将提示信息以日志的形式存储于本地。
22、在其中一个实施例中,上述的switch包括多个,各switch分别连接隔离电路、电源以及多个光模块,上述的方法还包括:
23、当其中一个目标switch以及对应的各光模块所属电源域出现短路时,通过目标switch所连的隔离电路隔离目标switch所属电源域与其他switch所属电源域,以便cpu跳过目标switch所属电源域内的各光模块,访问其他switch所连接的各光模块。
24、一种光模块i2c电路的异常处理装置,上述的光模块i2c电路包括cpu以及至少一个光模块,cpu通过i2c总线与各所述光模块连接,上述的装置包括:
25、发送模块,用于cpu向当前光模块发送访问指令;
26、获取模块,用于当访问失败时,cpu获取所述i2c总线的信号状态;
27、处理模块,用于当i2c总线的信号状态中scl为锁死状态时,cpu跳过当前光模块访问下一个光模块,并对当前光模块进行告警提示。
28、一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
29、cpu向当前光模块发送访问指令;
30、当访问失败时,cpu获取i2c总线的信号状态;
31、当i2c总线的信号状态中scl为锁死状态时,cpu跳过当前光模块访问下一个光模块,并对当前光模块进行告警提示。
32、一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
33、cpu向当前光模块发送访问指令;
34、当访问失败时,cpu获取i2c总线的信号状态;
35、当i2c总线的信号状态中scl为锁死状态时,cpu跳过当前光模块访问下一个光模块,并对当前光模块进行告警提示。
36、上述光模块i2c电路的异常处理方法、装置、设备和介质,通过cpu向当前光模块发送访问指令;当访问失败时,cpu获取i2c总线的信号状态;当i2c总线的信号状态中scl为锁死状态时,cpu跳过当前光模块访问下一个光模块,并对当前光模块进行告警提示。采用本申请的方案可以精准定位访问失败的问题所在,根据定位的问题采取对应跳过当前光模块访问下一个光模块的处理措施,实现了精准定位异常并跳过异常的光模块,不影响其他光模块的正常访问。
1.一种光模块i2c电路的异常处理方法,其特征在于,所述光模块i2c电路包括cpu以及至少一个光模块,所述cpu通过i2c总线与各所述光模块连接,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述光模块i2c电路还包括与所述cpu连接的cpld,所述cpld还与所述i2c总线连接,所述cpu获取所述i2c总线的信号状态,包括:
3.根据权利要求1所述的方法,其特征在于,所述i2c总线的信号状态中还包括sda的信号状态,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1所述的方法,其特征在于,所述光模块i2c电路还包括与各所述光模块连接的switch,所述switch通过所述i2c总线连接所述cpu,所述cpu跳过所述当前光模块访问下一个光模块之前,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述cpu对所述当前光模块进行告警提示,包括:
7.根据权利要求5所述的方法,其特征在于,所述switch包括多个,各所述switch分别连接隔离电路、电源以及多个所述光模块,所述方法还包括:
8.一种光模块i2c电路的异常处理装置,其特征在于,所述光模块i2c电路包括cpu以及至少一个光模块,所述cpu通过i2c总线与各所述光模块连接,所述装置包括:
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。