低功耗實測全攻略:超詳盡應用實踐深度指南
能拍、能說、能顯示、能聯網,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+模式。
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/
PSM+超低功耗模式主應用功能模塊代碼如下圖示:
5.2 硬件連接
功耗測試時將可調電源正極接在vbat的排針處,gnd即為電源負極接的位置,核心板上的USB斷開,功耗測試開關撥到ON。
5.3 PSM+模式功耗測試結果
1)下圖為進入PSM+模式后不做任何動作的電流情況,平均13μA。
2)下圖為進入PSM+模式后發送心跳包時的電流變化情況,從起來到發完信息到再進入PSM+總共耗時3.2S,平均功耗26mA。
今天的內容就分享到這里了~
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。