2. nRF54硬件平台与Thread开发环境
Thread 是基于 IEEE 802.15.4 的低功耗 IPv6 Mesh 网络协议,Nordic 的 nRF54 系列是面向该场景的新一代多协议 SoC。要把 Thread 真正跑起来,第一步不是写应用逻辑,而是把“硬件平台 + SDK + 工具链 + 示例工程”这条链路打通。本节围绕 nRF54 开发板选型、nRF Connect SDK 安装、工具链配置,以及第一个 Thread 示例的编译与烧录展开,目标是让读者能独立完成一次可复现的环境搭建。
一、nRF54 平台与开发板选型
nRF54 系列目前主要包括 nRF54H20、nRF54L15、nRF54L10、nRF54L05 等型号。它们都集成了多协议 2.4 GHz 射频,可运行 Bluetooth LE、Thread、Zigbee 和 802.15.4 等协议。其中 nRF54H20 定位高性能,带有多个 Cortex-M33 内核与更丰富的外设;nRF54L 系列则主打低功耗与成本,适合电池供电的 Thread 终端节点。选型时先明确三个问题:是否需要 Thread 边界路由器(Border Router)能力、节点是常供电还是电池供电、是否需要 Matter 或 Bluetooth LE 并发。
官方开发板方面,nRF54H20 DK 和 nRF54L15 DK 是最常用的两块。nRF54L15 DK 板载调试器、按键、LED 和 Arduino 兼容排针,适合入门与节点开发;nRF54H20 DK 资源更强,适合做复杂应用或边界路由器原型。如果要做 Thread 边界路由器,通常还需要一块运行 OpenThread Border Router 的主机(如 Raspberry Pi)配合,nRF54 开发板可作为 RCP(Radio Co-Processor)通过 USB 或 UART 接入。下表给出一个简化的选型参考。
| 开发板 | 典型定位 | Thread 角色 | 适用场景 |
|---|---|---|---|
| nRF54L15 DK | 低功耗节点 | Sleepy End Device / Router | 传感器、开关、电池设备 |
| nRF54H20 DK | 高性能多协议 | Router / RCP | 复杂应用、边界路由器原型 |
| nRF54L15 + Pi | 边界路由器组合 | RCP + OTBR | Thread 网络接入 IP |
二、nRF Connect SDK 安装
Nordic 当前主推 nRF Connect SDK(NCS),它基于 Zephyr RTOS,并集成了 OpenThread、Matter、Bluetooth LE 等组件。安装方式推荐使用 nRF Connect for VS Code 扩展或 nRF Connect SDK Toolchain Manager。以 Toolchain Manager 为例,安装流程如下:
- 从 Nordic 官网下载并安装 nRF Connect for Desktop,在其中启动 Toolchain Manager。
- 在 Toolchain Manager 中选择一个 NCS 版本,例如 v2.6.0 或更新版本,点击 Install。工具链会同时安装编译器、Zephyr SDK、west 等依赖。
- 安装完成后,点击 Open Terminal,进入已配置好环境变量的终端。
- 在终端中执行
west --version和nrfutil --version验证工具是否可用。
如果偏好命令行,也可以手动克隆 NCS 仓库并初始化 west 工作区。核心命令如下:
west init -m https://github.com/nrfconnect/sdk-nrf --mr v2.6.0 ncs
cd ncs
west update
west zephyr-export
pip install -r zephyr/scripts/requirements.txt
pip install -r nrf/scripts/requirements.txt
安装完成后,建议设置环境变量 ZEPHYR_BASE 指向 ncs/zephyr,并把 ncs/toolchain 下的工具链路径加入 PATH。这样后续使用 west build 时不会出现找不到工具链的问题。
三、工具链配置与工程结构
NCS 的构建系统由 west + CMake + Ninja 组成。一个典型的 Thread 示例工程目录结构如下:
thread_sample/
├── CMakeLists.txt
├── prj.conf
├── boards/
│ └── nrf54l15dk_nrf54l15_cpuapp.overlay
└── src/
└── main.c
其中 prj.conf 用于打开 Thread 相关配置,例如:
CONFIG_NETWORKING=y
CONFIG_NET_IPV6=y
CONFIG_NET_IPV6_NBR_CACHE=y
CONFIG_OPENTHREAD=y
CONFIG_OPENTHREAD_SHELL=y
CONFIG_OPENTHREAD_JOINER=y
CONFIG_OPENTHREAD_CHILD_SUPERVISION=y
CONFIG_LOG=y
开发板 overlay 文件用于指定 UART、LED、按键等引脚映射。nRF54L15 DK 的默认设备树已经包含常用外设,通常只需在 overlay 中确认 status = "okay" 即可。工具链配置的关键是保证 west build 能找到正确的 board target,例如 nrf54l15dk/nrf54l15/cpuapp。
四、第一个 Thread 示例编译与烧录
NCS 自带 samples/openthread/cli 示例,非常适合作为第一个 Thread 工程。它提供一个串口 CLI,可以执行 ot 命令查看网络状态、加入网络、发送 UDP 数据等。编译步骤如下:
- 打开 Toolchain Manager 终端,进入 NCS 目录。
- 执行
west build -b nrf54l15dk/nrf54l15/cpuapp samples/openthread/cli。 - 编译成功后,执行
west flash烧录到开发板。 - 用串口工具(如 nRF Connect Serial Terminal)连接开发板,波特率通常为 115200。
烧录后,串口会输出 OpenThread 启动日志。输入 ot state 可查看当前角色,初始通常为 disabled;输入 ot ifconfig up 和 ot thread start 后,设备会尝试成为 Router 或 Child。若周围已有 Thread 网络,可通过 ot joiner start 或 ot commissioner 流程加入。此时用 ot ipaddr 可看到分配的 Mesh-Local 或 Global IPv6 地址,说明 Thread 协议栈已经正常工作。
-b 参数与开发板一致。若出现 “board not found”,通常是 NCS 版本与开发板支持包不匹配,可升级 NCS 或检查 zephyr/boards 下是否存在对应目录。下面这张图概括了从开发板选型到第一个 Thread 示例跑通的完整链路,包括硬件、SDK、工具链和验证点之间的关系。
完成上述步骤后,你已经拥有一个可运行的 Thread 节点。接下来可以在此基础上修改 prj.conf 打开 CoAP、DNS-SD 或 Matter 支持,也可以把 nRF54 开发板配置为 RCP,接入 OpenThread Border Router,让 Thread 网络与外部 IP 网络互通。环境搭建的价值在于:后续所有 Thread 实验都建立在这条可复现的编译、烧录、验证链路上,只有先把这条链路跑通,才能把精力集中在网络行为和应用逻辑本身。