实测验证的低功耗应用指南:硬件+软件双优化

硬件与软件协同优化,才能实现真正的低功耗。本文基于实测数据,从硬件电路低功耗设计到软件算法优化,提供双维度指南,助您构建能耗最低的系统方案。

能拍、能说、能显示、能联网,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实网功耗数据如下图表:

更多说明:

低功耗模式下,网络在线,随时响应服务器命令,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核心板


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/ 


3)normal.lua

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


3.2 硬件连接

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


3.3 常规模式功耗测试结果

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

四、低功耗模式测试 

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

4.1 代码示例

1)mian.lua

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

即:

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

注释-- require "normal"

注释-- require "psm+_power"


2)tcp_client_main.lua

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

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

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

https://netlab.luatos.com/

3)low_power.lua

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

4.2 硬件连接

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


4.3 DTIM1测试结果

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

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

短暂持续的柱状上升

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

瞬时的电流尖峰

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

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


4.4 DTIM10测试结果

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

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

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

STA会告诉Wi-Fi AP:我1000ms才来获取一次单播帧,在1000ms后一次获取。

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

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


五、PSM+功耗模式测试 

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

5.1 代码示例

1)mian.lua

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

即:

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

注释-- require "normal"

注释-- require "low_power"


2)tcp_client_main.lua

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

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

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

https://netlab.luatos.com/

3)psm+_power.lua

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


5.2 硬件连接

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


5.3 PSM+模式功耗测试结果

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值