2. 多协议无线网关硬件平台解析
EFR32MG 系列是 Silicon Labs 面向多协议无线网关的核心 SoC 家族,典型型号如 EFR32MG12、EFR32MG21、EFR32MG24。理解它的硬件平台,不能只停留在“有一颗 2.4 GHz 无线 MCU”这一层,而要把它拆成四个相互制约的子系统来看:射频前端与协议切换、Flash/RAM 内存映射、外设与低功耗资源、以及围绕它展开的网关参考设计。只有把这四者对齐,才能判断一块开发板能否作为多协议网关的最小系统,以及供电与调试接口是否满足后续开发要求。
射频子系统:多协议共存的物理基础
EFR32MG 的射频子系统由射频收发器、频率合成器、功率放大器(PA)、低噪声放大器(LNA)以及天线匹配网络组成。以 EFR32MG12 为例,它支持 Sub-GHz 与 2.4 GHz 双频段,2.4 GHz 侧可运行 Zigbee、Thread、BLE 及私有协议;Sub-GHz 侧常用于专有协议或远距离回传。多协议网关的关键在于“时分复用”:同一颗射频前端在同一时刻只能服务一个协议,因此协议栈调度器必须按时间片切换信道与协议。典型做法是 BLE 用于配网与手机直连,Zigbee/Thread 用于设备组网,二者通过 RAIL(Radio Abstraction Interface Layer)统一调度。
射频性能直接决定网关覆盖。EFR32MG21 在 2.4 GHz 下典型接收灵敏度约 -104 dBm(BLE 1 Mbps),发射功率可配置到 +20 dBm。若使用 +20 dBm 发射,需注意开发板上的 PA 供电与散热,以及天线匹配是否支持该功率。网关参考设计通常采用板载 PCB 天线或 IPEX 外接天线,前者成本低但增益有限,后者适合需要外置高增益天线的场景。
内存映射:协议栈与应用的边界
EFR32MG 的地址空间从 0x0000_0000 开始,Flash 通常映射在 0x0000_0000 起始区域,RAM 映射在 0x2000_0000 起始区域。以 EFR32MG12 的 1 MB Flash 为例,前 32 KB 常保留给 Bootloader,随后是应用程序区、协议栈库区、NVM3 非易失存储区。NVM3 用于保存配网信息、绑定表、设备密钥等,掉电不丢失。多协议网关中,Zigbee 与 Thread 的协议栈会占用较大 Flash,若同时启用 BLE,需确认链接脚本中的段分配不会溢出。
RAM 方面,256 KB 或 512 KB 的容量需要同时容纳协议栈缓冲区、网络层表项和应用任务。一个常见误区是只关注 Flash 占用而忽略 RAM 峰值。建议在 Simplicity Studio 中开启内存使用分析,观察 .bss、.data、heap 和 stack 的分布。若网关需要缓存大量子设备状态,应优先使用外部 SPI Flash 或 NVM3 分页存储,而不是无限扩大 RAM 中的表项。
外设资源与低功耗设计
网关需要同时处理无线收发、串口通信、指示灯和按键。EFR32MG 提供多路 USART、SPI、I2C、GPIO、定时器和 ADC。典型分配是:USART0 用于调试日志,USART1 用于与主控或以太网模块通信,SPI 用于外部 Flash,I2C 用于传感器或 RTC,GPIO 用于 LED 和按键。低功耗方面,EFR32MG 支持 EM0 到 EM4 多种能耗模式,网关若常供电可主要运行在 EM0/EM1,若需备用电池则要利用 EM2 的 RTC 唤醒和无线唤醒。
网关参考设计与最小系统搭建
Silicon Labs 的网关参考设计通常包含 EFR32MG 无线模块、主机处理器(如树莓派或 i.MX)、以太网或 Wi-Fi 回传、电源管理和调试接口。若只用开发板搭建最小系统,可以简化为:开发板 + USB 供电 + J-Link 调试器 + 串口终端。上电后先测量 3.3 V 电源纹波,建议峰峰值小于 50 mV;再连接 SWDIO、SWCLK、RESET、GND,用 Simplicity Studio 或 J-Link Commander 识别芯片 ID。若识别失败,检查复位电平是否被拉低、时钟是否起振、供电是否低于 1.8 V 最低阈值。
验证调试接口后,烧录一个最小射频测试程序,例如周期性发送 BLE 广播或 Zigbee 信标。用手机或抓包工具观察信号强度,若 RSSI 在 -40 dBm 到 -70 dBm 之间,说明射频链路基本正常。随后切换协议,确认 RAIL 调度不会导致死锁。最后用串口输出供电电压和复位原因,形成可复现的最小系统检查记录。
最小系统验证清单(示例)
| 检查项 | 方法 | 合格判据 |
|---|---|---|
| 3.3 V 供电 | 万用表/示波器测 VDD | 3.3 V ±5%,纹波 < 50 mV |
| SWD 识别 | J-Link Commander 连接 | 读出芯片 ID 与 Flash 容量 |
| Flash 读写 | 烧录并回读校验 | 校验一致,无报错 |
| 射频发射 | BLE 广播 + 手机扫描 | RSSI 在 -40 ~ -70 dBm |
| 协议切换 | Zigbee/Thread/BLE 轮换 | 无死锁,切换时间可接受 |
| 复位原因 | 读取 RMU 寄存器 | 上电复位,无异常看门狗 |