ZigBee设备OTA过程研究及优化

参考文档:AN728: Over-the-Air Bootload Server and Client Setup>>

烧录文件下载>>

实验环境:EFR32MG1P232F256GM48开发板、EmberZNet 6.3.0.0、Ubuntu 16.04、Vbox

一、建立工程:

OTA Server(Host + NCP)

1.用EFR32MG1P232F256GM48开发板做NCP

新建NCP的APP工程:ncp-uart-hw(硬件控制流)或者ncp-uart-sw(软件控制流)

新建NCP的BootLoader工程:bootloader-uart-xmodem

编译后烧录:

2.在VirtualBox虚拟机上运行的ubuntu16.04系统,编译产生的Z3GatewayHost作为Host

How to build an EZSP-UART host application>>

新建Host工程:Z3GatewayHost

在VirtualBox中设置Windows上的共享文件夹如下:

安装VBoxGuestAdditions.iso功能增强包

添加用户到vboxsf组:

$ sudo usermod -a -G vboxsf tenix(unbuntu用户名)
$ sudo reboot

用root账户进入共享目录:

$ sudo -i
# cd /media/sf_SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.3/app/builder/Z3GatewayHost
# make NO_READLINE=1

等待几分钟编译完成

# cd /media/sf_SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.3/app/builder/Z3GatewayHost/build/exe
# ./Z3GatewayHost -n 0 -p /dev/ttyACM0

回车即可输入CLI命令:

建网

plugin network-creator start 1

允许加网180s

plugin network-creator-security open-network

3.网关上的NCP做OTA升级

ZigBee Coordinate OTA:How to upgrade(downgrade) the ncp image with host application >>

需要Host支持OTA Client端,如下图,重新在Linux环境下编译Z3GatewayHost

新建NCP工程,更新版本号,制作OTA升级文件

.s37->.gbl->.ota

将OTA文件复制到共享文件夹路径下的Z3GatewayHost文件夹里面的ota-files文件夹

文件夹路径  C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.3\app\builder\Z3GatewayHost\build\exe\ota-files

重启Host,加载ota文件

输入CLI命令,启动standalone bootloader开始OTA升级

plugin ota-client bootload 0

ZigBee Router/EndDevice OTA:How to setup OTA Server and OTA Client on WSTK+4151 radio boards? >>

建立一个OAT Client工程:

生成IAR工程,编译产生OTA版本为1的固件,烧录APP程序和bootloader程序到开发板上

然后修改OTA版本为5,需要修改“.h”文件和“-postbuild.py”文件

修改“-postbuild.py”文件的 OTA版本为5

修改“.h”文件的 OTA版本为5

编译IAR产生OTA固件,将固件复制到host共享目录的“ota-files”文件夹,路径如下 :

C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v2.3\app\builder\Z3GatewayHost\build\exe\ota-files

在Host端重启NCP应用,显示OTA文件的相关Manufacturer ID、image type ID和Version如下:

ZigBee节点OTA更新的方式有两种:1.设备上电后5分钟内match一次ota服务器,然后每隔24小时请求一次镜像更新。2.设备入网后match过ota server后,ota server主动发送image notify给设备,设备收到后请求镜像,并开始下载OTA文件,相关抓包文件>>

二、 OTA抓包分析:

设备加网成功->延时(5分钟内随机时间)match ota server->请求新镜像->开始下载镜像->下载完成->校验镜像->设备重启

三、OTA优化:

OTA请求包的速度为short poll 的频率,可以缩短其频率为0.25s来加快ota过程,参考方法>>

效果如下:57分42中,一秒内请求了4个ota数据包,0.25一次

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值