介绍
能够通过无线方式远程安全地更新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模块用户指南)
硬件
- DigiKey销售的XB3-24Z8US-J Digi XBee3RF模块
- DigiKey销售的XBee SMTGrove开发板
供应商文档
- Digi XCTU配置和测试工具软件用户指南
- Digi XBee3 Zigbee 3.0模块用户指南
- Digi Xbee Grove开发板用户指南
什么是 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文件系统更新设置网络:
-
在XCTU中,选择工具中的文件系统管理器( File System Manager ) 。在文件系统管理器( File System Manager ) 中,选择密钥( Keys ) ,然后点击生成( Generate ) 以生成公钥/私钥ECDSA签名密钥对。命名并将公钥和私钥保存到您的计算机上。
-
所有将接收OTA文件系统更新的设备上的参数FK(文件系统公钥)必须配置为生成的公钥。
步骤 2 :在远程 XBee 3 设备上设置公钥
远程更新文件系统的Xbee3设备必须事先安装公钥。在Xbee3设备上设置文件系统公钥需要通过XCTU有线连接在本地完成。目前,XBee 3固件不支持远程设置文件系统公钥。
- 在XCTU中,打开目标设备的配置视图( Configuration View ) ,并转到文件系统选项( File System Options ) 类别。
- 在文件系统公钥( File System Public Key ) 行中,点击配置( Configuration ) 。
- 在配置文件系统公钥( Configure File System Public Key ) 对话框中,点击浏览( Browse ) 并选择您保存公钥的.pem文件。完成后,公钥的HEX值将显示在对话框的公钥部分中,如图所示。
- 点击确定( OK ) 以确保密钥写入设备。
步骤 3 :创建 OTA 文件系统镜像
要创建OTA文件系统镜像:
- 在工具( Tools ) 中打开文件系统管理器( File System Mana ger)对话框。
- 在您想要生成OTA文件系统镜像的设备上**打开连接(**Open connection ) 。
- 点击FS 镜像( FS Image ) 。
- 在显示的生成签名文件系统镜像( Generate a signed file system image ) 窗口中,点击浏览( Browse ) 并选择存储私钥的.pem文件。
- 一旦路径显示在私钥文件字段中,点击保存( Save ) 以分配.fs.ota一个适当的文件名和位置。
步骤 4 :执行 OTA 文件系统更新
- 要添加目标远程设备,请从源( source ) 设备点击“发现同一网络中的无线电( Discover radios in the same network ) ”。在此示例中,“Network_Probe2”是源设备,“Code Builder”是远程目标设备。
- 在远程设备(Code Builder)上进入配置( Configuration ) 模式。
- 点击更新按钮旁边的下拉箭头,选择更新文件系统( Update File System ) 。
- 选择目标节点需要更新到的OTA文件系统映像(.fs.ota)。
- 选择打开( Open )
远程文件系统正在更新。
远程文件系统更新完成时的XCTU消息。
步骤 5 :重置远程节点以重启 MicroPython 应用程序
按照《使用XCTU进行XBee3空中远程AT命令》中的说明,通过空中发送FR(固件重置)到远程节点。重置远程设备会重启MicroPython和更新后的文件系统应用程序。







