一种总线控制方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种总线控制方法及装置。
背景技术
I2C(Inter-Integrated Circuit,两线式串行总线)是一种用于连接微控制器及其外围设备的应用于微电子通信控制领域的总线标准。通过I2C总线,可以方便的实现对单板状态、环境等信息的监控及管理。I2C总线共有两根信号线,分别为时钟信号线SCL和数据信号线SDA。所有连接到I2C总线上的器件的SCL均连接到总线的SCL,所有连接到I2C总线上的器件的SDA都连接到总线的双向SDA。I2C总线可以发送和接收数据,并且总线上的每个器件(如CPU(Central Processing Unit,中央处理器)、各类传感器、存储设备、风扇、时钟芯片)都有唯一的地址,其中,CPU经常作为I2C总线上的主设备,主设备通常只有一个;各类传感器、存储设备、风扇、时钟芯片作为I2C总线上的从设备,从设备通常有两个或两个以上。
I2C总线在工作时通常不会产生锁定现象,但是当总线受到干扰或者任意一个从设备或主设备发生异常时,就有可能导致总线被锁定。现有技术在解决由于从设备异常引起的总线被锁定的情况时,通常采用断开所有从器件的电源,等待从器件工作电源设定时间过后,重启从器件,从而使从器件恢复至初始状态。然而,若从器件发生短路等特殊原因,则根本无法通过断开所有从器件的电源,等待从器件工作电源设定时间过后重启从器件的方法解决总线被锁定的情况。并且,现有技术无法排除总线受到干扰而引起的总线被锁定的情况,降低了总线的可靠性。
发明内容
本发明的实施例提供一种总线控制方法及装置,通过获取总线信息确认总线的状态,并在总线被锁定的状态下发送异常信息,以解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种总线控制方法,该方法包括:
若总线处于被锁定的状态,则关闭所述总线与所有从设备之间连接的开关,以及获取第一总线信息,其中,所述第一总线信息用于指示所述总线的当前状态;
若所述第一总线信息指示所述总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从所述告警装置获知所述总线出现异常。
在第一种可能的实现方式中,根据第一方面,
若所述第一总线信息指示所述总线处于正常工作的状态,则根据预设策略,开启所述总线与所有从设备中的第一从设备之间连接的开关;
获取第二总线信息,其中,所述第二总线信息用于指示所述总线的当前状态;
若所述第二总线信息指示所述总线处于被锁定的状态,则发送第二异常信息至告警装置,以使得用户从所述告警装置获知所述第一从设备出现异常。
在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,在所述发送第二异常信息至告警装置后,所述方法还包括:
开启所述总线与所有从设备之间连接的开关,关闭所述总线与所述第一从设备之间连接的开关。
在第三种可能的实现方式中,结合第一方面或第一种可能的实现方式或第二种可能的实现方式,
若所述第二总线信息指示所述总线处于正常工作的状态,则根据所述预设策略,关闭所述总线与所述第一从设备之间连接的开关、开启所述总线与所有从设备中的第二从设备之间连接的开关;
获取第三总线信息,其中,所述第三总线信息用于指示所述总线的当前状态;
若所述第三总线信息指示所述总线处于被锁定的状态,则发送第三异常信息至告警装置,以使得用户从所述告警装置获知所述第二从设备出现异常。
在第四种可能的实现方式中,结合第一方面或第一种可能的实现方式至第三种可能的实现方式,在所述发送第三异常信息至告警装置后,所述方法还包括:
开启所述总线与所有从设备之间连接的开关,关闭所述总线与所述第二从设备之间连接的开关。
在第五种可能的实现方式中,结合第一方面或第一种可能的实现方式至第四种可能的实现方式,所述预设策略是指用户设定的依次打开从设备的顺序。
在第六种可能的实现方式中,结合第一方面或第一种可能的实现方式至第五种可能的实现方式,所述方法还包括:
在接收到用户输入的中断信息后,根据所述中断信息,关闭所述总线与所述中断信息所指示的从设备之间连接的开关,其中,所述中断信息用于指示关闭用户所指定的从设备。
在第七种可能的实现方式中,结合第一方面或第一种可能的实现方式至第六种可能的实现方式,所述开关具体包括晶体管。
在第八种可能的实现方式中,结合第一方面或第一种可能的实现方式至第七种可能的实现方式,所述晶体管为N沟道型晶体管。
第二方面,本发明实施例还提供一种总线控制装置,包括:
关闭模块,用于若总线处于被锁定的状态,则关闭所述总线与所有从设备之间连接的开关;
获取模块,用于获取第一总线信息,其中,所述第一总线信息用于指示所述总线的当前状态;
发送模块,用于若所述第一总线信息指示所述总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从所述告警装置获知所述总线出现异常。
在第一种可能的实现方式中,根据第二方面,所述装置还包括:
开启模块,用于若所述第一总线信息指示所述总线处于正常工作的状态,则根据预设策略,开启所述总线与所有从设备中的第一从设备之间连接的开关;
所述获取模块,还用于获取第二总线信息,其中,所述第二总线信息用于指示所述总线的当前状态;
所述发送模块,还用于若所述第二总线信息指示所述总线处于被锁定的状态,则发送第二异常信息至告警装置,以使得用户从所述告警装置获知所述第一从设备出现异常。
在第二种可能的实现方式中,结合第二方面或第一种可能的实现方式,所述装置还包括:
所述开启模块,还用于开启所述总线与所有从设备之间连接的开关;
所述关闭模块,还用于关闭所述总线与所述第一从设备之间连接的开关。
在第三种可能的实现方式中,结合第二方面或第一种可能的实现方式或第二种可能的实现方式,
所述关闭模块,还用于若所述第二总线信息指示所述总线处于正常工作的状态,则根据所述预设策略,关闭所述总线与所述第一从设备之间连接的开关;
所述开启模块,还用于若所述第二总线信息指示所述总线处于正常工作的状态,则根据所述预设策略,开启所述总线与所有从设备中的第二从设备之间连接的开关;
所述获取模块,还用于获取第三总线信息,其中,所述第三总线信息用于指示所述总线的当前状态;
所述发送模块,还用于若所述第三总线信息指示所述总线处于被锁定的状态,则发送第三异常信息至告警装置,以使得用户从所述告警装置获知所述第二从设备出现异常。
在第四种可能的实现方式中,结合第二方面或第一种可能的实现方式至第三种可能的实现方式,
所述开启模块,还用于开启所述总线与所有从设备之间连接的开关;
所述关闭模块,还用于关闭所述总线与所述第二从设备之间连接的开关。
在第五种可能的实现方式中,结合第二方面或第一种可能的实现方式至第四种可能的实现方式,所述预设策略是指用户设定的依次打开从设备的顺序。
在第六种可能的实现方式中,结合第二方面或第一种可能的实现方式至第五种可能的实现方式,
所述关闭模块,还用于在接收到用户输入的中断信息后,根据所述中断信息,关闭所述总线与所述中断信息所指示的从设备之间连接的开关,其中,所述中断信息用于指示关闭用户所指定的从设备。
在第七种可能的实现方式中,结合第二方面或第一种可能的实现方式至第六种可能的实现方式,所述开关具体包括晶体管。
在第八种可能的实现方式中,结合第二方面或第一种可能的实现方式至第七种可能的实现方式,所述晶体管为N沟道型晶体管。
本发明实施例所提供的一种总线控制方法及装置,通过若总线处于被锁定的状态,则关闭所述总线与所有从设备之间连接的开关,以及获取第一总线信息,其中,所述第一总线信息用于指示所述总线的当前状态,以及若所述第一总线信息指示所述总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从所述告警装置获知所述总线出现异常。通过该方案,由于在总线被锁定的状态下关闭所述总线与所有从设备之间连接的开关,并且获取了第一总线信息并确认了总线的当前状态,并在总线仍旧处于被锁定的状态下发送异常信息,以解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种总线控制方法的流程示意图一;
图2为本发明实施例提供的一种总线控制方法的流程示意图二;
图3为本发明实施例提供的一种总线控制方法连接关系示意图一;
图4为本发明实施例提供的一种总线控制方法连接关系示意图二;
图5为本发明实施例提供的一种总线控制装置的结构示意图一;
图6为本发明实施例提供的一种总线控制装置的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种总线控制方法,以I2C总线为例,如图1所示,该方法包括:
S101、若总线处于被锁定的状态,总线控制装置则关闭总线与所有从设备之间连接的开关,以及总线控制装置获取第一总线信息。
其中,第一总线信息用于指示总线的当前状态。
I2C总线是一种用于连接微控制器及其外围设备的应用于微电子通信控制领域的总线标准。通过I2C总线,可以方便的实现对单板状态、环境等信息的监控及管理。I2C总线可以发送和接收数据,并且总线上的每个器件(如CPU、各类传感器、存储设备、风扇、时钟芯片)都有唯一的地址,其中,CPU经常作为I2C总线上的主设备,主设备通常只有一个;各类传感器、存储设备、风扇、时钟芯片作为I2C总线上的从设备,从设备通常有两个或两个以上。I2C总线在工作时通常不会产生锁定现象,但是当总线受到干扰或者任意一个从设备或主设备发生异常时,就有可能导致总线被锁定。
现有技术中,在解决由于从设备异常引起的总线被锁定的情况时,通常采用断开所有从器件的电源,等待从器件工作电源设定时间过后,重启从器件,从而使从器件恢复至初始状态的方式。I2C总线开始工作时,首先接通电源,I2C总线、主设备与从设备正常工作;当检测到I2C总线被锁定时,则断开所有从器件的电源,等待从器件工作电源设定时间过后,再次接通电源,也就是说等待从设备重启,从而使从器件恢复至初始状态。然而,若从器件发生短路等特殊原因,则根本无法通过断开所有从器件的电源,等待从器件工作电源设定时间过后重启从器件的方法解决总线被锁定的情况。
需要说明的是,I2C总线在数据传输时,SDA和SCL通常保持高电平的状态。I2C总线被锁定的状态是指I2C总线在数据传输时,SDA或者SCL被拉低成低电平,导致I2C总线无法正常的传输数据。
本发明实施例提供一种总线控制方法,能够解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
首先,总线控制装置在总线处于被锁定的状态,关闭总线与所有从设备之间连接的开关后,获取第一总线信息,其中,第一总线信息用于指示总线的当前状态。这是为了检测在总线处于被锁定的状态时,到底是哪一个部分出现了异常。
其中,开关具体包括晶体管。晶体管为N沟道型晶体管。
需要说明的是,每一个从设备均通过两个晶体管与总线控制装置相连,两个晶体管分别连在每一个从设备的SDA和SCL上,且晶体管的栅极与总线控制装置连接,以使得总线控制装置通过栅极控制晶体管的开启和关闭,进而控制与晶体管相连的从设备的开启和关闭。
需要说明的是,本发明实施例所提到的总线信息对应的总线的状态分为总线被锁定的状态,以及总线正常工作的状态。
S102、若第一总线信息指示总线仍处于被锁定的状态,总线控制装置则发送第一异常信息至告警装置,以使得用户从告警装置获知总线出现异常。
其中,第一异常信息用于指示总线异常的状态。
在总线控制装置获取第一总线信息后,确认第一总线信息指示的总线的状态。若第一总线信息指示总线仍处于被锁定的状态,总线控制装置则发送第一异常信息至告警装置,以使得用户获知总线出现异常。其中,第一异常信息用于指示总线异常的状态。
总线控制装置获取第一总线信息后,确认第一总线信息指示的总线的状态。由于总线信息对应的总线的状态可以为总线被锁定的状态,或者总线正常工作的状态,因此,总线控制装置确认第一总线信息指示的总线的状态也就是总线控制装置确认断开了所有从设备后的当前时刻总线是否被锁定。若第一总线信息指示总线仍处于被锁定的状态,即断开了所有从设备后的当前时刻总线仍然被锁定,则说明此时总线出现了异常,总线控制装置则发送第一异常信息至告警装置,以使得用户获知总线出现异常。
需要说明的是,总线控制装置则发送第一异常信息至告警装置,在总线出现异常的情况下,用户能够获知总线出现异常,从而对总线进行维修或替换,进而排除总线异常的情况。
可以理解的,本发明实施例所提供的晶体管为N沟道型晶体管,后文不再赘述。
本发明实施例所提供的一种总线控制方法,通过若总线处于被锁定的状态,则关闭总线与所有从设备之间连接的开关,以及获取第一总线信息,其中,第一总线信息用于指示总线的当前状态,以及若第一总线信息指示总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从告警装置获知总线出现异常。通过该方案,由于在总线被锁定的状态下关闭总线与所有从设备之间连接的开关,并且获取了第一总线信息并确认了总线的当前状态,并在总线仍旧处于被锁定的状态下发送异常信息,以解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
本发明实施例提供一种总线控制方法,如图2所示,仍旧以I2C总线为例,该方法包括:
S201、若总线处于被锁定的状态,总线控制装置则关闭总线与所有从设备之间连接的开关,以及总线控制装置获取第一总线信息。
其中,第一总线信息用于指示总线的当前状态。
I2C总线是一种用于连接微控制器及其外围设备的应用于微电子通信控制领域的总线标准。通过I2C总线,可以方便的实现对单板状态、环境等信息的监控及管理。I2C总线可以发送和接收数据,并且总线上的每个器件(如CPU、各类传感器、存储设备、风扇、时钟芯片)都有唯一的地址,其中,CPU经常作为I2C总线上的主设备,主设备通常只有一个;各类传感器、存储设备、风扇、时钟芯片作为I2C总线上的从设备,从设备通常有两个或两个以上。I2C总线在工作时通常不会产生锁定现象,但是当总线受到干扰或者任意一个从设备或主设备发生异常时,就有可能导致总线被锁定。
需要补充的是,I2C总线在数据传输时,SDA和SCL通常保持高电平的状态。I2C总线被锁定的状态是指I2C总线在数据传输时,SDA或者SCL被拉低成低电平,导致I2C总线无法正常的传输数据。
本发明实施例提供一种总线控制方法,能够解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
首先,总线控制装置在总线处于被锁定的状态,关闭总线与所有从设备之间连接的开关后,获取第一总线信息,其中,第一总线信息用于指示总线的当前状态。这是为了检测在总线处于被锁定的状态时,到底是哪一个部分出现了异常。
其中,开关具体包括晶体管。晶体管为N沟道型晶体管。
需要说明的是,每一个从设备均通过两个晶体管与总线控制装置相连,两个晶体管分别连在每一个从设备的SDA和SCL上,且晶体管的栅极与总线控制装置连接,以使得总线控制装置通过栅极控制晶体管的开启和关闭,进而控制与晶体管相连的从设备的开启和关闭。
需要说明的是,本发明实施例所提到的总线信息对应的总线的状态分为总线被锁定的状态,以及总线正常工作的状态。
S202、若第一总线信息指示总线仍处于被锁定的状态,总线控制装置则发送第一异常信息至告警装置,以使得用户从告警装置获知总线出现异常。
其中,第一异常信息用于指示总线异常的状态。
在总线控制装置获取第一总线信息后,确认第一总线信息指示的总线的状态。若第一总线信息指示总线仍处于被锁定的状态,总线控制装置则发送第一异常信息至告警装置,以使得用户获知总线出现异常,其中,第一异常信息用于指示总线异常的状态。
总线控制装置获取第一总线信息后,确认第一总线信息指示的总线的状态。由于总线信息对应的总线的状态可以为总线被锁定的状态,或者总线正常工作的状态,因此,总线控制装置确认第一总线信息指示的总线的状态也就是总线控制装置确认断开了所有从设备后的当前时刻总线是否被锁定。若第一总线信息指示总线仍处于被锁定的状态,即断开了所有从设备后的当前时刻总线仍然被锁定,则说明此时总线出现了异常,总线控制装置则发送第一异常信息至告警装置,以使得用户获知总线出现异常。
需要说明的是,总线控制装置则发送第一异常信息至告警装置,在总线出现异常的情况下,用户能够获知总线出现异常,从而对总线进行维修或替换,进而排除总线异常的情况。
S203、若第一总线信息指示总线处于正常工作的状态,则根据预设策略,总线控制装置开启总线与所有从设备中的第一从设备之间连接的开关。
其中,预设策略是用户设定的依次打开从设备的顺序,第一从设备是所有从设备中的任意一个从设备。
与步骤S202并列的一种情况,在总线控制装置获取第一总线信息后,确认第一总线信息指示的总线的状态。若第一总线信息指示总线处于正常工作的状态,总线控制装置则根据预设策略,开启总线与第一从设备之间连接的开关,其中,预设策略是用户设定的依次打开所有从设备的顺序,第一从设备是所有从设备中的任意一个从设备。
总线控制装置获取第一总线信息后,确认第一总线信息指示的总线的状态。由于总线信息对应的总线的状态可以为总线被锁定的状态,或者总线正常工作的状态,因此,总线控制装置确认第一总线信息指示的总线的状态也就是总线控制装置确认断开了所有从设备后的当前时刻总线是否被锁定。若第一总线信息指示总线处于正常工作的状态,即说明断开了所有从设备后的当前时刻总线处于正常状态,则说明此时某一个从设备出现了异常,若要检测出具体是哪一个从设备发生了异常,总线控制装置则根据预设策略,开启总线与第一从设备之间连接的开关,其中,预设策略是用户设定的依次打开所有从设备的顺序。
需要说明的是,总线控制装置根据预设策略,开启总线与第一从设备之间连接的开关,其中,预设策略是指根据用户制定的策略,按照一定时间顺序依次打开所有的从设备。此时,开启的总线与第一从设备之间连接的开关,是依次打开的所有的从设备中的第一个从设备。
其中,总线控制装置内存储着对应于每个从设备的地址,每个从设备的地址是唯一的。总线控制装置按照一定时间顺序依次打开所有的从设备,该顺序既可以按照地址排列的先后顺序,也可以按照指定的顺序依次打开从设备,本发明不做限制。
S204、总线控制装置获取第二总线信息。
其中,第二总线信息用于指示总线的当前状态。
在总线控制装置则根据预设策略,开启总线与第一从设备之间连接的开关后,总线控制装置获取第二总线信息,其中,第二总线信息用于指示总线的当前状态。
S205、若第二总线信息指示总线处于被锁定的状态,则发送第二异常信息至告警装置,以使得用户从告警装置获知第一从设备出现异常。
其中,第二异常信息用于指示第一从设备异常的状态。
在总线控制装置获取第二总线信息后,确认第二总线信息指示的总线的状态。若第二总线信息指示总线仍处于被锁定的状态,总线控制装置则发送第二异常信息至告警装置,以使得用户获知第一从设备出现异常,其中,第二异常信息用于指示第一从设备异常的状态。
总线控制装置获取第二总线信息后,确认第二总线信息指示的总线的状态。由于总线信息对应的总线的状态可以为总线被锁定的状态,或者总线正常工作的状态,因此,总线控制装置确认第一总线信息指示的总线的状态也就是总线控制装置确认只开启总线与第一从设备之间连接的当前时刻总线是否被锁定。若第二总线信息指示总线仍处于被锁定的状态,即只开启总线与第一从设备之间连接的当前时刻总线仍然被锁定,则说明此时第一从设备出现了异常,总线控制装置则发送第二异常信息至告警装置,以使得用户获知第一从设备出现异常。
需要说明的是,总线控制装置则发送第二异常信息至告警装置,在第一从设备出现了异常的情况下,用户能够获知总线出现异常,因此,总线控制装置能够进行总线异常恢复操作,进而排除总线异常的情况,具体操作如步骤S206所述,此处不再赘述。
需要补充的是,若与总线连接的从设备的数量仅为一,出现总线被锁定的状态,则此时总线与第一从设备之间一定会有一个出现异常。根据上述步骤查找出异常并上报即可,无须再进行下述各种步骤了。
S206、总线控制装置开启总线与所有从设备之间连接的开关,关闭总线与第一从设备之间连接的开关。
在总线控制装置则发送第二异常信息后,说明此时第一从设备出现了异常,要解决当前总线被锁定的状态,总线控制装置开启总线与所有从设备之间连接的开关,关闭总线与第一从设备之间连接的开关,即可使总线恢复正常。
S207、若第二总线信息指示总线处于正常工作的状态,则根据预设策略,总线控制装置关闭总线与第一从设备之间连接的开关、开启总线与所有从设备中的第二从设备之间连接的开关。
与步骤S205并列的一种情况,在总线控制装置获取第二总线信息后,确认第二总线信息指示的总线的状态。若第二总线信息指示总线处于正常工作的状态,总线控制装置则根据预设策略,关闭总线与第一从设备之间连接的开关、开启总线与第二从设备之间连接的开关。
总线控制装置获取第二总线信息后,确认第二总线信息指示的总线的状态。由于总线信息对应的总线的状态可以为总线被锁定的状态,或者总线正常工作的状态,因此,总线控制装置确认第二总线信息指示的总线的状态也就是总线控制装置确认只开启总线与第一从设备之间连接的当前时刻总线是否被锁定。若第二总线信息指示总线处于正常工作的状态,即说明只开启总线与第一从设备之间连接的当前时刻总线处于正常状态,则说明此时第一从设备是正常工作的,除第一从设备以外的一个从设备出现了异常,若要检测出具体是哪一个从设备发生了异常,总线控制装置则根据预设策略,关闭总线与第一从设备之间连接的开关、开启总线与第二从设备之间连接的开关。
S208、总线控制装置获取第三总线信息。
其中,第三总线信息用于指示总线的当前状态。
在总线控制装置关闭总线与第一从设备之间连接的开关、开启总线与第二从设备之间连接的开关后,总线控制装置获取第三总线信息,其中,第三总线信息用于指示总线的当前状态。
S209、若第三总线信息指示总线处于被锁定的状态,总线控制装置则发送第三异常信息至告警装置,以使得用户从告警装置获知第二从设备出现异常。
其中,第三异常信息用于指示第二从设备异常的状态。
在总线控制装置获取第三总线信息后,确认第三总线信息指示的总线的状态。若第三总线信息指示总线仍处于被锁定的状态,总线控制装置则发送第三异常信息至告警装置,以使得用户获知第二从设备出现异常,其中,第三异常信息用于指示第二从设备异常的状态。
总线控制装置获取第三总线信息后,确认第三总线信息指示的总线的状态。由于总线信息对应的总线的状态可以为总线被锁定的状态,或者总线正常工作的状态,因此,总线控制装置确认第三总线信息指示的总线的状态也就是总线控制装置确认只开启总线与第二从设备之间连接的当前时刻总线是否被锁定。若第三总线信息指示总线仍处于被锁定的状态,即只开启总线与第二从设备之间连接的当前时刻总线仍然被锁定,则说明此时第二从设备出现了异常,总线控制装置则发送第三异常信息至告警装置,以使得用户获知第二从设备出现异常。
需要说明的是,总线控制装置则发送第三异常信息至告警装置,在第二从设备出现了异常的情况下,用户能够获知总线出现异常,因此,总线控制装置能够进行总线异常恢复操作,进而排除总线异常的情况,具体操作如步骤S210所述,此处不再赘述。
S210、总线控制装置开启总线与所有从设备之间连接的开关,关闭总线与第二从设备之间连接的开关。
在总线控制装置则发送第三异常信息后,说明此时第二从设备出现了异常,要解决当前总线被锁定的状态,总线控制装置开启总线与所有从设备之间连接的开关,关闭总线与第二从设备之间连接的开关,即可使总线恢复正常。
需要补充的是,若第三总线信息仍指示总线处于正常工作的状态,总线控制装置则根据预设策略,关闭总线与第二从设备之间连接的开关、开启总线与第三从设备之间连接的开关,历遍所有的从设备,直到找出出现异常的从设备为止。
S211、在接收到用户输入的中断信息后,根据中断信息,总线控制装置关闭总线与中断信息所指示的从设备之间连接的开关。
其中,中断信息用于指示关闭用户所指定的从设备。
本发明实施例提供的总线控制方法还可以用于热插拔从设备而造成的总线被锁定的情况,其中,热插拔是允许用户在不关闭系统,不切断电源的情况下取出和更换损坏的硬盘、电源或板卡等部件,从而提高了系统对灾难的及时恢复能力、扩展性和灵活性的功能。
用户在热插拔某一从设备时,首先输入中断信息,其中,中断信息用于指示关闭用户所指定的从设备。总线控制装置接收到用户输入的中断信息。
在总线控制装置接收到用户输入的中断信息后,总线控制装置根据中断信息,关闭总线与中断信息所指示的从设备之间连接的开关,断开从设备与总线的连接,从而实现从设备的热插拔,避免了由于热插拔从设备而造成的总线被锁定的情况。
需要补充的是,本发明实施例所提到的总线控制装置可以是包含有GPIO(General Purpose Input Output,通用输入/输出)管脚的主设备,晶体管的栅极连接在主设备的GPIO管脚上;也可以是单独的一个逻辑控制器件,如CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),本发明不做限制。
需要补充的是,本发明实施例所提到的总线控制方法,其中,总线可以是I2C总线,还可以是系统管理总线Smbus或者电源管理总线Pmbus,本发明不做限制。
示例性的,总线控制装置是包含有GPIO管脚的主设备,总线是系统管理总线Smbus,从设备的个数为一,则主设备、从设备,以及总线的连接关系如图3所示。从设备的SDA和SCL通过两个晶体管的源极和漏极分别与Smbus总线相连,晶体管的栅极和主设备的GPIO管脚相连,主设备与Smbus总线直接相连。
在总线处于被锁定的状态,总线控制装置关闭总线与所有从设备之间连接的开关后,总线控制装置获取第一总线信息,若若第一总线信息指示总线仍处于被锁定的状态,则说明此时总线出现了异常,总线控制装置则发送第一异常信息至告警装置,以使得用户获知总线出现异常。
在总线处于被锁定的状态,总线控制装置关闭总线与所有从设备之间连接的开关后,总线控制装置获取第一总线信息,若第一总线信息指示总线处于正常工作的状态,总线控制装置则根据预设策略,开启总线与第一从设备之间连接的晶体管。随后总线控制装置获取第二总线信息,若第二总线信息指示总线处于被锁定的状态,则说明此时第一从设备出现了异常,总线控制装置则发送第二异常信息至告警装置,以使得用户获知第一从设备出现异常。
示例性的,总线控制装置是单独的一个逻辑控制器件CPLD,总线是I2C总线,从设备的个数为二,则主设备、从设备、CPLD,以及总线的连接关系如图4所示。从设备的SDA和SCL通过两个晶体管的源极和漏极分别与I2C总线相连,晶体管的栅极和CPLD相连,主设备与I2C总线直接相连,且CPLD与I2C总线相连。
在总线处于被锁定的状态,总线控制装置总线关闭与所有从设备之间连接的开关后,总线控制装置获取第一总线信息,若第一总线信息指示总线仍处于被锁定的状态,则说明此时总线出现了异常,总线控制装置则发送第一异常信息至告警装置,以使得用户获知总线出现异常。
在总线处于被锁定的状态,总线控制装置关闭总线与所有从设备之间连接的开关后,总线控制装置获取第一总线信息,若第一总线信息指示总线处于正常工作的状态,总线控制装置则根据预设策略,开启总线与第一从设备之间连接的晶体管。随后总线控制装置获取第二总线信息,若第二总线信息指示总线处于被锁定的状态,则说明此时第一从设备出现了异常,总线控制装置则发送第二异常信息至告警装置,以使得用户获知第一从设备出现异常,总线控制装置开启总线与第二从设备之间连接的晶体管,关闭总线与第一从设备之间连接的晶体管。
在总线处于被锁定的状态,总线控制装置关闭总线与所有从设备之间连接的开关后,总线控制装置获取第一总线信息,若若第一总线信息指示总线处于正常工作的状态,总线控制装置则根据预设策略,开启总线与第一从设备之间连接的晶体管。随后总线控制装置获取第二总线信息,若第二总线信息指示总线处于正常工作的状态,总线控制装置则根据预设策略,关闭总线与第一从设备之间连接的晶体管、开启总线与第二从设备之间连接的晶体管。随后总线控制装置获取第三总线信息,若第三总线信息指示总线处于被锁定的状态,则说明此时第二从设备出现了异常,总线控制装置则发送第三异常信息至告警装置,以使得用户获知第二从设备出现异常,总线控制装置开启总线与第一从设备之间连接的晶体管,关闭总线与第二从设备之间连接的晶体管。
在总线正常工作时,若用户想要热插拔第二从设备,用户输入中断信息,中断信息用于指示关闭第二从设备。总线控制装置获取中断信息,并根据中断信息,关闭总线与中断信息所指示的从设备之间连接的晶体管。随后,用户可以对热插拔第二从设备。
本发明实施例所提供的一种总线控制方法,通过若总线处于被锁定的状态,则关闭总线与所有从设备之间连接的开关,以及获取第一总线信息,其中,第一总线信息用于指示总线的当前状态,以及若第一总线信息指示总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从告警装置获知总线出现异常。通过该方案,由于在总线被锁定的状态下关闭总线与所有从设备之间连接的开关,并且获取了第一总线信息并确认了总线的当前状态,并在总线仍旧处于被锁定的状态下发送异常信息,以解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
本发明实施例提供一种总线控制装置1,如图5所示,该总线控制装置1包括:
关闭模块10,用于若总线处于被锁定的状态,则关闭总线与所有从设备之间连接的开关。
获取模块11,用于获取第一总线信息,其中,第一总线信息用于指示总线的当前状态。
发送模块12,用于若第一总线信息指示总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从告警装置获知总线出现异常。
进一步地,如图6所示,总线控制装置1还包括:
开启模块13,用于若第一总线信息指示总线处于正常工作的状态,则根据预设策略,开启总线与所有从设备中的第一从设备之间连接的开关。
获取模块11,还用于获取第二总线信息,其中,第二总线信息用于指示总线的当前状态。
发送模块12,还用于若第二总线信息指示总线处于被锁定的状态,则发送第二异常信息至告警装置,以使得用户从告警装置获知第一从设备出现异常。
进一步地,开启模块13,还用于开启总线与所有从设备之间连接的开关。
关闭模块10,用于关闭总线与第一从设备之间连接的开关。
进一步地,关闭模块10,还用于若第二总线信息指示总线处于正常工作的状态,则根据预设策略,关闭总线与第一从设备之间连接的开关。
开启模块13,还用于若第二总线信息指示总线处于正常工作的状态,则根据预设策略,开启总线与所有从设备中的第二从设备之间连接的开关。
获取模块11,还用于获取第三总线信息,其中,第三总线信息用于指示总线的当前状态。
发送模块12,还用于若第三总线信息指示总线处于被锁定的状态,则发送第三异常信息至告警装置,以使得用户从告警装置获知第二从设备出现异常。
进一步地,开启模块13,还用于开启总线与所有从设备之间连接的开关,关闭模块10,还用于关闭总线与第二从设备之间连接的开关。
进一步地,预设策略是指用户设定的依次打开从设备的顺序。
进一步地,关闭模块10,还用于在接收到用户输入的中断信息后,根据中断信息,关闭总线与中断信息所指示的从设备之间连接的开关,其中,中断信息用于指示关闭用户所指定的从设备。
进一步地,开关具体包括晶体管。
进一步地,晶体管为N沟道型晶体管。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本发明实施例提供一种总线控制装置,包括关闭模块,用于若总线处于被锁定的状态,则关闭总线与所有从设备之间连接的开关,获取模块,用于获取第一总线信息,其中,第一总线信息用于指示总线的当前状态,以及发送模块,用于若第一总线信息指示总线仍处于被锁定的状态,则发送第一异常信息至告警装置,以使得用户从告警装置获知总线出现异常。通过该方案,由于在总线被锁定的状态下关闭总线与所有从设备之间连接的开关,并且获取了第一总线信息并确认了总线的当前状态,并在总线仍旧处于被锁定的状态下发送异常信息,以解决由于从设备异常或者总线受到干扰而引起的总线被锁定的情况,提高了总线的可靠性。
本发明实施例提供一种总线控制系统,包括至少一个从设备,与从设备相连的总线,以及具有上述任一特征的总线控制装置。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。