1.一种服务器bmci2c异常恢复方法,其特征在于,以计数器统计i2c状态机的状态持续时间,步骤包括:
s1,按时序获取各路i2c总线当前i2c状态机状态;
s2,比较当前i2c状态机状态与上一i2c状态机状态是否相同,如果不相同则执行s3,如果相同则执行s4;
s3,更新上一i2c状态机状态为当前i2c状态机状态,所述计数器复位,执行步骤s1;
s4,判断当前i2c状态机状态是否为idle状态,如果是idle状态,则执行步骤s3,如果不是idle状态则执行步骤s5;
s5,判断所述计数器是否超时,如果超时,则执行步骤s6,否则执行步骤s1;
s6,记录异常日志,复位bmci2c,进入步骤s1。
2.根据权利要求1所述服务器bmci2c异常恢复方法,其特征在于,所述计数器采用独立于bmci2c的时钟作为参考时钟。
3.根据权利要求1所述服务器bmci2c异常恢复方法,其特征在于,bmc的i2c状态寄存器中存储包含表示i2c状态机状态的比特位,表示i2c状态机状态的比特位数值与i2c状态机的状态一一对应,解析表示i2c状态机状态的比特位数值获取i2c状态机状态。
4.根据权利要求1所述服务器bmci2c异常恢复方法,其特征在于,轮询各路i2c总线或者周期性的采集每路i2c总线的bmc的i2c状态寄存器实现获取i2c状态机状态。
5.根据权利要求4所述服务器bmci2c异常恢复方法,其特征在于,轮询各路i2c总线的轮询周期或者周期性采集每路i2c总线的采集周期小于正常状态下i2c状态机各状态的状态持续时间的最小值。
6.根据权利要求1所述服务器bmci2c异常恢复方法,其特征在于,设定超时阈值,所述计数器的技术与所述超时阈值比较判断所述计数器是否超时,所述超时阈值大于正常状态下i2c状态机非idle的各个状态持续时间的最大值。
7.根据权利要求1所述服务器bmci2c异常恢复方法,其特征在于,记录异常日志内容包括发生异常的i2c总线和记录异常发生的时间。
8.根据权利要求7所述服务器bmci2c异常恢复方法,其特征在于,统计异常日志中内容,计算各路i2c总线发生异常的平均频率,设定频率阈值,比较各路i2c总线发生异常的平均频率是否超过所述频率阈值,如果超过所述频率阈值则生成通知用户的报警信息。
9.一种i2c异常自恢复的bmc,其特征在于,包括:
采集模块,所述采集模块用于按时序采集bmci2c状态寄存器的数据;
第一判断模块,所述第一判断模块用于判断i2c状态机的状态是否发生变化;
计数模块,所述计数模块根据所述第一判断模块的结果对非idle状态的状态持续时间进行计时;
第二判断模块,所述第二判断模块判断所述计数模块记录的时间是否超时;
解析模块,所述解析模块用于解析所述bmci2c状态寄存器中表示i2c状态机状态的比特位获取i2c状态机状态,解析过程按照bmc采用的i2c状态机的状态与i2c状态寄存器中表示状态机状态的比特位的映射关系进行;
执行模块,所述执行模块在所述第二判断模块判断超时时,记录异常日志并复位bmci2c。
10.根据权利要求9所述i2c异常自恢复的bmc,其特征在于,包括统计模块,所述统计模块获取所述异常日志中的内容,统计各路i2c总线异常的平均频率;
对比模块,所述对比模块比较平均频率与设定频率阈值,如果平均频率超过所述频率阈值,则由通信模块发送报警信息。