在电池供电的微控制器应用中,节能至关重要。通过减少电流消耗,可以显著延长应用的有效电池寿命。Wireless Gecko(EFR32™)产品系列支持五种 Energy Mode,Silicon Labs Connect 支持其中三种:EM0(正常运行)、EM1(睡眠) 和 EM2(深度睡眠)。应用上述节能技术后,基于 Silicon Labs Connect 的应用程序的睡眠模式电流消耗可降低至 2-4 µA。Documentation Index
Fetch the complete documentation index at: https://mintlify.com/dsyx/docs.silabs.com_zh/llms.txt
Use this file to discover all available pages before exploring further.
Energy Mode 概览
Energy Mode 0(EM0)
正常运行模式。CPU 从 Flash 或 RAM 中执行指令,所有外设均可用。这是默认模式。
Energy Mode 1(EM1)
睡眠模式。CPU 时钟被禁用,但所有外设、RAM 和 Flash 仍可用。可借助 PRS 和 DMA 自主执行操作。无线电仍可在 EM1 中接收数据包。
Energy Mode 2(EM2)
深度睡眠模式。无高频振荡器运行,仅异步和低频外设可用。无线电关闭,节点不会接收数据包。 能效最高。
EM3 / EM4(不支持)
Stop Mode 和 Hibernate Mode 对应更深的低功耗状态,Silicon Labs Connect 不支持这两种模式。
Power Manager 组件
Power Manager 是 platform-level 软件模块,用于管理系统的 Energy Mode。对于示例应用,默认情况下启用 Power Manager 组件。Silicon Labs 建议使用 Power Manager 来控制应用程序的 Energy Mode。向 Sleepy End Device 发送数据
当 Sleepy End Device 处于 EM2 深度睡眠时,MCU 停止运行且无线电关闭,无法从其他设备接收数据。解决方案是在设备唤醒时主动检查是否有待收消息。
Indirect Queue(间接队列)
Indirect Queue 是 Parent Support 组件的一部分,在星型(或扩展星型)拓扑的 Coordinator(或 Range Extender)中自动启用。 工作流程:检查 Frame Pending bit
若 Coordinator 有待发数据,则在 ACK 的 Frame Control Field 中设置 Frame Pending bit;否则不设置。Sleepy End Device 据此决定是否等待接收数据或返回睡眠。
通过单次轮询设备只能检索一条消息。 若需接收所有待决消息,必须重复轮询直到未收到更多消息为止。
Coordinator / Range Extender 配置
在 Parent Support 组件中可配置两个 Indirect Queue 参数:| 参数 | 说明 |
|---|---|
| Indirect Queue Size | 队列中可同时存放的最大数据包数量。队列满时新消息无法入队,需等待消息被发送或超时后腾出空间。 |
| Indirect Transmission Timeout | 消息在队列中的最大保留时间(毫秒)。超时的消息将被 Coordinator 丢弃。 |
Sleepy End Device 配置(Poll 组件)
在 Sleepy End Device 上安装 Poll 组件,以从 Coordinator 接收缓存消息。Poll 组件支持两种轮询间隔:| 轮询类型 | 用途 |
|---|---|
| Short Poll(短轮询) | 用于从 Coordinator 主动获取待发数据包 |
| Long Poll(长轮询) | 用于 keep-alive 目的,确保设备保留在 Coordinator 的子表中 |
Mailbox(邮箱)
Mailbox 是在应用层实现的、更高级别的消息缓存机制,底层使用协议栈的 Indirect Queue 特性。相比 Indirect Queue,Mailbox 提供更长的超时时间(默认 1 小时,可设为数天)。 Mailbox 由两部分组成:- Mailbox Client(客户端)
- Mailbox Server(服务端)
可提交消息和检查收件箱,结果均通过回调传递:
Mailbox 使用 Connect 网络层实现的端点,MAC Mode 不支持 Mailbox。但 Mailbox 可在 Connect Direct Mode 下工作(应用程序应自行实现睡眠逻辑)。Mailbox 的主要优点是:服务端会在消息成功投递或因错误无法投递时通知提交消息的客户端。
其他节能措施
SPI Flash 深度断电
所有 Silicon Labs EFR32 无线板均包含 SPI Flash。尽管这些闪存在待机状态下仅消耗 8-10 µA,但持续消耗会缩短电池寿命。通过 MX25 Flash Shutdown 组件,固件会将外部 SPI Flash 置于 deep power down 模式(通过发送 SPI 命令),这是 Silicon Labs 无线电板的默认配置。禁用网络状态 LED
部分 Connect 示例默认使用 LED 显示网络栈状态(网络启动时 LED 亮起),这会持续消耗额外电流:sl_led_turn_on() 调用或将其改为 sl_led_turn_off()。
节能最佳实践
应用以上技术后,基于 Silicon Labs Connect 的应用程序的睡眠模式电流消耗可降低至 2-4 µA。有关低功耗网络构建的更多详情,请参阅 AN1252: Building Low Power Networks with the Silicon Labs Connect Stack v3.x。