zigbee设备的固件升级方法和装置的制造方法

文档序号:10488775阅读:435来源:国知局
zigbee设备的固件升级方法和装置的制造方法
【专利摘要】本发明实施例公开了一种zigbee设备的固件升级方法和装置,该固件升级方法包括:接收到网关下发的升级通知后,若满足无线升级条件,则从网关中请求获取新固件信息;当检测到本地固件与新固件信息匹配且校验有效时,向网关发送更新固件确认请求;当接收到网关下发的更新固件确认命令时,将本地固件加载到设备处理器中并校验有效后运行以完成固件升级。本发明提供的固件升级方法和装置可减少zigbee设备进行固件升级所需的时间,无需通过物理接口进行固件升级,因此具有可靠、高效的优点,还降低了zigbee设备的固件升级成本。
【专利说明】
z i gbee设备的固件升级方法和装置
技术领域
[0001]本发明实施例涉及固件升级技术,尤其涉及一种zigbee设备的固件升级方法和装置。
【背景技术】
[0002]ZigBee(紫蜂协议)是一种低功耗、低速率、低成本的短距离无线通信技术,采用zigbee技术进行通信的设备称为zigbee设备。
[0003]在实际应用中,当zigbee设备中的固件缺陷或者功能扩展时,需要对zigbee设备的固件进行更新。现有的ZigBee设备的固件更新方式为本地固件更新,zigbee设备可通过其中的编程接口、或者通用异步收发传输器(UART)接口、或者通用串行总线(USB)接口进行本地固件更新。
[0004]显而易见的,在zigbee设备设计初期可预留硬件接口或者可拆卸外壳,以使zigbee设备基于接口进行本地固件更新,然而这样会额外增加设备成本、增加设备设计和制造难度,使得该类zigbee设备更新固件的成本较大。若ZigBee设备不预留编程接口又具有不可拆卸外壳,或者ZigBee设备的安装位置不易接近,则该类zigbee设备不易更新固件,若必须更新固件则更新固件的成本很大。

【发明内容】

[0005]本发明实施例提供一种zigbee设备的固件升级方法和装置,以解决现有技术中z igbee设备更新固件的成本较大的问题。
[0006]第一方面,本发明实施例提供了一种zigbee设备的固件升级方法,该固件升级方法包括:
[0007]接收到网关下发的升级通知后,若满足无线升级条件,则从所述网关中请求获取新固件信息;
[0008]当检测到本地固件与所述新固件信息匹配且校验有效时,向所述网关发送更新固件确认请求;
[0009]当接收到所述网关下发的更新固件确认命令时,将所述本地固件加载到设备处理器中并校验有效后运行以完成固件升级。
[0010]进一步地,所述zigbee设备满足的无线升级条件至少包括:所述zigbee设备支持无线升级固件功能,所述zigbee设备的工作电压正常,以及所述zigbee设备具有有效的片外存储器。
[0011]进一步地,所述新固件信息至少包括:新固件适用设备信息,新固件版本信息,以及校验码。
[0012]进一步地,从所述网关中请求获取新固件信息之后,还包括:
[0013]当检测到固件存储区域的基本信息与所述新固件信息不完全一致时,从所述网关中查询所述新固件的大小,并在所述新固件大小与所述固件存储区域大小一致时从所述网关中查询所述新固件的内容重复区域;
[0014]从所述网关中依次请求该新固件的数据并对应填充在所述固件存储区域中,当请求到所述内容重复区域中数据时,采用与所述内容重复区域中数据相同的本地数据对应填充在所述固件存储区域中;
[0015]对接收完成的所述固件存储区域中的本地固件进行有效性校验。
[0016]进一步地,所述内容重复区域的信息至少包括:区域起始地址、区域容量和区域数据。
[0017]进一步地,向所述网关发送更新固件确认请求包括:
[0018]在设定时间阈值内,以设定时间周期向所述网关发送更新固件确认请求,直至接收到所述网关下发的更新固件确认命令为止;以及,
[0019]若在所述设定时间阈值内未接收到所述更新固件确认命令时,停止发送所述更新固件确认请求并在设备复位前等待所述更新固件确认命令。
[0020]进一步地,当接收到所述网关下发的更新固件确认命令时,将所述本地固件加载到设备处理器中并校验有效后运行以完成固件升级,包括:
[0021]当接收到所述网关在设备复位前任意时刻下发的更新固件确认命令时,将所述本地固件加载到设备处理器中;
[0022]校验位于所述处理器中的本地固件,并在该本地固件校验有效后运行并标记升级完成。
[0023]进一步地,还包括:
[0024]若不满足无线升级条件时,向所述网关上报错误代码以使所述网关退出该zigbee设备的升级流程;或者,
[0025]当检测到所述新固件大小与所述固件存储区域的大小不一致时,向所述网关上报错误代码以使所述网关退出该zigbee设备的升级流程;或者,
[0026]若接收完成的所述固件存储区域中的本地固件校验无效时,向所述网关上报错误代码以使所述网关退出该zigbee设备的升级流程。
[0027]第二方面,本发明实施例还提供了一种zigbee设备的固件升级装置,配置在如第一方面所述的zigbee设备中,该固件升级装置包括:
[0028]获取固件模块,用于接收到网关下发的升级通知后,若满足无线升级条件,则从所述网关获取新固件信息;
[0029]校验固件模块,用于当检测到本地固件与所述新固件信息匹配且校验有效时,向所述网关发送更新固件确认请求;
[0030]升级固件模块,用于当接收到所述网关下发的更新固件确认命令时,将所述本地固件加载到设备处理器中并校验有效后运行以完成固件升级。
[0031]本发明实施例提供的zigbee设备的固件升级方法和装置,zigbee设备通过向网关反馈是否满足无线升级条件,以避免网关对无法升级的zigbee设备进行升级操作,使得网关和zigbee设备的升级流程更加高效,随后基于无线通信技术从网关获取新固件数据并对本地固件进行校验,以在本地固件与新固件匹配且校验有效后将本地固件加载至zigbee设备的处理器中,由此完成zigbee设备的固件升级流程。该技术方案可减少zigbee设备进行固件升级所需的时间,具有可靠、高效的特点,与现有技术相比,无需通过物理接口进行固件升级,因此降低了 zigbee设备的升级成本。
【附图说明】
[0032]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1是本发明实施例一提供的zigbee设备的固件升级方法的流程图;
[0034]图2是本发明实施例二提供的zigbee设备的固件升级方法的流程图;
[0035]图3是本发明实施例三提供的zigbee设备的固件升级装置的示意图;
[0036]图4是图3所示固件升级装置的执行过程;
[0037]图5是本发明实施例四提供的网关控制zigbee设备升级的流程图。
【具体实施方式】
[0038]为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]图1为本发明实施例一提供的zigbee设备的固件升级方法的流程图。本实施例可适用于zigbee设备基于无线通信传输技术进行固件升级的情况,该方法可以由固件升级装置来执行,该固件升级装置可通过软/硬件实现,该固件升级装置配置在zigbee设备中应用。
[0040]本实施例提供的zigbee设备的固件升级方法,具体包括如下步骤:
[0041]S110、接收到网关下发的升级通知后,若满足无线升级条件,则从网关中请求获取新固件信息。
[0042]在本实施例中可选zigbee设备是升级指定网关下的任意一个zigbee设备,在本发明中还可选zigbee设备是和新固件相匹配的任意一个在线zigbee设备,但在本发明中不对z igbee设备进行具体限制。
[0043]当ZigBee设备接收到网关下发的升级通知后,zigbee设备需要检测设备自身是否满足无线升级条件。若检测到zigbee设备不满足无线升级条件时,zigbee设备会向网关上报不支持升级应答,以使网关退出该zigbee设备的升级流程并继续对下一个zigbee设备进行无线升级操作,在此不支持升级应答为错误代码,该错误代码标识了当前zigbee设备不支持无线升级及原因。若zigbee设备检测到设备自身满足无线升级条件,则zigbee设备会向网关返回升级应答,该升级应答中标识了zigbee设备支持升级,随后zigbee设备会向网关上报获取新固件请求,以从网关中获取新固件信息。需要说明的是,zigbee设备支持无线升级后,zigbee设备在固件升级流程中向网关上报的相关信息以及从网关获取的相关信息和数据均基于无线通信方式进行通信,在此以及下文中不再赘述。
[0044]本步骤中zigbee设备向网关反馈是否支持无线升级,可使当前zigbee设备不支持无线升级时网关迅速结束该升级流程并对下一个z igbee设备进行无线升级操作,便于高效、快速的实现网关对Z igbee设备的升级固件操作。zigbee设备向网关反馈是否升级的应答,可避免网关对无法升级的zigbee设备进行升级操作,使得网关和zigbee设备的升级流程更加高效。
[0045]S120、当检测到本地固件与新固件信息匹配且校验有效时,向网关发送更新固件确认请求。
[0046]在本实施例中可选z igbee设备具有片外flash存储器,片外flash存储器用于在升级过程中临时存放新固件以及相关的升级状态,若zigbee设备还未进行过无线固件升级,则该片外flash存储器中未存储固件。本实施例中与新固件信息进行匹配的对象为片外flash存储器的固件存储区域,该固件存储区域用于存储本地固件,而与新固件进行校验的对象为存储的固件。
[0047]当zigbee设备基于无线通信技术从网关获取到新固件信息后,zigbee设备会将新固件信息和固件存储区域的相关信息进行匹配,若检测到信息不一致,则在新固件大小与固件存储区域大小一致时从网关请求获取新固件数据块并更新zigbee设备中的本地固件,以使zigbee设备的固件存储区域的信息与新固件信息匹配,需要说明的是,若片外flash存储器中无固件也判定为信息不一致。若信息一致,则判定固件存储区域中存储有与新固件匹配且校验有效的本地固件,并向网关上报校验有效命令帧,此时片外flash存储器中的本地固件即为新固件,然后向网关发送更新固件确认请求以进行后续的固件更新操作。
[0048]本步骤中zigbee设备的本地固件与新固件信息匹配且校验有效时,说明该本地固件即为zigbee设备待升级的新固件,zigbee设备直接根据该本地固件进行升级,因此具有可靠、高效的优势。
[0049]S130、当接收到网关下发的更新固件确认命令时,将本地固件加载到设备处理器中并校验有效后运行以完成固件升级。
[°05°]在本实施例中,当zigbee设备接收到网关下发的更新固件确认命令后,zigbee设备会将片外flash存储器中的本地固件加载到zigbee设备的处理器中。然后zigbee设备对加载至处理器中的固件进行校验,若校验无效,则zigbee设备再次将本地固件加载到处理器中并校验,直至校验有效为止,当处理器中固件校验有效,则zigbee设备的固件升级完成。
[0051]本发明实施例提供的zigbee设备的固件升级方法,zigbee设备通过向网关反馈是否支持无线升级,以避免网关对无法升级的zigbee设备进行升级操作,使得网关和zigbee设备的升级流程更加高效,随后基于无线通信技术从网关获取新固件数据并对本地固件进行校验,以在本地固件与新固件匹配且校验有效后加载至zigbee设备的处理器中,由此完成zigbee设备的固件升级流程。该无线固件升级方法可减少zigbee设备进行固件升级所需的时间,具有可靠、高效的特点,与现有技术相比,无需通过接口进行固件升级,因此降低了zigbee设备的升级成本。
[0052]示例性的,在上述技术方案的基础上,对于步骤110的操作,可选zigbee设备满足的无线升级条件至少包括:z igbee设备支持无线升级固件功能,z igbee设备的工作电压正常,以及zigbee设备具有有效的片外存储器。其中,zigbee设备支持无线升级固件功能时,zigbee设备可基于无线通信技术从网关获取新固件信息及其数据块。Zigbee设备工作电压正常时,zigbee设备可正常实现无线传输功能。Zigbee设备有效的片外存储器用于存储zigbee设备通过无线传输方式从网关获取的新固件,zigbee设备将该新固件加载到处理器中即可实现z igbee设备的固件无线升级。
[0053]对于zigbee设备的升级条件,若zigbee设备不满足其中至少一个升级条件时,则zigbee设备不支持升级,zigbee设备会向网关反馈不支持升级应答并使网关结束该设备的升级流程。需要说明的是,zigbee设备检测自身是否满足无线升级条件的方式可能会因为zigbee设备的不同而有所改变,因此不具体赘述zigbee设备自检的过程,但本发明中不限制zigbee设备自检的方式。
[0054]示例性的,在上述技术方案的基础上,可选新固件信息至少包括:新固件适用设备信息,新固件版本信息,以及校验码。在此当新固件适用设备信息与固件存储区域的相关信息一致,新固件版本信息与固件存储区域的相关信息一致,以及固件存储区域中的本地固件的校验码与新固件信息中的校验一致,则判定本地固件与新固件信息匹配且校验有效,此时zigbee设备无需从网关获取新固件的数据块,而是直接将固件存储区域中的本地固件加载到处理器中以对zigbee设备的固件进行更新。
[0055]若与新固件信息中的至少一项不一致,则在新固件大小与固件存储区域大小一致时从网关请求新固件的数据块以更新本地固件,进而zigbee设备根据与新固件匹配的本地固件进行后续固件升级流程,在此不再赘述。
[0056]在上述技术方案的基础上,本发明实施例二还提供一种zigbee设备的固件升级方法。如图2所示,该固件升级方法与上述实施例的区别在于,可选对于步骤110的从网关中请求获取新固件信息的操作之后,还包括:
[0057]S111、当检测到固件存储区域的基本信息与新固件信息不完全一致时,从网关中查询新固件的大小,并在新固件大小与固件存储区域大小一致时从网关中查询新固件的内容重复区域。
[0058]可选新固件信息至少包括:新固件适用设备信息,新固件版本信息,以及校验码,当zigbee设备检测到新固件信息中的至少一项与固件存储区域及其中的本地固件不一致时,此时zigbee设备需要从网关中请求获取新固件的数据块。
[0059]在获取数据块前,zigbee设备需要判断该新固件是否有效,即新固件的大小与固件存储区域的大小是否一致,若不一致,则zigbee设备向网关上报错误代码以使网关退出该zigbee设备的升级流程并进行下一个zigbee设备的无线升级操作。若大小一致,则从网关中查询新固件的内容重复区域。
[0060]在本实施例中新固件由多个字节组成,其中可能存在若干个大于设定阈值的内容一致的区域,在升级流程中,被升级的ZigBee设备在向网关请求新固件前先请求这些内容重复区域的信息,具体包括每一个区域起始地址、每一个区域所占存储空间大小、每一个区域中的内容,然后在本地形成内容重复区域描述列表以进行记录。在后续请求固件数据过程中,每请求到这些内容重复区域,zigbee设备就可以根据查询的区域内容直接在片外flash存储器的固件存储区域中相应的位置上直接填充,不需要通过无线通信逐一向网关请求。可选内容重复区域的信息至少包括:区域起始地址、区域大小和区域数据。
[0061 ]可选设定阈值为1024字节,则新固件中大于或等于1024字节的区域均为内容重复区域,本发明中不限制设定阈值的大小,不同开发者可自行对设定阈值进行限定。
[0062]S112、从网关中依次请求新固件的数据并对应填充在固件存储区域中,当请求到内容重复区域中数据时,采用与内容重复区域中数据相同的本地数据对应填充在固件存储区域中。
[0063]在本实施例中固件存储区域为片外存储器中存储新固件的区域。zigbee设备开始从网关中依次请求新固件的数据,在此zigbee设备从新固件的第一个字节开始顺次请求。其中,zigbee设备每一次请求的数据可设置为固定容量,如每次请求69字节,但还可选每次请求的数据容量不固定,在本发明中不对请求的数据容量进行限制。
[0064]当zigbee设备依次请求数据时,zigbee设备会根据内容重复区域描述列表中的信息判断是否请求到内容重复区域中的数据,具体是判断请求的数据地址是否为内容重复区域的起始地址。若当前请求到内容重复区域中的数据,则zigbee设备根据内容重复区域描述列表中的区域大小,将本地数据自动并循环填充在与内容重复区域对应的固件存储区域中,以此实现对内容重复区域的数据的请求。若当前未请求到内容重复区域中的数据,则zigbee设备从网关获取该数据并对应填充在固件存储区域中。
[0065]Zigbee设备依次请求新固件的数据并对应填充在固件存储区域中,即请求的新固件的第i个数据对应填充在片外存储器件的固件存储区域的第i个地址偏移位置上,直至请求完新固件的数据。还可选根据请求的数据地址是否处于内容重复区域的起始地址和终止地址范围内,来判断是否请求到内容重复区域中数据,但在本发明中不限定请求到内容重复区域中数据的判断方式。
[0066]上述操作中zigbee设备请求新固件数据时,无需请求内容重复区域的数据,而仅请求新固件的内容不一致数据块,在此设置zigbee设备请求固件的方法为固件简易压缩算法,该算法有效减少了固件传输过程中需要传输的数据量、同时减少了固件传输的总时间,节省了 zigbee设备的耗电量,也使得zigbee设备固件升级流程更高效。
[0067]S113、对接收完成的固件存储区域中的本地固件进行有效性校验。
[0068]在本步骤中,zigbee设备的片外存储器的固件存储区域中接收并存储好请求的固件数据后,zigbee设备片外存储器中的当前本地固件即为新固件。在此zigbee设备还需要对该本地固件进行有效性校验,即根据新固件信息中的校验码,zigbee设备计算本地固件的校验码,并判断本地固件的校验码与新固件信息中的校验码是否一致。
[0069]若本地固件的校验码与新固件信息中的校验码不一致,则判定本地固件校验无效,则zigbee设备向网关上报错误代码以使网关退出该zigbee设备的升级流程。若一致,则zigbee设备判定该本地固件与新固件匹配且校验有效,可执行后续升级流程。当检测到zigbee设备的本地固件与新固件信息匹配且校验有效时,ZigBee设备向网关上报校验成功命令帧。
[0070]在上述操作之后,执行步骤120的当检测到本地固件与新固件信息匹配且校验有效时,向网关发送更新固件确认请求的操作。在本实施例中可选向网关发送更新固件确认请求具体包括:在设定时间阈值内,以设定时间周期向网关发送更新固件确认请求,直至接收到网关下发的更新固件确认命令为止;以及,若在设定时间阈值内未接收到更新固件确认命令时,停止发送更新固件确认请求并在设备复位前等待更新固件确认命令。
[0071 ]在本实施例中,可选设定时间阈值为50秒,设定时间周期为10秒,但在本发明中并不限制设定时间阈值和设定时间周期,开发者可根据zigbee设备的应用情况自行进行设定。当检测到zigbee设备的本地固件与新固件信息匹配且校验有效时,zigbee设备在50秒的时间内,以10秒每次的间隔向网关发送更新固件确认请求。若网关未在50秒内应答,gpzigbee设备未接收到更新固件确认命令,贝Ijzigbee设备停止向网关发送更新固件确认请求并在复位前等待接收确认命令。网关在ZigBee设备复位之前的任意时刻应答该更新固件确认请求,z igbee设备执行后续操作。
[0072]在上述操作之后,执行步骤130的当接收到网关下发的更新固件确认命令时,将本地固件加载到设备处理器中并校验有效后运行以完成固件升级的操作。可选该操作具体包括如下步骤:
[0073]S131、当接收到网关在设备复位前任意时刻下发的更新固件确认命令时,将本地固件加载到设备处理器中。
[0074]本实施例中,zigbee设备复位前任意时刻具体是zigbee设备开始向网关发送更新固件确认请求直至zigbee设备复位前的任意一个时间点,因此设定时间阈值也处于zigbee设备复位前。当zigbee设备在复位前任意时刻接收到更新固件确认命令,则z igbee设备将当前处于片外存储器中的本地固件加载到zigbee设备的处理器中以实现对zigbee设备中的固件更新。其中,片外存储器中还存储有本地固件。
[0075]S132、校验位于处理器中的本地固件,并在该本地固件校验有效后运行并标记升级完成。
[0076]当zigbee设备的处理器中存储有本地固件后,zigbee设备对加载的本地固件进行有效性校验,具体地计算该处理器中的本地固件的校验码,并根据新固件信息中的校验码校验本地固件的校验码是否一致。若计算得出的本地固件的校验码与新固件信息中的校验码不一致,贝1Jz igbee设备判定加载到处理器中的本地固件校验无效,此时z igbee设备会重启,并在重启后重新从片外存储器中加载本地固件并校验,直至处理器中的本地固件校验有效为止。
[0077]当zigbee设备校验处理器中的本地固件为有效时,zigbee设备将本地固件标记为升级完成,并重启。当zigbee设备重新启动后会立即向网关上报当前正在运行的固件的版本信息。此时zigbee设备的固件升级流程完成。网关接收到zigbee设备上报的固件版本信息后会结束该zigbee设备的升级操作并对下一个zigbee设备进行升级操作。
[0078]需要说明的是,若zigbee设备的标识未更新为升级完成,则重新启动后,zigbee设备查询到升级状态为未升级,则zigbee设备会重新执行固件加载流程并进行固件更新和标记。
[0079]本发明实施例提供的zigbee设备的固件升级方法,采用简易的压缩算法基于无线通信技术从网关获取新固件数据,仅需要请求新固件内容重复区域之外的数据,并通过本地数据填充内容重复区域对应的本地固件区域,因此有效减少了固件传输过程中zigbee设备所需传输的数据量,提高了固件传输的效率且降低了 zigbee设备的耗电量,相应的减少了zigbee设备进行固件升级所需的时间,具有可靠、高效的特点。与现有技术相比,无需通过接口进行固件升级,因此降低了 zigbee设备的固件升级成本,且其降低zigbee设备耗电量的优势使得该方法适用于电池供电的zigbee设备,并可相应提高设备电池的使用寿命。
[0080]与上述任意实施例相对于的,本发明实施例三还提供一种zigbee设备的固件升级装置,该装置可以用于执行上述任意实施例所述的zigbee设备的固件升级方法,该固件升级装置可通过软/硬件实现,该固件升级装置配置在上述任意实施例所述的zigbee设备中应用。
[0081]如图3所示是本实施例提供的zigbee设备的固件升级装置,图4是图3所示固件升级装置的执行过程,该执行过程与上述任意实施例所述的固件升级方法相同,在此不再赘述。如图3所示zigbee设备的固件升级装置包括:获取固件模块210,校验固件模块220和升级固件模块230。
[0082]其中,获取固件模块210用于接收到网关下发的升级通知后,若满足无线升级条件,则从网关获取新固件信息;校验固件模块220用于当检测到本地固件与新固件信息匹配且校验有效时,向网关发送更新固件确认请求;升级固件模块230用于当接收到网关下发的更新固件确认命令时,将本地固件加载到设备处理器中并校验有效后运行以完成固件升级。
[0083]示例性的,在上述技术方案的基础上,可选zigbee设备满足的无线升级条件至少包括:zigbee设备支持无线升级固件功能,zigbee设备的工作电压正常,以及zigbee设备具有有效的片外存储器。
[0084]示例性的,在上述技术方案的基础上,可选新固件信息至少包括:新固件适用设备信息,新固件版本信息,以及校验码。
[0085]示例性的,在上述技术方案的基础上,可选还包括:查询固件模块240,填充固件模块250和校验本地固件模块260。
[0086]其中,查询新固件模块240用于从网关中请求获取新固件信息之后,当检测到固件存储区域的基本信息与新固件信息不完全一致时,从网关中查询新固件的大小,并在所述新固件大小与所述固件存储区域大小一致时从所述网关中查询所述新固件的内容重复区域;填充本地固件模块250用于从网关中依次请求该新固件的数据并对应填充在固件存储区域中,当请求到内容重复区域中数据时,采用与内容重复区域中数据相同的本地数据对应填充在固件存储区域中;校验本地固件模块260用于对接收完成的固件存储区域中的本地固件进行有效性校验。
[0087]示例性的,在上述技术方案的基础上,可选内容重复区域的信息至少包括:区域起始地址、区域大小和区域数据。
[0088]示例性的,在上述技术方案的基础上,可选向网关发送更新固件确认请求具体包括:在设定时间阈值内,以设定时间周期向网关发送更新固件确认请求,直至接收到网关下发的更新固件确认命令为止;以及,若在设定时间阈值内未接收到更新固件确认命令时,停止发送更新固件确认请求并在设备复位前等待更新固件确认命令。
[0089]示例性的,在上述技术方案的基础上,可选升级固件模块230包括:加载本地固件单元231和校验本地固件单元232。
[0090]其中,加载本地固件单元231用于当接收到网关在设备复位前任意时刻下发的更新固件确认命令时,将本地固件加载到zigbee设备的处理器中;校验本地固件单元232用于校验位于处理器中的本地固件,并在该本地固件校验有效后运行并标记升级完成。
[0091]示例性的,在上述技术方案的基础上,可选还包括:在zigbee设备检测到不满足无线升级条件时,或者,当检测到新固件大小与固件存储区域的大小不一致时,或者,若接收完成的固件存储区域中的本地固件校验无效时,向网关上报错误代码以使网关退出该zigbee设备的升级流程。
[0092]本发明实施例提供的zigbee设备的固件升级装置,基于无线通信技术从网关获取新固件数据,并通过本地数据填充内容重复区域对应的本地固件区域,因此有效减少了固件传输过程中zigbee设备所需传输的数据量,提高了固件传输的效率且降低了 zigbee设备的耗电量,相应的减少了zigbee设备进行固件升级所需的时间,具有可靠、高效的特点。与现有技术相比,无需通过接口进行固件升级,因此降低了zigbee设备的固件升级成本,且其降低zigbee设备耗电量的优势使得该装置可配置在电池供电的zigbee设备,并可相应提高设备电池的使用寿命。
[0093]本发明实施例四还提供一种固件升级的系统,该系统包括如上任意实施例所述的网关和如上任意实施例所述的zigbee设备。如图5所示,是该系统中网关控制zigbee设备升级的流程图,在此固件升级系统基于无线通信技术(OTA)的执行过程描述如下。
[0094]步骤一、网关从与其连接的zigbee设备中查询本地固件版本信息,并从与其连接的服务器中查询新固件版本信息。
[0095]在本实施例中服务器为云服务器,可支持网关对zigbee设备进行无线升级固件操作。在此ZigBee设备扩展有片外的flash存储器,可选zigbee设备为无线插座、无线开关、门磁传感器、振动传感器、电动窗帘或其他zigbee设备。在升级之前,固件开发者会向服务器云平台上传新固件,并设置固件升级的规则,可选固件升级规则包括是否强制zigbee设备进行固件升级,以及升级对象。需要说明的是,强制升级是指网关自动对zigbee设备完成无线升级固件操作,全程不需要用户指令。升级对象可包括与新固件相匹配的所有在线ZigBee 设备。
[0096]在上述操作中,网关上电并且正常连接到服务器之后,会第一时间执行一轮ZigBee设备固件升级查询操作。当网关正常运行后,网关也会以固定的周期(如24小时)执行一次固件升级查询操作。需要说明的是,网关执行的固件升级查询操作是一个逐一遍历查询的过程,即确定待升级的zigbee设备后,网关对该设备进行无线升级固件操作,该设备上报结束或完成固件升级流程后网关会对下一个zigbee设备进行无线升级固件操作。
[0097]在此当网关查询与其连接的zigbee设备时,仅能够查询到所有非休眠的ZigBee设备的本地固件版本信息,而休眠的zigbee设备的固件版本信息会在其入网后或者有任何应用层数据上报的之后相应自动上报。然后网关向服务器查询新固件版本信息。
[0098]步骤二、如果zigbee设备中的本地固件版本信息与服务器中的新固件版本信息不一致,向zigbee设备下发升级通知。
[00"]在本实施例中,若网关检测到zigbee设备中的本地固件版本信息与服务器中的新固件版本信息不一致,贝1J网关判定该zigbee设备为待升级的zigbee设备,并向该zigbee设备下发升级通知。若网关检测到zigbee设备中的本地固件版本信息与服务器中的新固件版本信息一致,则网关判定该zigbee设备无需升级,并开始查询下一个zigbee设备是否需要升级。
[0?00]步骤三、根据zigbee设备依次上报的支持升级应答和获取新固件请求,向zigbee设备无线传输新固件信息,以对zigbee设备进行无线升级固件操作。
[Ο?Ο?]当网关判定ζigbee设备需要升级后,网关会向该zigbee设备下发升级通知并对zigbee设备进行无线升级固件操作。具体地,如果网关需要对ZigBee设备进行固件升级,则网关在50秒内,以一定周期(3秒每次)向目标ZigBee设备下发升级通知。如果50秒以内没有收到目标ZigBee设备的升级应答,或者收到的应答命令表明目标zigbee设备不支持固件升级,则网关结束对该ZigBee设备进行的无线升级固件操作,并开始对下一个ZigBee设备执行固件升级查询。如果50秒以内网关收到目标ZigBee设备的升级应答,且该应答表明ZigBee设备支持固件无线升级,则在50秒以内等待目标ZigBee设备发送的获取新固件信息的请求。
[0102]可选网关向zigbee设备下发升级通知的具体执行过程为:在预设时间阈值内,以预设时间周期向zigbee设备下发升级通知,直至接收到zigbee设备上报的通知应答为止。在本实施例中预设时间阈值为50秒,预设时间周期为3秒,但本发明不具体限制,固件开发者可根据情况自行设定。
[0103]可选若在预设时间阈值内未接收到zigbee设备上报的通知应答,或者接收到的通知应答中包括不支持升级应答,则结束对该zigbee设备进行的无线升级固件操作,并查询与网关连接的下一个z i gbee设备的本地固件版本信息和上报固件版本信息。
[0104]在上述操作后,支持升级的zigbee设备会与网关交互并基于无线通信技术进行固件升级,该过程与上述任意实施例所述相同,在此不再赘述。
[0105]需要说明的是,若固件开发者设置升级规则为非强制升级,则网关在收到目标ZigBee设备上报的片外存储器中本地固件校验成功命令帧后,会向客户端发送相应提示以使客户端显示并提示用户,当前ZigBee设备有新固件可以升级。在用户点击确认后,客户端会向网关下发开始升级固件命令,网关转发该命令到目标ZigBee设备,ZigBee设备将固件加载到处理器中并更新以完成固件升级。升级完固件之后,ZigBee设备会重启,重启后会立即向网关上报一次当前正在运行的固件的版本信息,网关将该状态推送到客户端以提示用户,ZigBee设备固件更新完成。在此客户端配置在智能终端中,网关与客户端之间的通信均通过服务器传输,即网关通过服务器向客户端发送提示等信息,以及客户端通过服务器向网关下发确认信息等。
[0106]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【主权项】
1.一种z igbee设备的固件升级方法,其特征在于,包括: 接收到网关下发的升级通知后,若满足无线升级条件,则从所述网关中请求获取新固件信息; 当检测到本地固件与所述新固件信息匹配且校验有效时,向所述网关发送更新固件确认请求; 当接收到所述网关下发的更新固件确认命令时,将所述本地固件加载到设备处理器中并校验有效后运行以完成固件升级。2.根据权利要求1所述的固件升级方法,其特征在于,所述zigbee设备满足的无线升级条件至少包括:所述zigbee设备支持无线升级固件功能,所述zigbee设备的工作电压正常,以及所述zigbee设备具有有效的片外存储器。3.根据权利要求1所述的固件升级方法,其特征在于,所述新固件信息至少包括:新固件适用设备信息,新固件版本信息,以及校验码。4.根据权利要求1所述的固件升级方法,其特征在于,从所述网关中请求获取新固件信息之后,还包括: 当检测到固件存储区域的基本信息与所述新固件信息不完全一致时,从所述网关中查询所述新固件的大小,并在所述新固件大小与所述固件存储区域大小一致时从所述网关中查询所述新固件的内容重复区域; 从所述网关中依次请求该新固件的数据并对应填充在所述固件存储区域中,当请求到所述内容重复区域中数据时,采用与所述内容重复区域中数据相同的本地数据对应填充在所述固件存储区域中; 对接收完成的所述固件存储区域中的本地固件进行有效性校验。5.根据权利要求4所述的固件升级方法,其特征在于,所述内容重复区域的信息至少包括:区域起始地址、区域大小和区域数据。6.根据权利要求1或4所述的固件升级方法,其特征在于,向所述网关发送更新固件确认请求包括: 在设定时间阈值内,以设定时间周期向所述网关发送更新固件确认请求,直至接收到所述网关下发的更新固件确认命令为止;以及, 若在所述设定时间阈值内未接收到所述更新固件确认命令时,停止发送所述更新固件确认请求并在设备复位前等待所述更新固件确认命令。7.根据权利要求6所述的固件升级方法,其特征在于,当接收到所述网关下发的更新固件确认命令时,将所述本地固件加载到设备处理器中并校验有效后运行以完成固件升级,包括: 当接收到所述网关在设备复位前任意时刻下发的更新固件确认命令时,将所述本地固件加载到设备处理器中; 校验位于所述处理器中的本地固件,并在该本地固件校验有效后运行并标记升级完成。8.根据权利要求4所述的固件升级方法,其特征在于,还包括: 若不满足无线升级条件时,向所述网关上报错误代码以使所述网关退出该zigbee设备的升级流程;或者, 当检测到所述新固件大小与所述固件存储区域的大小不一致时,向所述网关上报错误代码以使所述网关退出该zigbee设备的升级流程;或者, 若接收完成的所述固件存储区域中的本地固件校验无效时,向所述网关上报错误代码以使所述网关退出该zigbee设备的升级流程。9.一种z igbee设备的固件升级装置,配置在如权利要求1-8任一项所述的z igbee设备中,其特征在于,该固件升级装置包括: 获取固件模块,用于接收到网关下发的升级通知后,若满足无线升级条件,则从所述网关获取新固件信息; 校验固件模块,用于当检测到本地固件与所述新固件信息匹配且校验有效时,向所述网关发送更新固件确认请求; 升级固件模块,用于当接收到所述网关下发的更新固件确认命令时,将所述本地固件加载到设备处理器中并校验有效后运行以完成固件升级。
【文档编号】G06F9/445GK105843645SQ201610172516
【公开日】2016年8月10日
【申请日】2016年3月24日
【发明人】陆成国, 阮赐朋, 顾蒙, 马延文, 胡志敏
【申请人】浙江风向标科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1