如何打造高效能的低功耗應用?本文基于實際網絡場景的功耗測試數據,揭示性能優化核心技巧,并附上開源代碼,供開發者直接參考與調試。
本文將以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模塊系列要高,后續會對功耗進行優化。
今天的內容就分享到這里了~
審核編輯 黃宇
-
物聯網
+關注
關注
2928文章
46028瀏覽量
389564 -
功耗
+關注
關注
1文章
835瀏覽量
32564 -
源代碼
+關注
關注
96文章
2952瀏覽量
68057
發布評論請先 登錄
【RA4L1-SENSOR】07 低功耗待機模式及功耗實測
低功耗、低功耗前端模塊,適用于藍牙?范圍擴展應用 skyworksinc

低功耗、低功耗前端模塊,適用于藍牙?信號范圍擴展應用 skyworksinc

評論