2025-6-18 13:12
1 次阅读|
0 个评论
想知道低功耗应用的开发秘诀吗?本文基于实网功耗测试的深度解析,提供可复用的优化策略,并附上完整开源代码,助你从理论迈向实践。 下面将以Air8000核心板为例,带你快速上手三种功耗模式。在实际应用开发中,可根据具体需求灵活运用。 最新开发资料详见: www.air8000.cn 一、三种功耗模式简介 Air8000支持的三种功耗模式各有特点。 1.1 常规模式: 网络在线状态,随时响应服务器命令,CPU满频运行,外设功能全部可用。比如,所有GPIO电平都可以控制。 1.2 低功耗模式: 网络在线状态,随时响应服务器命令,CPU降频运行,外设功能部分可用。比如,仅有AGPIO可以保持电平。 1.3 PSM+模式: 网络离线状态,无法响应服务器命令,CPU降频运行,外设功能部分可用。比如,仅有AGPIO可以保持电平。 二、最新源码及实操教程 Air8000应用示例持续更新中,当前示例为低功耗应用指南。不同的应用场景,可按需选择不同模式以及三种功耗模式之间的相互转换。 最新源码及实操教程详见: https://docs.openluat.com/air8000/luatos/app/lowpower/sleep/ 2.1 常规模式测试 顾名思义,常规模式为模块不考虑功耗时处于的状态。 1)代码示例 mian.lua中打开常规模式,屏蔽另外两种模式,如下图示: normal.lua第二行和第三行,服务器IP端口号的地方改成用户自己使用的服务的IP/域名以及端口号。 如果仅作测试,也可以使用下面的测试服务器,测试服务器相关资料详见: https://netlab.luatos.com/ 进入后选择打开TCP/UDP(根据用户服务器类型自行选择): 打开后,如图所示位置即是IP和端口号: 本示例使用服务器netlab.luatos.com,打开TCP,然后修改IP和端口号,自动回复netlab下发的数据,自收自发测试。 normal.lua: 2)常规模式功耗测试结果 下图为链接好服务器后什么都不做的功耗,其中平均电流为6.2127mA。 注意:每一个尖峰均为和基站进行一些底层的数据交互导致的电流增大,这些交互不能省,均是3GPP协议规定的交互,如果省去,都有可能导致掉网。 2.2 低功耗模式测试 该模式可以实现与服务器之间进行长连接,服务器可随时下发数据给客户端,实现在低功耗情况下还能实时远程控制的功能。 1)代码示例 mian.lua中打开低功耗模式,屏蔽另外两种模式,如下图示: low_power_dissipation.lua第二行和第三行,服务器IP端口号的地方,改成用户自己使用的服务的IP/域名以及端口号。 low_power_dissipation.lua: 2)低功耗模式功耗测试结果 下图为低功耗模式下,不发数据时,模块的功耗情况,每一处尖峰都是与基站之间进行必要的通讯带来的电流增大。 下图红框内为收到服务器下发数据时的功耗数据,可以看出从唤醒到收到服务器数据总计花费约5秒,平均电流约为23.7mA: 2.3 超低功耗PSM+模式测试 对于和服务器之间不需要保持长连接,仅仅需要间隔几小时甚至几天才发一次数据给服务器,希望电池待机时间更久一些的场景,可以使用超低功耗PSM+模式。 1)代码示例 mian.lua中打开超低功耗模式,屏蔽另外两种模式,如下图示: ultra_low_power.lua第二行和第三行,服务器IP端口号的地方,改成用户自己使用的服务的IP/域名以及端口号。 ultra_low_power.lua: 2)超低功耗PSM+模式功耗测试结果 下图红框内为PSM+ 模式下,发送数据时的功耗,从发送数据到最后进入休眠总计花费约3秒,这3秒内平均电流约为24mA。 下图为PSM+模式下,模块待机时的功耗为30μA左右,目前因为充电IC影响,功耗会比4G模块系列要高,后续会对功耗进行优化。 今天的内容就分享到这里了~