一种固件更新方法及控制器技术

技术编号:17518783 阅读:41 留言:0更新日期:2018-03-21 03:11
一种固件更新方法及控制器,旨在解决系统固件升级过程中,发生烧写异常情况时,原有固件程序受损,系统无法正常工作的问题。该方法包括:控制器判断是否需要更新固件(101);若是,则获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中(102);所述控制器将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置(104)。

A method and controller for firmware updating

A firmware updating method and controller is designed to solve the problem that the original firmware is damaged and the system can not work normally when the abnormal condition occurs during the firmware upgrading process. The method comprises: a controller determines whether to update the firmware (101); if so, obtaining the firmware update data, and transmits the data to update the firmware programming backup storage area (102); the controller of the firmware of the backup storage area in the update data copy to the original firmware data storage location the (104).

【技术实现步骤摘要】
【国外来华专利技术】一种固件更新方法及控制器
本专利技术涉及计算机
,尤其涉及一种固件更新方法及控制器。
技术介绍
在软件系统开发完毕后,在应用过程中,由于使用要求等情况的变化,需要对系统增加一部分的功能。对于系统中的核心处理器而言,即需要更新其固件。为了便于固件的更新,现有技术通过特定的数据接口,直接对处理芯片内整合的存储器进行烧写,例如对于stm32的固件更新,可以直接通过JTAG接口对其FLASH进行烧写。在现有的固件更新过程中,首先是通过外部按键等利用硬件逻辑的方式来告知系统是否需要更新程序(固件),若需要对程序进行更新,则通过对应的数据接口,将数据直接烧写到FLASH中对应的存储位置中,完成更新。在实现本专利技术的过程中,专利技术人发现现有技术存在以下问题:由于更新数据直接烧写到FLASH的原有程序的存储位置上。在出现烧写错误的情况下,将导致原有程序代码破损,使得处理器(如:可编程逻辑控制器)无法正常工作。
技术实现思路
本专利技术实施例提供了一种固件更新方法及控制器,旨在解决固件更新过程中,烧写错误导致原有程序代码破损,处理器无法工作的问题。本专利技术实施例的第一方面提供一种固件更新方法,包括:控制器判断是否需要更新固件;若是,则获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中;所述控制器将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置。相应地,所述控制器判断是否需要更新固件包括:所述控制器在程序内设置用于判断是否需要更新固件的更新标志寄存器;所述控制器根据所述更新标志寄存器是否置位,以判断是否需要更新固件。相应地,所述控制器将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置之后,所述方法还包括:所述控制器获取复位指令,所述控制器判断更新标志寄存器是否置位;若是,执行复位操作;若否,不执行复位操作。相应地,所述获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中包括:所述控制器逐帧地接收所述固件更新数据,并将接收到的当前帧的固件更新数据形成数据包保存在随机存取存储器RAM中;所述控制器将所述数据包烧写至所述备份存储区域中;所述控制器校验所述数据包是否烧写正确;若否,则返回执行所述控制器将所述数据包烧写至所述备份存储区域中。相应地,所述控制器校验所述数据包是否烧写正确之后,所述方法还包括:所述控制器判断所述数据包的重复烧写次数是否达到预定的阈值;若是,反馈固件更新数据烧写失败信息。相应地,如果所述控制器校验所述数据包烧写正确,所述方法还包括:所述控制器判断烧写至所述备份存储区域的数据包是否为最后一帧数据;若是,反馈固件更新完成信息。相应地,所述控制器判断烧写至所述备份存储区域的数据包是否为最后一帧数据包括:所述控制器获取当前数据包的序数;所述控制器根据所述当前数据包的序数是否与固件更新数据包含的总帧数相等,以判断所述备份存储区域的数据包是否为最后一帧数据。相应地,所述控制器采用modbus总线通信方式完成固件更新。本专利技术实施例的第二方面提供一种控制器,包括:更新判断单元,用于判断是否需要更新固件;烧写单元,用于当判断为需要更新固件时,获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中;复制单元,用于将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置。相应地,所述更新判断单元用于判断是否需要更新固件包括:所述更新判断单元用于在程序内设置用于判断是否需要更新固件的更新标志寄存器;所述更新判断单元还用于根据所述更新标志寄存器是否置位,以判断是否需要更新固件。相应地,所述控制器还包括:复位单元;所述复位单元用于获取复位指令;所述复位单元还用于判断更新标志寄存器是否置位;若是,执行复位操作;若否,不执行复位操作。相应地,所述烧写单元还用于:逐帧地接收所述固件更新数据,并将接收到的当前帧的固件更新数据形成数据包保存在随机存取存储器RAM中;将所述数据包烧写至所述备份存储区域中;校验所述数据包是否烧写正确;若否,则返回执行所述控制器将所述数据包烧写至所述备份存储区域中。相应地,所述控制器还包括第一烧写状态判断单元;所述第一烧写状态判断单元用于判断所述数据包的重复烧写次数是否达到预定的阈值;若是,反馈固件更新数据烧写失败信息。相应地,所述控制器还包括第二烧写状态判断单元;第二烧写状态判断单元,用于判断烧写至所述备份存储区域的数据包是否为最后一帧数据;还用于在烧写至所述备份存储区域的数据包是为最后一帧数据时,反馈固件更新完成信息;还用于在烧写至所述备份存储区域的数据包不为最后一帧数据时,接收下一帧固件更新数据。相应地,所述第二烧写状态判断单元用于判断烧写至所述备份存储区域的数据包是否为最后一帧数据包括;所述第二烧写状态判断单元用于获取当前数据包的序数;所述第二烧写状态判断单元用于根据所述当前数据包的序数是否与固件更新数据包含的总帧数相等,以判断所述备份存储区域的数据包是否为最后一帧数据。相应地,所述控制器采用modbus总线通信方式完成固件更新。本专利技术实施例的第三方面提供一种控制器,包括:处理器、存储器、接口和总线,所述处理器、所述存储器和所述接口通过所述总线连接,所述接口用于输入/输出数据,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码执行如上述任一项所述的固件更新方法。本专利技术实施例提供的技术方案中,控制器在进行固件更新时,更新数据被烧写在备份存储区域中。在发生烧写错误或者中断的情况时,原有的程序代码并未被破坏,控制器仍然可以继续使用,不影响系统的正常工作。在更新数据烧写完毕后,再将其搬运至原有程序的存储位置,替代原有程序以完成固件的更新。附图说明图1为本专利技术实施例中固件更新方法一个实施例的流程图;图2为图1中步骤101的具体流程图;图3为本专利技术实施例中固件更新方法另一个实施例的流程图;图4为图3中步骤207的具体流程图;图5为本专利技术实施例中固件更新方法另一个实施例的流程图;图6为本专利技术实施例中控制器一个实施例的模块框图;图7为本专利技术实施例中控制器另一个实施例的模块框图;图8为本专利技术实施例中控制器一个实施例的硬件框图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”和“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本专利技术所述的固件更新方法可以应用于多种不同类型的处理器或者具有不同处理内核的控制器中,可以广泛在例如微控制器系统、车身控制系统、工业控制系统等应用领域中。一般的,现有的处本文档来自技高网...
一种固件更新方法及控制器

【技术保护点】
一种固件更新方法,其特征在于,包括:控制器判断是否需要更新固件;若是,则获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中;所述控制器将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置。

【技术特征摘要】
【国外来华专利技术】1.一种固件更新方法,其特征在于,包括:控制器判断是否需要更新固件;若是,则获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中;所述控制器将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置。2.根据权利要求1所述的方法,其特征在于,所述控制器判断是否需要更新固件包括:所述控制器在程序内设置用于判断是否需要更新固件的更新标志寄存器;所述控制器根据所述更新标志寄存器是否置位,以判断是否需要更新固件。3.根据权利要求2所述的方法,其特征在于,所述控制器将所述备份存储区域中的所述固件更新数据拷贝到原固件数据的存储位置之后,所述方法还包括:所述控制器获取复位指令,所述控制器判断更新标志寄存器是否置位;若是,执行复位操作;若否,不执行复位操作。4.根据权利要求1所述的方法,其特征在于,所述获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中包括:所述控制器逐帧地接收所述固件更新数据,并将接收到的当前帧的固件更新数据形成数据包保存在随机存取存储器RAM中;所述控制器将所述数据包烧写至所述备份存储区域中;所述控制器校验所述数据包是否烧写正确;若否,则返回执行所述控制器将所述数据包烧写至所述备份存储区域中。5.根据权利要求4所述的方法,其特征在于,所述控制器校验所述数据包是否烧写正确之后,所述方法还包括:所述控制器判断所述数据包的重复烧写次数是否达到预定的阈值;若是,反馈固件更新数据烧写失败信息。6.根据权利要求4所述的方法,其特征在于,如果所述控制器校验所述数据包烧写正确,所述方法还包括:所述控制器判断烧写至所述备份存储区域的数据包是否为最后一帧数据;若是,反馈固件更新完成信息。7.根据权利要求6所述的方法,其特征在于,所述控制器判断烧写至所述备份存储区域的数据包是否为最后一帧数据包括:所述控制器获取当前数据包的序数;所述控制器根据所述当前数据包的序数是否与固件更新数据包含的总帧数相等,以判断所述备份存储区域的数据包是否为最后一帧数据。8.根据权利要求1-7任一项所述的方法,其特征在于,所述控制器采用modbus总线通信方式完成固件更新。9.一种控制器,其特征在于,包括:更新判断单元,用于判断是否需要更新固件;烧写单元,用于当判断为需要更新固件时,获取固件更新数据,并将所述固件更新数据烧写至备份存储区域中;复制单元,用于将所述备份存储区域中的所述固件更新数据...

【专利技术属性】
技术研发人员:唐恒悦
申请(专利权)人:深圳配天智能技术研究院有限公司
类型:发明
国别省市:广东,44

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

1