CN112910714A - 具有主从机结构的物联网终端设备的远程固件升级方法 - Google Patents

具有主从机结构的物联网终端设备的远程固件升级方法 Download PDF

Info

Publication number
CN112910714A
CN112910714A CN202110246442.4A CN202110246442A CN112910714A CN 112910714 A CN112910714 A CN 112910714A CN 202110246442 A CN202110246442 A CN 202110246442A CN 112910714 A CN112910714 A CN 112910714A
Authority
CN
China
Prior art keywords
firmware
program
slave
host
data packet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110246442.4A
Other languages
English (en)
Other versions
CN112910714B (zh
Inventor
侯其立
黎川
汪兴
汪洋
邱志刚
郭晓明
顾立春
王晨辰
雷鸣
叶振宇
唐李洋
丁茜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 38 Research Institute
Original Assignee
CETC 38 Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 38 Research Institute filed Critical CETC 38 Research Institute
Priority to CN202110246442.4A priority Critical patent/CN112910714B/zh
Publication of CN112910714A publication Critical patent/CN112910714A/zh
Application granted granted Critical
Publication of CN112910714B publication Critical patent/CN112910714B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y30/00IoT infrastructure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种具有主从机结构的物联网终端设备的远程固件升级方法,该方法至少包括一台主机和多台从机;多个从机与主机串行或并行通信连接,每台主机或从机至少包括两个程序存储器和一个非易失存储器,第一程序存储器用于存放设备参数和引导程序;第二程序存储器用于存放固件;非易失性存储器用以缓存、备份设备固件;主机获取固件升级数据包并可根据需要传送至各从机,同时存于非易失存储器中;在更新第二程序存储器中的固件之前,会对非易失性存储器中的固件进行校验,防止将错误固件升级到设备中;在运行第二程序存储器中的固件之前,会对第二程序存储器中的程序固件进行校验,防止上次固件升级失败导致此次设备运行失效,有效避免“废片”情况。

Description

具有主从机结构的物联网终端设备的远程固件升级方法
技术领域
本发明涉及远程固件升级技术领域,具体来说是一种具有主从机结构的物联网终端设备的远程固件升级方法。
背景技术
随着物联网技术的发展,智能终端设备数剧增,对于已安装的终端设备,若使用过程中发现功能软件漏洞,则需对终端设备进行固件升级。若技术人员至安装现场对设备进行手动固件升级,庞大的设备数量将会产生巨大的维护成本。终端设备远程固件升级(亦称空中升级)技术变得尤为重要。终端设备基本具有通信功能,可直接或间接连接至互联网。通过互联网对远程终端设备进行批量化、程序化的固件升级,是智能终端设备修复系统漏洞、完善系统功能的重要手段。
对于物联网终端设备,无线通信模块(GPRS/4G/NB-IoT/WIFI)的成本占整个物料成本的比重较大,为节约成本,功能相同或相近的监控终端会共用一个无线通信模块,例如将多个主板置于同一个机柜内,其中一个主板安装无线通信模块(称为主机),而其它未安装无线通信模块的主板(称为从机)通过局域通信方式与主机通讯,实现数据与互联网服务器的交互。在对此类物联网设备进行远程固件升级时,不仅需要对主机设备进行升级,还需对从机设备进行固件升级。而目前披露的远程固件升级技术,主要针对具备无线通信功能的主机。
在远程固件升级过程中,升级异常情况时有发生,例如固件获取失败、固件错误、主控芯片代码更新异常中断(例如意外断电)等,这些异常若不进行处理,不仅仅导致远程固件升级失败,更有可能导致主控芯片成为“废片”,整个设备失效,只能等待技术员至现场进行手动刷机处理。
如申请号为201611079713.7公开了一种基于主从处理器架构的固件升级方法,公开了对升级指令、Flash数据进行校验,但并未提及硬件装置及并未提及异常情况的处理,例如固件升级过程中异常中断导致升级失败后,设备应如何进行相应处理。
如申请号为201210452626.7公开了一种基于主从设备的远程升级方法和装置,没有明确指出该主从设备的必要硬件结构,以实现该远程升级方法;仅仅强调需对数据进行相关的校验,但未提及异常情况的处理:例如,若在专利中提及的“将所述从设备的第二升级文件存至第二启动文件夹”这一过程出现异常,则设备程序区将损坏,若不进行处理,设备将成为“废片”,而这种异常情况的处理,并未提及。
如申请号为201710899761.9公开的主从设备升级方法、装置及其设备,该方案提及了“对升级失败的子设备进行相应操作”,摘要中说明:该方法应用于主设备;摘要附图中的最后流程是“接收到从设备反馈的升级结果,并根据升级规则对升级结果失败的从设备进行相应操作”。可见,对升级失败的子设备进行相应操作,首先,子设备要能反馈升级结果,其次,由主设备来主导对升级失败的子设备进行相应操作。也即:这种对升级失败的异常处理,由主机完成,适用于子设备与主设备仍然能正常通讯的场合(如文件传输过程中出错)。但至少不适用于如下场合:
(1)将错误的固件传递给子设备,且子设备升级完成。这种情况下,看似升级成功,但子设备重启后无法运行固件。
(2)主设备与子设备进行升级交互过程中异常中断,如子设备意外断电,并导致子设备原有固件损坏,而新的固件又未更新完成。子设备重新上电后,无法运行固件,更无法向主设备反馈升级结果。
发明内容
本发明所要解决的技术问题在于如何提供一种能够同时支持对主机和从机进行远程固件升级的方法,并且可以有效避免升级失败所造成的“废片”情况。
本发明通过以下技术手段来解决上述技术问题:
一种具有主从机结构的物联网终端设备的远程固件升级方法,设备至少包括一台主机和多台从机;多个从机串行与主机串行通信连接,定义为方案一,或多个从机并行与主机并行通信连接,定义为方案二;
每台主机、每台从机,至少包括两个程序存储器和一个非易失存储器,其中,第一程序存储器用于存放设备参数和引导程序;第二程序存储器用于存放固件;非易失性存储器用以缓存、备份设备固件;
固件升级方法为:
步骤1.主机在收到远程固件升级命令时,当主机需要升级时,主机首先从互联网服务器下载固件升级数据包,并将数据包存储在当前主机的非易失存储器中;若从机需要升级,则主机首先从互联网服务器下载数据包;当为方案一时,主机将数据包依次通过中间从机透传至目标从机;当为方案二时,主机直接将数据包发送给目标从机;目标从机将获取的数据包存放在非易失存储器中。
步骤2.待升级的主机或从机获取数据包后,重启并进入引导程序,所述引导程序对非易失存储器中的数据包进行校验;校验通过后,将数据包更新到第二程序存储器中,更新第二程序存储器中的固件,否则,不进行更新;
步骤3.待升级主机或从机完成第二程序存储器中的固件更新后,重启并再次进入引导程序,引导程序对第二程序存储器中的固件进行校验,校验通过后,跳转至第二程序存储器中,开始运行固件程序;若校验不通过,则认为第二程序存储器中的固件在上次固件升级中升级失败,导致固件损坏,引导程序将对非易失性存储器中存储的数据包进行校验且通过后,将数据包重新更新至第二程序存储器以更新固件。
在更新第二程序存储器中的程序固件之前,会先对非易失性存储器中的固件进行校验,防止将错误固件升级到设备中;在运行第二程序存储器中的固件之前,会对第二程序存储器中的程序固件进行校验,防止上次固件升级失败导致此次设备运行失效。本发明能够同时支持对主机和从机进行远程固件升级,并且可以有效避免升级失败所造成的“废片”情况。
本发明明确提出在设备进行固件更新前,需对获得的固件进行校验,以及明确提出每次设备重启后,需对第二程序存储器内固件进行校验;明确指出“校验”所包含的项目;升级过程中,所有的异常情况处理,都是在设备自身内完成(如,主设备升级异常的情况处理由主设备自身完成,从设备升级异常的处理由从设备自身完成),不依赖于其它设备,稳定性高。
进一步的,所述引导程序对非易失存储器中的数据包、第二程序存储器中固件进行的校验,至少包括固件完整性校验和固件ID校验。
进一步的,所述固件完整性校验是指根据约定的校验算法,对除了固件校验值之外的所有固件内容进行计算校验,得到校验值与存放在固件指定位置的校验值比对,二者相同,则通过完整性校验;固件ID校验,是指从固件指定位置处获取固件ID,并与存放在第一程序存储器中指定位置的设备ID进行比对,二者互相匹配,则通过固件ID校验。
进一步的,所述主机从互联网服务器下载固件数据包完毕并对对非易失存储器中的固件进行完整性校验且校验通过后,主机判断服务器下发的固件升级指令中的升级目标设备ID为自身,则主机将第一程序存储器中的固件更新标志位置1,然后主机重启;主机重启后,首先进入引导程序,并检测到固件更新标志为1,引导程序将该标志位置0后,开始校验非易失性存储器内的数据包内容。
进一步的,所述引导程序完成非易失性存储器中的固件校验且校验通过后,先擦除第二程序存储器中的固件,然后将非易失性存储器中的数据包依次写入到第二程序存储器中,写入完毕后,主机自动重启后,首先进入引导程序,引导程序会校验第二程序存储器中的固件,如果固件校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,引导程序将对非易失性存储器中存储的数据包进行校验且通过后,将非易失性存储器中固件重新更新至第二程序存储器。
进一步的,所述引导程序完成对第二程序存储器中固件校验且通过后,跳转到第二程序存储器,运行固件,并上传固件版本信息至互联网服务器;互联网服务器收到设备上传的固件版本信息后,与期望的固件版本号比对,二者相同,则认为此次远程固件升级操作成功;不相同或超期未收到固件版本号信息,认为失败。
进一步的,如若主机判断服务器下发的固件升级指令中的升级目标设备ID非自身,则认为需要升级从机;主机将从服务器下载的固件升级数据包分包发送给目标从机;每一包数据至少包括目标设备ID、升级固件命令、固件包总长度、此次发送的固件包分包索引、此次发送的固件包分包数据、此次数据包的校验。
进一步的,当为方案一时,每一个从机包括第一串行通信接口和第二串行通信接口;所述第一串行通信接口与上游设备连接,第二串行通信接口与下游设备连接;每一个从机通过第一串行通信接口收到来自上游设备的数据包,并通过第二串行通信接口将数据直接透传至下游从机;所述第一串行通信接口收到数据包后,先对数据包进行校验,检验通过后,判断目标设备ID是否为自身,若为自身,则将固件包数据按索引存放至非易失存储器的指定区域,并通过第一串行通信接口向上游设备发送应答数据;每一个从机的第二串行通信接口收到来自下游从机的数据后,通过第一串行通信接口将数据直接透传至上游设备,直至传送至主机;主机收到来自目标从机的正确接收应答后,继续发送剩余固件包;目标从机接收到完整固件数据且通过完整性校验后,将固件更新标志位置1,并且目标从机自动重启;同时,主机持续发送对目标从机的巡检命令。
进一步的,当为方案二时,每个从机包括与主机通信连接的局域通信接口;主机根据服务器下发的固件升级指令中的升级目标设备ID直接将数据包发送给目标从机。
进一步的,目标从机重启后,首先进入引导程序,并检测到固件更新标志为1,引导程序将该标志位置0后,开始校验非易失性存储器内的数据包内容;引导程序完成非易失存储器中的固件校验且校验通过后,先擦除第二程序存储器中的固件,然后将非易失存储器中的数据包内容依次写入到第二程序存储器中,写入完毕后,目标从机自动重启后,首先进入引导程序,引导程序会校验第二程序存储器中的固件,如果固件校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,引导程序将对非易失性存储器中存储的固件进行校验且通过后,将固件重新更新至第二程序存储器。
进一步的,所述引导程序完成对固件校验且通过后,目标从机跳转到第二程序存储器,运行固件;目标从机运行固件时,检测到来自主机的巡检命令,从机应答固件版本信息至主机;主机收到来自目标从机的固件版本信息后,向互联网服务器发送从机的固件版本信息,互联网服务器收到设备上传的固件版本信息后,与期望的固件版本号比对,二者相同,则认为此次远程固件升级操作成功,不相同或超期未收到固件版本号信息,认为失败。
本发明的优点在于:
在更新第二程序存储器中的程序固件之前,会先对非易失性存储器中的固件进行校验,防止将错误固件升级到设备中;在运行第二程序存储器中的固件之前,会对第二程序存储器中的程序固件进行校验,防止上次固件升级失败导致此次设备运行失效。本发明能够同时支持对主机和从机进行远程固件升级,并且可以有效避免升级失败所造成的“废片”情况。
本发明明确提出在设备进行固件更新前,需对获得的固件进行校验,以及明确提出每次设备重启后,需对第二程序存储器内固件进行校验;明确指出“校验”所包含的项目;升级过程中,所有的异常情况处理,都是在设备自身内完成(如,主设备升级异常的情况处理由主设备自身完成,从设备升级异常的处理由从设备自身完成),不依赖于其它设备,稳定性高。
附图说明
图1是本发明实施例1的系统结构示意图;
图2是本发明实施例1的第一程序存储器中的数据内容;
图3是本发明实施例1的第二程序存储器中的数据内容;
图4是本发明实施例1的非易失存储器中的数据内容;
图5是本发明实施例1的所述固件的数据格式;
图6是本发明实施例1的BOOT程序工作流程图;
图7是本发明实施例1的主机APP程序工作流程图;
图8是本发明实施例1的主机固件升级指令执行流程图;
图9是本发明实施例1的主机向从机发送固件的数据格式;
图10是本发明实施例1的从机APP程序工作流程图;
图11是本发明实施例1的从机处理第一串行通信接口命令流程图;
图12是本发明实施例1的从机处理第一串行通信接口固件升级命令流程图;
图13是本发明实施例1的固件完整性校验流程图;
图14是本发明实施例1的固件ID校验流程图;
图15为本发明实施例2的系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1主从机串行连接
图1显示了本发明实施例1的系统结构,系统包括了一台主机和若干台从机;其中主机具备无线通信模块和一个串行通信接口;从机具备两个串行通信接口;每台主机和从机具备两个程序存储器和一个非易失存储器。主机通过无线通信模块可与互联网服务器进行通信,通过串行通信接口可与从机进行通信;
图2显示了第一程序存储器中的数据内容,由设备参数和BOOT程序(引导程序)构成。设备参数至少包括设备ID和APP程序更新标志(固件更新标志),并且置于第一程序存储器中的指定位置。
图3显示了第二程序存储器中的数据内容,图4为非易失存储器中的数据内容,图5为本发明所述固件格式。第二程序存储器、非易失存储器存放的都为本专利所述的固件。本专利所述的固件至少含有固件ID、固件版本、固件长度、固件校验值信息,并且存放于固件的指定位置处。
每台主机、每台从机重启后均由第一程序存储器中的BOOT程序开始执行。图6给出了BOOT程序工作流程图。可以看到,BOOT程序负责检测是否需要对第二程序存储器中的APP程序进行更新;若需要,由BOOT程序对非易失性存储器中存储的固件进行校验且通过后,将固件依次更新至第二程序存储器;同时,BOOT程序负责对第二程序存储器中的APP程序固件进行校验,如若校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,BOOT程序将对非易失性存储器中存储的固件进行校验且通过后,将固件重新更新至第二程序存储器;最后,BOOT程序负责程序跳转,在无需进行程序更新且第二程序存储器中的APP程序固件校验通过后,跳转至第二程序存储器运行APP程序。可以看到,在需要进行APP程序更新时,BOOT程序会对非易失存储器中缓存的固件进行校验,防止将错误固件更新到第二程序存储器中;而在运行第二程序存储器中的APP程序之前,同样会校验固件,可防止上次固件升级失败导致此次固件运行失效。
对于主机,进入APP程序后的工作流程图如图7所示。在完成设备初始化后,会主动上报本机的固件版本信息至互联网服务器,然后建立至少两个子任务模块:无线通信任务模块和串行通信任务模块。无线通信模块负责接收互联网服务器的下发指令、上发主机及从机的事件。串行通信任务模块负责周期性的对从机进行巡检、传递互联网服务器的下发指令并获取从机的应答数据。
远程固件升级总是从互联网服务器向主机下发升级指令开始。图8给出了主机执行固件升级指令的流程。首先,主机从升级指令中获取到固件下载地址和升级目标设备ID;然后根据固件下载地址,分包从互联网服务器下载固件,并存入非易失存储器中;在固件下载完毕后,进行完整性校验,确认固件包完整;通过后,主机判断升级目标设备ID是否与自身设备ID相同:
若相同,则将APP程序更新标志置为1,最后重启;接下来主机将进入图6所述的BOOT程序部分,完成固件的校验、升级、确认;
若不同,则将升级从机标志置1;接下来,在图7的串行通信任务模块中,固件将被发送到从机。发送的数据包格式如图9所示。
对于从机,进入APP程序后的工作流程图如图10所述。在完成功能模块初始化后,从机等待主机的巡检指令,并应答本机固件信息,该固件信息将由主机上传到互联网服务器。之后,从机建立至少两个任务子模块:第一串行通信接口任务模块和第二串行通信接口任务模块。第一串行通信接口任务模块负责将本接口收到的数据传递至第二串行通信接口以供发送至下游设备;同时将第二串行通信接口接收的数据发送至上游设备;第二串行通信接口任务模块负责将本接口收到的数据传递至第一串行通信接口以供发送至上游设备,同时将第一串行通信接口接收到的数据发送至下游设备。此外,第一串行通信接口任务模块还负责处理接收到的来自上游设备的数据。
图11给出了从机处理第一串行通信接口接收命令的流程图。在收到命令后,先进行必要的数据格式校验,校验通过后,判断命令帧中的目标设备ID是否与自身设备ID相同,若不同,则忽略此帧命令;若相同,则处理此帧命令,并准备应答数据,然后将应答数据复制到第一串行通信口的发送列表,以供发送至上游设备。
特定的,图12给出了从机处理第一串行通信接口接收固件升级命令的流程图。在收到固件升级指令后,从机进行数据校验、设备ID校验且校验通过后,一方面将接收到的固件数据存储至非易失存储器中,另一方面准备应答数据,并复制到第一串行通信接口的发送列表。待所有固件接收完成后,从机进行初步的固件完整性校验,校验通过后,将APP程序更新标志置为1,然后重启。接下来,从机将进入图6所述的BOOT程序部分,完成固件的校验、升级、确认;
图13给出了一种对固件进行完整性校验的流程图;
图14给出了一种对固件进行固件ID校验的流程图。
因进入APP程序后,主机和从机均会上发本机的固件版本信息,互联网服务器收到固件版本信息后,即可对上次固件升级的结果进行评判。
本实施例提供一种具有主从机结构的物联网终端设备及升级方法,如图1所示,设备包括一台主机和至少一台从机;一台主机与多台从机之间采用串行方式通信连接。
具体的,每台主机,具备一个无线通信模块,无线通信模块可以是但不限于GPRS/4G/NB-IoT/WIFI无线通信模块,同时具备一个串行通信接口,可以是但不限于SPI/UART/I2C/CAN接口。其中,无线通信模块用以和互联网服务器进行数据交互,串行通信接口用以和从机进行数据交互;
每台从机,具备两个串行通信接口,可以但不限于为SPI/UART/I2C/CAN接口,其中第一串行通信接口用以和上游设备进行通信,第二串行通信接口用以和下游设备进行通信。
具体的,每台主机、每台从机,至少包括两个程序存储器和一个非易失存储器。每台主机、每台从机内的第一程序存储器,用于存放设备参数和引导程序(BOOT程序);设备参数至少包括设备ID和APP程序更新标志,并且置于第一程序存储器中的指定位置。设备参数和引导程序均在设备出厂前预置;每台主机、每台从机内的第二程序存储器,用于存放应用程序(APP程序,也即本专利所述的固件,设备出厂前应预置好正确的一套固件);APP程序中的指定位置含有固件ID、固件版本、固件长度、固件校验值信息;本专利所述的固件升级,即是对第二程序存储器中的APP程序固件进行更新;
每台主机、每台从机的非易失性存储器,用以缓存、备份设备固件;
本实施例中的固件至少含有固件ID、固件版本、固件长度、固件校验值信息,并且存放于固件的指定位置处;固件升级时所用到的固件由用户生成,然后存放在互联网服务器中,供设备下载升级。
相应的,本实施例提供一种具备主从机结构的物联网终端设备的固件升级方法,在该方法中,每台主机、每台从机重启后,均从BOOT程序区开始运行;BOOT程序负责检测是否需要对APP程序进行更新;若需要,由BOOT程序对非易失性存储器中存储的固件进行校验且通过后,将固件依次更新至第二程序存储器,然后重启;否则,不更新第二程序存储器中的固件;
每台主机、每台从机重启后,均从BOOT程序区开始运行,BOOT程序负责对第二程序存储器中的APP程序固件进行校验,如若校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,BOOT程序将对非易失性存储器中存储的固件进行校验且通过后,将固件重新更新至第二程序存储器;
每台主机、每台从机重启后,均从BOOT程序区开始运行,BOOT程序负责对第二程序存储器中的APP程序进行校验,校验通过后,跳转至第二程序存储器中,开始运行APP程序;
此处,BOOT程序对非易失存储器中的固件、第二程序存储器中APP程序固件进行的校验,至少包括固件完整性校验和固件ID校验。固件完整性校验是指根据约定的校验算法,对除了固件校验值之外的所有固件内容进行计算校验,得到校验值与存放在固件指定位置的校验值比对,二者相同,则通过完整性校验;固件ID校验,是指从固件指定位置处获取固件ID,并与存放在第一程序存储器中指定位置的设备ID进行比对,二者互相匹配,则通过固件ID校验;
此处,因第二程序存储器和非易失存储器中,同一时刻至少有一个存储器中存有正确的固件,因此可有效避免升级过程中各类异常所产生的“废片”情况。
主机在运行APP程序时,若收到服务器的固件升级指令,则开始启动固件升级操作。其中,服务器下发的固件升级指令,应至少包括升级目标设备ID、固件获取的网络地址信息;
主机对服务器下发的固件升级指令进行解析、校验通过后,开始执行固件下载操作。固件获取的通信协议可以但不限于TCP/HTTP/HTTPS/FTP等方式。主机分多次请求完成固件的下载,每次请求命令中包含固件的索引信息,服务器端返还指定索引处的固件内容至主机。包含固件索引信息的优点是支持断点续传,在因网络不稳定等因素造成的固件下载失败需重试时,主机无需从头开始下载,只需从下载失败处下载即可。主机将下载下来的固件数据存放在非易失性存储器的指定位置中;
进一步的,主机分包下载所有的固件数据后,对存放在非易失性存储器中的固件进行完整性校验(此处不进行固件ID校验,因为固件可能是针对从机的固件),校验方法可以但不限于MD5/CRC校验等;若校验不通过,终止固件升级操作,并向服务器返回固件升级失败消息;
进一步的,主机在对非易失存储器中的固件进行完整性校验且校验通过后,分两种情况执行:
(1)第一种情况:
主机判断服务器下发的固件升级指令中的升级目标设备ID为自身,则主机将第一程序存储器中的APP程序更新标志位置1,然后主机重启;
进一步的,主机重启后,首先进入BOOT程序,并检测到APP程序更新标志为1,BOOT程序将该标志位置0后,开始校验非易失性存储器内的固件内容,校验应至少包括:固件完整性校验和固件ID校验;
进一步的,BOOT程序完成非易失性存储器中的固件校验且校验通过后,先擦除第二程序存储器中的APP程序,然后将非易失性存储器中的固件数据依次写入到第二程序存储器中。写入完毕后,主机自动重启;
进一步的,主机重启后,首先进入BOOT程序,BOOT程序会校验第二程序存储器中的APP程序固件,校验至少包括固件完整性和固件ID检验。如果APP程序固件校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,BOOT程序将对非易失性存储器中存储的固件进行校验且通过后,将固件重新更新至第二程序存储器,避免“废片”;
进一步的,BOOT程序区完成对APP程序区的固件校验且通过后,跳转到第二程序存储器,运行APP程序,并上传固件版本信息至互联网服务器;
进一步的,互联网服务器收到设备上传的固件版本信息后,与期望的固件版本号比对,二者相同,则认为此次远程固件升级操作成功;不相同或超期未收到固件版本号信息,认为失败。
(2)第二种情况:
如若主机判断服务器下发的固件升级指令中的升级目标设备ID非自身,则认为需要升级从机。
进一步的,主机通过串行通信接口将固件数据分包发送给目标从机;每一包数据至少包括目标设备ID、升级固件命令、固件包总长度、此次发送的固件包分包索引、此次发送的固件包分包数据、此次数据包的校验;每一个从机通过第一串行通信接口收到来自上游设备的数据包,并通过第二串行通信接口将数据直接透传至下游从机;
进一步的,每一个从机的第一串行通信接口收到数据包后,先对数据包进行校验,检验通过后,判断目标设备ID是否为自身,若为自身,则将固件包数据按索引存放至非易失存储器的指定区域,并通过第一串行通信接口向上游设备发送应答数据;
进一步的,每一个从机的第二串行通信接口收到来自下游从机的数据后,通过第一串行通信接口将数据直接透传至上游设备,直至传送至主机;
进一步的,主机收到来自目标从机的正确接收应答后,继续发送剩余固件包;
进一步的,目标从机接收到完整固件数据且通过完整性校验后,将APP程序更新标志位置1,并且目标从机自动重启;同时,主机持续发送对目标从机的巡检命令;
进一步的,目标从机重启后,首先进入BOOT程序,并检测到APP程序更新标志为1,BOOT程序将该标志位置0后,开始校验非易失性存储器内的固件内容,校验应至少包括:固件完整性校验和固件ID校验;
进一步的,BOOT程序完成非易失存储器中的固件校验且校验通过后,先擦除第二程序存储器中的APP程序,然后将非易失存储器中的固件数据依次写入到第二程序存储器中。写入完毕后,目标从机自动重启;
进一步的,目标从机重启后,首先进入BOOT程序,BOOT程序会校验第二程序存储器中的APP程序固件,校验至少包括固件完整性和固件ID检验。如果APP程序固件校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,BOOT程序将对非易失性存储器中存储的固件进行校验且通过后,将固件重新更新至第二程序存储器,避免“废片”。
进一步的,BOOT程序完成对APP程序固件校验且通过后,目标从机跳转到第二程序存储器,运行APP程序;
进一步的,目标从机运行APP程序时,检测到来自主机的巡检命令,从机应答固件版本信息至主机。
进一步的,主机收到来自目标从机的固件版本信息后,向互联网服务器发送从机的固件版本信息,互联网服务器收到设备上传的固件版本信息后,与期望的固件版本号比对,二者相同,则认为此次远程固件升级操作成功。不相同或超期未收到固件版本号信息,认为失败。
实施例2主从机并行连接
图15给出了本发明专利中主从机采用并行通讯方式的实施例。在该实施例中,系统包括了一台主机和若干台从机;其中主机具备无线通信模块和局域通信接口;从机具备一个局域通信接口;每台主机和从机具备两个程序存储器和一个非易失存储器。
在该实施例中,主从机采用局域通信接口进行并行通讯,局域通信接口可以但不限于为WIFI/LoRa/ZigBee/RS485/CAN/I2C接口。每个从机的上游设备即是主机,每个从机不再有下游设备。
在该实施例中,主机的远程固件升级方法与实施例1中的方法完全相同。
在该实施例中,从机的远程固件升级方法与实施例1中的方法略有差异,主要体现在主从机的通讯方式上。在该实施例中,主机可以直接与每一个从机通讯,因此任一从机都无需进行实施例1中提及的数据透传操作。
在该实施例中,对从机进行远程固件升级操作时,每个从机对其局域通信接口接收到数据的处理方式,与实施例1中每个从机对其第一串行通信接口接收到数据的处理方式相同;主机对其局域通信接口接收到数据的处理方式,与实施例1中主机对其串行通信接口接收到数据的处理方式相同。
该实施例与实施例1的方法是类似的,对本领域技术人员来说是易获得的,故在此不再赘述。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种具有主从机结构的物联网终端设备的远程固件升级方法,其特征在于:设备至少包括一台主机和多台从机;多个从机串行与主机串行通信连接,定义为方案一,或多个从机并行与主机并行通信连接,定义为方案二;
每台主机、每台从机,至少包括两个程序存储器和一个非易失存储器,其中,第一程序存储器用于存放设备参数和引导程序;第二程序存储器用于存放固件;非易失性存储器用以缓存、备份设备固件;
升级方法为:
步骤1.在收到远程固件升级命令时,当主机需要升级时,主机首先从互联网服务器下载固件升级数据包,并将数据包存储在当前主机的非易失存储器中;若从机需要升级,则主机首先从互联网服务器下载数据包;当为方案一时,主机将数据包依次通过中间从机透传至目标从机;当为方案二时,主机直接将数据包发送给目标从机;目标从机将获取的数据包存放在非易失存储器中。
步骤2.待升级的主机或从机获取数据包后,重启并进入引导程序,所述引导程序对非易失存储器中的数据包进行校验;校验通过后,将数据包更新到第二程序存储器中,更新第二程序存储器中的固件,否则,不进行更新;
步骤3.待升级主机或从机完成第二程序存储器中的固件更新后,重启并再次进入引导程序,引导程序对第二程序存储器中的固件进行校验,校验通过后,跳转至第二程序存储器中,开始运行固件程序;若校验不通过,则认为第二程序存储器中的固件在上次固件升级中升级失败,导致固件损坏,引导程序将对非易失性存储器中存储的数据包进行校验且通过后,将数据包重新更新至第二程序存储器以更新固件。
2.根据权利要求1所述的方法,其特征在于:所述引导程序对非易失存储器中的数据包、第二程序存储器中固件进行的校验,至少包括固件完整性校验和固件ID校验。
3.根据权利要求2所述的方法,其特征在于:所述固件完整性校验是指根据约定的校验算法,对除了固件校验值之外的所有固件内容进行计算校验,得到校验值与存放在固件指定位置的校验值比对,二者相同,则通过完整性校验;固件ID校验,是指从固件指定位置处获取固件ID,并与存放在第一程序存储器中指定位置的设备ID进行比对,二者互相匹配,则通过固件ID校验。
4.根据权利要求1至3任一所述的方法,其特征在于:所述主机从互联网服务器下载固件数据包完毕并对非易失存储器中的固件进行完整性校验且校验通过后,主机判断服务器下发的固件升级指令中的升级目标设备ID为自身,则主机将第一程序存储器中的固件更新标志位置1,然后主机重启;主机重启后,首先进入引导程序,并检测到固件更新标志为1,引导程序将该标志位置0后,开始校验非易失性存储器内的数据包内容。
5.根据权利要求4所述的方法,其特征在于:所述引导程序完成非易失性存储器中的固件校验且校验通过后,先擦除第二程序存储器中的固件,然后将非易失性存储器中的数据包依次写入到第二程序存储器中,写入完毕后,主机自动重启后,首先进入引导程序,引导程序会校验第二程序存储器中的固件,如果固件校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,引导程序将对非易失性存储器中存储的数据包进行校验且通过后,将非易失性存储器中固件重新更新至第二程序存储器。
6.根据权利要求4所述的方法,其特征在于:所述引导程序完成对第二程序存储器中固件校验且通过后,跳转到第二程序存储器,运行固件,并上传固件版本信息至互联网服务器;互联网服务器收到设备上传的固件版本信息后,与期望的固件版本号比对,二者相同,则认为此次远程固件升级操作成功;不相同或超期未收到固件版本号信息,认为失败。
7.根据权利要求1至3任一所述的方法,其特征在于:所述主机从互联网服务器下载固件数据包完毕并对非易失存储器中的固件进行完整性校验且校验通过后,如若主机判断服务器下发的固件升级指令中的升级目标设备ID非自身,则认为需要升级从机;主机将从服务器下载的固件升级数据包分包发送给目标从机;每一包数据至少包括目标设备ID、升级固件命令、固件包总长度、此次发送的固件包分包索引、此次发送的固件包分包数据、此次数据包的校验。
8.根据权利要求7所述的方法,其特征在于:当为方案一时,每一个从机包括第一串行通信接口和第二串行通信接口;所述第一串行通信接口与上游设备连接,第二串行通信接口与下游设备连接;每一个从机通过第一串行通信接口收到来自上游设备的数据包,并通过第二串行通信接口将数据直接透传至下游从机;所述第一串行通信接口收到数据包后,先对数据包进行校验,校验通过后,判断目标设备ID是否为自身,若为自身,则将固件包数据按索引存放至非易失存储器的指定区域,并通过第一串行通信接口向上游设备发送应答数据;每一个从机的第二串行通信接口收到来自下游从机的数据后,通过第一串行通信接口将数据直接透传至上游设备,直至传送至主机;主机收到来自目标从机的正确接收应答后,继续发送剩余固件包;目标从机接收到完整固件数据且通过完整性校验后,将固件更新标志位置1,并且目标从机自动重启;同时,主机持续发送对目标从机的巡检命令。
9.根据权利要求8所述的方法,其特征在于:当为方案二时,每个从机包括与主机通信连接的局域通信接口;主机根据服务器下发的固件升级指令中的升级目标设备ID直接将数据包发送给目标从机。
10.根据权利要求9所述的方法,其特征在于:目标从机重启后,首先进入引导程序,并检测到固件更新标志为1,引导程序将该标志位置0后,开始校验非易失性存储器内的数据包内容;引导程序完成非易失存储器中的固件校验且校验通过后,先擦除第二程序存储器中的固件,然后将非易失存储器中的数据包内容依次写入到第二程序存储器中,写入完毕后,目标从机自动重启后,首先进入引导程序,引导程序会校验第二程序存储器中的固件,如果固件校验不通过,则认为第二存储器中的固件在上次固件升级中升级失败,导致固件损坏,引导程序将对非易失性存储器中存储的固件进行校验且通过后,将固件重新更新至第二程序存储器;引导程序完成对第二程序存储器中的固件校验且通过后,目标从机跳转到第二程序存储器,运行固件;目标从机运行固件时,检测到来自主机的巡检命令,从机应答固件版本信息至主机;主机收到来自目标从机的固件版本信息后,向互联网服务器发送从机的固件版本信息,互联网服务器收到设备上传的固件版本信息后,与期望的固件版本号比对,二者相同,则认为此次远程固件升级操作成功,不相同或超期未收到固件版本号信息,认为失败。
CN202110246442.4A 2021-03-05 2021-03-05 具有主从机结构的物联网终端设备的远程固件升级方法 Active CN112910714B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110246442.4A CN112910714B (zh) 2021-03-05 2021-03-05 具有主从机结构的物联网终端设备的远程固件升级方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110246442.4A CN112910714B (zh) 2021-03-05 2021-03-05 具有主从机结构的物联网终端设备的远程固件升级方法

Publications (2)

Publication Number Publication Date
CN112910714A true CN112910714A (zh) 2021-06-04
CN112910714B CN112910714B (zh) 2022-04-22

Family

ID=76107789

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110246442.4A Active CN112910714B (zh) 2021-03-05 2021-03-05 具有主从机结构的物联网终端设备的远程固件升级方法

Country Status (1)

Country Link
CN (1) CN112910714B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113411408A (zh) * 2021-06-30 2021-09-17 上海乾隆节能科技有限公司 数据处理方法,集中控制器主机,以及数据处理系统
CN113553073A (zh) * 2021-07-22 2021-10-26 中科可控信息产业有限公司 系统刷写方法、装置、电子设备及可读存储介质
CN113891305A (zh) * 2021-10-11 2022-01-04 江苏中海昇物联科技有限公司 一种基于主从机结构的远程固件升级系统及升级方法
CN114513413A (zh) * 2022-01-04 2022-05-17 广东万和新电气股份有限公司 智能家居设备的升级方法、智能家居设备及系统
CN114866525A (zh) * 2022-05-19 2022-08-05 深圳市艾迪思特信息技术有限公司 一种一主多从模式嵌入式设备远程在线固件升级方法及系统
CN115686586A (zh) * 2022-11-16 2023-02-03 深圳市拓邦自动化技术有限公司 终端设备程序升级方法、装置及用电设备
WO2023198056A1 (zh) * 2022-04-11 2023-10-19 乐鑫信息科技(上海)股份有限公司 嵌入式设备固件更新方法以及嵌入式设备
CN117784699A (zh) * 2024-02-28 2024-03-29 深圳市瑞天激光有限公司 一种通讯方法、装置及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052699A1 (en) * 2006-08-02 2008-02-28 Baker Steven T Syncronized dual-processor firmware updates
CN102314369A (zh) * 2011-10-09 2012-01-11 杭州先锋电子技术股份有限公司 一种远程在线监控系统中设备自升级方法
CN109117168A (zh) * 2018-08-29 2019-01-01 拓攻(南京)机器人有限公司 无人机固件更新方法、装置、无人机及存储介质
CN109669708A (zh) * 2018-11-02 2019-04-23 金卡智能集团股份有限公司 用于模块化物联网终端设备的远程升级方法
CN110333891A (zh) * 2019-07-08 2019-10-15 四川爱联科技有限公司 基于物联网的增强型ota升级的方法
US10489142B1 (en) * 2018-02-09 2019-11-26 American Megatrends International, Llc Secure firmware integrity monitoring using rest over IPMI interface
CN111641527A (zh) * 2020-05-28 2020-09-08 四川爱创科技有限公司 一种嵌入式芯片软件远程升级备份方法
CN112104501A (zh) * 2020-09-16 2020-12-18 山东省计算中心(国家超级计算济南中心) 一种农机深松物联网终端设备的软件远程升级的方法
CN112231709A (zh) * 2020-10-15 2021-01-15 中国电子科技集团公司第三十八研究所 一种带远程升级功能的系统安全设计方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052699A1 (en) * 2006-08-02 2008-02-28 Baker Steven T Syncronized dual-processor firmware updates
CN102314369A (zh) * 2011-10-09 2012-01-11 杭州先锋电子技术股份有限公司 一种远程在线监控系统中设备自升级方法
US10489142B1 (en) * 2018-02-09 2019-11-26 American Megatrends International, Llc Secure firmware integrity monitoring using rest over IPMI interface
CN109117168A (zh) * 2018-08-29 2019-01-01 拓攻(南京)机器人有限公司 无人机固件更新方法、装置、无人机及存储介质
CN109669708A (zh) * 2018-11-02 2019-04-23 金卡智能集团股份有限公司 用于模块化物联网终端设备的远程升级方法
CN110333891A (zh) * 2019-07-08 2019-10-15 四川爱联科技有限公司 基于物联网的增强型ota升级的方法
CN111641527A (zh) * 2020-05-28 2020-09-08 四川爱创科技有限公司 一种嵌入式芯片软件远程升级备份方法
CN112104501A (zh) * 2020-09-16 2020-12-18 山东省计算中心(国家超级计算济南中心) 一种农机深松物联网终端设备的软件远程升级的方法
CN112231709A (zh) * 2020-10-15 2021-01-15 中国电子科技集团公司第三十八研究所 一种带远程升级功能的系统安全设计方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
侯其立等: "基于物联网的用户信息传输装置系统设计", 《物联网技术》 *
朱正伟: "一种支持断点续传的UV LED固化系统升级方法的研究", 《计算机测量与控制 》 *
李刚等: "智能电力设备在线远程软件升级新方法", 《自动化与仪表》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113411408A (zh) * 2021-06-30 2021-09-17 上海乾隆节能科技有限公司 数据处理方法,集中控制器主机,以及数据处理系统
CN113553073A (zh) * 2021-07-22 2021-10-26 中科可控信息产业有限公司 系统刷写方法、装置、电子设备及可读存储介质
CN113891305A (zh) * 2021-10-11 2022-01-04 江苏中海昇物联科技有限公司 一种基于主从机结构的远程固件升级系统及升级方法
CN114513413A (zh) * 2022-01-04 2022-05-17 广东万和新电气股份有限公司 智能家居设备的升级方法、智能家居设备及系统
CN114513413B (zh) * 2022-01-04 2023-10-10 广东万和新电气股份有限公司 智能家居设备的升级方法、智能家居设备及系统
WO2023198056A1 (zh) * 2022-04-11 2023-10-19 乐鑫信息科技(上海)股份有限公司 嵌入式设备固件更新方法以及嵌入式设备
CN114866525A (zh) * 2022-05-19 2022-08-05 深圳市艾迪思特信息技术有限公司 一种一主多从模式嵌入式设备远程在线固件升级方法及系统
CN114866525B (zh) * 2022-05-19 2024-04-12 深圳市艾迪思特信息技术有限公司 一种一主多从模式嵌入式设备远程在线固件升级方法及系统
CN115686586A (zh) * 2022-11-16 2023-02-03 深圳市拓邦自动化技术有限公司 终端设备程序升级方法、装置及用电设备
CN117784699A (zh) * 2024-02-28 2024-03-29 深圳市瑞天激光有限公司 一种通讯方法、装置及系统
CN117784699B (zh) * 2024-02-28 2024-05-28 深圳市瑞天激光有限公司 一种通讯方法、装置及系统

Also Published As

Publication number Publication date
CN112910714B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN112910714B (zh) 具有主从机结构的物联网终端设备的远程固件升级方法
CN109189445B (zh) 一种物联网设备程序升级的方法
CN110209405B (zh) 分布式系统的自动化升级方法及装置
US20120117557A1 (en) Method and system for upgrading wireless data card
CN106325929B (zh) 一种固件升级方法、固件升级装置、冰箱和服务端
CN110083374B (zh) 一种升级回滚方法、系统及终端设备
US9471300B2 (en) Wireless firmware upgrades to an alarm security panel
EP3879399B1 (en) Method and apparatus for upgrading vehicle-mounted tbox, device, and storage medium
CN112181455B (zh) 微控制器的在线升级方法、微控制器及存储介质
CN110187909B (zh) 一种基于安卓系统的单片机固件升级方法
CN111651174A (zh) 一种mcu程序远程升级方法和系统
CN112433769A (zh) 一种bmc启动方法、装置、计算机设备及存储介质
CN109416629A (zh) 固件升级方法、电子设备、相机系统和无人飞行器
CN109445809A (zh) 列车自动监控ats子系统软件自动升级方法及系统
CN105045640A (zh) 一种软件升级方法、装置及智能设备
CN111782246A (zh) 基于总线的多节点设备嵌入式程序升级方法
CN110580167A (zh) 一种系统升级方法、智能设备及服务器
JP3093541B2 (ja) プログラムおよびデータの版数管理を行う端末装置およびオンラインシステム
CN115437674B (zh) 一种固件升级方法、装置、介质及电子设备
CN112256283A (zh) 用于Android设备的应用版本管控方法及装置
CN107332589A (zh) 一种基于蓝牙的固件升级装置
CN116360570A (zh) Cpu上电时序的控制方法、控制装置和电子设备
Zhang et al. Design and implementation of remote upgrade system for vehicle terminal based on GPRS
CN109428936A (zh) App的升级方法、装置、系统、电子设备及存储介质
CN114020294A (zh) 一种ecu无线升级的方法、系统及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant