一种基于双cpu系统的固件升级方法

文档序号:6547571阅读:497来源:国知局
一种基于双cpu系统的固件升级方法
【专利摘要】本发明是基于双CPU系统的固件升级方法,通过主/副CPU实现固件升级的‘互锁’监控,系统电源被设置成自动重启的设计,一方升级失败,确保系统不会瘫痪死锁;HMI能够自动对升级失败的对象进行再次固件升级,确保可以持续正确地升级。另外,能够同时支持手动和在线自动的固件升级模式的设计,对原有电路改动很小,实现最大程度地兼容并用;最大程度上方便了产品的升级与维护,具有较好的可移植性,在远程固件升级领域有一定的实用价值和参考价值。
【专利说明】—种基于双CPU系统的固件升级方法
【技术领域】
[0001]本发明涉及一种远程在线升级技术,具体地涉及一种基于双CPU系统的固件远程升级方法。
【背景技术】
[0002]固件(Firmware)是固化在了硬件中的软件,存储的固件是运行在驱动器上的软件指令集,它存储着计算机(控制芯片MCU)系统中硬件设备最基本的参数,为系统提供最底层、最直接的硬件控制。固件功能上有点类似于主板上BIOS,在开机过程中,系统会先读取其内部的硬件设备初始化信息,使操作系统能够正确识别硬件,并为其他软件的运行提供最基本的依据。
[0003]固件是存储在硬件中的,通常这些硬件内所保存的程序是无法被用户直接读出或修改的。通常是没有必要对固件进行升级操作的,即使在固件内发现了严重的Bug,也必须由专业人员进行操作。早期固件芯片一般采用了 ROM设计,它的固件代码是在生产过程中固化的,无法修改。随着技术的不断发展,修改固件以适应不断升级的硬件环境成了用户们的迫切要求,可重复写入的可编程可擦除只读存储器EPROM (Erasable Programmable ROM),EEPROM和flash伴随而生。这些芯片是可以重复刷写的,让固件得以修改和升级。
[0004]嵌入式系统的固件软件被应用的行业也是方方面面,在工业领域更是有着及其广泛的应用,随着产品性能的完善以及功能的增加,甚至于故障的修改,固件升级也越来越得以普遍起来,厂家在产品出厂后,也越来越倾向于在不改变硬件的基础上,通过固件升级来对产品进行维护,过去产品的维护工作都需要技术支持人员到现场进行手动固件升级,对于产品数量不多并且分布比较集中的地方,这种方法是可行的,但是在产品使用数量比较多、应用场合分散,环境比较恶劣的情况下,例如光伏电站,一般安装在偏远地方,会不可避免的增加了对产品固件升级和维护工作的成本,因此嵌入式系统的远程在线升级技术逐渐被广泛应用开来。
[0005]当前,嵌入式系统的固件软件系统在线升级通常可以通过硬件系统支持配合相关的升级软件来实现。根据硬件系统的支持程度,实现固件软件系统在线升级的系统可分为两类,一类是在硬件系统的支持程度较高的情况下,硬件系统在启动时直接完成了系统必要的初始化工作,然后才把控制权交给固件应用程序,固件应用程序直接在此基础上完成在线升级的功能。这种方式的在线升级过程可以随时被打断,进而可以重新进行在线升级操作,在线升级过程是绝对安全可靠的,不会因为非法中断而导致系统崩溃,即硬件系统会在固件应用程序崩溃时仍然正常启动。因此,这种方式需要硬件支持程度高,一般拥有专用的 CPU。
[0006]另外一类是在硬件系统的支持程度较低的情况下,硬件系统通电启动时直接把控制权交给固件应用程序,由固件应用程序完成系统必要的初始化工作,这种硬件系统通用性较强,一般拥有通用的CPU。其进行在线升级过程如下:系统通电启动,从系统程序转至支持在线升级的固件程序,该程序将标准通信接口和DRAM以及其他必要的硬件资源初始化为可用状态,接着判断是否需要进行Firmware的在线升级,若不需要则退出支持在线升级的固件程序,进入系统正常程序,否则,将升级的固件程序和向程序存储器写入该升级固件程序的指令代码下载至动态存储器中,通过执行向程序存储器写入升级固件程序的指令代码,接管原来的固件应用程序,使动态存储器中的指令代码获得控制权,将升级的固件程序写入程序存储器,刷新原来的固件程序,然后,把控制权再次交给程序存储器中已经更新升级后的固件程序,再进入系统正常运行流程。
[0007]在向程序存储器写入升级固件(Firmware)程序的执行过程中发生错码、中断等故障现象,或者升级过程中DRAM突然掉电致使存储于其中的程序丢失,或者写入FlashROM的地址空间发生错误,都会导致系统无法正常启动或死机,从而导致系统死锁瘫痪,针对上述存在的情况,当前应用中提出了一些解决方法,如通过增加校验机制来保证传输数据的正确性,增加固件备份区同时对Boot loader做标记来保证机器的可靠运行的方法等等。

【发明内容】

[0008]为了解决基于硬件系统支持较低的光伏并网发电系统应用下,提出一种新的解决方案,确保双CPU系统的固件能够可靠升级。本发明提供一种基于双CPU系统的固件在线升级的芯片系统及其在线升级的保护方法。目的在于:确保固件能够被有效升级成功,防止系统在固件升级的过程中因为异常(如中断、干扰、错码、或者是升级过程中突然掉电等异常情况)而导致的升级失败,进而导致系统崩溃的情况。
[0009]为实现上述的目的,本发明提供一种基于双CPU系统的固件在线升级的系统,
[0010]包括:
[0011]主CPU;
[0012]副CPU ;
[0013]用于接受远程发送过来的固件升级指令并对主/副CPU进行固件升级的人机界面;
[0014]用于提供系统驱动电源的系统电源。
[0015]本发明还提供一种基于双CPU系统的固件在线升级方法:主CPU ;副CPU ;用于接受远程发送过来的固件升级指令并可对所述主CPU,所述副CPU的固件进行升级的人机界面;用于提供系统驱动的系统电源;其特征在于:所述主CPU、副CPU均拥有对所述系统电源重启的权限;通过所述人机界面对所述主CPU、副CPU的固件进行升级。
[0016]优选的,上述的基于双CPU系统的固件升级方法,所述主CPU或副CPU中的一方的固件在升级时,所述主CPU或副CPU中的另一方,通过所述主CPU、副CPU间的通讯,对固件升级方进行监控。
[0017]优选的,上述的基于双CPU系统的固件升级方法,若所述主CPU或副CPU中的固件升级方,出现固件升级异常时,能够在设定的时间,所述主CPU,所述副CPU中的另一方,通过控制所述系统电源复位重启所述系统电源。
[0018]优选的,上述的基于双CPU系统的固件升级方法,所述人机界面接受远程发送过来的固件升级指令,对所述主CPU,副CPU的固件进行升级,上述升级方法包含如下步骤:
[0019]步骤1:系统通电初始化,读取人机界面存储装置中的升级标识;
[0020]步骤2:人机界面通过判断标识,进行固件升级操作,[0021]如果标识为“M”,则表示当前主CPU升级失败,对主CPU进行固件升级;
[0022]如果标识为“S”,则表示当前副CPU升级失败,对副CPU进行固件升级;
[0023]如果标识为“N”,则表示当前没有升级失败情况,等待固件升级指令;
[0024]步骤3:根据步骤2的判断操作,
[0025]在标识“N”时,
[0026]如果人机界面接收到远端发送的升级指令,将进行以下操作,
[0027]对人机界面的存储装置保存升级标识“M”,然后进行主CPU升级,
[0028]主CPU升级成功后,
[0029]对人机界面的存储装置保存升级标识“S”,然后进行副CPU升级,
[0030]副CPU升级成功后,
[0031]对人机界面的存储装置保存升级标识“N”。
[0032]优选的,上述的基于双CPU系统的固件升级方法,上述步骤2或3中所述主CPU,副CPU中一方进入固件升级模式,
[0033]另一方将为其进行固件升级计时,
[0034]在计时达到规定值之前,
[0035]其固件升级完成后,所述会自我复位,所述主CPU,副CPU间重新建立通讯,计时的一方结束计时。
[0036]优选的,上述基于双CPU系统的固件升级方法,上述存储装置为EEPROM或fIashROM0
[0037]优选的,上述的基于双CPU系统的固件升级方法:
[0038]在所述计时达到规定值时,固件升级方仍未与计时方间建立通讯,计时的所述主CPU或副CPU —方将会重启所述系统电源。
[0039]另外,本发明还提供了一种搭载上述的基于双CPU系统的固件升级方法的光伏逆变器。相对于现有技术中的方案,本发明的优点是:
[0040]本发明基于双CPU在线固件升级的保护方法的:通过主/副CPU实现固件升级的‘互锁’监控,一方升级失败,系统电源会被自动重启的设计,确保系统不会瘫痪死锁;HMI能够自动对升级失败的对象进行再次固件升级的逻辑设计,确保可以持续正确地升级。
[0041]本发明基于双CPU在线固件升级的保护方法的特征在于能够同时支持手动和在线自动的固件升级模式的设计,对原有电路改动很小,实现最大程度地兼容并用;最大程度上方便了产品的升级与维护,具有较好的可移植性,在远程固件升级领域有一定的实用价值和参考价值。
[0042]本发明实施例中,固件升级过程会出现升级异常可能,从而导致系统瘫痪的情况会得到解决,在保证系统固件升级不瘫痪的同时,能够持续正确的对主副CPU进行升级,并且避免了对原有电路的开关改动切换逻辑,实现真正意义的可靠稳定正确的固件升级,降低了升级失败带来的维护成本。
【专利附图】

【附图说明】
[0043]为了更清楚地说明本发明实施例的技术方案,下面将实施例的所包含技术描述中需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图都在本发明的保护范围之内。
[0044]图1为本发明基于双CPU控制系统的光伏并网发电示意图,
[0045]图2为本发明基于双CPU系统在线固件升级的升级流程图;
[0046]图3为本发明基于双CPU系统在线固件升级的升级优化流程图;
[0047]符号说明:
[0048]1:PV组件、2 =DC-DC电路、3:DC_AC逆变电路、4:电网、5:系统电源、6: ± CPU,7:副CPU、8:人机界面。
【具体实施方式】
[0049]以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
[0050]实施例:
[0051]如图1所示,图1为基于双CPU控制系统的光伏并网发电系统示意图:光伏并网发电系统100包含:1:PV组件、2 =DC-DC电路、3:DC_AC逆变电路、4:电网、5:系统电源、6:主CPU、7:副CPU、8:人机界面。
[0052]PV组件I产生的直流电经DC-DC电路2及DC-AC逆变电路3的转换,转换成符合要求的交流电接入电网4,实现并网发电。
[0053]控制器10包含主CPU6和副CPU7,主CPU6和副CPU7间通过SPI建立通讯;
[0054]控制器10接受PV组件I及电网4的信息;控制器10通过接受的信息进而控制DC-DC电路2及DC-AC逆变电路3 ;
[0055]系统电源5从直流侧(PV组件I)取电,为控制器10及HMI8提供驱动电源;
[0056]系统电源SPS5的SPSOFF端口分别与主CPU6、副CPU7相连接;主CPU6、副CPU7均有对SPS5重启的权限;
[0057]HMI8包含用于接收从远端发送来的固件升级文件,然后根据协议区分主CPU,副(PU升级文件,以及保存升级标识等的EEPROM存储装置9,及通讯接口(图未示);通过HMI8与远端服务器(图未示)相连(有线模式,无线模式均可),接受固件升级文件。
[0058]作为上述方案的一种改进,系统电源SPS5从交流侧(电网4)取电,也能实现图1方案的效果。
[0059]如图2所示,图2为本发明基于双CPU的固件升级方法的升级流程图:本方案升级方法包含如下步骤:
[0060]步骤1:系统通电初始化,读取HMI存储装置中的升级标识;
[0061]步骤2 =HMI通过判断升级标识,进行固件升级操作,
[0062]如果升级标识为“M”,则表示当前主CPU升级失败,对主CPU进行固件升级;
[0063]如果升级标识为“S”,则表示当前副CPU升级失败,对副CPU进行固件升级;
[0064]如果升级标识为“N”,则表示当前没有升级失败情况,等待固件升级指令;
[0065]步骤3:根据步骤2的判断操作,在标识“N”时,
[0066]如果HMI接收到远端发送的升级指令文件,HMI与远端依据事先约定的协议,将用于主
[0067]CPU,副CPU升级的文件,保存在其EEPROM的不同地址,用于主CPU升级的文件标识M,
[0068]用于副CPU升级的文件标识S ;接下来对主CPU,副CPU的固件进行升级,升级按照先升
[0069]级主CPU,主CPU升级成功后再升级副CPU,主CPU,副CPU的固件升级成功后,HMI对
[0070]其的EEPROM 保存 “N”。
[0071]如图3a,b所示,图3a,b为图2中的主CPU,副CPU的固件升级的进一步优化的流程图,主/副CPU的固件升级均采用相同的逻辑设计。
[0072]如图3a所示,为对主CPU的固件进行升级时,首先系统电源SPS启动倒计时(OFF标识);
[0073]接着确认SPS的OFF标识是否成功启动:
[0074]若OFF标识成功启动:
[0075]副CPU将为其进行固件升级监控计时,
[0076]在设定的时间内(如5分钟,具体时间视文件而定),若主CPU与副CPU建立通讯,

[0077]示升级成功,则副CPU退出该监控计时,升级结束;
[0078]如果在设定时间内,若主CPU与副CPU未建立通讯未升级成功,超过设定计时条件,则对系统电源复位重启;直至主CPU升级成功。
[0079]若OFF标识未成功启动:
[0080]则直接结束。
[0081 ]主CPU升级成功后,
[0082]对HMI的存储装置保存升级标识“ S ”,
[0083]然后如图3b所示,为对副CPU的固件进行升级,
[0084]首先系统电源SPS启动倒计时(OFF标识);接着确认SPS的OFF标识是否成功启动:
[0085]若OFF标识成功启动:
[0086]主CPU将为其进行固件升级监控计时,
[0087]在设定的时间内(如3分钟,具体时间视文件而定),若主CPU与副CPU建立通讯,

[0088]示升级成功,则主CPU退出该监控计时,升级结束;
[0089]如果在设定时间内,若主CPU与副CPU未建立通讯未升级成功,超过设定计时条件,则对系统电源复位重启;直至副CPU升级成功。
[0090]若OFF标识未成功启动:
[0091]则直接结束。
[0092]副CPU升级成功后,
[0093]对HMI自身存储装置保存升级标识“N”,等待新的升级指令。
[0094]本方案的技术效果:[0095]本方案基于双CPU系统的固件升级方法,避免固件升级过程会出现升级异常可能,从而导致系统瘫痪的情况会得到解决,在保证系统固件升级不瘫痪的同时,能够持续正确的对主副CPU进行升级。
[0096]上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
【权利要求】
1.一种基于双CPU系统的固件升级方法,所述系统包括: 主 CPU;
副 CPU ; 用于接受远程发送过来的固件升级指令并可对所述主CPU,所述副CPU的固件进行升级的人机界面; 用于提供系统驱动的系统电源; 其特征在于: 所述主CPU、副CPU均拥有对所述系统电源重启的权限; 通过所述人机界面对所述主CPU、副CPU的固件进行升级。
2.如权利要求1所述的基于双CPU系统的固件升级方法, 其特征在于: 所述主CPU或副CPU中的一方的固件在升级时,所述主CPU或副CPU中的另一方,通过所述主CPU、副CPU间的通讯,对固件升级方进行监控。
3.如权利要求2所述的基于双CPU系统的固件升级方法, 其特征在于: 若所述主CPU或副CPU中的固件升级方,出现固件升级异常时,能够在设定的时间,所述主CPU,所述副CPU中的另一方,通过控制所述系统电源复位重启所述系统电源。
4.如权利要求1-3中任一项所述的基于双CPU系统的固件升级方法, 其特征在于: 所述人机界面接受远程发送过来的固件升级指令,对所述主CPU,副CPU的固件进行升级, 所述升级方法包含如下步骤: 步骤1:系统通电初始化,读取人机界面存储装置中的升级标识; 步骤2:人机界面通过判断标识,进行固件升级操作, 如果标识为“M”,则表示当前主CPU升级失败,对主CPU进行固件升级; 如果标识为“S”,则表示当前副CPU升级失败,对副CPU进行固件升级; 如果标识为“N”,则表示当前没有升级失败情况,等待固件升级指令; 步骤3:根据步骤2的判断操作, 在标识“N”时, 如果人机界面接收到远端发送的升级指令,将进行以下操作, 对人机界面的存储装置保存升级标识“M”,然后进行主CPU升级, 主CPU升级成功后, 对人机界面的存储装置保存升级标识“S”,然后进行副CPU升级, 副CPU升级成功后, 对人机界面的存储装置保存升级标识“N”。
5.如权利要求4所述的基于双CPU系统的固件升级方法, 其特征在于: 所述步骤2或3中所述主CPU,副CPU中一方进入固件升级模式时, 另一方将为其进行固件升级计时,在计时达到规定值之前, 其固件升级完成后,所述会自我复位,所述主CPU,副CPU间重新建立通讯,计时的一方结束计时。
6.如权利要求4或5所述的基于双CPU系统的固件升级方法,其特征在于:所述存储装置为 EEPROM 或 f lashROM。
7.如权利要求5所述的基于双CPU系统的固件升级方法,其特征在于: 在所述计时达到规定值时,固件升级方仍未与计时方间建立通讯,计时的所述主CPU或副CPU —方将会重启所述系统电源。
8.一种 搭载如权利 要求1-7中任一项所述的基于双CPU系统的固件升级方法的 光伏逆变器。
【文档编号】G06F9/445GK104021014SQ201410223537
【公开日】2014年9月3日 申请日期:2014年5月23日 优先权日:2014年5月23日
【发明者】张勇, 李白龙, 廖小俊, 舒成维, 袁帅, 李世军 申请人:江苏兆伏新能源有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1