BLE設備功耗太高?只需幾個參數即可搞定
藍牙低功耗(BLE)技術因其在低功耗設備中的廣泛應用而受到青睞。然而,為了實現更長的電池壽命和更優的設備性能,開發者需要了解并掌握影響BLE設備功耗的關鍵參數。本文將提供詳細的參數設置指南,幫助開發者優化BLE設備的性能。
BLE之所以能做到μA級別的功耗,在使用紐扣電池供電的情況下能工作達半年甚至更久的原因就是BLE特殊的休眠的機制,簡單概括就是在特定的時間啟動射頻,快速地發射完數據后關閉射頻進入休眠狀態,也就是說在BLE工作期間,其射頻大部分時間都是處于關閉狀態,所以它的功耗就能非常低。
圖1就展示了BLE設備發送廣播數據的電流(圖片來源于信馳達產品實測)。
圖1 BLE設備廣播電流
影響BLE功耗的參數
本文所說的影響功耗的參數是站在BLE協議棧的基礎上來說的,不包括硬件本身帶來的功耗,比如當你模塊負載著很多LED的時候,BLE模塊的功耗降不下來,這就不在討論范圍之內。
影響BLE功耗的參數有如下幾個:
廣播間隙(Advertising interval)
連接間隙(Connection Interval)
從設備延遲(Slave Latency)
連接超時(Supervision Timeout)
掃描窗口(Scan Window)
掃描間隙(Scan Interval)
1.廣播間隙(Advertising interval)
BLE設備在每次廣播時,都會在三個信道上發送相同的報文,這些報文被稱為一個廣播事件,兩個相鄰的廣播事件的時間就是廣播間隙。關于廣播間隙的定義如圖2(圖片來自Core_v5.0,藍牙核心協議5.0)
圖2 廣播間隙
廣播間隙是針對從機設備來說的,廣播間隙決定了從機設備的廣播頻率,你說是一秒鐘發一次數據的功耗高呢,還是一秒鐘發十次數據的功耗高呢?所以將BLE廣播間隙調大一些,這樣在單位時間中廣播次數減少,就能有效的降低功耗。范圍如圖3所示(圖片來自Core_v5.0,藍牙核心協議5.0)
圖3 廣播間隙范圍
2.連接間隙(Connection Interval)
BLE主機設備和從機設備建立連接后,進行數據交互的間隔稱為連接間隙,注意是主從設備建立連接后。關于連接間隙的定義如圖4(圖片來自Core_v5.0,藍牙核心協議5.0)
圖4 連接間隙
連接間隙就是指主機從機設備之間的交互頻率,將連接間隙調大一些即可有效的降低功耗。連接間隙的參數范圍也有一個規定值,如圖5所示(圖片來自Core_v5.0,藍牙核心協議5.0)
圖5 連接間隙范圍
3.從設備延遲(Slave Latency)
從設備延遲是指在連接將被終止之前從設備能夠處于睡眠狀態的BLE連接間隔的數目。為了形象的說明此概念,引用圖6來進行解釋。
圖6 Slave Latency圖解
從圖中可以看出當從設備延遲關閉(即等于0的時候),每一個主機發起的數據交互從機都必須要響應,當從設備延遲打開(圖中等于3的時候),從機可以忽略3次主機發起的數據交互請求,而繼續處于休眠狀態。
從圖6也可以看出當開啟從設備延遲時,從機處于休眠的時間就更多,那么設備就可以更省電。
4.連接超時(Supervision Timeout)
連接超時又叫監控超時,是指LE鏈路的鏈路監督超時時間,必須是10ms的整數倍。必須滿足關系:Timeout >(1 + Latency) * Interval_Max * 2。連接超時范圍如圖7所示(圖片來自Core_v5.0,藍牙核心協議5.0)
圖7 連接超時范圍
5.掃描參數: 掃描窗口(Scan Window)、掃描間隙(Scan Interval)
掃描參數是藍牙主機設備特有的參數,每次掃描時,設備打開接收器去監聽廣播設備,這稱為一個掃描事件。掃描參數有兩個:掃描窗口與掃描間隔。如圖8所示(圖片來自Core_v5.0,藍牙核心協議5.0)
圖8 掃描參數構成
關于掃描間隙和掃描窗口的定義如圖9所示(圖片來自Core_v5.0,藍牙核心協議5.0)
圖9 Scan Interval 和Scan Window定義
掃描窗口(Scan Window):掃描窗口是指進行一次掃描的時間寬度,也就是掃描的持續時間。持續時間越短消耗的能源就越少。
掃描間隙(Scan Interval):掃描間隙是指兩個連續的掃描窗口的起始時間的間隔。即可以理解為掃描頻率,頻率越低消耗的能量就越少。
需要注意的是掃描窗口要小于掃描間隙。
參數范圍如圖10所示(圖片來自Core_v5.0,藍牙核心協議5.0)
圖10 掃描間隙掃描窗口范圍
如何設置參數來降低功耗?
本文基于信馳達nRF52系列的BLE藍牙模塊,來說明如何通過AT指令設置參數來降低BLE模塊的功耗。
1.設置廣播間隙
打開串口助手發送指令,如圖11所示:AT+ADVINTV=1600(1600*0.625=1000ms),AT+ADVINTV=1600(160*0.625=100ms)
圖11 設置廣播間隙為1s和100ms
設置成功后通過電流測試工具抓取電流數據如圖12所示,可以看到平均值為29.93uA。設置為100ms時的功耗為250uA.
圖12 1s和100ms廣播間隙的功耗對比
2.設置廣播間隙
2.設置廣播間隙
打開串口助手發送指令如圖13所示,設置連接間隙為1s:AT+CONMAXINTV=800(800*1.25=1000ms), AT+CONMININTV=800(800*1.25=1000ms),設置連接間隙為100ms
圖13 設置連接間隙為1s和100ms
成功設置連接間隙后使用儀器抓取功耗如圖14所示。連接間隙為1s時功耗259μA,連接間隙為100ms時功耗為335μA。
圖14 1s連接間隙和100ms連接間隙功耗對比
3.設置從設備延遲和鏈接超時
在設置從設備延遲和連接超時的時候需要注意參數范圍:
設置參數如圖15所示:Timeout >(1 + Latency) * Interval_Max * 2
5000>(1+20)*100*2
圖15 設置從設備延遲和連接超時
需要注意蘋果系統的設備做主機的時候,連接參數更為苛刻,需要滿足以下關系,否則連接可能存在異常。
Interval_Max* (Slave Latency + 1) ≤ 2 seconds
Interval_Min≥ 20 ms
Interval_Min+ 20 ms ≤ Interval_Max
SlaveLatency ≤ 4
Timeout ≤6 s
Interval_Max* (Slave Latency + 1) * 3 < Timeout
4.設置掃描參數
設置掃描參數為1s和10ms,如圖16所示:
圖16 設置掃描參數為1s和10ms
設置成功后,通過儀器觀察功耗情況如圖17所示:
1s的掃描間隙掃描窗口平均電流:72.4μA
10ms掃描間隙掃描窗口平均電流:3.37mA
圖17 1s掃描間隙與10ms掃描間隙功耗對比
附:
信馳達目前的BLE系列產品眾多,這里就不對每種型號做示例,可根據自己手里的型號找到對應手冊中的指令進行設置。
若使用的是別的公司的產品,想要降低功耗亦可設置這些參數來降低功耗。這里附上一些信馳達產品測試的具體數據,就能更直觀地看到各個參數對于功耗的影響:
通過合理設置BLE設備的參數,可以有效降低功耗,延長設備的使用壽命。信馳達科技提供的BLE系列產品和技術支持,將助力開發者在BLE領域的創新和應用開發。