一种双BIOS固件的版本同步方法及电子设备与流程

文档序号:12119561阅读:388来源:国知局
一种双BIOS固件的版本同步方法及电子设备与流程

本发明涉及通信技术领域,尤其涉及一种双BIOS固件的版本同步方法及电子设备。



背景技术:

BIOS(Basic Input/Output System,基本输入输出系统)全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到计算机等电子设备中,为计算机设备提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,通俗地说,BIOS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决硬件的即时要求,并按软件对硬件的操作要求具体执行。

通常,计算机系统启动后,需要通过BIOS来引导系统,其中,BIOS包含用于系统自检和控制键盘、显示、磁盘驱动器、串行通信以及其他功能的代码。当BIOS执行完成后,BIOS再从磁盘中加载操作系统,由于目前的BIOS通常存储在可重复擦写的ROM,如闪存(flash memory)中,因此当BIOS出现故障或异常时,系统就无法正常启动,因而会严重影响整个系统的可靠运行。为了避免这种情况的发生,通常做法是在单板上设计系统BIOS的备份,当主BIOS出现故障无法启动时,利用外部控制逻辑模块来激活备份BIOS,从而实现主备BIOS的切换,保证系统能正常启动。

因为外部控制逻辑模块切换主备BIOS方式是通过寻址的方式或者片选的方式实现的,所以主备BIOS无法在系统中共存,由于主BIOS具有在线升级的功能,而备用BIOS只能被手动升级,当电子设备某一次启动时,主BIOS挂死,就会切换到备用BIOS启动设备,因为备用BIOS的版本可能是比主用BIOS的版本低,就会造成设备带着缺陷在运行。

综上,现有的电子设备BIOS固件切换方法存在主备BIOS版本不一致的问题,主备BIOS发生切换之后,设备可能运行在较低的版本上,影响整个系统的可靠性。



技术实现要素:

本发明实施例提供一种双BIOS固件的版本同步方法及电子设备,该方法可以保证电子设备的两个BIOS固件的版本保持同步,当BIOS固件发生切换后,电子设备启动程序不会发生倒退。

本发明方法包括一种双BIOS固件的版本同步方法,该方法包括:

当电子设备上电后,所述电子设备的中央处理器CPU根据控制电路发送的第一控制信号,通过第一数据总线从所述第一存储芯片中获取第一BIOS程序,以启动所电子设备,所述第一BIOS程序为所述第一存储芯片在所述电子设备正常运行时升级BIOS之后的程序;

当所述电子设备启动成功后,所述CPU通过第二数据总线将获取的所述第一BIOS程序烧录至第二存储芯片,以使所述第二存储芯片中的第二BIOS程序与所述第一BIOS程序一致。

基于同样的发明构思,本发明实施例进一步地提供一种电子设备,所述设备包括:中央处理器CPU、第一存储芯片、第二存储芯片、控制电路;

所述第一存储芯片通过第一数据总线与所述CPU通信,所述第二存储芯片通过第二数据总线与所述CPU通信、所述CPU通过通用输入输出GPIO接口与所述控制电路通信;

所述CPU,用于当电子设备上电后,根据控制电路发送的第一控制信号,通过第一数据总线从所述第一存储芯片中获取第一BIOS程序,以启动所电子设备,所述第一BIOS程序为所述第一存储芯片在所述电子设备正常运行时升级完成之后的程序;当所述电子设备启动成功后,通过第二数据总线将获取的第一BIOS程序烧录至第二存储芯片,以使所述第二存储芯片中的第二BIOS程序与所述第一BIOS程序一致。

本发明实施例通过使用两个存储芯片,并预先在每个存储芯片上加载同样的BIOS程序,第一存储芯片通过第一数据总线与CPU通信,第二存储芯片通过第二数据总线与CPU通信,这样,第一存储芯片和第二存储芯片就可以共存在系统中,当第一存储芯片完成BIOS程序升级后,电子设备重启,当电子设备重新上电后,CPU通过第一数据总线从所述第一存储芯片获取升级后的BIOS程序,然后通过第二数据总线将获取的BIOS程序烧录至第二存储芯片中,以使所述第二存储芯片中的BIOS程序与所述第一存储芯片中的BIOS程序一致。可见,即便第一存储芯片内的BIOS程序发生了升级,第二存储芯片也能够采用该方法与第一存储芯片的BIOS程序的版本保持一致,这样,即便电子设备后续因为启动失败发生BIOS切换,也不会发生切换之后版本不一致的问题,从而保证了电子设备系统运行的可靠性。

附图说明

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

图1为本发明实施例提供的电子设备结构组成部分示意图;

图2为本发明实施例提供的双BIOS固件的版本同步方法流程示意图;

图3为本发明实施例提供的双BIOS固件的版本同步步骤流程示意图;

图4为本发明实施例提供的电子设备异常开机流程示意图。

具体实施方式

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

由于现有的主备BIOS发生切换的机制是通过片选或者寻址的方式切换的,主BIOS和备BIOS分别被存储在各个FLASH芯片中,这一机制就造成电子设备每次上电之后,在运行过程中,CPU通过一根数据总线与FLASH芯片通信,因此只有一个FLASH芯片存活在系统中,即电子设备的CPU从第一FLASH芯片中加载BIOS程序,或者从第二FLASH芯片中加载BIOS程序,CPU不能在电子设备当前运行过程中既操作第一FLASH芯片又操作第二FLASH芯片。为了解决这一问题,本发明实施例改进了FLASH芯片与CPU的通信方法,即本发明实施例在电子设备中仍然有两个存储芯片,第一存储芯片通过第一数据总线与CPU通信,第二存储芯片通过第二数据总线与CPU通信,这样就可以保证第一存储芯片和第二存储芯片共存在系统中。改进之后的电路结构如图1所示,包括CPU101、MCU102、电源模块103、控制命令生成单元104、第一存储芯片105、第二存储芯片106,控制电路107(图中虚线框内的电路),其中:

MCU102,用于控制电子设备的上电和下电,与CPU通过数据总线或者其它总线互相传递信息。

控制命令生成单元104,用于根据MCU102发送的指令生成第一控制信号或者第二控制信号。

电源模块103,用于提供系统各路电源输出以及逻辑时序;

第一存储芯片105,用于存放BIOS程序的SPI FLASH芯片。

第二存储芯片106,用于存放BIOS程序以及系统文件的EMMC FLASH芯片。

具体地,所述第一存储芯片105通过第一数据总线与所述CPU通信,所述第二存储芯片106通过第二数据总线与所述CPU101通信、所述CPU101通过通用输入输出GPIO接口与所述控制电路通信,

CPU101,用于当电子设备上电后,根据控制电路发送的第一控制信号,通过第一数据总线从所述第一存储芯片中获取第一BIOS程序,以启动所电子设备,所述第一BIOS程序为所述第一存储芯片在所述电子设备正常运行时升级完成之后的程序;当所述电子设备启动成功后,通过第二数据总线将获取的第一BIOS程序烧录至第二存储芯片,以使所述第二存储芯片中的第二BIOS程序与所述第一BIOS程序一致。

其中,所述控制电路107包括单片机MCU102和控制命令生成单元104,所述MCU102与所述控制命令生成单元104连接;

所述MCU102,用于在所述电子设备上电后,控制所述控制命令生成单元104按照默认设置输出所述第一控制信号给所述CPU101;

所述MCU102,还用于在检测到所述CPU101生成的启动失败消息时,控制所述控制命令生成单元104输出所述第二控制信号给所述CPU101,所述启动失败消息是在所述电子设备启动失败后生成的。

当控制命令生成单元104向CPU101输入高电平时,所述CPU,还用于根据所述第二控制信号,通过所述第二数据总线从所述第二存储芯片中加载所述第二BIOS程序,以启动所述电子设备。

在图1中,第一存储芯片105和第二存储芯片106各通过一组数据总线挂在CPU101下面,然后MCU102通过GPIO(通用输入输出)接口与CPU101进行通信,同时MCU102与电源模块103连接,可以通过上电信号和下电信号控制电源模块的开启和关闭。MCU102还与控制命令生成单元104连接,通过向控制命令生成单元104发送第一指令使得控制命令生成单元104输出高电平,通过向控制命令生成单元104发送第二控制信号使得控制命令生成单元104输出低电平。

因为电子设备的上述连接方式,第一存储芯片105和第二存储芯片106可以共存于系统中,所述CPU101可以在第一存储芯片105升级之后及时将第二存储芯片106进行升级,保持升级之后的版本同步,具体地,所述CPU101,用于在电子设备正常运行时,通过所述第一数据总线对所述第一存储芯片进行BIOS程序升级,并在升级完成后重启所述电子设备;当所述电子设备重新上电后,所述CPU101,用于通过所述第一数据总线从所述第一存储芯片获取升级后的BIOS程序;CPU101通过所述第二数据总线将获取的BIOS程序烧录至所述第二存储芯片,以使所述第二存储芯片中的BIOS程序与所述第一存储芯片中的BIOS程序一致。可见,通过这种升级方法即便电子设备后续因为启动失败发生BIOS切换,也不会发生切换之后版本不一致的问题,从而保证了电子设备系统运行的可靠性。

进一步地,MCU102和控制命令生成单元104构成了控制电路107,在所述CPU通过第二数据总线将获取的BIOS程序烧录至第二存储芯片之后,控制电路107用于当所述电子设备重新上电后,向所述CPU101发送第一控制信号,触发所述CPU101通过所述第一数据总线从所述第一存储芯片中加载BIOS程序,以启动所述电子设备;若所述电子设备启动失败,所述CPU101生成启动失败消息,所述MCU102检测到所述CPU101启动失败,所述MCU102控制所述控制命令生成单元104输出所述第二控制信号,然后触发所述CPU101通过所述第二数据总线从所述第二存储芯片中加载BIOS程序,以启动所述电子设备。也就是说,当电子设备在开机过程中发生启动异常进切换,以保证电子设备进行正常开机。

其中,所述第一控制信号是所述控制命令生成单元104根据所述MCU102发送的第一切换指令生成的高电平信号;所述第二控制信号是所述控制命令生成单元104根据所述MCU102发送的第二切换指令生成的低电平信号。

当电子设备发生异常开机时,意味着第一存储芯片105中BIOS程序发生故障,因此,所述CPU101,还用于根据MCU102发送的烧录指令,通过所述第二数据总线从所述第二存储芯片106获取所述第二BIOS程序,通过所述第一数据总线将从所述第二BIOS程序烧录至所述第一存储芯片105,以恢复所述第一存储芯片中的BIOS程序。因为第一存储芯片105和第二存储芯片106不存在主备关系,所述相互之间可以互相备份,进一步地保证电子设备系统的可靠性和稳定性。

另外,所述电子设备还包括报警模块108,报警模块108用于在当MCU102循环检测CPU发出的Sequence Flag(序列标识)信号,在设定的时间范围内一直为低电平时,报警模块108启动超时报警,提示硬件故障。另外,当MCU102循环检测CPU101发出的Boot OK(正常启动)信号在设定的时间范围内一直为低电平时,报警模块108启动超时报警,并切换BIOS。

基于图1所示的电子设备,本发明实施例提供一种双BIOS固件的版本同步方法流程示意图,参见图2所示,具体地实现方法包括:

步骤S101,当电子设备上电后,所述电子设备的CPU根据控制电路发送的第一控制信号,通过第一数据总线从所述第一存储芯片中获取第一BIOS程序,以启动所电子设备,所述第一BIOS程序为所述第一存储芯片在所述电子设备正常运行时升级BIOS之后的程序。

步骤S102,当所述电子设备启动成功后,所述CPU通过第二数据总线将获取的所述第一BIOS程序烧录至第二存储芯片,以使所述第二存储芯片中的第二BIOS程序与所述第一BIOS程序一致。

也就是说,电子设备正常运行时,CPU通过第一数据总线对第一存储芯片进行BIOS程序升级,并在升级完成后重启所述电子设备,当所述电子设备重新上电后,CPU通过第一数据总线从所述第一存储芯片获取升级后的BIOS程序,然后,CPU通过第二数据总线将获取的BIOS程序烧录至第二存储芯片中,这样第二存储芯片中的BIOS程序就与第一存储芯片中的BIOS程序保持一致了。

为了更加系统描述上述双BIOS固件的版本同步过程,本发明实施例进一步地提供流程图3,并结合图1中的各个单元进行详细阐述,具体如下:

步骤S201,电子设备在正常运行时,电子设备的CPU利用第三方程序主动对第一存储芯片105进行BIOS升级,同时CPU向MCU发送请求Update Reques(更新信息);

步骤S202,MCU接收请求更新信息后,将烧录标志位置为1,该烧录标志用于指示将第一存储芯片的第一BIOS程序烧录至所述第二存储芯片;

步骤S203,当CPU检测到第一存储芯片105升级完成后,通知电源模块103重启;

步骤S204,电子设备MCU初始化完成后,向电源模块传递Power ON(上电)信号,开启系统电源模块;同时向控制命令生成单元104发送指令,使控制命令生成单元104默认输出高电平状态。CPU上电检测到高电平输入;则通过第一数据总线从SPI Flash加载BIOS程序。

步骤S205,电子设备从SPI Flash加载完BIOS程序后,电子设备的MCU循环检测CPU发出的Sequence Flag(硬件序列)信号是否为高电平。若在设定的时间范围内一直为低电平,则启动超时报警模块108,提示硬件故障,流程结束;反之,若检测到Sequence Flag信号为高,则进入步骤S205;

步骤S206,MCU循环检测CPU发出的Boot OK(开机启动)信号是否为高电平。若在设定的时间范围内一直为低电平,则启动超时报警模块108,并启动异常开机流程;反之,若检测到Boot OK信号为高电平,则证明升级后的第一BIOS无故障,电子设备已正常开机,则进入步骤S206;

步骤S207,MCU检测内部寄存器烧录标志位被置为“1”则MCU向CPU发送Burn IN(烧录)指令;

步骤S208,CPU收到Burn IN指令后,则将第一存储芯片105存储的BIOS文件烧录至第二存储芯片106。烧录完成后,CPU传递Burn OK(烧录完成)指令给MCU。

步骤S209,MCU收到CPU发送过来的Burn OK(烧录完成)指令后,将烧录标志位重置为“0”,流程结束。

可见,通过上述步骤就可以保证在升级第一存储芯片105的同时,也对第二存储芯片106进行升级,第一存储芯片105中的BIOS程序和第二存储芯片106中BIOS程序能够始终保持版本一致,这样即使电子设备后续因为启动失败发生BIOS切换,也不会存在发生切换之后版本倒退的问题。

进一步地,若在上述步骤S206中,MCU循环检测CPU发出的Boot OK(开机启动)信号为低电平,则证明所述电子设备利用第一BIOS程序启动失败,所述CPU生成启动失败消息,所述MCU检测到所述CPU启动失败,因此启动异常开机流程,即所述电子设备重新上电,所述MCU控制所述控制命令生成单元104输出所述第二控制信号,所述CPU根据所述控制电路发送的第二控制信号,通过所述第二数据总线从所述第二存储芯片中加载所述第二BIOS程序,以启动所述电子设备。

具体地,本发明实施例通过提供图4所示的异常开机流程图进行详细阐述,图4包含步骤如下:

步骤S301,当MCU循环检测CPU发出的Boot OK(开机启动)信号为低电平时,MCU通过Power Off(下电)以及Power ON(上电)信号,重启电源模块(将电子设备重启),同时向控制命令生成单元104发送指令,使控制命令生成单元104输出低电平状态。同时将烧录标志位置“1”,该烧录标志用于指示CPU将所述第二存储芯片的第二BIOS程序烧录至所述第一存储芯片。

步骤S302,CPU重新上电检测到低电平输入信号;则通过第二数据总线从EMMC Flash加载第二BIOS程序。

步骤S303,MCU循环检测CPU发出的Sequence Flag信号是否为高电平。若在设定的时间范围内一直为低电平,则启动超时报警模块108,提示硬件故障,流程结束;反之,若检测到Sequence Flag信号为高电平,则进入步骤S304。

步骤S304,MCU循环检测CPU发出的Boot OK信号是否为高电平。若在设定的时间范围内一直为低,则启动超时报警模块,提示第二存储芯片中的BIOS程序也发生故障,流程结束;反之,若检测到Boot OK信号为高电平,则进入步骤S305。

步骤S305,MCU检测内部寄存器烧录标志位已被置为“1”,则MCU向CPU发送Burn IN的烧录指令。

步骤S306,CPU收到Burn IN的烧录指令后,则将第二存储芯片中存储的BIOS程序烧录至第一存储芯片,以恢复第一存储芯片中的BIOS程序。烧录完成后,CPU传递Burn OK信息给MCU。

步骤S307,MCU收到CPU发送过来的Burn OK信号后,将烧录标志位重置为“0”,流程结束。

综上,本发明实施例通过使用两个存储芯片,并预先在每个存储芯片上加载同样的BIOS程序,第一存储芯片通过第一数据总线与CPU通信,第二存储芯片通过第二数据总线与CPU通信,这样,第一存储芯片和第二存储芯片就可以共存在系统中,当第一存储芯片完成BIOS程序升级后,电子设备重启,当电子设备重新上电后,CPU通过第一数据总线从所述第一存储芯片获取升级后的BIOS程序,然后通过第二数据总线将获取的BIOS程序烧录至第二存储芯片中,以使所述第二存储芯片中的BIOS程序与所述第一存储芯片中的BIOS程序一致。可见,即便第一存储芯片内的BIOS程序发生了升级,第二存储芯片也能够采用该方法与第一存储芯片的BIOS程序的版本保持一致,这样,即便电子设备后续因为启动失败发生BIOS切换,也不会发生切换之后版本不一致的问题,从而保证了电子设备系统运行的可靠性,另外,因为第一存储芯片和第二存储芯片之间不再区分主备关系,可以互相备份,当其中一个存储芯片中的BIOS程序发生异常时可以得到及时恢复。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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