一种基于双CPU系统的固件升级方法技术方案

技术编号:10385666 阅读:98 留言:0更新日期:2014-09-05 12:12
本发明专利技术是基于双CPU系统的固件升级方法,通过主/副CPU实现固件升级的‘互锁’监控,系统电源被设置成自动重启的设计,一方升级失败,确保系统不会瘫痪死锁;HMI能够自动对升级失败的对象进行再次固件升级,确保可以持续正确地升级。另外,能够同时支持手动和在线自动的固件升级模式的设计,对原有电路改动很小,实现最大程度地兼容并用;最大程度上方便了产品的升级与维护,具有较好的可移植性,在远程固件升级领域有一定的实用价值和参考价值。

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

【技术保护点】
一种基于双CPU系统的固件升级方法,所述系统包括:主CPU;副CPU;用于接受远程发送过来的固件升级指令并可对所述主CPU,所述副CPU的固件进行升级的人机界面;用于提供系统驱动的系统电源;其特征在于:所述主CPU﹑副CPU均拥有对所述系统电源重启的权限;通过所述人机界面对所述主CPU﹑副CPU的固件进行升级。

【技术特征摘要】

【专利技术属性】
技术研发人员:张勇李白龙廖小俊舒成维袁帅李世军
申请(专利权)人:江苏兆伏新能源有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1