Zigbee设备的升级方法和装置的制造方法

文档序号:10492009阅读:297来源:国知局
Zigbee设备的升级方法和装置的制造方法
【专利摘要】本公开提出一种Zigbee设备的升级方法和装置,所述方法包括:当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;将下载的所述最新版本的固件推送至所述Zigbee设备;当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。本公开可以实现在后台静默完成最新版本的固件的下载以及基于最新版本的固件进行固件升级的操作,而用户并不感知,有助于提升用户体验。
【专利说明】
Z i gbee设备的升级方法和装置
技术领域
[0001 ]本公开涉及通信领域,尤其涉及Zigbee设备的升级方法和装置。
【背景技术】
[0002]Zigbee是一种类似于W1-Fi的无线通讯协议,与W1-Fi相比,它具有组网方便、功耗较低的优点,在一些网络规模较大、功耗要求较高的场景中得到广泛的应用。而采用Zigbee协议的设备之间互相通信的传输速率较低,,因此在部署了Zigbee设备的网络中,对Zigbee设备进行固件升级通常需要耗费较长的时间。

【发明内容】

[0003]为克服相关技术中存在的问题,本公开提供一种Zigbee设备的升级方法和装置。
[0004]根据本公开实施例的第一方面,提供一种Zigbee设备的升级方法,所述方法包括:
[0005]当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0006]将下载的所述最新版本的固件推送至所述Zigbee设备;
[0007]当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0008]可选的,所述方法还包括:
[0009]获取所述Zigbee设备当前的固件版本;
[0010]向所述服务端查询所述Zigbee设备的最新固件版本;
[0011]判断所述Zigbee设备当前的固件版本与所述最新固件版本是否相同;
[0012]如果所述Zigbee设备当前的固件版本与所述最新固件版本不相同,确定所述Zigbee设备需要进行固件升级。
[0013]可选的,所述向所述服务端查询所述Zigbee设备最新的固件版本包括:
[0014]基于设定的发送时间定时向所述服务端发送用于查询所述最新固件版本的查询命令;
[0015]获取所述服务端返回的与所述查询命令对应的查询结果;所述查询结果包括所述最新固件版本。
[0016]可选的,所述设定的发送时间从预设的时间段中随机选择得到。
[0017]可选的,所述查询结果还包括与所述最新固件版本对应的下载地址;
[0018]所述向服务端下载最新版本的固件包括:
[0019]基于所述下载地址向所述服务端下载所述最新版本的固件。
[0020]根据本公开实施例的第二方面,提供一种Zigbee设备的升级装置,所述装置包括:
[0021]下载模块,被配置为在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0022]推送模块,被配置为将下载的所述最新版本的固件推送至所述Zigbee设备;
[0023]下发模块,被配置为在所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0024]可选的,所述装置还包括:
[0025]获取模块,被配置为获取所述Zigbee设备当前的固件版本;
[0026]查询模块,被配置为向所述服务端查询所述Zigbee设备的最新固件版本;
[0027]判断模块,被配置为判断所述Zigbee设备当前的固件版本与所述最新固件版本是否相同;
[0028]确定模块,被配置为在所述Zigbee设备当前的固件版本与所述最新固件版本不相同时,确定所述Zigbee设备需要进行固件升级。
[0029]可选的,所述查询模块包括:
[0030]发送子模块,被配置为基于设定的发送时间定时向所述服务端发送用于查询所述最新固件版本的查询命令;
[0031]获取子模块,被配置为获取所述服务端返回的与所述查询命令对应的查询结果;所述查询结果包括所述最新固件版本。
[0032]可选的,所述设定的发送时间从预设的时间段中随机选择得到。
[0033]可选的,所述查询结果还包括与所述最新固件版本对应的下载地址;
[0034]所述下载模块包括:
[0035]下载子模块,被配置为基于所述下载地址向所述服务端下载所述最新版本的固件。
[0036]根据本公开实施例的第三方面,提供一种Zigbee设备的升级装置,包括:
[0037]处理器;
[0038]用于存储处理器可执行指令的存储器;
[0039]其中,所述处理器被配置为:
[0040]当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0041 ]将下载的所述最新版本的固件推送至所述Zigbee设备;
[0042]当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0043]本公开的实施例提供的技术方案可以包括以下有益效果:
[0044]本公开的以上实施例中,提供一种针对Zigbee设备的静默升级方案,通过在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件,将下载的所述最新版本的固件推送至Zigbee设备,并在将最新版本的固件成功推送至Zigbee设备后,再向Zigbee设备下发固件升级指令,以触发Zigbee设备基于最新版本的固件执行固件升级,因此可以实现在后台静默完成最新版本的固件的下载以及基于最新版本的固件进行固件升级的操作,而用户并不感知,从而可以避免由于Zigbee设备间传输速率较低,Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0045]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
【附图说明】
[0046]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0047]图1是根据一示例性实施例示出的一种Zigbee设备的升级方法的流程示意图;
[0048]图2是根据一不例性实施例不出的另一种Zigbee设备的升级方法的流程不意图;
[0049]图3是根据一示例性实施例示出的一种Zigbee设备的升级装置的示意框图;
[0050]图4是根据一不例性实施例不出的另一种Zigbee设备的升级装置的不意框图;
[0051]图5是根据一示例性实施例示出的另一种Zigbee设备的升级装置的示意框图;
[0052]图6是根据一示例性实施例示出的另一种Zigbee设备的升级装置的示意框图;
[0053]图7是根据一不例性实施例不出的一种用于Zigbee设备的升级装置的一结构不意图;
[0054]图8是根据一不例性实施例不出的另一种用于Zigbee设备的升级装置的一结构不意图。
【具体实施方式】
[0055]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0056]在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0057]应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
[0058]在相关技术中,Zigbee设备在在进行固件升级时,通常是在固件版本发生更新后,由用户进行触发升级,然后Zigbee设备通过集成了W1-Fi模块和Zigbee模块的智能网关进行协议转换,接入到互联网与云端的服务器进行通信,来完成最新版本的固件下载以及升级。
[0059]然而,采用Zigbee协议的设备之间互相通信的传输速率较低,比如最高仅为250kb/s,在部署了Zigbee设备的网络中,对Zigbee设备进行固件升级通常需要耗费较长的时间,因此Zigbee设备的升级由用户来触发,通常需要用户等待较长的时间,会影响用户的体验。
[0060]有鉴于此,本公开提出一种针对Zigbee设备执行静默升级的方案,提供一种针对Zigbee设备的静默升级方案,通过在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件,将下载的所述最新版本的固件推送至Zigbee设备,并在将最新版本的固件成功推送至Zigbee设备后,再向Zigbee设备下发固件升级指令,以触发Zigbee设备基于最新版本的固件执行固件升级,因此可以实现在后台静默完成最新版本的固件的下载以及基于最新版本的固件进行固件升级的操作,而用户并不感知,从而可以避免由于Zigbee设备间传输速率较低,Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0061 ]如图1所示,图1是根据一示例性实施例示出的一种Zigbee设备的升级方法,该方法应用于智能网关中,包括以下步骤:
[0062]在步骤101中,当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0063]在步骤102中,将下载的所述最新版本的固件推送至所述Zigbee设备;
[0064]在步骤103中,当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0065]上述Zigbee设备,可以包括运行了 Zigbee协议,并基于Zigbee协议进行数据通信的智能设备;例如,该Zigbee设备可以包括部署在低功耗的智能家居环境中的基于Zigbee协议进行数据通信的无线门铃按钮、人体红外运动传感器、门窗感应器或者其它类型的智能设备。
[0066]上述服务端,可以包括部署在云端的服务器、服务器集群或者基于服务器集群构建的云平台。该服务端用于保存Zigbee设备在进行固件升级时所需要的最新版本的固件。
[0067]上述智能网关,可以包括集成了W1-Fi模块和Zigbee模块的网关设备,例如智能路由器或者服务器。该智能网关设备的W1-Fi模块可以通过串口与Zigbee模块进行通信,该W1-Fi模块可以通过W1-Fi接入到互联网,与云端服务器进行数据通信。在实际应用中,上述智能网关可以作为核心设备,部署在基于Zigbee设备组建的应用环境中(比如低功耗的智能家居环境),该应用环境中的Zigbee设备可以通过接入智能网关的W1-Fi模块,然后通过智能网关的W1-Fi模块和Zigbee模块进行协议转换,来接入互联网,与云端的服务器进行数据通信。
[0068]在本例中,zigbee设备在出厂后,设备固件可能存在一定的缺陷,或者zigbee设备在实际的应用中可能需要增加新功能,因此zigbee设备通常都会存在进行固件升级的需求。而在相关技术中,zigbee设备在进行固件升级时,通常是通过用户手动进行触发的,比如,当zigbee设备的固件存在最新版本时,服务端可以向zigbee设备发出一个最新版本固件的更新通知,zigbee设备可以通过系统界面将该更新通知提示给用户,然后由用户手动触发zigbee设备开始进行固件升级(比如可以点击系统界面中的升级按钮来触发zigbee设备进行固件升级),同时开始基于zigbee协议与服务端进行数据通信下载最新版本的固件来完成升级。然而,由用户手动触发zigbee设备进行固件升级,由于采用Zigbee协议的设备之间互相通信的传输速率较低,因此整个升级过程通常需要用户等待较长的时间,造成非常不好的用户体验。
[0069]基于此,在本公开中提出一种针对Zigbee设备执行静默升级的方案,当智能网关在确定当前应用环境中的Zigbee设备需要进行固件升级时,可以在后台静默下载最新版本的固件,并将下载的最新版本的固件推送给需要升级的Zigbee设备,当成功推送后再向需要升级的Zigbee设备下载固件升级指令,触发Zigbee设备进行固件升级,从而保证最新版本的固件以及固件升级均可以由智能网关在后台静默完成,对用户来说完全不感知,因此可以避免由于Zigbee设备间传输速率较低,而造成的Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0070]以下结合具体的应用场景对本公开的技术方案进行详细描述。
[0071]在示出的一种应用场景中,该应用场景可以是低功耗的智能家居环境,由于在低功耗的智能家居环境中,对智能设备功耗要求较高,而Zigbee协议与W1-Fi相比均有功耗较低的优点,因此在组建上述低功耗的智能家居环境时,均可以采用支持Zigbee协议,基于Zigbee协议进行数据通信的智能设备。例如,小米公司推出的一种“智能家庭的安全套装组合”包括智能网关、以及基于Zigbee协议进行通信的无线门铃按钮、人体红外运动传感器和门窗感应器。
[0072]在本例中,由于智能家居环境中的Zigbee设备均支持通过标准的Zigbee协议与智能网关的Zigbee模块进行通信,因此智能网关可以通过Zigbee模块与各Zigbee设备进行通信,来获取各Zigbee设备当前的固件版本。
[0073]同时,智能网关还可以通过W1-Fi模块与服务端进行通信,来查询各Zigbee设备的最新固件版本。
[0074]在示出的一种实施方式中,智能网关可以通过W1-Fi模块定时向服务端发送用于查询各Zigbee设备的最新固件版本的查询命令,然后通过获取返回返回的回应命令,来获取各Zigbee设备的最新固件版本。
[0075]其中,上述查询命令中可以携带智能网关所要查询的Zigbee设备的类型标识,以及该Zigbee设备当前的固件版本。上述服务端在收到该查询命令后,可以将该查询命令中携带的该Zigbee设备当前的固件版本,与本地保存的该Zigbee设备最新的固件版本进行比较,如果二者相同,此时该Zigbee设备的固件版本已经是最新版本,不需要进行固件版本更新,服务端在收到上述查询命令后可以不做响应,或者返回一个空值。如果二者不相同,此时该Zigbee设备需要进行固件版本更新,则可以正常响应该查询命令,向智能网关返回对应的回应命令。在该回应命令中,可以携带与该查询命令对应的查询结果,在该查询结果中可以携带智能网关所查询的Zigbee设备的类型标识,以及最新的固件版本。另外,在实际应用中,该回应命令中还可以携带该最新版本的固件的下载地址,以方面智能网关根据该下载地址下载最新版本的固件。
[0076]例如,在示出的一个例子中,上述查询命令的格式可以如下所示:
[0077]{method:
[0078]get_subdev_vers 1n,params:
[0079][string(model),string(fw_vers1n)]}
[0080]上述回应命令的格式可以如下所示:
[0081]{result:
[0082][model:1umi.XXX.χχχ,
[0083]fw_vers1n:xxx,
[0084]hw_vers1n:xxx,
[0085]url: http://xxx.0ta.bin,md5:xxx,des:xxx]}
[0086]在以上示出的查询命令和回应命令中,参数model为所要查询的Zigbee设备的类型标识,用于唯一标识该设备;fw_vers1n为所要查询的Zigbee设备的当前固件版本;hw_vers1n为所要查询的Zigbee设备的最新的固件版本;url为最新的固件版本的下载地址。
[0087]另外,智能网关在定时发送上述查询命令时,可以基于设定的发送时间来发送;比如,该发送时间可以是每日22点。该设定的发送时间可以从预设的时间段中随机选择得到;例如,可以基于服务端的工作时间上的特点设置一个预设的时间段,比如假设服务端每日22点至凌晨6点为系统维护时间,通常不对外进行日常的业务通信,那么可以将上述预设的时间段设置为每日6点至每日22点,S卩服务端进行日常业务通信的时间段。智能网关在设定发送时间时,可以从该预设的时间段中随机抽取一个时间点,用于发送查询命令。由于服务端通常可以面向若干台智能网关进行服务,而如果所有智能网关基于同样的发送时间发送查询命令,来对下挂的Zigbee设备进行固件升级时,可能会由于数据访问量时间点集中而造成升级拥塞。因此,通过这种随机抽取发送时间点的方式,可以确保各智能网关发送查询命令的时间分散,从而避免造成升级拥塞的情况。
[0088]在本例中,当智能网关接收到服务端返回的回应命令后,可以读取该回应命令中携带的最新的固件版本,然后与获取到的Zigbee设备当前的固件版本进行比较,来判断该Zigbee设备当前的固件版本与最新的固件版本是否相同,如果该Zigbee设备当前的固件版本与最新的固件版本相同,表示该Zigbee设备不需要执行固件版本升级,在这种情况下不需要进行特殊处理,该Zigbee设备可以仍然采用当前的固件版本进行启动和运行。
[0089]当然,如果该Zigbee设备当前的固件版本与最新的固件版本不相同,此时智能网关可以对该回应命令中携带的该最新的固件版本的下载地址,从服务端下载最新版本的固件。
[0090]当智能网关成功下载了最新版本的固件后,可以将该最新版本的固件推送给对应的Zigbee设备。其中,智能网关向对应的Zigbee设备推送最新版本的固件时,可以是主动推送,也可以是被动推送;例如,智能网关在将最新版本的固件下载完成后,可以立即基于Zigbee模块将下载完成的固件主动推送至各Zigbee设备;或者各Zigbee设备也可以定时向智能网关发送查询消息,用于查询智能网关本地是否保存了最新版本的固件,当智能网关在将最新版本的固件下载完成,并接收到了各Zigbee设备的上述查询消息后,可以将下载完成的最新版本的固件发送至各Zigbee设备。
[0091 ]在本例中,对于收到的由智能网关推送的最新版本的固件,各Zigbee设备可以在后台进行存储;其中,为了不影响设备的正常工作,各Zigbee设备在收到智能网关推送的最新版本的固件后,可以将接收到的固件储存在设备MCU的备用存储区,从而可以不影响设备当前的正常工作。
[0092]当智能网关将最新版本的固件成功推送至各Zigbee设备后,此时智能网关可以向需要升级的各Zigbee设备下发固件升级指令,各Zigbee设备在收到该固件升级指令后,各Zigbee设备可以基于存储在本地的最新版本的固件执行固件版本升级。
[0093]其中,Zigbee设备在基于最新版本的固件执行固件版本升级时,可以通过系统界面向用户输出一个提示消息,比如该提示消息可以是“是否升级到最新版本的固件”的提示消息,此时用户仍然可以通过触发该系统界面中的升级按钮,开始进行固件版本升级。
[0094]在进行固件版本升级的过程中,Zigbee设备可以进行重启操作,并在重启的过程中读取最新版本的固件,对设备MCU中存储的当前版本的固件进行替换更新,当重启完成后,Zigbee设备可以裕兴最新版本的固件,此时固件版本的升级完成。
[0095]可见,通过这种方式,由于Zigbee设备在接收到智能网关下发的固件升级命令时,最新版本的固件已经提前下载到了本地,而且下载过程用户不感知,因此Zigbee设备可以立即通过已经存储在本地的最新版本的固件完成固件版本升级,对于用户来说,整个升级过程立即得到了响应,用户不需要进行任何的升级等待,可见有助于提升用户体验。
[0096]在以上实施例中,提出一种针对Zigbee设备执行静默升级的方案,通过在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件,将下载的所述最新版本的固件推送至Zigbee设备,并在将最新版本的固件成功推送至Zigbee设备后,再向Zigbee设备下发固件升级指令,以触发Zigbee设备基于最新版本的固件执行固件升级,因此可以实现在后台静默完成最新版本的固件的下载以及基于最新版本的固件进行固件升级的操作,而用户并不感知,从而可以避免由于Zigbee设备间传输速率较低,Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0097]如图2所不,图2是根据一不例性实施例不出的另一种Zigbee设备的升级方法,该方法用于智能网关中,所述方法包括以下步骤:
[0098]在步骤201中,获取Zigbee设备当前的固件版本;
[0099]在步骤202中,向服务端查询所述Zigbee设备的最新固件版本;
[0100]在步骤203中,判断所述Zigbee设备当前的固件版本与所述最新固件版本是否相同;
[0101]在步骤204中,如果所述Zigbee设备当前的固件版本与所述最新固件版本不相同,向服务端下载所述最新版本的固件;
[0102]在步骤205中,将下载的所述最新版本的固件推送至所述Zigbee设备;
[0103]在步骤206中,当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0?04] 上述Zigbee设备,可以包括运行了 Zigbee协议,并基于Zigbee协议进行数据通信的智能设备;例如,该Zigbee设备可以包括部署在低功耗的智能家居环境中的基于Zigbee协议进行数据通信的无线门铃按钮、人体红外运动传感器、门窗感应器或者其它类型的智能设备。
[0105]上述服务端,可以包括部署在云端的服务器、服务器集群或者基于服务器集群构建的云平台。该服务端用于保存Zigbee设备在进行固件升级时所需要的最新版本的固件。
[0106]上述智能网关,可以包括集成了W1-Fi模块和Zigbee模块的网关设备,例如智能路由器或者服务器。该智能网关设备的W1-Fi模块可以通过串口与Zigbee模块进行通信,该W1-Fi模块可以通过W1-Fi接入到互联网,与云端服务器进行数据通信。在实际应用中,上述智能网关可以作为核心设备,部署在基于Zigbee设备组建的应用环境中(比如低功耗的智能家居环境),该应用环境中的Zigbee设备可以通过接入智能网关的W1-Fi模块,然后通过智能网关的W1-Fi模块和Zigbee模块进行协议转换,来接入互联网,与云端的服务器进行数据通信。
[0?07]在本例中,zigbee设备在出厂后,设备固件可能存在一定的缺陷,或者zigbee设备在实际的应用中可能需要增加新功能,因此zigbee设备通常都会存在进行固件升级的需求。而在相关技术中,zigbee设备在进行固件升级时,通常是通过用户手动进行触发的,比如,当zigbee设备的固件存在最新版本时,服务端可以向zigbee设备发出一个最新版本固件的更新通知,zigbee设备可以通过系统界面将该更新通知提示给用户,然后由用户手动触发zigbee设备开始进行固件升级(比如可以点击系统界面中的升级按钮来触发zigbee设备进行固件升级),同时开始基于zigbee协议与服务端进行数据通信下载最新版本的固件来完成升级。然而,由用户手动触发zigbee设备进行固件升级,由于采用Zigbee协议的设备之间互相通信的传输速率较低,因此整个升级过程通常需要用户等待较长的时间,造成非常不好的用户体验。
[0108]基于此,在本公开中提出一种针对Zigbee设备执行静默升级的方案,当智能网关在确定当前应用环境中的Zigbee设备需要进行固件升级时,可以在后台静默下载最新版本的固件,并将下载的最新版本的固件推送给需要升级的Zigbee设备,当成功推送后再向需要升级的Zigbee设备下载固件升级指令,触发Zigbee设备进行固件升级,从而保证最新版本的固件以及固件升级均可以由智能网关在后台静默完成,对用户来说完全不感知,因此可以避免由于Zigbee设备间传输速率较低,而造成的Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0109]以下结合具体的应用场景对本公开的技术方案进行详细描述。
[0110]在示出的一种应用场景中,该应用场景可以是低功耗的智能家居环境,由于在低功耗的智能家居环境中,对智能设备功耗要求较高,而Zigbee协议与W1-Fi相比均有功耗较低的优点,因此在组建上述低功耗的智能家居环境时,均可以采用支持Zigbee协议,基于Zigbee协议进行数据通信的智能设备。例如,小米公司推出的一种“智能家庭的安全套装组合”包括智能网关、以及基于Zigbee协议进行通信的无线门铃按钮、人体红外运动传感器和门窗感应器。
[O111 ] 在本例中,由于智能家居环境中的Zigbee设备均支持通过标准的Zigbee协议与智能网关的Zigbee模块进行通信,因此智能网关可以通过Zigbee模块与各Zigbee设备进行通信,来获取各Zigbee设备当前的固件版本。
[0112]同时,智能网关还可以通过W1-Fi模块与服务端进行通信,来查询各Zigbee设备的最新固件版本。
[0113]在示出的一种实施方式中,智能网关可以通过W1-Fi模块定时向服务端发送用于查询各Zigbee设备的最新固件版本的查询命令,然后通过获取返回返回的回应命令,来获取各Zigbee设备的最新固件版本。
[0114]其中,上述查询命令中可以携带智能网关所要查询的Zigbee设备的类型标识,以及该Zigbee设备当前的固件版本。上述服务端在收到该查询命令后,可以将该查询命令中携带的该Zigbee设备当前的固件版本,与本地保存的该Zigbee设备最新的固件版本进行比较,如果二者相同,此时该Zigbee设备的固件版本已经是最新版本,不需要进行固件版本更新,服务端在收到上述查询命令后可以不做响应,或者返回一个空值。如果二者不相同,此时该Zigbee设备需要进行固件版本更新,则可以正常响应该查询命令,向智能网关返回对应的回应命令。在该回应命令中,可以携带与该查询命令对应的查询结果,在该查询结果中可以携带智能网关所查询的Zigbee设备的类型标识,以及最新的固件版本。另外,在实际应用中,该回应命令中还可以携带该最新版本的固件的下载地址,以方面智能网关根据该下载地址下载最新版本的固件。
[0115]例如,在示出的一个例子中,上述查询命令的格式可以如下所示:
[0116]{method:
[0117]get_subdev_vers 1n,params:
[0118][string(model),string(fw_vers1n)]}
[0119]上述回应命令的格式可以如下所示:
[0120]{result:
[0121][mode1:1um1.xxx.xxx,
[0122]fw_vers1n:xxx,
[0123]hw_vers1n:xxx,
[0124]url: http://xxx.0ta.bin,md5:xxx,des:xxx]}
[0125]在以上示出的查询命令和回应命令中,参数model为所要查询的Zigbee设备的类型标识,用于唯一标识该设备;fw_vers1n为所要查询的Zigbee设备的当前固件版本;hw_vers1n为所要查询的Zigbee设备的最新的固件版本;url为最新的固件版本的下载地址。
[0126]另外,智能网关在定时发送上述查询命令时,可以基于设定的发送时间来发送;比如,该发送时间可以是每日22点。该设定的发送时间可以从预设的时间段中随机选择得到;例如,可以基于服务端的工作时间上的特点设置一个预设的时间段,比如假设服务端每日22点至凌晨6点为系统维护时间,通常不对外进行日常的业务通信,那么可以将上述预设的时间段设置为每日6点至每日22点,S卩服务端进行日常业务通信的时间段。智能网关在设定发送时间时,可以从该预设的时间段中随机抽取一个时间点,用于发送查询命令。由于服务端通常可以面向若干台智能网关进行服务,而如果所有智能网关基于同样的发送时间发送查询命令,来对下挂的Zigbee设备进行固件升级时,可能会由于数据访问量时间点集中而造成升级拥塞。因此,通过这种随机抽取发送时间点的方式,可以确保各智能网关发送查询命令的时间分散,从而避免造成升级拥塞的情况。
[0127]在本例中,当智能网关接收到服务端返回的回应命令后,可以读取该回应命令中携带的最新的固件版本,然后与获取到的Zigbee设备当前的固件版本进行比较,来判断该Zigbee设备当前的固件版本与最新的固件版本是否相同,如果该Zigbee设备当前的固件版本与最新的固件版本相同,表示该Zigbee设备不需要执行固件版本升级,在这种情况下不需要进行特殊处理,该Zigbee设备可以仍然采用当前的固件版本进行启动和运行。
[0128]当然,如果该Zigbee设备当前的固件版本与最新的固件版本不相同,此时智能网关可以对该回应命令中携带的该最新的固件版本的下载地址,从服务端下载最新版本的固件。
[0129]当智能网关成功下载了最新版本的固件后,可以将该最新版本的固件推送给对应的Zigbee设备。其中,智能网关向对应的Zigbee设备推送最新版本的固件时,可以是主动推送,也可以是被动推送;例如,智能网关在将最新版本的固件下载完成后,可以立即基于Zigbee模块将下载完成的固件主动推送至各Zigbee设备;或者各Zigbee设备也可以定时向智能网关发送查询消息,用于查询智能网关本地是否保存了最新版本的固件,当智能网关在将最新版本的固件下载完成,并接收到了各Zigbee设备的上述查询消息后,可以将下载完成的最新版本的固件发送至各Zigbee设备。
[0130]在本例中,对于收到的由智能网关推送的最新版本的固件,各Zigbee设备可以在后台进行存储;其中,为了不影响设备的正常工作,各Zigbee设备在收到智能网关推送的最新版本的固件后,可以将接收到的固件储存在设备MCU的备用存储区,从而可以不影响设备当前的正常工作。
[0131]当智能网关将最新版本的固件成功推送至各Zigbee设备后,此时智能网关可以向需要升级的各Zigbee设备下发固件升级指令,各Zigbee设备在收到该固件升级指令后,各Zigbee设备可以基于存储在本地的最新版本的固件执行固件版本升级。
[0132]其中,Zigbee设备在基于最新版本的固件执行固件版本升级时,可以通过系统界面向用户输出一个提示消息,比如该提示消息可以是“是否升级到最新版本的固件”的提示消息,此时用户仍然可以通过触发该系统界面中的升级按钮,开始进行固件版本升级。
[0133]在进行固件版本升级的过程中,Zigbee设备可以进行重启操作,并在重启的过程中读取最新版本的固件,对设备MCU中存储的当前版本的固件进行替换更新,当重启完成后,Zigbee设备可以裕兴最新版本的固件,此时固件版本的升级完成。
[0134]可见,通过这种方式,由于Zigbee设备在接收到智能网关下发的固件升级命令时,最新版本的固件已经提前下载到了本地,而且下载过程用户不感知,因此Zigbee设备可以立即通过已经存储在本地的最新版本的固件完成固件版本升级,对于用户来说,整个升级过程立即得到了响应,用户不需要进行任何的升级等待,可见有助于提升用户体验。
[0135]在以上实施例中,提出一种针对Zigbee设备执行静默升级的方案,通过在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件,将下载的所述最新版本的固件推送至Zigbee设备,并在将最新版本的固件成功推送至Zigbee设备后,再向Zigbee设备下发固件升级指令,以触发Zigbee设备基于最新版本的固件执行固件升级,因此可以实现在后台静默完成最新版本的固件的下载以及基于最新版本的固件进行固件升级的操作,而用户并不感知,从而可以避免由于Zigbee设备间传输速率较低,Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0136]与前述方法实施例相对应,本公开还提供了装置的实施例。
[0137]图3是根据一示例性实施例示出的一种Zigbee设备的升级装置的示意框图。
[0138]如图3所示,根据一示例性实施例示出的一种Zigbee设备的升级装置300,包括:下载模块301、推送模块302、下发模块303;其中:
[0139]所述下载模块301,被配置为在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0140]所述推送模块301,被配置为将下载的所述最新版本的固件推送至所述Zigbee设备;
[0141]所述下发模块303,被配置为在所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0142]在以上实施例中,提出一种针对Zigbee设备执行静默升级的方案,通过在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件,将下载的所述最新版本的固件推送至Zigbee设备,并在将最新版本的固件成功推送至Zigbee设备后,再向Zigbee设备下发固件升级指令,以触发Zigbee设备基于最新版本的固件执行固件升级,因此可以实现在后台静默完成最新版本的固件的下载以及基于最新版本的固件进行固件升级的操作,而用户并不感知,从而可以避免由于Zigbee设备间传输速率较低,Zigbee设备升级的用户等待时间较长的问题,有助于提升用户体验。
[0143]请参见图4,图4是本公开根据一示例性实施例示出的另一种Zigbee设备的升级装置框图,该实施例在前述图3所示实施例的基础上,所述装置300还可以包括获取模块304、查询模块305、判断模块306和确定模块307;其中:
[0144]所述获取模块304,被配置为获取所述Zigbee设备当前的固件版本;
[0145]所述查询模块305,被配置为向所述服务端查询所述Zigbee设备的最新固件版本;
[0146]所述判断模块306,被配置为判断所述Zigbee设备当前的固件版本与所述最新固件版本是否相同;
[0147]所述确定模块307,被配置为在所述Zigbee设备当前的固件版本与所述最新固件版本不相同时,确定所述Zigbee设备需要进行固件升级。
[0148]请参见图5,图5是本公开根据一示例性实施例示出的另一种Zigbee设备的升级装置框图,该实施例在前述图4所示实施例的基础上,所述查询模块305可以包括发送子模块305A和获取子模块305B;其中:
[0149]所述发送子模块305A,被配置为基于设定的发送时间定时向所述服务端发送用于查询所述最新固件版本的查询命令;
[0150]所述获取子模块305B,被配置为获取所述服务端返回的与所述查询命令对应的查询结果;所述查询结果包括所述最新固件版本。
[0151]需要说明的是,上述图5所示的装置实施例中示出的第发送子模块305A和获取子模块305B的结构也可以包含在前述图3的装置实施例中,对此本公开不进行限制。
[0152]在以上实施例中,所述设定的发送时间从预设的时间段中随机选择得到。
[0153]请参见图6,图6是本公开根据一示例性实施例示出的另一种Zigbee设备的升级装置框图,该实施例在前述图5所示实施例的基础上,所述查询结果还可以包括与所述最新固件版本对应的下载地址;所述下载模块301可以包括下载子模块301A;其中:
[0154]所述下载子模块301A,被配置为基于所述下载地址向所述服务端下载所述最新版本的固件。
[0155]需要说明的是,上述图6所示的装置实施例中示出的下载子模块301A的结构也可以包含在前述图3-4的装置实施例中,对此本公开不进行限制。
[0156]上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0157]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0158]相应的,本公开还提供一种Zigbee设备的升级装置,所述Zigbee设备的升级装置包括:
[0159]处理器;
[0160]用于存储处理器可执行指令的存储器;
[0161]其中,所述处理器被配置为:
[0162]当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0163]将下载的所述最新版本的固件推送至所述Zigbee设备;
[0164]当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0165]相应的,本公开还提供一种智能网关,所述智能网关包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
[0166]当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0167]将下载的所述最新版本的固件推送至所述Zigbee设备;
[0168]当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0169]图7是根据一示例性实施例示出的一种Zigbee设备的升级装置的结构示意图。
[0170]如图7所示,根据一示例性实施例示出的一种Zigbee设备的升级装置700,该装置700可以是作为智能网关的路由器、计算机,移动电话,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等终端设备。
[0171]参照图7,装置700可以包括以下一个或多个组件:处理组件701,存储器702,电源组件703,多媒体组件704,音频组件705,输入/输出(I/O)的接口706,传感器组件707,以及通信组件708。
[0172]处理组件701通常控制装置700的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件701可以包括一个或多个处理器709来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件701可以包括一个或多个模块,便于处理组件701和其它组件之间的交互。例如,处理部件701可以包括多媒体模块,以方便多媒体组件704和处理组件701之间的交互。
[0173]存储器702被配置为存储各种类型的数据以支持在装置700的操作。这些数据的示例包括用于在装置700上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0174]电源组件703为装置700的各种组件提供电力。电源组件703可以包括电源管理系统,一个或多个电源,及其它与为装置700生成、管理和分配电力相关联的组件。
[0175]多媒体组件704包括在所述装置700和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件704包括一个前置摄像头和/或后置摄像头。当装置700处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0176]音频组件705被配置为输出和/或输入音频信号。例如,音频组件705包括一个麦克风(MIC),当装置700处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或经由通信组件708发送。在一些实施例中,音频组件705还包括一个扬声器,用于输出音频信号。
[0177]I/O接口702为处理组件701和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0178]传感器组件707包括一个或多个传感器,用于为装置700提供各个方面的状态评估。例如,传感器组件707可以检测到装置700的打开/关闭状态,组件的相对定位,例如所述组件为装置700的显示器和小键盘,传感器组件707还可以检测装置700或装置700—个组件的位置改变,用户与装置700接触的存在或不存在,装置700方位或加速/减速和装置700的温度变化。传感器组件707可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件707还可以包括光传感器,如CMOS或C⑶图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件707还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0179]通信组件708被配置为便于装置700和其它设备之间有线或无线方式的通信。装置700可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件708经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件708还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其它技术来实现。
[0180]在示例性实施例中,装置700可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其它电子元件实现,用于执行上述方法。
[0181]在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器702,上述指令可由装置700的处理器709执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是R0M、随机存取存储器(RAM)、CD-R0M、磁带、软盘和光数据存储设备等。
[0182]其中,当所述存储介质中的指令由所述处理器709执行时,使得装置700能够执行一种Zigbee设备的升级方法,包括:
[0183]当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0184]将下载的所述最新版本的固件推送至所述Zigbee设备;
[0185]当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0186]如图8所示,图8是根据一示例性实施例示出的一种Zigbee设备的升级装置800的一结构不意图。
[0187]例如,装置800可以被提供为一作为智能网关的服务器。参照图8,装置800包括处理组件822,其进一步包括一个或多个处理器,以及由存储器1332所代表的存储器资源,用于存储可由处理部件822的执行的指令,例如应用程序。存储器832中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件822被配置为执行指令,以执行上述Zigbee设备的升级方法。
[0188]装置800还可以包括一个电源组件826被配置为执行装置800的电源管理,一个有线或无线网络接口 850被配置为将装置800连接到网络,和一个输入输出(I/O)接口 858。
[0189]装置800可以在搭载独立的操作系统。当装置800搭载了独立的操作系统时,搭载的操作系统可以存储于存储器832中,装置800则可以运行存储在存储器832的操作系统,例如所述操作系统可以包括Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
[0190]其中,当所述存储器1332中的指令由所述处理组件1322执行时,使得装置800能够执行一种Zigbee设备的升级方法,包括:
[0191]当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件;
[0192]将下载的所述最新版本的固件推送至所述Zigbee设备;
[0193]当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
[0194]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0195]应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
【主权项】
1.一种Zigbee设备的升级方法,其特征在于,所述方法包括: 当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件; 将下载的所述最新版本的固件推送至所述Zigbee设备; 当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。2.如权利要求1所述的方法,其特征在于,所述方法还包括: 获取所述Z i gbee设备当前的固件版本; 向所述服务端查询所述Zigbee设备的最新固件版本; 判断所述Zigbee设备当前的固件版本与所述最新固件版本是否相同; 如果所述Zigbee设备当前的固件版本与所述最新固件版本不相同,确定所述Zigbee设备需要进行固件升级。3.如权利要求2所述的方法,其特征在于,所述向所述服务端查询所述Zigbee设备最新的固件版本包括: 基于设定的发送时间定时向所述服务端发送用于查询所述最新固件版本的查询命令;获取所述服务端返回的与所述查询命令对应的查询结果;所述查询结果包括所述最新固件版本。4.如权利要求3所述的方法,其特征在于,所述设定的发送时间从预设的时间段中随机选择得到。5.如权利要求3所述的方法,其特征在于,所述查询结果还包括与所述最新固件版本对应的下载地址; 所述向服务端下载最新版本的固件包括: 基于所述下载地址向所述服务端下载所述最新版本的固件。6.一种Zigbee设备的升级装置,其特征在于,所述装置包括: 下载模块,被配置为在Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件; 推送模块,被配置为将下载的所述最新版本的固件推送至所述Zigbee设备; 下发模块,被配置为在所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。7.如权利要求6所述的装置,其特征在于,所述装置还包括: 获取模块,被配置为获取所述Zigbee设备当前的固件版本; 查询模块,被配置为向所述服务端查询所述Zigbee设备的最新固件版本; 判断模块,被配置为判断所述Zigbee设备当前的固件版本与所述最新固件版本是否相同; 确定模块,被配置为在所述Zigbee设备当前的固件版本与所述最新固件版本不相同时,确定所述Zigbee设备需要进行固件升级。8.如权利要求7所述的装置,其特征在于,所述查询模块包括: 发送子模块,被配置为基于设定的发送时间定时向所述服务端发送用于查询所述最新固件版本的查询命令; 获取子模块,被配置为获取所述服务端返回的与所述查询命令对应的查询结果;所述查询结果包括所述最新固件版本。9.如权利要求8所述的方法,其特征在于,所述设定的发送时间从预设的时间段中随机选择得到。10.如权利要求8所述的装置,其特征在于,所述查询结果还包括与所述最新固件版本对应的下载地址; 所述下载模块包括: 下载子模块,被配置为基于所述下载地址向所述服务端下载所述最新版本的固件。11.一种Zigbee设备的升级装置,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为: 当Zigbee设备需要进行固件升级时,向服务端下载最新版本的固件; 将下载的所述最新版本的固件推送至所述Zigbee设备; 当所述最新版本的固件成功推送至所述Zigbee设备后,向所述Zigbee设备下发固件升级指令,以触发所述Zigbee设备基于所述最新版本的固件执行固件升级。
【文档编号】H04L29/08GK105847067SQ201610356502
【公开日】2016年8月10日
【申请日】2016年5月25日
【发明人】苏本昌, 孟德国, 侯恩星
【申请人】北京小米移动软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1