如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗

如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗

  1. sleep 模式介绍
  • Deep sleep 模式
  • Light sleep 模式
  • Modem sleep 模式
  1. 功耗分析
  • 电流-时间 波形介绍
  • Modem sleep 模式下的功耗分析
  • Light sleep 模式下的功耗分析
  • 接收广播包与不接受广播包在波形上的异同

1. sleep 模式介绍

Light sleep 模式

在 light sleep 模式下, 数字外设、大部分RAM, CPU 等都是门控时钟的,通过关闭芯片上暂时用不到功能和时钟,从而达到节省功耗的目的。

Deep sleep 模式

在deep sleep 模式下,由 APB_CLK 提供时钟的CPU, 大部分 RAM 和所有数字外设都处于关机状态。芯片中唯一还能开机的部分是: RTC 控制器, RTC 外设 (包括 ULP 协处理器) 和 RTC 存储器 (慢速和快速)。

一些外部唤醒方式详见:https://docs.espressif.com/projects/esp-idf/zh_CN/v4.0/api-reference/system/sleep_modes.html

Modem sleep 模式

ESP WiFi 支持的 Modem-sleep 模式指的是 IEEE 802.11 协议中的 power-saving 模式,Modem-sleep 模式只在 WiFi 处于 Station 模式并且连接到 AP 的情况下才会工作。

在Modem-sleep 的情况下,Station 会间隔性在 active 和 sleep 状态切换,在 sleep 状态下,RF, PHY, BB 则会关闭。如果需要保持 WiFi 连接到 AP,这个时候要启用 WiFi modem sleep,并启用自动使用 light sleep 功能(详见:https://docs.espressif.com/projects/esp-idf/en/v4.0/api-reference/system/power_management.html)。WiFi driver 需要允许系统从睡眠中自动醒来,从而保持连接到 AP。

disable -sleep Modem-sleep Light-sleep Deep-sleep
RF 开启 关闭 关闭 关闭
CPU 开启 开启 暂停 关闭
系统时钟 开启 开启 关闭 关闭
WiFi 连接 可保持 可保持 可保持 只可以断连

2. 功耗分析

电流-时间 波形介绍

这里以不开启 sleep 模式,来介绍 电流-时间 波形图,如图2.1。

在不开启 sleep 模式,CPU 和 RF 为开启状态,衬底电流为 CPU 和 RF 的运行提供电流,一般,RF 工作的电流为 60mA 以上的脉冲波。当 WiFi 保持连接到 AP,RF 则会以 DTIM period 为周期来侦听 AP 的信号。
如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第1张图片
​ 图2.1 电流时间波形图

Modem sleep 模式下的功耗分析

Modem sleep 模式包括 minimum 和 maximum 两种省电模式,a. 在 minimum 省电模式下,station 在每一个 DTIM period 下都会从睡眠模式中醒来接收 beacon 帧,在这种模式下,广播数据不会丢失,因为数据的传输同样以DTIM period 为周期。同时,DTIM period 由 AP 决定,如果 DTIM period 太短,则不会节省太多的电。b. 在 maximum 省电模式下,station 则在每一个 listen interval 下都会从睡眠模式中醒来接收 beacon 帧,listen interval 可以设置大于 DTIM period 的值,在此情况下就可能会造成广播报的丢失,随着 listen interval 的变大,广播包丢失的可能性变大。与此同时会越省电。

Note: 可以通过抓取路由器的空中报,来获取 DTIM period 的值。该字段在 AP 的 Beacon 包中,如图 2.2。查看到该字段的值为 1, 如图 2.3,意味着 DTIM period 的值为一个 Beacon interval,其中,Beacon interval 的值为102.4ms,如图 2.4 所示。也就是说当前 ESP8266 所连接 AP 的DTIM period 为 102.4ms。

如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第2张图片

​ 图2.2 抓取与 ESP8266 交互的 AP 的空中包

如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第3张图片

​ 图2.3 DTIM period 字段

在这里插入图片描述

​ 图2.4 Beacon interval字段

当 ESP8266 连接到 AP,处于 minimum 省电模式时,电流-时间 波形如 2.5 图所示,脉冲波为 RF 以 DTIM period为周期从睡眠中醒来侦听数据时的电流,在 DTIM period 中则处于睡眠状态。则在此状态下,衬底电流绝大部分时间只为 CPU 供电,为 13 mA。

如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第4张图片
​ 图2.5 minimum 省电模式下电流波形图

Light sleep 模式下的功耗分析

当 ESP8266 连接到 AP,处于Light sleep + minimum 省电模式时,电流-时间 波形如 2.5 图所示,脉冲波为 RF 以 AT 中默认的DTIM period为周期从睡眠中醒来侦听数据时的电流,电流大小大约在 60 ~ 100mA 之间,在 DTIM period 中则处于睡眠状态。则在此状态下,CPU 大部分时间也处于睡眠状态,该部分电流大约在 0 ~ 20mA 之间。其中,AT 中默认的 DTIM period 为3。

如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第5张图片

​ 图2.6 Light sleep + minimum 省电模式下电流波形图

当 ESP8266 连接到 AP,处于Light sleep + maximum 省电模式时,电流-时间 波形如 2.5 图所示,脉冲波为 RF 以 listen interval 为周期从睡眠中醒来侦听数据时的电流,电流大小大约在 60 ~ 100mA 之间,在 listen interval 中则处于睡眠状态。其中,在该示例中,listen interval 设置为 9 个 DTIM period ,则在此状态下,CPU 大部分时间也处于睡眠状态,该部分电流大约在 0 ~ 20mA 之间。
如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第6张图片

​ 图2.6 Light sleep + maximum 省电模式下电流波形图

接收广播包与不接收广播包在波形上的异同

RF 在接收数据时,从电流波形上也可分析得出,如图 2.7 所示,红色标记处 65mA 左右的水平电流意味着此时 RF 在处理接收数据,在 ESP8266 在接收广播报相比于不接收该广播包,该电流在 65mA 左右的持续时间要长。
如何通过电流波形分析 ESP8266 在 sleep 模式下的功耗_第7张图片

​ 图2.7 接收广播包的电流波形图

你可能感兴趣的:(物联网)