CN109471651A - 一种固件升级方法、网关设备及固件升级系统 - Google Patents

一种固件升级方法、网关设备及固件升级系统 Download PDF

Info

Publication number
CN109471651A
CN109471651A CN201811611951.7A CN201811611951A CN109471651A CN 109471651 A CN109471651 A CN 109471651A CN 201811611951 A CN201811611951 A CN 201811611951A CN 109471651 A CN109471651 A CN 109471651A
Authority
CN
China
Prior art keywords
firmware
state
equipment
infection
passed
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
CN201811611951.7A
Other languages
English (en)
Other versions
CN109471651B (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.)
Beijing Haohengtian Technology Co Ltd
Original Assignee
Beijing Haohengtian Technology Co Ltd
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 Beijing Haohengtian Technology Co Ltd filed Critical Beijing Haohengtian Technology Co Ltd
Priority to CN201811611951.7A priority Critical patent/CN109471651B/zh
Publication of CN109471651A publication Critical patent/CN109471651A/zh
Application granted granted Critical
Publication of CN109471651B publication Critical patent/CN109471651B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种固件升级方法,适于在电子设备中执行,所述方法包括:下载需要升级的目标固件以及具备传染能力的传染固件,所述传染固件能够使其周围的设备升级后具备传染能力;搜索周围的待传染设备并将其加入到监控列表中,监控列表中展示所添加的各设备的当前固件状态;将传染固件传递给各待传染设备,使之具备传染能力;将目标固件传递给各待传染设备,使之具备所述目标固件;以及将传染固件再次传递给各待传染设备,使之具备传染固件以完成固件升级,进而使之能够基于其所具备的传染能力、目标固件和传染固件来继续传染周围同类型的其他待传染设备。本发明还公开了用于执行该方法的网关设备及相应的固件升级系统。

Description

一种固件升级方法、网关设备及固件升级系统
技术领域
本发明涉及智能家居技术领域,尤其涉及一种固件升级方法、网关设备及固件升级系统。
背景技术
随着计算机信息技术的不断发展,嵌入式系统在社会的各个领域都有广泛应用。由于用户的要求越来越高,嵌入式设备的功能也变得越来越强大,进而软件也越来越复杂,固件版本也在随之不断的更新。
固件升级有在现场升级和不在现场升级两种情况,后者可以在工厂运用设计好的工装,配合自动化脚本和熟练的工人操作,因此效率比较高。而在现场升级则面临着诸多不便,例如嵌入式设备可能安装在人不容易触及的地方,导致无法进行物理上的接触和操作;或者设备的位置可能比较分散,甚至可能是共享单车等可移动设备,导致在进行升级时可能会漏掉部分设备。
在现场固件升级可以通过互联网升级或使用辅助设备升级。通过互联网升级可以不需要人工干预,自主通过互联网获取最新的固件并完成自我升级,且对需要升级的设备数量没有上限。但这种方法对网络的依赖性极大,一旦现场不具备联网的条件,则升级过程无法正常进行。而且通过网络升级固件的方法至少需要具备一个网络模块,成本较高。使用手机或其他专用设备等辅助设备升级时,目标设备不需要连接互联网,辅助设备可能需要连接,或者在准备升级时需要短暂连接互联网。但这种方式需要一定的人为操作,只适用于升级和设备之间有线连接,或者距离设备近能够通过无线方式点对点直接连接的设备,而不适合升级大量设备,例如升级整栋楼、整个小区甚至整个城市中的成千上万个分布范围非常广的设备。
因此,迫切需要提出一种既能降低对网络依赖性,又能对分布广且无法直接连接的较远设备进行批量升级的在现场固件升级方法。
发明内容
为此,本发明提供一种固件升级方法、网关设备及固件升级系统,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明的一个方面,提供了一种固件升级方法,适于在电子设备中执行,该方法包括:下载需要升级的目标固件以及具备传染能力的传染固件,传染固件能够使其周围的设备升级后具备传染能力;搜索周围的待传染设备并将其加入到监控列表中,监控列表中展示所添加的各设备的当前固件状态;将传染固件传递给各待传染设备,使之具备传染能力;将目标固件传递给各待传染设备,使之具备目标固件;以及将传染固件再次传递给各待传染设备,使之具备传染固件以完成固件升级,进而使之能够基于其所具备的传染能力、目标固件和传染固件来继续传染周围同类型的其他待传染设备。
可选地,在根据本发明的固件升级中,固件状态包括以下状态中的一种或多种:待检查状态、老固件状态、升级中状态、传染挂起状态、需要重启状态、需要验证状态、下载目标固件状态、目标固件下载中状态、下载传染固件状态、传染固件下载中状态。
可选地,在根据本发明的固件升级中,设备新加入到监控列表中的初始状态为待检查状态,该方法还包括步骤:查询处于待检查状态的设备的固件版本号;如果是普通固件或是旧版本的传染固件,则其状态切换到老固件状态;如果是新的传染固件,则其状态切换到需要验证状态。
可选地,在根据本发明的固件升级方法中,电子设备会与处于老固件状态的设备会建立连接以传输传染固件,如果连接成功则状态切换到升级中状态,如果连接被拒绝则状态切换到传染挂起状态。
可选地,在根据本发明的固件升级方法中,处于升级中状态的设备刚开始或者正在下载传染固件,如果下载成功则状态切换到需要重启状态,此时该方法还包括步骤:对于处于需要重启状态的待传染设备,向该设备发送重启指令,使之重启后完成传染固件的更新,并将其状态切换到待检查状态。
可选地,在根据本发明的固件升级方法中,该方法还包括步骤:查询处于需要验证状态的设备的两种固件版本号;若目标固件版本号不存在或比期望的版本号低,则将其状态切换为下载目标固件状态;若目标固件版本号和期望相符,但传染固件版本号不存在或比期望版本号低,则将其状态切换为下载传染固件状态;若目标固件版本号和传染固件版本号均符合期望,则把该设备从监控列表中移除到忽略列表中。
可选地,在根据本发明的固件升级方法中,电子设备会与处于下载目标固件状态的设备建立连接以传输目标固件,如果连接成功则其状态切换到目标固件下载中状态,如果连接被拒绝则其状态切换到传染挂起状态。
可选地,在根据本发明的固件升级方法中,处于目标固件下载中状态的设备,刚开始或者正在下载目标固件,如果下载成功则其状态切换到下载传染固件状态。
可选地,在根据本发明的固件升级方法中,电子设备会与处于下载传染固件状态的设备建立连接以传输传染固件,如果连接成功则其状态切换到传染固件下载中状态,如果连接被拒绝则其状态切换到传染挂起状态。
可选地,在根据本发明的固件升级方法中,处于传染固件下载中状态的设备刚开始或者正在下载传染固件,如果下载成功则其状态切换到需要验证状态。
可选地,在根据本发明的固件升级方法中,待传染设备完成固件升级的步骤包括:通过广播指令标记目标固件为有效固件并控制待传染设备重启;引导程序通过标记判断有新的固件,并将新固件写入到芯片中,以完成固件升级。
可选地,在根据本发明的固件升级方法中,电子设备中维护有周围需要进行固件升级的升级任务列表,该方法还包括步骤:每隔第一预定时间遍历升级任务列表,若超过第二预定时间都没有升级任务运行,则所述网关设备进入休眠状态。
可选地,在根据本发明的固件升级方法中,第一预定时间为10min,第二预定时间为2h。
根据本发明的另一方面,提供了一种网关设备,包括:至少一个处理器;以及包括控制器指令的至少一个存储器;所述至少一个存储器和所述控制器指令被配置为与所述至少一个处理器一起使得所述网关设备执行如上所述的固件升级方法。
根据本发明的又一个方面,提供了一种存储一个或多个程序的机器可读存储介质,所述一个或多个程序包括指令,所述指令当由网关设备执行时,使得所述网关设备执行如上所述的固件升级方法。
根据本发明的又一个方面,提供了一种固件升级系统,包括如上所述的网关设备、以及需要进行固件升级的一个或多个嵌入式设备。
根据本发明的技术方案,设计了一种具备传染性的在现场固件升级方法,只需要一个设备具备短暂联网能力即可进行固件升级。网关设备下载需要升级的目标固件和具备传染能力的传染固后件,将待传染设备升级成具备传染能力的设备,再把目标固件和传染固件传递给待传染设备。这样,待传染设备就具备了完整的传染能力,并能够继续传染该设备周围同类型的其他设备。本方案可以有效地利用已部署的设备,在离线的情况下也能高效地完成所有设备的固件升级,且不需要依赖网络,升级速度快、人工成本低。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明的一个示例性实施方式的固件升级系统100的结构框图;
图2示出了根据本发明一个实施例的网关设备200的结构框图;
图3示出了根据本发明另一个实施例的固件升级方法300的流程图;
图4示出了根据本发明一个实施例的把单个普通设备转化为具备传染能力设备的状态转换图;以及
图5示出了根据本发明一个实施例的传染设备休眠机制的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个示例性实施例的固件升级系统100的结构框图。如图1所示,固件升级系统100可以包括网关设备120以及需要进行固件升级的一个或多个嵌入式设备140。嵌入式设备可以是多种设备类型,每种类型下都可以有多个设备,其可以是现今任意常用的智能家居设备,如照明灯、咖啡炉、电脑设备、保安系统、暖气及冷气系统、视讯及音响系统、控制开关;也可以可移动的共享单车等,本发明对此不作限制。进一步地,系统100还可以包括服务器,其可以与网关设备120通信连接,以便网关设备120从该服务器中下载数据。
图2示出了根据本发明一个实施例的网关设备200的结构框图。如图2所示,在基本的配置202中,网关设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。在一些实施方式中,应用222可以布置为在操作系统上利用程序数据224进行操作。程序数据224包括指令,在根据本发明的网关设备200中,程序数据224包含用于执行根据本发明的固件升级方法300的指令。
网关设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器130的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
网关设备200可以实现为服务器,例如文件服务器、数据库服务器、应用程序服务器和WEB服务器等,也可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。在一些实施例中,网关设备200被配置为执行根据本发明的固件升级方法300。
图3示出了根据本发明一个实施例的固件升级方法300的流程图,该方法可以在任意电子设备中执行,如可以在移动终端、计算设备、网关设备中执行,这些设备作为该固件升级方法的启动源设备,通过去下载目标固件和传染固件来传染第一批嵌入式电子设备,第一批嵌入式设备和/或启动源设备再根据下载得到的目标固件和传染固件去传染第二批嵌入式电子设备,并依次逐步扩展升级。也就是,方法300既可以在作为启动源的电子设备中执行,也可以在已被传染的各批次嵌入式电子设备中执行。如图3所示,该方法始于步骤S310。
在步骤S310中,下载需要升级的目标固件以及具备传染能力的传染固件,传染固件能够使其周围的设备升级后具备传染能力。其中,目标固件就是本次升级设备需要成为的最终版本,而具备传染能力的传染固件不是最终版本,但是这个固件有个特性,就是可以根据设备类型将周围的设备也升级成具有传染能力的设备。传染能力就是一个设备具备对周围设备进行固件更新的能力,并使这些设备也具备这个能力。这里,启动源电子设备可以与服务器通信连接,用于从服务器中下载相关的目标固件和传染固件。
随后,在步骤S320中,搜索周围的待传染设备并将其加入到监控列表中,监控列表中展示所添加的各设备的当前固件状态。
这里,加入到监控列表中的设备有两种,一种来自设备的邻居表,也就是该设备周围的设备;另一种来自主机表,也就是网络层的端点设备,这些都可认为是待传染设备。对于作为启动源的网关设备而言,其附件的所有类型的设备都可以加入到监控列表中,网关设备可以传染的设备类型是全部设备。另外,网关设备将各类型嵌入式电子设备进行传染之后,这些嵌入式电子设备可以继续传染其周围的同类型设备。而这些电子设备中会搜索周围的同类型待传染设备并将其加入到其所维护的监控列表中。这样可以有效减少单个设备传染的负担。
随后,在步骤S330中,将传染固件传递给各待传染设备,使之具备传染能力。
图4示出了根据本发明一个实施例的传染设备把单个普通设备转化为具备传染能力设备的状态转换图。其中,传染设备可以是已经下载了目标固件和传染固件的网关设备,也可以是已经升级了目标固件和传染固件的各类型电子设备,其主要相对于尚未进行固件升级的待传染设备而言的。在整个固件升级过程中,传染设备会不断获取待传染设备的当前固件状态并进行状态表的更新。
作为传染设备的电子设备对于搜索到的周围的待传染设备,每一个都独立维护状态机并实时更新它们的固件状态。如图4所示,固件状态可以包括以下状态中的一种或多种:待检查状态、老固件状态、升级中状态、传染挂起状态、需要重启状态、需要验证状态、下载目标固件状态、目标固件下载中状态、下载传染固件状态、传染固件下载中状态。其中,待检查状态是加入到监控列表中设备的初始状态,处于该状态的设备,会被查询固件版本号,如果是普通固件或是旧版本的传染固件,状态切换到老固件状态;如果是新的传染固件,状态切换到需要验证状态。因此,根据一个实施例,方法300中还可以包括步骤:查询处于待检查状态的设备的固件版本号;如果是普通固件或是老的传染固件,则将其状态切换到老固件状态;如果是新的传染固件,则其状态切换到需要验证状态。这里,固件版本号是可排序的,越新的固件,其固件版本号也越大。如果固件版本号小于传染固件,则代表该固件是老固件需要下载新的传染固件;如果固件版本号等于传染固件,则需要对其进行验证操作;如果固件版本号大于传染固件,则可把该设备从监控列表中移除到忽略列表中。
对于处于老固件状态的设备,电子设备(即要对该待传染设备进行固件传染升级的传染设备,如网关设备等启动源设备或已被传染的各类型嵌入式设备)会与之建立连接以传输传染固件,如果连接成功则状态切换到升级中状态,如果连接被拒绝则状态切换到传染挂起状态。后者这种情况一般是因为待传染设备正在或已经被别的设备传染,处于忙碌状态,或者通讯不稳定等问题,因此等待稍后重试。连接过程可以是待传染设备主动连接,也可以是是传染设备主动连接,即传染设备发现处于老固件状态的待传染设备时,就会主动和该待传染设备建立连接,并把其自身的传染固件传给该待传染设备。同样应当理解,传染设备也可以是已经升级了目标固件和传染固件的各类型嵌入式电子设备,当这些电子设备传染同类型的待传染设备时,处于老固件状态的设备会尝试连接这些嵌入式电子设备以下载传染固件,并相应的进行状态更新。
处于升级中状态的设备刚开始或者正在下载传染固件,如果下载成功则状态切换到需要重启状态,处于需要重启状态的设备,代表已成功下载固件,,需要向该设备发送重启指令以完成新固件的更新。因此,对于处于需要重启状态的待传染设备,方法300还包括步骤:向该设备发送重启指令,使之重启后完成传染固件的更新,并将其状态切换到待检查状态,此时可认为待传染设备具备了传染能力。
随后,在步骤S340中,将目标固件传递给各待传染设备,使之具备该目标固件。
具体地,以图4中的状态表而言,处于需要验证状态的待传染设备,已经是具备传染能力的设备,但还需确认是否携带有目标固件和用于传染给其他设备的备份固件(也就是传染固件),因此会被查询携带的两个版本固件的版本号。基于此,方法300还可以包括步骤:查询处于需要验证状态的设备的两种固件版本号;若目标固件版本号不存在或比期望的版本号低,则将其状态切换为下载目标固件状态;若目标固件版本号和期望相符,但传染固件版本号不存在或比期望版本号低,则将其状态切换为下载传染固件状态;若目标固件版本号和传染固件版本号均符合期望,则把该设备从监控列表中移除,并加入到忽略列表中,此时可认为完成了单个设备传染的过程,该设备可以开始传染其他同类型设备。
对于处于下载目标固件状态的设备,作为其传染源的电子设备(如网关设备等启动源设备或已被传染的各类型嵌入式设备)会与之创建连接以传输目标固件,如果连接创建成功则其状态切换到目标固件下载中状态,如果连接被拒绝则其状态切换到传染挂起状态,因为此时表明该设备正在被其他设备升级中,连接处于忙状态。处于目标固件下载中状态的设备刚开始或者正在下载目标固件,如果下载成功则其状态切换到下载传染固件状态,此时可认为待传染固件携带或具备了该目标固件。
随后,在步骤S350中,将传染固件再次传递给各待传染设备,使之具备该传染固件以完成固件升级,进而使之能够基于其所具备的传染能力、目标固件和传染固件来继续传染周围同类型的其他待传染设备。
同样以图4为例,对于处于下载传染固件状态的设备,作为其传染源的电子设备(如网关设备等启动源设备或已被传染的各类型嵌入式设备)会与之建立连接以传输传染固件,如果连接成功则其状态切换到传染固件下载中状态,如果连接被拒绝则其状态切换到传染挂起状态,此时表明该设备正在被其他设备升级中,连接处于忙状态。同样应当理解,传染设备也可以是已经升级了目标固件和传染固件的各类型电子设备,待传染设备与该类电子设备创建连接并进行状态更新,这里不再赘述。而处于传染固件下载中状态的设备刚开始或者正在下载传染固件,如果下载成功则其状态切换到需要验证状态,此时可认为待传染设备携带或具备了该传染固件。
基于该待传染所具备的传染能力、目标固件和传染固件,该设备就可以继续去传染周围同类型的其他待传染设备。在实际操作中,可以先在一个位置用网关设备传染相应数量的不同类型的电子设备,以便这些电子设备开始继续传染同区域的同类型设备;之后可以将网关移到其他位置区域并继续传染该区域内不同类型的电子设备,同样使这些电子设备继续传染其同区域的同类型设备。这样可有效提高批量升级项目中的固件升级效率。
对处于传染挂起状态的设备,在一段时间内不发送任何指令,暂停固件升级,等到超时后恢复对设备发送指令并重新开始升级过程。根据一个实施例,待传染设备完成固件升级的步骤包括:通过广播指令标记目标固件为有效固件并控制待传染设备重启;引导程序通过标记判断有新的固件,并将新固件写入到芯片中,以完成固件升级。具体地,固件升级通常会借助一块片外FLASH和事先写好的引导程序bootloader,FLASH用于存储待更新的固件,bootloader用于在芯片上电时读取FLASH中的固件并完成更新的操作。首先,待更新的固件通过无线的方式写入到片外FLASH,该过程中发送设备和接收设备先建立连接以无线传输固件。固件传输完成后通过指令标记新固件并控制设备重启,设备重启后,bootloader通过标记判断有新的固件,然后依次判断固件的大小是否正常,固件的硬件版本号和设备是否相符,接着对整个固件计算校验和以验证固件的完整性,最后将新固件写入到芯片中,从而完成固件升级过程。
进一步地,传染设备(网关设备或已被传染的各类电子设备)中还可以维护一个周围需要进行固件升级的升级任务列表,该方法还可以包括步骤:每隔第一预定时间遍历升级任务列表,若超过第二预定时间都没有升级任务运行,则传染设备进入休眠状态。其中第一预定时间可以为10min,第二预定时间可以为2h,当然不限于此,本发明对此不作限定。图5示出了该休眠机制的详细示意图,首先遍历升级任务列表,若有未完成的任务,则传染设备继续处理升级任务来传染周围的设备。若超过预定的时间都没有运行任务,表明暂时没有需要传染的设备或者重试达到了最大次数,设备进入休眠状态。休眠状态的加入能在暂时没有升级任务的状态下降低网络数据包数目,提高网络通讯质量。若休眠结束,则重新开始遍历升级任务列表。
在实际应用中,在某全屋智能化项目中共有10栋楼2000户,每户有20个设备共计几万个设备。无线网络为网状拓扑结构,连通性好、范围广且设备种类单一,只有三四种设备,每个设备都可以和周围几个或十几个设备通讯,最远的设备相距上千米,有十几跳。当修复一个bug来对所有设备进行固件升级时,10栋楼这几万个设备只需一晚上的时间即可全部升级完成。
可见,根据本发明的技术方案,提供了一种传染式在现场嵌入式固件升级方法,其可以有效地利用已部署的设备,在离线的情况下高效地完成所有设备的固件升级,从而极大地降低了对网路偶读依赖,既提高了升级速度又降低了人工成本,具有广阔的应用前景。而且,本发明所设计的忽略列表、传染挂起机制和休眠机制,均能有效避免重复升级以及降低网络拥堵,从而提高整体升级效率。本发明解决了现场设备由于难以触及,位置分散甚至频繁发生移动导致难以高效率地进行批量升级的难题。这项技术适用于任何具备无线升级能力设备的批量升级,比如共享单车,分布分散且无规律,人工升级操作成本高且效率低。而利用传染的方式就可以有效克服上述困难并高效地完成固件升级。
A8、如A1-A7中任一项所述的方法,其中,处于目标固件下载中状态的设备,刚开始或者正在下载目标固件,如果下载成功则其状态切换到下载传染固件状态。
A9、如A1-A8中任一项所述的方法,其中,所述电子设备会与处于下载传染固件状态的设备建立连接以传输所述传染固件,如果连接成功则其状态切换到传染固件下载中状态,如果连接被拒绝则其状态切换到传染挂起状态。
A10、如A1-A9中任一项所述的方法,其中,处于传染固件下载中状态的设备刚开始或者正在下载传染固件,如果下载成功则其状态切换到需要验证状态。
A11、如A1所述的方法,其中,待传染设备完成固件升级的步骤包括:通过广播指令标记目标固件为有效固件并控制待传染设备重启;引导程序通过标记判断有新的固件,并将新固件写入到芯片中,以完成固件升级。
A12、如A1所述的方法,其中,所述电子设备中维护有周围需要进行固件升级的升级任务列表,该方法还包括步骤:每隔第一预定时间遍历升级任务列表,若超过第二预定时间都没有升级任务运行,则所述电子设备进入休眠状态。
A13、如A12所述的方法,其中,所述第一预定时间为10min,所述第二预定时间为2h。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如软盘、CD-ROM、硬盘驱动器或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的固件升级方法。
以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机可读介质包括计算机存储介质和通信介质。计算机存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在计算机可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (10)

1.一种固件升级方法,适于在电子设备中执行,所述方法包括:
下载需要升级的目标固件以及具备传染能力的传染固件,所述传染固件能够使其周围的设备升级后具备传染能力;
搜索周围的待传染设备并将其加入到监控列表中,所述监控列表中展示所添加的各设备的当前固件状态;
将所述传染固件传递给各待传染设备,使之具备传染能力;
将所述目标固件传递给各待传染设备,使之具备所述目标固件;以及
将所述传染固件再次传递给各待传染设备,使之具备所述传染固件以完成固件升级,进而使之能够基于其所具备的传染能力、目标固件和传染固件来继续传染周围同类型的其他待传染设备。
2.如权利要求1所述的方法,其中,所述固件状态包括以下状态中的一种或多种:
待检查状态、老固件状态、升级中状态、传染挂起状态、需要重启状态、需要验证状态、下载目标固件状态、目标固件下载中状态、下载传染固件状态、传染固件下载中状态。
3.如权利要求1或2所述的方法,其中,设备新加入到监控列表中的初始状态为待检查状态,该方法还包括步骤:
查询处于待检查状态的设备的固件版本号;
如果是普通固件或是旧版本的传染固件,则将其状态切换到老固件状态;
如果是新的传染固件,则其状态切换到需要验证状态。
4.如权利要求1-3中任一项所述的方法,其中,所述电子设备会与处于老固件状态的设备建立连接以传输所述传染固件,如果连接成功则状态切换到升级中状态,如果连接被拒绝则状态切换到传染挂起状态。
5.如权利要求1-4中任一项所述的方法,其中,处于升级中状态的设备刚开始或者正在下载传染固件,如果下载成功则状态切换到需要重启状态,此时该方法还包括步骤:
对于处于需要重启状态的待传染设备,向该设备发送重启指令,使之重启后完成传染固件的更新,并将其状态切换到待检查状态。
6.如权利要求1-5中任一项所述的方法,该方法还包括步骤:
查询处于需要验证状态的设备的两种固件版本号;
若目标固件版本号不存在或比期望的版本号低,则将其状态切换为下载目标固件状态;
若目标固件版本号和期望相符,但传染固件版本号不存在或比期望版本号低,则将其状态切换为下载传染固件状态;
若目标固件版本号和传染固件版本号均符合期望,则把该设备从监控列表中移除到忽略列表中。
7.如权利要求1-6中任一项所述的方法,其中,所述电子设备会与处于下载目标固件状态的设备建立连接以传输所述目标固件,如果连接成功则其状态切换到目标固件下载中状态,如果连接被拒绝则其状态切换到传染挂起状态。
8.一种网关设备,包括:
至少一个处理器;以及
包括控制器指令的至少一个存储器;
所述至少一个存储器和所述控制器指令被配置为与所述至少一个处理器一起使得所述网关设备执行如权利要求1-7中任一项所述的方法。
9.一种存储一个或多个程序的可读存储介质,所述一个或多个程序包括指令,所述指令当由网关设备执行时,使得所述网关设备执行根据权利要求1-7中所述的方法中的任一方法。
10.一种固件升级系统,包括如权利要求8所述的网关设备、以及需要进行固件升级的一个或多个嵌入式设备。
CN201811611951.7A 2018-12-27 2018-12-27 一种固件升级方法、网关设备及固件升级系统 Expired - Fee Related CN109471651B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811611951.7A CN109471651B (zh) 2018-12-27 2018-12-27 一种固件升级方法、网关设备及固件升级系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811611951.7A CN109471651B (zh) 2018-12-27 2018-12-27 一种固件升级方法、网关设备及固件升级系统

Publications (2)

Publication Number Publication Date
CN109471651A true CN109471651A (zh) 2019-03-15
CN109471651B CN109471651B (zh) 2022-03-18

Family

ID=65677877

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811611951.7A Expired - Fee Related CN109471651B (zh) 2018-12-27 2018-12-27 一种固件升级方法、网关设备及固件升级系统

Country Status (1)

Country Link
CN (1) CN109471651B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114531353A (zh) * 2022-01-25 2022-05-24 沈阳中科奥维科技股份有限公司 一种基于wia-pa网关的全网终端自动升级方法
WO2023123875A1 (zh) * 2021-12-30 2023-07-06 如果新能源科技(江苏)股份有限公司 一种基于蓝牙的多设备ota升级方法、电子设备、存储介质和程序产品

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198435A1 (en) * 2011-01-31 2012-08-02 Digi International Inc. Remote firmware upgrade device mapping
CN104239109A (zh) * 2014-09-30 2014-12-24 上海瑞猫自动化控制技术有限公司 嵌入式系统固件在线管理方法
US20170235561A1 (en) * 2016-02-17 2017-08-17 International Business Machines Corporation Managing firmware upgrade failures
CN107104836A (zh) * 2017-05-04 2017-08-29 深圳市欧瑞博电子有限公司 Zigbee设备的固件升级方法和装置
CN108228222A (zh) * 2017-12-27 2018-06-29 努比亚技术有限公司 一种固件数据的升级方法、移动终端及计算机存储介质
CN108572848A (zh) * 2018-06-26 2018-09-25 深圳市未来感知科技有限公司 交互系统的底层固件在线升级方法、装置及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120198435A1 (en) * 2011-01-31 2012-08-02 Digi International Inc. Remote firmware upgrade device mapping
CN104239109A (zh) * 2014-09-30 2014-12-24 上海瑞猫自动化控制技术有限公司 嵌入式系统固件在线管理方法
US20170235561A1 (en) * 2016-02-17 2017-08-17 International Business Machines Corporation Managing firmware upgrade failures
CN107104836A (zh) * 2017-05-04 2017-08-29 深圳市欧瑞博电子有限公司 Zigbee设备的固件升级方法和装置
CN108228222A (zh) * 2017-12-27 2018-06-29 努比亚技术有限公司 一种固件数据的升级方法、移动终端及计算机存储介质
CN108572848A (zh) * 2018-06-26 2018-09-25 深圳市未来感知科技有限公司 交互系统的底层固件在线升级方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023123875A1 (zh) * 2021-12-30 2023-07-06 如果新能源科技(江苏)股份有限公司 一种基于蓝牙的多设备ota升级方法、电子设备、存储介质和程序产品
CN114531353A (zh) * 2022-01-25 2022-05-24 沈阳中科奥维科技股份有限公司 一种基于wia-pa网关的全网终端自动升级方法

Also Published As

Publication number Publication date
CN109471651B (zh) 2022-03-18

Similar Documents

Publication Publication Date Title
CN110032382A (zh) 一种汽车电子控制单元升级方法、系统及终端设备
CN103970553B (zh) 一种家电产品功能升级的控制方法
CN103646656B (zh) 音效处理方法、装置、插件管理器及音效插件
CA2794065C (en) Method and system for proximity-based, peer-initiated device configuration
CN105786549B (zh) 智能设备及其升级方法
JP2018129021A (ja) インダストリアル・インターネットオペレーティングシステムに基づくフィールドデバイス制御管理方法と装置
CN105049502B (zh) 一种云端网络管理系统中设备软件更新的方法和装置
US10684838B2 (en) Dynamic application deployment
CN105743948A (zh) 一种网络版本升级的方法及装置
EP3972202A1 (en) Smart home system control method and apparatus, electronic device and storage medium
CN101931603A (zh) 一种在手持智能终端上实现远程调用的方法
CN109618315A (zh) 一种照明设备的控制方法、装置、存储介质及智能终端
CN103970554A (zh) 一种家电产品功能升级的控制方法
CN108762792A (zh) 网络设备升级方法、升级服务器、终端设备及存储介质
CN109471651A (zh) 一种固件升级方法、网关设备及固件升级系统
CN105917613A (zh) 软件升级方法及设备
JP2009020886A (ja) Otaプログラミングのためのシステム及び方法
CN112533242A (zh) 一种led设备组网方法、装置及设备
CN110532016A (zh) 版本管理方法、版本更新方法和版本管理系统
CN104199682A (zh) 一种信息处理方法及电子设备
KR101632288B1 (ko) 고급 운영 시스템(hlos) 부팅 전에 스마트폰에 연결된 주변기기 디바이스들을 위한 디바이스 드라이버들을 프리페칭하기 위한 방법 및 장치
CN103516771A (zh) 子节点操作软件的升级方法及信息采集系统
CN107911816A (zh) 用于多模IoT设备的启动方法、多模IoT设备及存储介质
CN104468671A (zh) 一种配置信息处理方法、装置及相关设备
CN103488503B (zh) 软件更新方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220318