BLE之所以能做到uA級別的功耗,在使用紐扣電池供電的情況下能工作達半年甚至更久的原因就是BLE特殊的休眠的機制,簡單概括就是在特定的時間啟動射頻,快速地發(fā)射完數(shù)據(jù)后關閉射頻進入休眠狀態(tài),也就是說在BLE工作期間,其射頻大部分時間都是處于關閉狀態(tài),所以它的功耗就能非常低。
圖1就展示了BLE設備發(fā)送廣播數(shù)據(jù)的電流(圖片來源于億佰特產(chǎn)品實測)。
圖1 BLE設備廣播電流
本文所說的影響功耗的參數(shù)是站在BLE協(xié)議棧的基礎上來說的,不包括硬件本身帶來的功耗,比如當你模塊負載著很多LED的時候,你跟我說BLE模塊的功耗降不下來,這就是:盲人抬石頭——瞎抬杠呢。
言歸正傳,影響B(tài)LE功耗的參數(shù)有如下幾個:
廣播間隙(Advertising interval)
連接間隙(Connection Interval)
從設備延遲(Slave Latency)
連接超時(Supervision Timeout)
掃描窗口(Scan Window)
掃描間隙(Scan Interval)
01 廣播間隙(Advertising interval)
BLE設備在每次廣播時,都會在三個信道上發(fā)送相同的報文,這些報文被稱為一個廣播事件,兩個相鄰的廣播事件的時間就是廣播間隙。關于廣播間隙的定義如圖2(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖2 廣播間隙
廣播間隙是針對從機設備來說的,廣播間隙決定了從機設備的廣播頻率,你說是一秒鐘發(fā)一次數(shù)據(jù)的功耗高呢,還是一秒鐘發(fā)十次數(shù)據(jù)的功耗高呢?所以將BLE廣播間隙調(diào)大一些,這樣在單位時間中廣播次數(shù)減少,就能有效的降低功耗。范圍如圖3所示(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖3 廣播間隙范圍
02 連接間隙(Connection Interval)
BLE主機設備和從機設備建立連接后,進行數(shù)據(jù)交互的間隔稱為連接間隙,注意是主從設備建立連接后。關于連接間隙的定義如圖4(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖4 連接間隙
連接間隙就是指主機從機設備之間的交互頻率,將連接間隙調(diào)大一些即可有效的降低功耗。連接間隙的參數(shù)范圍也有一個規(guī)定值,如圖5所示(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖5 連接間隙范圍
03 從設備延遲(Slave Latency)
從設備延遲是指在連接將被終止之前從設備能夠處于睡眠狀態(tài)的BLE連接間隔的數(shù)目。為了形象的說明此概念,引用圖6來進行解釋。
圖6 Slave Latency圖解
從圖中可以看出當從設備延遲關閉(即等于0的時候),每一個主機發(fā)起的數(shù)據(jù)交互從機都必須要響應,當從設備延遲打開(圖中等于3的時候),從機可以忽略3次主機發(fā)起的數(shù)據(jù)交互請求,而繼續(xù)處于休眠狀態(tài)。
從圖6也可以看出當開啟從設備延遲時,從機處于休眠的時間就更多,那么設備就可以更省電。
04 連接超時(Supervision Timeout)
連接超時又叫監(jiān)控超時,是指LE鏈路的鏈路監(jiān)督超時時間,必須是10ms的整數(shù)倍。必須滿足關系:Timeout >(1 + Latency) * Interval_Max * 2。連接超時范圍如圖7所示(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖7 連接超時范圍
05 掃描參數(shù): 掃描窗口(Scan Window)、掃描間隙(Scan Interval)
掃描參數(shù)是藍牙主機設備特有的參數(shù),每次掃描時,設備打開接收器去監(jiān)聽廣播設備,這稱為一個掃描事件。掃描參數(shù)有兩個:掃描窗口與掃描間隔。如圖8所示(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖8 掃描參數(shù)構(gòu)成
關于掃描間隙和掃描窗口的定義如圖9所示(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)、
圖9 Scan Interval 和Scan Window定義
掃描窗口(Scan Window):掃描窗口是指進行一次掃描的時間寬度,也就是掃描的持續(xù)時間。持續(xù)時間越短消耗的能源就越少。
掃描間隙(Scan Interval):掃描間隙是指兩個連續(xù)的掃描窗口的起始時間的間隔。即可以理解為掃描頻率,頻率越低消耗的能量就越少。
需要注意的是掃描窗口要小于掃描間隙。
參數(shù)范圍如圖10所示(圖片來自Core_v5.0,藍牙核心協(xié)議5.0)
圖10 掃描間隙掃描窗口范圍
本文基于億佰特E104系列的BLE藍牙模塊,來說明如何通過AT指令設置參數(shù)來降低BLE模塊的功耗。
01 設置廣播間隙
打開串口助手發(fā)送指令,如圖11所示:AT+ADVINTV=1600(1600*0.625=1000ms),AT+ADVINTV=1600(160*0.625=100ms)
圖11 設置廣播間隙為1s和100ms
設置成功后通過電流測試工具抓取電流數(shù)據(jù)如圖12所示,可以看到平均值為29.93uA。設置為100ms時的功耗為250uA.
圖12 1s和100ms廣播間隙的功耗對比
02 設置連接間隙
打開串口助手發(fā)送指令如圖13所示,設置連接間隙為1s:AT+CONMAXINTV=800(800*1.25=1000ms), AT+CONMININTV=800(800*1.25=1000ms),設置連接間隙為100ms
圖13 設置連接間隙為1s和100ms
成功設置連接間隙后使用儀器抓取功耗如圖14所示。連接間隙為1s時功耗259uA,連接間隙為100ms時功耗為335uA。
圖14 1s連接間隙和100ms連接間隙功耗對比
03 設置從設備延遲和連接超時
在設置從設備延遲和連接超時的時候需要注意參數(shù)范圍:
設置參數(shù)如圖15所示:Timeout >(1 + Latency) * Interval_Max * 2
5000>(1+20)*100*2
圖15 設置從設備延遲和連接超時
需要注意蘋果系統(tǒng)的設備做主機的時候,連接參數(shù)更為苛刻,需要滿足以下關系,否則連接可能存在異常。
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
04 設置掃描參數(shù)
設置掃描參數(shù)為1s和10ms,如圖16所示:
圖16 設置掃描參數(shù)為1s和10ms
設置成功后,通過儀器觀察功耗情況如圖17所示:
1s的掃描間隙掃描窗口平均電流:72.4uA
10ms掃描間隙掃描窗口平均電流:3.37mA
圖17 1s掃描間隙與10ms掃描間隙功耗對比
億佰特目前的BLE系列產(chǎn)品眾多,這里就不對每種型號做示例,可根據(jù)自己手里的型號找到對應手冊中的指令進行設置。
若使用的是別的公司的產(chǎn)品,想要降低功耗亦可設置這些參數(shù)來降低功耗。這里附上一些億佰特產(chǎn)品測試的具體數(shù)據(jù),就能更直觀地看到各個參數(shù)對于功耗的影響:
7 X 24 銷售服務熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務郵箱:support@cdebyte.com
全國銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號B5棟(前臺座機:028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號-3