一种用于恢复物联网终端固件的方法以及系统与流程

文档序号:23628260发布日期:2021-01-12 10:41阅读:70来源:国知局
一种用于恢复物联网终端固件的方法以及系统与流程

本发明实施例涉及物联网领域,具体涉及一种用于恢复物联网终端固件的系统以及方法。



背景技术:

由于第五代移动通信(5g)在低时延、超低功耗、多终端兼容性上的巨大优势,随着5g的商用及普及,其所蕴藏的更多产业将会逐渐呈现。物联网(iot)终端可通过5g得到低时延、超低功耗网络环境,更能实现万物互联。

诸如pos机等的物联网终端在使用过程中,针对由于固件运行或升级过程中出现固件异常或丢失而不能正常工作的状况,通常需要返厂维修。为避免此类返厂维修,现有技术提供了联网的固件恢复方法,但其中大多数固件恢复方式都是在如android等大内存、大存储的独立的操作系统上进行,如路由器、手机、平板等,并且需要终端具有人机交互界面,通过人为操作才能恢复固件。但对于属于嵌入式设备的物联网终端来说,系统资源是有限的,如有限的网络带宽及有限的内存,没有人机交互界面,其无法适用上述现有技术中适用大内存、大存储及具用户交互界面的设备的固件恢复技术。

针对上述问题,本发明需要提供一种用于恢复物联网终端固件的方法以及系统,以简化固件恢复,并在固件异常时能自动从物联网服务器下载固件,从而实现固件异常时的自动恢复。



技术实现要素:

为了解决现有技术存在的问题,本发明的至少一个实施例提供了一种用于恢复物联网终端固件的系统以及方法。

第一方面,本发明实施例提出一种用于恢复物联网终端固件的方法,其包括以下步骤:

(a)、在物联网终端中针对其固件存储备份固件,所述备份固件包括第一物联网通信模块及第一互联网通信模块;

(b)、在所述物联网终端上电启动后,由其引导程序检测所述物联网终端的固件是否异常,并在异常时运行所述备份固件,由所述备份固件通过所述第一物联网通信模块向物联网服务器发布固件异常信息、固件异常的终端序列号以及固件版本号,并同时订阅固件升级主题;

(c)、由所述物联网服务器通过第二物联网通信模块接收所述固件异常信息、固件异常的终端序列号以及固件版本号,根据固件异常的终端序列号及固件版本号对应绑定固件下载任务,并通过第二物联网通信模块对应推送升级任务消息;

(d)、由所述备份固件通过所述第一物联网通信模块接收所述升级任务消息,利用所述升级任务消息且通过所述第一互联网通信模块从所述物联网服务器下载对应的固件升级包;

(e)、判断所述备份固件对所述固件升级包的下载是否成功,若是则继续步骤(f),若否则继续步骤(d)中对固件升级包的下载;以及

(f)、由所述引导程序在固件对应位置上安装固件升级包。

在一些实施例中,所述步骤(c)和(d)中的所述升级任务消息包括升级包信息,所述步骤(e)中通过所述升级任务消息中的升级包信息来判断所述备份固件对所述固件升级包的下载是否成功。

在一些实施例中,步骤(b)中引导程序通过检测固件的完整性来检测固件是否异常,所述引导程序在固件异常时把所述备份固件拷贝到固件对应的位置之后运行所述备份固件。

在一些实施例中,所述步骤(d)中所述备份固件通过所述第一互联网通信模块向所述物联网服务器发送下载对应的固件升级包的请求,所述物联网服务器通过第二互联网通信模块接收所述请求并将所述固件升级包发送至所述物联网终端。

在一些实施例中,步骤(d)中在从所述物联网服务器下载对应的固件升级包时,支持断点续传。

在一些实施例中,所述第一物联网通信模块及所述第二物联网通信模块均基于mqtt协议实现物联网通信。

在一些实施例中,所述第一互联网通信模块及所述第二互联网通信模块均基于http/https协议实现互联网通信。

在一些实施例中,所述物联网终端包括pos机。

第二方面,本发明实施例还提供一种用于恢复物联网终端固件的系统,其包括:

物联网终端,其包括引导程序、固件以及备份固件,所述备份固件包括第一物联网通信模块以及第一互联网通信模块,所述引导程序在所述物联网终端上电启动后检测所述固件是否异常,并在异常时运行所述备份固件,所述备份固件通过第一物联网通信模块向物联网服务器发布固件异常信息、固件异常的终端序列号以及固件版本号,并同时订阅固件升级主题;以及

所述物联网服务器,其具有第二物联网通信模块、第二互联网通信模块、处理模块以及用于存储固件升级包的升级包存储器,所述第二物联网通信模块接收所述固件异常信息、固件异常的终端序列号以及固件版本号,所述处理模块根据固件异常的终端序列号及固件版本号对应绑定固件下载任务,并通过所述第二物联网通信模块对应推送升级任务消息;

其中所述备份固件通过所述第一物联网通信模块接收所述升级任务消息,并利用所述升级任务消息且通过所述第一互联网通信模块从所述物联网服务器下载对应的固件升级包,判断对所述固件升级包的下载是否成功,若否则继续进行下载直至成功,若是则由所述引导程序在固件对应位置上安装固件升级包。

在一些实施例中,所述升级任务消息包括升级包信息,所述备份固件通过所述升级包信息来检查所下载的固件升级包是否完整,并在不完整时继续从所述物联网服务器下载对应的固件升级包,直到下载到完整的固件升级包。

在一些实施例中,所述引导程序通过检测固件的完整性来检测所述固件是否异常,所述引导程序在固件异常时把所述备份固件拷贝到固件对应的位置之后运行所述备份固件。

在一些实施例中,所述备份固件通过所述第一互联网通信模块向所述物联网服务器发送下载对应的固件升级包的请求,所述物联网服务器通过所述第二互联网通信模块接收所述请求并将所述固件升级包发送至所述物联网终端。

在一些实施例中,所述备份固件在从所述物联网服务器下载对应的升级包时,支持断点续传。

在一些实施例中,所述第一物联网通信模块及所述第二物联网通信模块均基于mqtt协议实现物联网通信。

在一些实施例中,所述第一互联网通信模块及所述第二互联网通信模块均基于http/https协议实现互联网通信。

在一些实施例中,所述物联网终端包括pos机。

与现有技术中要么需要返厂恢复固件,要么提供的固件恢复技术仅适用大内存、大存储及具用户交互界面的设备相比,本发明实施例首先在物联网终端中针对其固件存储备份固件;然后在所述物联网终端上电启动后,由其引导程序检测所述物联网终端的固件是否异常,并在异常时运行所述备份固件,由所述备份固件通过第一物联网通信模块向物联网服务器发布固件异常信息、固件异常的终端序列号以及固件版本号,并同时订阅固件升级主题;接着由所述物联网服务器通过第二物联网通信模块接收所述固件异常信息、固件异常的终端序列号以及固件版本号,根据固件异常的终端序列号及固件版本号对应绑定固件下载任务,并通过第二物联网通信模块对应推送升级任务消息;之后由所述备份固件通过第一物联网通信模块接收所述升级任务消息,利用所述升级任务消息且通过所述第一互联网通信模块从所述物联网服务器下载对应的固件升级包;最后判断所述备份固件对所述固件升级包的下载是否成功,若是则由所述引导程序在固件对应位置上安装固件升级包,若否则继续步骤对固件升级包的下载。

本发明实施例可简化固件恢复,可在固件异常时自动下载固件,从而实现物联网终端固件丢失时的自动恢复功能,还能增强用户使用的体验感,避免因固件异常造成的返厂维修。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种用于恢复物联网终端固件的系统的组成结构示意图;

图2为本发明实施例提供的一种用于恢复物联网终端固件的方法的流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

图1为本发明实施例提供的一种用于恢复物联网终端固件的系统的组成结构示意图。参见图1,用于恢复物联网终端固件的系统1包括物联网终端10以及物联网服务器12。图1中仅示出一个物联网终端10,实际上系统1中可包括多个物联网终端10。所述物联网终端10包括pos机等。以下对所述系统1的各构件进行详细说明。

物联网终端10包括引导程序10a、固件10b、备份固件10c以及终端存储模块10d。所述备份固件10c具有第一物联网通信模块100c以及第一互联网通信模块102c,所述备份固件10c借此具有物联网通信功能以及互联网通信功能。终端存储模块10d用于存储终端序列号100d以及固件版本号102d,每个物联网终端10各自具有唯一的终端序列号100d,固件版本号102d为当前固件对应的版本号。所述引导程序10a在所述物联网终端10上电启动后运行,引导程序10a首先检测所述固件10b是否异常。在本实施例中,所述引导程序10a通过检测固件10b的完整性来检测固件10b是否异常。

引导程序10a在固件10b异常时运行所述备份固件10c。在本实施例中,所述引导程序10a在固件10b异常时把所述备份固件10c拷贝到固件10b对应的位置之后再运行所述备份固件10c。在本发明其他实施例中,所述引导程序10a无需将备份固件10c拷贝到固件10b对应的位置也可直接运行所述备份固件10c。

所述备份固件10c通过第一物联网通信模块100c向所述物联网服务器12发布固件异常信息、固件异常的终端序列号100d以及固件版本号102d,并同时订阅固件升级主题;所述备份固件10c发布信息及订阅升级主题的目的在于,告诉物联网服务器12所述物联网终端10的固件已经异常,需要物联网服务器12为其绑定用于下载固件的下载任务。在本实施例中,所述第一物联网通信模块100c基于mqtt协议实现物联网通信,所述第一互联网通信模块102c基于http/https协议实现互联网通信。

物联网服务器12具有第二物联网通信模块12a、第二互联网通信模块12b、处理模块12c以及用于存储固件升级包121d、…、12nd的升级包存储器12d,所述第二物联网通信模块12a接收固件异常信息、固件异常的终端序列号100d以及固件版本号102d。所述处理模块12c根据固件异常的终端序列号100d及固件版本号102d对应绑定固件下载任务,并通过所述第二物联网通信模块12a对应推送升级任务消息。所述处理模块12c还可在固件版本号102d低于升级包存储器12d中针对物联网终端10存储的固件升级包的固件版本号时,所述处理模块12c对应绑定最新版本固件的下载任务,并对应推送升级任务消息。在本实施例中,所述第二物联网通信模块12a基于mqtt协议实现物联网通信,所述第二互联网通信模块12b基于http/https协议实现互联网通信;所述第一物联网通信模块100c与第二物联网通信模块12a均连接到物联网络(未图示)并且彼此之间通过物联网络进行通信;所述第一互联网通信模块102c与第二互联网通信模块12b均连接到互联网络(未图示)上,并且彼此之间通过互联网络进行通信。

所述备份固件10c通过所述第一物联网通信模块100c接收所述升级任务消息,利用所述升级任务消息并通过所述第一互联网通信模块102c从所述物联网服务器12下载对应的固件升级包121d、…、12nd。所述备份固件10c还判断对固件升级包的下载是否成功,若否则继续进行下载直至成功,若是则由所述引导程序10a在固件10b对应位置上安装固件升级包。

所述升级任务消息包括升级包信息,所述备份固件10c通过使用所述升级包信息检查所下载的固件升级包是否完整来判断对所述固件升级包的下载是否成功,并在不完整(即下载不成功)时继续从所述物联网服务器12下载对应的固件升级包,直到下载到完整的固件升级包(即下载成功)为止。所述备份固件10c在安装升级包之前检查其完整性,能确保升级的完整性和合法性。

所述备份固件10c通过所述第一互联网通信模块102c向所述物联网服务器12发送下载对应的固件升级包的请求,所述物联网服务器12通过第二互联网通信模块12b接收所述请求并将所述固件升级包发送至所述物联网终端10。所述备份固件10c在从所述物联网服务器12下载对应的升级包时,支持断点续传。

所述物联网终端10在所述固件升级包安装完成时可通过所述第一物联网通信模块102c或其中其他类似的物联网通信模块向所述物联网服务器12发布升级完成的信息。举例来说,引导程序10a可通过其内部类似的物联网通信模块向所述物联网服务器12发布升级完成的信息。

参见图2,结合参见图1,图2显示了本发明实施例的一种用于恢复物联网终端固件的方法的流程示意图。如图2所示,用于恢复物联网终端固件的方法20首先进行步骤s200,在物联网终端中针对其固件存储备份固件,所述备份固件包括第一物联网通信模块及第一互联网通信模块。在本实施例中,所述物联网终端包括pos机,所述第一物联网通信模块基于mqtt协议实现物联网通信,所述第一互联网通信模块基于http/https协议实现互联网通信。

在本发明其他实施例中,所述第一物联网通信模块可基于mqtt协议之外的其他业界常用物联网协议实现物联网通信,所述第一互联网通信模块可基于http/https协议之外的其他业界常用互联网协议实现互联网通信。

所述方法20继续进行步骤s210,在所述物联网终端上电启动后,由其引导程序检测所述物联网终端的固件是否异常,若是则继续步骤s220,若否则运行所述物联网终端的固件(s230)。在本实施例中,引导程序通过检测固件的完整性来检测固件是否异常,所述引导程序在固件异常时把所述备份固件拷贝到固件对应的位置之后运行所述备份固件。

在步骤s220中,运行所述备份固件,由所述备份固件通过所述第一物联网通信模块向物联网服务器发布固件异常信息、固件异常的终端序列号以及固件版本号,并同时订阅固件升级主题;每个物联网终端具有唯一的终端序列号。

所述方法20继续进行步骤s240,由所述物联网服务器通过第二物联网通信模块接收固件异常信息、固件异常的终端序列号以及固件版本号,根据固件异常的终端序列号及固件版本号对应绑定固件下载任务,并通过第二物联网通信模块对应推送升级任务消息。在本实施例中,所述物联网服务器还可在接收到的固件版本号低于其所存储的固件升级包的固件版本号时,可对应绑定最新版本固件的下载任务,并对应推送升级任务消息。

所述方法20继续进行步骤s250,由所述备份固件通过所述第一物联网通信模块接收升级任务消息。在本实施中,所述升级任务消息包括升级包信息,所述升级包信息可包括升级包的大小以及升级包的版本号。

所述方法20继续进行步骤s260,所述备份固件利用升级任务消息且通过所述第一互联网通信模块向所述物联网服务器发送下载对应的固件升级包的请求。

所述方法20继续进行步骤s270,所述物联网服务器通过第二互联网通信模块接收所述请求并将所述固件升级包发送至所述物联网终端。在本实施例中,在从所述物联网服务器下载对应的固件升级包时,支持断点续传。

所述方法20继续进行步骤s280,判断所述备份固件对固件升级包的下载是否成功,若是则继续步骤s290,若否则返回步骤s260。在本实施例中,通过所述升级任务消息中的升级包信息来判断对所述固件升级包的下载是否成功,举例来说,可通过升级包的大小来直接判断对所述固件升级包的下载是否成功。

所述方法20继续进行步骤s290,由所述引导程序在固件对应位置上安装固件升级包。

所述方法20还可在步骤s290之后进行如下步骤:在固件升级包安装完成时通过所述第一物联网通信模块向所述物联网服务器发布升级完成信息。

本发明实施例首先在物联网终端中针对其固件存储备份固件;然后在所述物联网终端上电启动后,由其引导程序检测所述物联网终端的固件是否异常,并在异常时运行所述备份固件,由所述备份固件通过第一物联网通信模块向物联网服务器发布固件异常信息、固件异常的终端序列号以及固件版本号,并同时订阅固件升级主题;接着由所述物联网服务器通过第二物联网通信模块接收所述固件异常信息、固件异常的终端序列号以及固件版本号,根据固件异常的终端序列号及固件版本号对应绑定固件下载任务,并通过第二物联网通信模块对应推送升级任务消息;之后由所述备份固件通过第一物联网通信模块接收所述升级任务消息,利用所述升级任务消息且通过所述第一互联网通信模块从所述物联网服务器下载对应的固件升级包;最后判断所述备份固件对所述固件升级包的下载是否成功,若是则由所述引导程序在固件对应位置上安装固件升级包,若否则继续步骤对固件升级包的下载。

本发明实施例可简化固件恢复,可在固件异常时自动下载固件,从而实现物联网终端固件丢失时的自动恢复功能,还能增强用户使用的体验感,避免因固件异常造成的返厂维修。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspdevice,dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的实施例中,应该理解到,方法实施例的步骤之间除非存在明确的先后顺序,否则执行顺序可任意调整。所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1