1. 课程导入与开发环境搭建
Silicon Labs 的多协议无线网关,本质上是一台“协议翻译与设备调度中心”:它一侧通过 Zigbee、Thread、蓝牙 Mesh 或私有 2.4 GHz 协议与终端节点通信,另一侧通过 UART、以太网或 Wi-Fi 与主机/云端交互。理解这个双向结构,是后续所有开发工作的起点。本课程以 EFR32MG 系列 SoC(如 EFR32MG21/MG24)为硬件基础,以 Simplicity Studio 5 + Gecko SDK 为软件基础,逐步完成从环境搭建到多协议网关互联的完整链路。
一、多协议网关的典型架构
一个可落地的无线网关通常由四层构成。最底层是射频与协议栈层,运行 EmberZNet(Zigbee)、OpenThread、Bluetooth Mesh 等协议栈,负责组网、路由与安全。其上是网关应用层,运行在 SoC 或主机 MPU 上,负责设备管理、场景联动、OTA 升级调度。再往上是主机接口层,常见形态是 NCP(Network Co-Processor)模式:SoC 只跑协议栈,通过 UART 上的 ASH/SPI 协议与主机通信,主机运行 Zigbee Host 或 OpenThread Border Router 应用。最上层是网络与应用服务层,把设备数据转换为 MQTT、HTTP 或本地 API,供 App 与云平台使用。
需要特别区分两种工作模式:SoC 模式下应用与协议栈同芯片运行,适合功能简单的网关;NCP 模式下协议栈与业务逻辑分离,主机可用 Linux 或高性能 MCU,适合需要多协议并发、复杂业务逻辑的网关。本课程后续章节会分别覆盖这两种形态。
二、典型应用场景与学习路径
多协议网关最常见的落地场景有三类。第一类是智能家居中枢:网关同时接入 Zigbee 灯、Thread 传感器和 BLE Mesh 开关,通过本地规则实现“人走灯灭”,并把状态同步到手机 App。第二类是工业无线采集:在工厂车间用 Zigbee 或私有 2.4G 采集温振传感器数据,网关通过以太网汇聚到 SCADA 系统,要求低延迟与高可靠。第三类是多协议边界路由器:以 OpenThread Border Router 为核心,把 Thread 网络与 IP 网络打通,同时兼容 Zigbee 设备,适合楼宇与园区场景。
对应的学习路径建议按“环境 → 单协议 → 多协议 → 网关互联”推进:先装好 Simplicity Studio 与 Gecko SDK,跑通第一个 SoC 工程;再分别验证 Zigbee、Thread、BLE 的最小通信;然后切换到 NCP 模式,让主机通过 UART 控制协议栈;最后把多协议并发、OTA、云端对接串起来。本课程 30 章基本遵循这条主线。
三、安装 Simplicity Studio 5 与 Gecko SDK
Simplicity Studio 5(简称 SS5)是 Silicon Labs 的官方 IDE,基于 Eclipse,集成了编译器、调试器、能耗分析、网络分析仪和 SDK 管理器。安装步骤如下:
- 从 Silicon Labs 官网下载 SS5 安装包(Windows/macOS/Linux 均可),安装时勾选 32-bit MCU 工具链 与 Gecko SDK。
- 首次启动需登录 Silicon Labs 账号,否则无法拉取 SDK 与示例工程。
- 进入 Preferences → Simplicity Studio → SDKs,确认 Gecko SDK 版本。建议选择 Gecko SDK 4.x(对应 EmberZNet 7.x、OpenThread 1.3)。
- 在 Launcher → Update Software 中安装 Zigbee SDK、Thread SDK、Bluetooth SDK 以及 Network Analyzer 插件。
Gecko SDK 的目录结构需要提前熟悉:platform/ 是底层驱动与 RTOS,protocol/ 下按协议分目录,app/ 存放示例应用,util/ 是通用工具。后续创建工程时,SS5 会自动把这些组件按需链接进项目。
四、配置 J-Link 调试器
EFR32 开发板(如 BRD4180A、BRD4187C)板载 J-Link 调试器,也可使用外置 J-Link。配置要点如下:
- 用 USB 线连接开发板的 DEBUG 口,Windows 下会自动识别为 J-Link 设备;Linux 下需把当前用户加入
plugdev组,并安装 udev 规则。 - 在 SS5 的 Launcher → Debug Adapters 中确认 J-Link 已识别,固件版本建议升级到最新。
- 若使用外置 J-Link,需在 Debug Configurations → GDB Hardware Debugging 中指定
SWD接口、目标芯片型号(如 EFR32MG21A020F768IM32)和复位方式。 - 调试前先执行一次 Erase,避免旧固件残留导致下载失败。
五、创建第一个网关工程
以 Zigbee NCP 网关为例,创建流程如下:
- 打开 SS5,点击 File → New → Silicon Labs Project Wizard。
- 选择目标开发板(如 BRD4180A / EFR32MG21),SDK 选择 Gecko SDK 4.x。
- 在示例列表中选择 Zigbee – NCP – NCP Sample Application(或 Zigbee – SoC – ZigbeeMinimal 作为入门)。
- 命名工程(如
gw_ncp_basic),点击 Finish,SS5 会自动生成.slcp工程文件与源码目录。 - 在 Project Configurator 中确认
Zigbee Stack、NCP UART、Bootloader组件已启用,波特率默认 115200。 - 点击 Build,编译成功后用 Debug 下载到开发板。
下载完成后,可用串口工具(如 SS5 自带的 Console 或 minicom)连接 NCP 的 UART,发送 ASH 帧测试通信。若能看到协议栈返回的版本信息,说明 NCP 固件已正常运行,网关的“协议侧”就绪。下一步即可在主机侧运行 Zigbee Host 应用,通过 UART 与 NCP 交互,完成设备入网、属性读写与事件上报。