使用XCTU进行Xbee3固件无线(FOTA)更新

介绍

能够通过无线方式远程安全地更新Digi的Xbee3 Zigbee无线电固件和应用程序文件系统是一个非常实用的功能。需要更新的Zigbee节点可能部署在难以到达的位置,或者在不物理连接的情况下更新节点可能更加方便。Digi的XBee 3 Zigbee RF模块支持使用其XCTU配置和测试工具以及Zigbee 3.0集群库规范进行固件无线更新(FOTA)。要执行FOTA更新,待更新的设备必须与Zigbee网络关联并可通信。

在这个示例项目中,位于DigiKey Electronics总部大楼屋顶的Zigbee传感器节点的MicroPython应用程序文件系统通过“无线”方式从位于工程部门的室内Zigbee节点远程更新。Digi的XCTU配置和测试工具软件用于构建新的应用程序固件映像,并通过无线方式发送到远程Zigbee节点。XCTU使用公钥/私钥ECDSA签名对来安全地实施更新。本示例中涵盖的步骤包括:生成公钥/私钥对,在XBee 3设备上设置公钥,创建OTA文件系统映像,在远程节点上执行OTA文件系统更新,并重置远程节点以重新启动MicroPython和更新后的应用程序。XCTU工具和Zigbee 3.0集群库规范的FOTA过程在XBee3 Zigbee 3.0模块用户指南中有详细描述。

(注意:使用XCTU进行802.15.4和Digi-Mesh固件版本的Xbee3模块的FOTA过程与Zigbee固件版本相同,详细信息请参阅XBee3 802.15.4 RF模块用户手册Digi XBee3 DigiMesh 2.4 RF模块用户指南

硬件

供应商文档

什么是 XCTU

XCTU是Digi的免费多平台配置和测试工具,使开发者能够通过简单易用的图形界面与他们的RF模块进行交互。它包括开发者快速上手XBee所需的所有工具。功能包括网络视图,它以图形方式表示XBee网络以及每个连接的信号强度,以及XBee API帧构建器,它有助于构建和解释用于API模式的XBee的API帧。XCTU包括一组嵌入式工具,例如:帧生成器,用于轻松生成任何类型的API帧以保存其值;帧解释器,用于解码API帧并查看其特定帧值;恢复,用于恢复固件损坏或处于编程模式的无线电模块;加载控制台会话,用于加载在任何运行XCTU的PC上保存的控制台会话;范围测试,用于在同一网络中的两个无线电模块之间执行范围测试;固件浏览器,用于浏览XCTU的固件库。

安装

最新版本的XCTU可以从下载XCTU获取。

步骤 1 :配置硬件并使用 XCTU 生成公钥 / 私钥对

用于远程更新位于屋顶的远程节点的Zigbee无线电是一个安装在Xbee Grove板上的Xbee3 Zigbee模块。它通过USB连接到运行XCTU的Windows 10笔记本电脑。用于发送更新文件系统的Zigbee无线电(Xbee3/Grove板)必须与正在更新的远程节点属于同一个Zigbee网络。

由于OTA文件系统更新是签名的,因此必须配置远程设备以便它们能够验证传入的更新。Digi International Xbee文件系统更新的安全性基于椭圆曲线数字签名算法(ECDSA)。要为OTA文件系统更新设置网络:

  1. 在XCTU中,选择工具中的文件系统管理器( File System Manager 。在文件系统管理器( File System Manager 中,选择密钥( Keys ,然后点击生成( Generate 以生成公钥/私钥ECDSA签名密钥对。命名并将公钥和私钥保存到您的计算机上。

  2. 所有将接收OTA文件系统更新的设备上的参数FK(文件系统公钥)必须配置为生成的公钥。

步骤 2 :在远程 XBee 3 设备上设置公钥

远程更新文件系统的Xbee3设备必须事先安装公钥。在Xbee3设备上设置文件系统公钥需要通过XCTU有线连接在本地完成。目前,XBee 3固件不支持远程设置文件系统公钥。

  1. 在XCTU中,打开目标设备的配置视图( Configuration View ,并转到文件系统选项( File System Options 类别。
  2. 文件系统公钥( File System Public Key 行中,点击配置( Configuration
  3. 配置文件系统公钥( Configure File System Public Key 对话框中,点击浏览( Browse 并选择您保存公钥的.pem文件。完成后,公钥的HEX值将显示在对话框的公钥部分中,如图所示。
  4. 点击确定( OK 以确保密钥写入设备。

步骤 3 :创建 OTA 文件系统镜像

要创建OTA文件系统镜像:

  1. 工具( Tools 中打开文件系统管理器( File System Mana ger)对话框。
  2. 在您想要生成OTA文件系统镜像的设备上**打开连接(**Open connection
  3. 点击FS 镜像( FS Image
  4. 在显示的生成签名文件系统镜像( Generate a signed file system image 窗口中,点击浏览( Browse 并选择存储私钥的.pem文件。
  5. 一旦路径显示在私钥文件字段中,点击保存( Save 以分配.fs.ota一个适当的文件名和位置。

步骤 4 :执行 OTA 文件系统更新

  1. 要添加目标远程设备,请从源( source 设备点击“发现同一网络中的无线电( Discover radios in the same network ”。在此示例中,“Network_Probe2”是源设备,“Code Builder”是远程目标设备。
  2. 在远程设备(Code Builder)上进入配置( Configuration 模式。
  3. 点击更新按钮旁边的下拉箭头,选择更新文件系统( Update File System
  4. 选择目标节点需要更新到的OTA文件系统映像(.fs.ota)。
  5. 选择打开( Open

远程文件系统正在更新。

远程文件系统更新完成时的XCTU消息。

步骤 5 :重置远程节点以重启 MicroPython 应用程序

按照《使用XCTU进行XBee3空中远程AT命令》中的说明,通过空中发送FR(固件重置)到远程节点。重置远程设备会重启MicroPython和更新后的文件系统应用程序。