一种固件升级方法及装置制造方法及图纸

技术编号:37349734 阅读:40 留言:0更新日期:2023-04-22 21:47
本申请提供一种固件升级方法及装置,预先将控制的设备FLASH划分成三个数据区,分别为引导固件加载区、固件加载区和固件缓存区,所述引导固件加载区用于存放引导固件启动代码,所述固件加载区用于存放正式运行的代码,所述固件缓存区用于存放待升级固件,通过本申请在设备FLASH中增设固件缓存区,利用SD卡升级固件时升级所需的固件文件先存入固件缓存区,可以确保在固件升级的过程中不会影响程序的正常运行,如升级过程中系统断电或者SD卡被拔出,也不会影响系统的正常运行;同时,对存入设备FLASH缓存区中的数据进行CRC校验,保证升级完成后系统工作不会出现异常情况,从而提高设备的稳定性、可靠性以及准确性。可靠性以及准确性。可靠性以及准确性。

【技术实现步骤摘要】
一种固件升级方法及装置


[0001]本申请涉及工业控制系统
,特别的,尤其涉及一种固件升级方法及装置。

技术介绍

[0002]在工业控制系统领域中,SD卡由于其成本低、移动性高以及操作简单,应用越来越广泛,例如:利用SD卡进行固件升级。然而,目前利用SD卡进行固件升级会存在一些问题,如:在升级过程中,设备会进入升级模式不能保持原来的工作状态,万一升级失败,可能会导致设备不能正常工作;同时,升级过程中缺乏对固件数据的校验,以至于当FLASH存在坏片等情况时,存在导入FLASH中的数据不正确的风险,从而影响设备的稳定性和可靠性。

技术实现思路

[0003]鉴于上述内容中的问题,本申请提供了一种固件升级方法及装置,应用于工业控制系统中,用以确保在固件升级的过程中不会影响程序的正常运行,同时,保证升级完成后系统工作不会出现异常情况,从而提高设备的稳定性、可靠性以及准确性。
[0004]为了实现上述目的,本申请提供了以下技术方案:
[0005]一种固件升级方法,预先将控制的设备FLASH划分成三个数据区,分别为引导固本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种固件升级方法,其特征在于,预先将控制的设备FLASH划分成三个数据区,分别为引导固件加载区、固件加载区和固件缓存区,所述引导固件加载区用于存放引导固件启动代码,所述固件加载区用于存放正式运行的代码,所述固件缓存区用于存放待升级固件,该方法包括:按照预设周期检测,当检测设备上有SD卡插入时,且所述SD卡上有所述待升级文件的情况下,将所述待升级固件存入所述固件缓存区;根据预设校验值算法计算所述待升级固件的CRC校验值,并与标准CRC校验值进行比较,所述标准CRC校验值是上位机软件根据预设校验值算法计算得到的;若所述CRC校验值与所述标准CRC校验值相等,则确定存入所述固件缓存区内的数据正确,并将固件升级成功标志写入指定设备FLASH地址;重启所述设备运行所述引导固件加载区的引导固件启动代码,从所述指定设备FLASH地址中读取所述固件升级成功标志;若所述固件升级成功标志与预设固件升级成功标志一致,则从所述固件缓存区中拷贝代码到所述固件加载区,以实现固件升级。2.根据权利要求1所述的方法,其特征在于,所述根据预设校验值算法计算所述待升级固件的CRC校验值,包括:从所述SD卡中读取所述待升级固件,按照预设长度的子固件将每个子固件存入所述固件缓存区;从所述固件缓存区中读取每个子固件,并计算各个子固件对应的CRC校验值;将各个CRC校验值进行合成,得到所述待升级固件对应的CRC校验值。3.根据权利要求2所述的方法,其特征在于,所述上位机软件根据预设校验值算法计算得到所述标准CRC校验值,包括:通过所述上位机软件将所述待升级固件分成所述预设长度的子固件并计算每个子固件的CRC校验值;将每个子固件的CRC校验值进行合成,得到对应的标准CRC校验值;将所述标准CRC校验值存放至指定的文本文件内,得到存储所述标准CRC校验值的文本文件;将所述文本文件和所述待升级固件分别存储至SD卡指定的文件夹内。4.根据权利要求1所述的方法,其特征在于,所述将固件升级成功标志写入指定设备FLASH地址之后,还包括:删除所述SD卡上的固件升级bin文件和存有所述CRC校验值的文本文件。5.一种固件升级装置,其特征在于,预先将控制的设备FLASH划分成三个数据区,分别为引导固件加载区、固件加载区和固件缓存区,所述引导固件加载区用于存放引导固件启动代码,所述固件加载区用于存放正式运行的代码,所...

【专利技术属性】
技术研发人员:孙文甜董丹娜石莹魏思凡
申请(专利权)人:浙江中控技术股份有限公司
类型:发明
国别省市:

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

1