一种双BIOS的控制方法及相关装置与流程

文档序号:14967461发布日期:2018-07-20 11:22阅读:140来源:国知局

本申请涉及计算机技术领域,特别涉及一种双bios的控制方法、控制装置以及控制系统。



背景技术:

随着计算机技术的出现,在计算机内出现了bios的设计。bios为基本输入输出系统,是basicinput/outputsystem的简称。用于保存计算机系统(或称为计算机)的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。在计算机启动的过程中,bios担负着初始化硬件,检测硬件功能,以及引导操作系统的责任。bios是计算机软件与硬件之间的桥梁,计算机通过bios实现软件和硬件之间的协调工作。如果bios由于升级或者病毒入侵损坏,计算机将不能正常工作,甚至不能启动。

为了解决上述问题,很多主板采用双bios的机制,确保系统正常启动。目前常规的双bios实现方法是在原有系统的基础上增加切换bios的片选芯片、一片备用bios芯片以及主备bios切换电路,通过片选芯片选择在两个bios中进行选择。在实际使用过程中,系统上电以后首先检测主用bios的状态,如果发现主用bios损坏,就会自动切换到备用bios启动系统,然后修复主用bios。

但是现有技术中,主要是通过南桥芯片组和片选芯片在主用bios和备用bios之间进行选择,而非通过bios芯片自身记录的状态进行选择判断。片选芯片判断bios芯片的状态,再选择某个bios芯片作为目前启动的bios,该选择过程只涉及到片选芯片与南桥芯片组的通信,bios本身在启动选择的过程中不输出相应的信号,因此在判断过程中会出现片选芯片接收的信号出错,将备用bios芯片当作主用bios芯片启动的情况。会影响双bios结构的稳定性,使双bios结构失去在计算机设备中的意义。在结构上,还需要将每个bios芯片均和片选芯片、南桥芯片组相连,设计结构复杂。

因此如何解决在双bios结构中切换bios出现切换错误的问题,是本领域技术人员所关注的重点问题。



技术实现要素:

本申请的目的是提供一种双bios的控制方法、控制装置以及控制系统,通过bios主动发送的启动状态判断bios是否启动失败,并使用spi寄存器记录bios启动失败的信息,使处理器、cpld以及bios之间形成相互交互的通信流程,提高了bios切换的稳定性,避免了因端口检测导致bios判断错误的情况。

为解决上述技术问题,本申请提供一种双bios的控制方法,包括:

cpld根据主用bios发送的启动状态信号判断主用bios启动是否失败;

若是,则切换spi总线至备用bios,并将所述主用bios的启动状态写入spi寄存器,以使处理器通过所述spi寄存器获取所述主用bios的启动状态,并根据所述主用bios的启动状态向所述cpld发送切换指令;

根据接收到的所述切换指令将所述spi总线切换至所述主用bios。

可选的,cpld根据主用bios发送的启动状态信号判断主用bios启动是否失败,包括:

所述主用bios通过gpio发送所述启动状态信号;其中,当所述主用bios启动成功时所述启动状态信号为高电压;

所述cpld根据所述启动状态信号的电压判断所述主用bios启动是否失败。

可选的,还包括:

当所述spi总线切换至所述主用bios时,所述处理器对所述主用bios执行维护操作或升级操作。

可选的,还包括:

当所述cpld断电重启后,将所述spi总线切换至主用bios。

本申请还提供一种双bios的控制装置,包括:

启动状态判断模块,用于根据主用bios发送的启动状态信号判断主用bios启动是否失败;

备用bios切换模块,用于当所述主用bios启动失败时,切换spi总线至备用bios,并将所述主用bios的启动状态写入spi寄存器,以使处理器通过所述spi寄存器获取所述主用bios的启动状态,并根据所述主用bios的启动状态向所述cpld发送切换指令;

主用bios切换模块,用于根据接收到的所述切换指令将所述spi总线切换至所述主用bios。

可选的,所述启动状态判断模块包括:

信号发送单元,用于通过gpio发送所述启动状态信号;其中,当所述主用bios启动成功时所述启动状态信号为高电压;

判断单元,用于根据所述启动状态信号的电压判断所述主用bios启动是否失败。

可选的,该装置还包括:

bios维护模块,用于当所述spi总线切换至所述主用bios时,对所述主用bios执行维护操作或升级操作。

可选的,该装置还包括:

断电切换模块,用于当断电重启后,将所述spi总线切换至主用bios。

本申请还提供一种双bios的控制系统,包括:处理器、南桥芯片组、cpld、主用bios与备用bios,所述处理器与所述南桥芯片组连接,所述cpld与所述南桥芯片组连接,所述主用bios和备用bios均与所述cpld连接;

其中,所述cpld用于根据主用bios发送的启动状态信号判断主用bios启动是否失败;若是,则切换spi总线至备用bios,并将所述主用bios的启动状态写入spi寄存器,根据接收到的所述切换指令将所述spi总线切换至所述主用bios;

所述处理器用于通过所述spi寄存器获取所述主用bios的启动状态,并根据所述主用bios的启动状态向所述cpld发送切换指令;

所述主用bios,用于向所述cpld发送启动状态信号。

可选的,所述主用bios,具体用于通过gpio发送所述启动状态信号;其中,当所述主用bios启动成功时所述启动状态信号为高电压;

所述cpld,具体用于根据所述启动状态信号的电压判断所述主用bios启动是否失败。

本申请所提供的一种双bios的控制方法,其特征在于,包括:cpld根据主用bios发送的启动状态信号判断主用bios启动是否失败;若是,则切换spi总线至备用bios,并将所述主用bios的启动状态写入spi寄存器,以使处理器通过所述spi寄存器获取所述主用bios的启动状态,并根据所述主用bios的启动状态向所述cpld发送切换指令;其中,所述主用bios与所述备用bios均通过所述spi总线与所述cpld相连;根据接收到的所述切换指令将所述spi总线切换至所述主用bios。

通过bios主动发送的启动状态判断bios是否启动失败,并使用spi寄存器记录bios启动失败的信息,使处理器、cpld以及bios之间形成相互交互的通信流程,提高了bios切换的稳定性,避免了因端口检测导致bios判断错误的情况。

本申请还提供一种双bios的控制装置以及控制系统,具有上述有益效果,在此不做赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种双bios的控制方法的流程图;

图2为本申请实施例所提供的一种双bios的控制方法的信号判断的流程图;

图3为本申请实施例所提供的一种双bios的控制装置的结构示意图;

图4为本申请实施例所提供的一种双bios的控制系统的结构示意图。

具体实施方式

本申请的核心是提供一种双bios的控制方法、控制装置以及控制系统,通过bios主动发送的启动状态判断bios是否启动失败,并使用spi寄存器记录bios启动失败的信息,使处理器、cpld以及bios之间形成相互交互的通信流程,提高了bios切换的稳定性,避免了因端口检测导致bios判断错误的情况。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种双bios的控制方法的流程图。

本实施例提供一种双bios的控制方法,可以提高双bios切换时的稳定性,该方法可以包括:

s101,cpld根据主用bios发送的启动状态信号判断主用bios启动是否失败;

本步骤旨在cpld(complexprogrammablelogicdevice复杂可编程逻辑器件)根据主用bios发送的启动状态信号判断主用bios启动是否失败。在现有技术中的片选芯片也会通过一些端口的信号判断bios芯片的启动状态,但是该端口的信号并不是bios芯片所控制的用来判断启动状态的信号,因此在片选芯片判断bios启动状态时会出现偏差。并且对于bios芯片无法控制自身是否为主用bios或备用bios,会导致将备用bios判断为主用bios芯片。

因此,本步骤中cpld主要通过bios自身发送的启动状态信号来判断该主用bios是否启动失败。其中,主用bios所发送的启动状态信号是bios芯片对自身状态进行判断得到的状态信号,该状态信号获取的方式就区别于现有技术中通过一些bios芯片无法控制端口信号获取的方式,该过程中bios芯片可以根据自身的控制程序或判断程序输出信号,做到bios芯片知道自己的状态,并且可以进行控制。

具体的,bios芯片发送信号以及获取信号的方式可以根据实际情况做选择,在此不做具体限定。

总的来说,本步骤也就是实现了cpld与bios之间的交互,并且每个部分都可以控制其信号状态。

s102,若是,则切换spi(serialperipheralinterface串行外设接口)总线至备用bios,并且将主用bios的启动状态写入spi寄存器,以使处理器通过spi寄存器获取主用bios的启动状态,并根据主用bios的启动状态向cpld发送切换指令;其中,主用bios与备用bios均通过spi总线与cpld相连;

在步骤s101的基础上,本步骤旨在当判定主用bios启动失败时,将spi总线切换至备用bios,并且将对应的启动状态写入spi寄存器中。主要目的就是当主用bios启动失败后使备用bios接替其工作,完成系统的启动。并且使处理器通过所诉spi寄存器获取主用bios的启动状态,根据启动状态向cpld发送切换指令。

其中,通常情况下处理器是在系统启动后开始获取bios的启动状态,如果发生启动失败的情况,根据启动状态切换bios芯片,并进行维护等操作。

需要知道的是,本步骤中主用bios与备用bios通过spi总线只与cpld芯片进行连接,区别于现有技术中两个bios与片选芯片连接后还与南桥芯片组连接。减少了连接次数,使结构上更为简单。

并且,通过切换spi总线达到切换bios的目的,是通过切换硬件电路完成,可以提高切换时和切换后spi总线与bios连接的稳定性。

s103,根据接收到的切换指令将spi总线切换至主用bios。

在步骤s102的基础上,本步骤旨在根据接收的切换指令将spi总线切换至主用bios。切换至主用bios后就可以直接对bios进行维护升级等操作。

需要说明的是,本步骤中通过切换指令使cpld进行切换区别于现有技术中通过切换系统进程的方式,可以提高双bios结构中双bios之间切换的稳定性。

本实施例中,通过步骤s101的cpld与主用bios之间的相互通信,步骤s102的cpld通过spi寄存器与处理器进行相互的通信,以及步骤s103中通过切换指令进行的相互的通信。使双bios结构在切换bios时,形成三者之间的相互通信,即这三者之间存在一定的交互,可以提高双bios结构的稳定性。

可选的,本实施例还可以包括:

当spi总线切换至主用bios时,处理器对主用bios执行维护操作或升级操作。

当spi总线切换至主用bios时,在通常情况是当系统启动后,因此需要对主用bios进行相应的维护操作,升级操作。

可选的,本实施例还可以包括:

当cpld断电重启后,将spi总线切换至主用bios。

通过本可选方案可以使每次断电重启后都以主用bios作为启动的bios,保持了备用bios处在静默状态,保护其bios信息。

综上,本实施例主要通过bios主动发送的启动状态判断bios是否启动失败,并使用spi寄存器记录bios启动失败的信息,使处理器、cpld以及bios之间形成相互交互的通信流程,提高了bios切换的稳定性,避免了应端口检测导致bios判断错误的情况。

请参考图2,图2为本申请实施例所提供的一种双bios的控制方法的信号判断的流程图。

基于上一实施例,本实施例主要针对上一实施例中如何进行信号判断做的一个具体说明,其他部分与上一实施例大体相同,相同部分可以参考上一实施例。

本实施例可以包括:

s201,主用bios通过gpio发送启动状态信号;其中,当主用bios启动成功时启动状态信号为高电压;

s202,cpld根据启动状态信号的电压判断主用bios启动是否失败。

本实施例中主要是使主用bios通过gpio(generalpurposeinputoutput通用输入/输出)发送启动状态信号。启动状态信号主要是通过电压高低来表现,当主用bios启动成功时启动状态信号变为高电压状态。也就是如果在规定的时间段内或规定的时间点启动状态信号仍为低电压就可以判定主用bios启动失败。据此,就可以使cpld根据启动状态信号的电压判断主用bios启动是否失败。

具体的,在实际操作中可以通过gpiox端口的电压进行升降电压操作。

需要注意的是,本实施例中所提到的高低电压为本技术领域中所规定的高低电压,是技术人员可以清楚的知道的常规定义。

综上,通过本实施例中bios所发送的启动状态信号就可以判断出bios的启动状态,并根据该启动状态执行后续的操作流程。

本申请实施例提供了一种双bios的控制方法,可以通过bios主动发送的启动状态判断bios是否启动失败,并使用spi寄存器记录bios启动失败的信息,使处理器、cpld以及bios之间形成相互交互的通信流程,提高了bios切换的稳定性,避免了因端口检测导致bios判断错误的情况。

下面对本申请实施例提供的一种双bios的控制装置进行介绍,下文描述的一种双bios的控制装置与上文描述的一种双bios的控制方法可相互对应参照。

请参考图3,图3为本申请实施例所提供的一种双bios的控制装置的结构示意图。

本实施例提供一种双bios的控制装置,可以包括:

启动状态判断模块100,用于根据主用bios发送的启动状态信号判断主用bios启动是否失败;

备用bios切换模块200,用于当主用bios启动失败时,切换spi总线至备用bios,并将所述主用bios的启动状态写入spi寄存器,以使处理器通过spi寄存器获取主用bios的启动状态,并根据主用bios的启动状态向cpld发送切换指令;其中,主用bios与备用bios均通过spi总线与cpld相连;

主用bios切换模块300,用于根据接收到的切换指令将spi总线切换至主用bios。

可选的,该启动状态判断模块100可以包括:

信号发送单元,用于通过gpio发送启动状态信号;其中,当主用bios启动成功时启动状态信号为高电压;

判断单元,用于根据启动状态信号的电压判断主用bios启动是否失败。

可选的,该装置还可以包括:

bios维护模块,用于当spi总线切换至主用bios时,对主用bios执行维护操作或升级操作。

可选的,该装置还可以包括:

断电切换模块,用于当断电重启后,将spi总线切换至主用bios。

请参考图4,图4为本申请实施例所提供的一种双bios的控制系统的结构示意图。

本申请实施例还提供一种双bios的控制系统,可以包括:处理器、南桥芯片组、cpld、主用bios与备用bios,处理器与南桥芯片组连接,cpld与南桥芯片组连接,主用bios和备用bios均与cpld连接;

其中,cpld用于根据主用bios发送的启动状态信号判断主用bios启动是否失败;若是,则切换spi总线至备用bios,并将所述主用bios的启动状态写入spi寄存器,根据接收到的切换指令将spi总线切换至主用bios;

处理器用于通过spi寄存器获取主用bios的启动状态,并根据主用bios的启动状态向cpld发送切换指令;

主用bios,用于向cpld发送启动状态信号。

本实施例中主用bios与备用bios之间不相连,而是通过cpld进行连接,并且是通过spi总线进行连接,结构更加简单,易于实施,方便维护。

可选的,主用bios,具体用于通过gpio发送启动状态信号;其中,当主用bios启动成功时启动状态信号为高电压;

cpld,具体用于根据启动状态信号的电压判断主用bios启动是否失败。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种双bios的控制方法、控制装置以及控制系统进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1