基于制造技术

技术编号:39497224 阅读:10 留言:0更新日期:2023-11-24 11:26
本发明专利技术提供一种基于

【技术实现步骤摘要】
基于Zigbee局域网络的固件程序快速升级方法及系统


[0001]本专利技术涉及物联网
,特别是涉及一种基于
Zigbee
局域网络的固件程序快速升级方法及系统


技术介绍

[0002]现代物联网应用中,智能设备的数量不断增加

这些设备中需要不断更新其软件,以满足新的功能和安全性要求

但是,由于这些设备分布在不同的位置,因此升级这些设备变得非常困难,需要大量的人力和物力


技术实现思路

[0003]本专利技术所要解决的技术问题是:为了克服现有技术中物联网设备软件升级的不足,本专利技术提供一种基于
Zigbee
局域网络的固件程序快速升级方法及系统,可在不影响设备使用的情况下,对设备进行定时升级

[0004]本专利技术解决其技术问题所要采用的技术方案是:一种基于
Zigbee
局域网络的固件程序快速升级方法,包括以下步骤:
S1
:获取设备信息:通过
Zigbee
协议获取需要升级的设备的基本信息,所述基本信息至少包括设备类型

设备
ID、
固件版本;
S2
:检查固件版本:比较设备当前运行的固件版本和新的固件版本,确定是否需要升级;当设备当前运行的固件版本比新的固件版本低时确定需要升级,进入步骤
S3
;反之则不需要升级,并退出;
S3
:准备升级包:将新
.hex
固件打包成
.bin
升级包,并将其存储在服务器上;
S4
:推送升级包:通过服务器发送
.bin
升级包到网关,网关完整接收
.bin
升级包后,确认
.bin
升级包的完整性和正确性,若不完整则回复服务器要求重传;若完整则通过
Zigbee
协议,将
.bin
升级包分段推送到需要升级的设备;
S5
:设备准备升级:设备将
flash
分为3部分,一部分运行
BootLoader
程序,负责
.bin
升级包的接收;一部分为主程序运行区;另一部分为
.bin
升级包接收存储区;设备收到网关下发的升级指令后,重启进入
BootLoader
模式,准备接收
.bin
升级包;
S6
:确认升级包:网关接收到设备准备接收指令后,将升级包分成若干帧数据,按顺序通过
Zigbee
协议发送给设备;设备接收到每一帧升级包数据后进行完整性和正确性校验,并将其顺序存储在
flash
升级包接收存储区域,直至所有升级包数据接收存储完成;则
BootLoader
程序切换当前接收升级包存储部分为主程序运行入口,切换原主程序运行地址为下一次升级包接收存储部分;接收完升级包后直接更改运行程序入口地址,降低固件再次复制导致数据损坏的风险;
S7
:重启设备:升级完成后,设备重新启动,并将运行新的固件版本,将老版本固件清除;若设备升级失败,则设备重启回退到老版本固件

此处的老版本固件即指步骤
S2
中设备当前运行的固件版本

[0005]由于设备存在相同的类型的,因此,在升级时可能会对同一类型设备进行连续升级,当升级完前一设备后,网关上会缓存有该升级包,当在对下一设备升级时,无需让服务器进行推送,因此,为了提高效率和速度,步骤
S4
还包括以下步骤:在推送升级包之前,先通过服务器查询网关中是否有升级设备对应的
.bin
升级包缓存,如果有,则无需通过服务器发送
.bin
升级包,直接从缓存中读取
.bin
升级包,通过
Zigbee
协议,将
.bin
升级包分段推送到需要升级的设备;如果没有
.bin
升级包缓存,则再通过服务器发送
.bin
升级包到网关

[0006]进一步的,步骤
S4
中升级包的推送和确认需先通过网络将升级包发送到
Zigbee
网关,再由
Zigbee
网关通过
Zigbee
协议发送给设备

[0007]进一步的,步骤
S6
中所述的确认
.bin
升级包的完整性和正确性,具体为在升级过程中,确保升级包的每一帧数据的完整性和正确性,以避免不正确的升级对设备的损害

[0008]一种基于
Zigbee
局域网络的固件程序快速升级系统,该升级系统能够应用上述的升级方法,且该升级系统还包括以下功能模块:设备信息获取接口,用于获取需要升级的设备的基本信息;固件版本检查接口,用于比较设备当前运行的固件版本和新的固件版本,确定是否需要升级和传输;升级包准备工具,用于将新的固件打包成升级包,并将其存储在服务器上;升级包推送设备,包括服务器和网关,所述服务器用于通过网络将升级包推送到网关,所述网关用于将升级包通过
Zigbee
协议推送到需要升级的设备;设备准备升级接口,用于设备将运行程序切换为
BootLoader
程序做好接收新的固件版本对应的升级包的准备;升级包确认模块,用于设备收到升级包后,确认升级包的完整性和正确性;设备重启模块,用于升级完成后,设备重新启动,并判断运行新的固件版本是否正常,若异常则主动退回老版本

[0009]本专利技术的有益效果是:本专利技术提供的一种基于
Zigbee
局域网络的固件程序快速升级方法及系统,通过
Zigbee
局域网络实现远程升级,不需要人工干预,大大降低了升级的难度和成本

此外,本专利技术的方法可以确保升级包的安全性和正确性,从而避免了不正确的升级对设备的损害

附图说明
[0010]下面结合附图和实施例对本专利技术作进一步说明

[0011]图1是本专利技术升级方法的流程示意图

具体实施方式
[0012]现在结合附图对本专利技术作详细的说明

[0013]如图1所示,本专利技术的一种基于
Zigbee
局域网络的固件程序快速升级方法,包括
Zigbee
设备,由单片机与
Zigbee
模块通过串口连接,
Zigbee
工作在从机模式,由单片机通过串口发送数据经
Zigbee
模块以无线形式将数据透传给
Zigbee
网关;
Zigbee
网关,
Zigbee...

【技术保护点】

【技术特征摘要】
1.
一种基于
Zigbee
局域网络的固件程序快速升级方法,其特征在于:包括以下步骤:
S1
:获取设备信息:通过
Zigbee
协议获取需要升级的设备的基本信息,所述基本信息至少包括设备类型

设备
ID、
固件版本;
S2
:检查固件版本:比较设备当前运行的固件版本和新的固件版本,确定是否需要升级;当设备当前运行的固件版本比新的固件版本低时确定需要升级,进入步骤
S3
;反之则不需要升级,并退出;
S3
:准备升级包:将新的
.hex
固件打包成
.bin
升级包,并将其存储在服务器上;
S4
:推送升级包:通过服务器发送
.bin
升级包到网关,网关完整接收
.bin
升级包后,确认
.bin
升级包的完整性和正确性,若不完整则回复服务器要求重传;若完整则通过
Zigbee
协议,将
.bin
升级包分段推送到需要升级的设备;
S5
:设备准备升级:设备将
flash
分为3部分,一部分运行
BootLoader
程序,负责
.bin
升级包的接收;一部分为主程序运行区;另一部分为
.bin
升级包接收存储区;设备收到网关下发的升级指令后,重启进入
BootLoader
模式,准备接收
.bin
升级包;
S6
:确认升级包:网关接收到设备准备接收指令后,将升级包分成若干帧数据,按顺序通过
Zigbee
协议发送给设备;设备接收到每一帧升级包数据后进行完整性和正确性校验,并将其顺序存储在
flash
升级包接收存储区域,直至所有升级包数据接收存储完成;则
BootLoader
程序切换当前接收升级包存储部分为主程序运行入口,切换原主程序运行地址为下一次升级包接收存储部分;
S7
:重启设备:升级完成后,设备重新启动,并将运行新的固件版本,将老版本固件清除;若设备升级失败,则设备重启回退到老版本固件
。2.
...

【专利技术属性】
技术研发人员:王荣刚成玉磊唐军
申请(专利权)人:苏州天华新能源科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1