超详尽低功耗实测报告:应用实践全攻略

    科创经济 朗峰江湖 2025-08-13 3291 次浏览

    低功耗设计并非纸上谈兵,实测数据才是硬道理。本报告结合多场景实测结果,系统总结低功耗技术的应用策略:从电路优化到代码精简,从休眠模式到动态调度,为您呈现低功耗实现的完整攻略。

    能拍、能说、能显示、能联网,Air8101主打多媒体场景的工业引擎,支持Wi-Fi/以太网/蓝牙/外挂4G联网,支持LuatOS二次开发。

    适用于AIoT领域的多种应用场景:例如唤醒词检测和语音命令识别、人脸检测和识别、智能家居智能控制面板、智能扬声器、智能门锁、智能门铃等等。

    Air8101支持三种功耗模式:

    常规模式

    低功耗模式

    PSM+模式

    本文将以Air8101核心板为例,带你快速上手三种功耗模式。在实际应用开发中,可根据具体需求灵活运用。

    最新源码及实操教程详见:

    https://docs.openluat.com/air8101/luatos/app/lowpower/sleep/

    一、三种功耗模式简介

    低功耗是工业引擎最重要的特性之一,Air8101优异的低功耗表现,既有硬件设计的加持,也有软件协议算法的帮助。

    三种功耗模式各有特点,可根据不同的应用场景选择。

    1.1 常规模式

    网络在线状态,随时响应服务器命令,CPU满频运行,外设功能全部可用。比如,所有GPIO电平都可以控制。

    1.2 低功耗模式

    网络在线状态,随时响应服务器命令,CPU降频运行,可以通过软件设置所需的GPIO在低功耗中保持电平,所有GPIO均支持。

    1.3 PSM+模式

    网络离线状态,无法响应服务器命令,CPU停止运行,可以通过软件设置所需的GPIO在低功耗中保持电平,所有GPIO均支持。

    Air8101实网功耗数据如下图表:

    wKgZPGh_OzKALroLAAGSxHUTIQk156.png

    更多说明:

    低功耗模式下,网络在线,随时响应服务器命令,CPU 降频运行,外设功能部分可用;3.3V供电,DTIM10的平均电流为380μA,DTIM1的平均电流为1.5mA。

    DTIM10和DTIM1的核心区别有:

    DTIM1不会丢失Wi-Fi AP路由器发送给Wi-Fi station的广播帧和组播帧;DTIM10会丢失。

    一般来说,Wi-Fi AP路由器发送Beacon帧的间隔是100毫秒,DTIM1最长延迟100毫秒可以收到Wi-Fi AP路由器发送过来的数据,DTIM10最长延迟1000毫秒可以收到Wi-Fi AP路由器发送过来的数据。

    丢失广播帧和组播帧对产品应用没有什么影响,只要单播帧不丢失就行。

    可以根据自己项目对功耗以及数据收发时延的要求,选择合适的DTIM配置。

    二、 主要硬件准备

    2.1 Air8101核心板

    wKgZPGh_O6-AMuklAAjrsTQziww615.png

    2.2 可调电源

    功耗分析仪Air9000P——功能齐全、稳定可靠、支持PC端软件的小型手持式高精度功耗测试仪表(电流范围0~2A,最小分辨率0.1μA;电压范围0~5V,最小分辨率1mV;硬件采样率100KHz,PC 端软件采样率10KHz)。

    功耗分析仪Air9000P对于小电流的抓取能力及其对功耗数据的统计分析,尤其适合电池供电的动态功耗测试,可解决各类场景下的低功耗测试难题。

    三、常规模式测试

    顾名思义,常规模式为模块不考虑功耗时处于的状态。

    3.1 代码示例

    1)mian.lua

    打开常规模式,屏蔽另外两种模式。

    即:mian.lua 中打开 require "normal"这句话

    注释 -- require "low_power"

    注释 -- require "psm+_power"

    2)tcp_client_main.lua

    第20行和第21行,服务器IP端口号的地方,改成用户自己使用的服务的IP/域名以及端口号。

    如果仅作测试,也可以使用提供的测试服务器。

    测试服务器相关资料详见:

    https://netlab.luatos.com/

    wKgZPGh_PLGAOHdgAAEqDx-3y0s995.png

    3)normal.lua

    常规模式主应用功能模块代码如下图示:

    wKgZO2h_PRyAasppAAJgZnhwe7A034.pngwKgZO2h_PTmAcdcZAAHmqWqZfAo082.png

    3.2 硬件连接

    功耗测试时将可调电源正极接在vbat的排针处,gnd即为电源负极接的位置,核心板上的USB断开,功耗测试开关拨到ON。

    wKgZPGh_PYmADBsDAApnONtyVa0771.png

    3.3 常规模式功耗测试结果

    下图为连接好服务器后5分钟发一次心跳包,平均电流为6.6mA。

    wKgZO2h_PcSAYMlFAAFfWNkTlYo096.png

    四、低功耗模式测试

    该模式可以实现与服务器之间进行长连接,服务器可随时下发数据给客户端,实现在低功耗情况下还能实时远程控制的功能。

    4.1 代码示例

    1)mian.lua打开低功耗模式,屏蔽另外两种模式。

    即:

    mian.lua中打开require "low_power" 这句话

    注释-- require "normal"

    注释-- require "psm+_power"

    wKgZPGh_Pi-Afk1qAABQYtocxAA386.png

    2)tcp_client_main.lua

    第20行和第21行,服务器IP端口号的地方,改成用户自己使用的服务的IP/域名以及端口号。

    如果仅作测试,也可以使用提供的测试服务器。

    测试服务器相关资料详见:

    https://netlab.luatos.com/

    3)low_power.lua

    低功耗模式主应用功能模块代码如下图示:

    wKgZO2h_PzaANO4TAAJQqGehSR4330.pngwKgZPGh_P02AMKyTAAI9M6eWOks374.png

    4.2 硬件连接

    功耗测试时将可调电源正极接在vbat的排针处,gnd即为电源负极接的位置,核心板上的USB断开,功耗测试开关拨到ON。

    wKgZO2h_P86Aa9j3AAplIo8pOCU217.png

    4.3 DTIM1测试结果

    1)下图为低功耗模式代码在链接服务器并每5分钟发送一次数据包的功耗,平均1.5mA。

    wKgZPGh_P_qANr9uAAJauS9Z1-k039.png

    图中有两种电流情况需要关注:

    短暂持续的柱状上升

    这是链接平台后向平台发送数据时的电流表现,根据网络信号强弱会有差异,因为是跟平台保持长连接的,信号好时,基本在1秒左右就会完成发送,功耗会再降回去。

    瞬时的电流尖峰

    这是在与Wi-Fi AP保持链接时,STA和AP之间的TIM信息交互,默认100ms一次,获取AP上的广播帧、组播帧和单播帧信息。此处涉及一个参数,就是DTIM,默认是DTIM1。

    2)下图是低功耗DTIM1模式下发送数据包时的电流情况,图中可以看出,保持链接时发送数据包的时间共100毫秒,平均电流22mA。

    wKgZO2h_QCGAQ4bHAAGcv-adRC4382.png

    4.4 DTIM10测试结果

    体验DTIM10时需要在DEMO中修改DTIM配置:wifi_app.lua

    wKgZPGh_QESALv6TAACCxzv7-XY798.png

    1)下图为上面的低功耗模式代码在链接服务器并每5分钟发送一次数据包的功耗。平均380μA,将数据包发送间隔拉的更长,功耗更低。

    wKgZPGh_QGaAfClLAAFmA4a0zO4083.png

    图中的尖峰间隔因为设置DTIM10以后被延长到了1000ms一次,在DTIM10模式下,会丢失Wi-Fi AP的广播帧和组播帧,但是不会丢失单播帧。

    STA会告诉Wi-Fi AP:

    我1000ms才来获取一次单播帧,在1000ms后一次获取。

    请根据业务需要选择DTIM10模式。

    2)下图为低功耗DTIM10模式下,发送心跳包时的功耗情况,只会产生细微的尖峰波动,耗时80毫秒,平均功耗23mA左右。

    wKgZO2h_QIiALwxOAAEhNG5HJEY221.png

    五、PSM+功耗模式测试

    对于和服务器之间不需要保持长连接,仅仅需要间隔几小时甚至几天才发一次数据给服务器,希望电池待机时间更久一些的场景,可以使用第三种超低功耗PSM+模式。

    5.1 代码示例

    1)mian.lua

    打开低功耗模式,屏蔽另外两种模式。

    即:

    mian.lua 中打开require "psm+_power" 这句话

    注释-- require "normal"

    注释-- require "low_power"

    wKgZO2h_QOCAF7IOAABRE7-n8jI598.png

    2)tcp_client_main.lua

    第20行和第21行,服务器IP端口号的地方,改成用户自己使用的服务的IP/域名以及端口号。

    如果仅作测试,也可以使用提供的测试服务器。

    测试服务器相关资料详见:

    https://netlab.luatos.com/

    3)psm+_power.lua

    PSM+超低功耗模式主应用功能模块代码如下图示:

    wKgZO2h_Qf6AQ_PeAAJlXEch5cE703.pngwKgZO2h_QiSANWL0AAKjw1knp3U758.pngwKgZPGh_Qj-AMdjgAAI1qm8pcs0828.png

    5.2 硬件连接

    功耗测试时将可调电源正极接在vbat的排针处,gnd即为电源负极接的位置,核心板上的USB断开,功耗测试开关拨到ON。

    wKgZO2h_QoCACDCiAAtREgdwojg369.png

    5.3 PSM+模式功耗测试结果

    1)下图为进入PSM+模式后不做任何动作的电流情况,平均13μA。

    wKgZPGh_QrGAUZXdAAFGAsHdycg955.png

    2)下图为进入PSM+模式后发送心跳包时的电流变化情况,从起来到发完信息到再进入PSM+总共耗时3.2S,平均功耗26mA。

    wKgZO2h_QtqADhfYAAGrOfCH1_s906.png

    今天的内容就分享到这里了~

    审核编辑 黄宇