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