本文主要是講述了BLE應(yīng)用提高數(shù)據(jù)通信速率的方法,主要可簡述為以下幾個(gè)方面:
●使能DLE單幀數(shù)據(jù)長度擴(kuò)展;
●BLE5.0及以上版本,使用LE 2M PHY;
●使用通知notify或?qū)懭霟o響應(yīng)Write without ●Response數(shù)據(jù)類型
●盡可能增大 MTU,提高單次數(shù)據(jù)收發(fā)效率;
●選擇1個(gè)合適的連接間隔;
下文將針對(duì)以上幾點(diǎn),進(jìn)行詳細(xì)闡述。
描述
假設(shè)主從端采用通知有響應(yīng)indicate數(shù)據(jù)類型,1M PHY編碼率,每個(gè)連接間隔包含1個(gè)連接事件(公式②中的連接事件時(shí)間,我司模塊采用協(xié)議棧默認(rèn)值,一般就是協(xié)議棧允許最大值)。
如圖2,主、從機(jī)間單個(gè)數(shù)據(jù)包通信流程包含:從機(jī)發(fā)給主機(jī)空包、上一個(gè)包結(jié)束到下一個(gè)包開始之間的時(shí)間間隔IFS(協(xié)議規(guī)定是150us)、從機(jī)接收主機(jī)回復(fù)的完整data數(shù)據(jù)包、IFS。
圖1 連接間隔與連接事件
圖2 主、從機(jī)間收發(fā)1個(gè)數(shù)據(jù)包通信流程
圖3 BLE ATT數(shù)據(jù)幀結(jié)構(gòu)
那么,公式①:
公式②:
公式③:
公式④:
公式⑤:
結(jié)論
分析上述BLE數(shù)據(jù)通信速率計(jì)算公式,可看出提高BLE數(shù)據(jù)通信速率的方法有以下幾點(diǎn),具體分析過程如下所示:
●從上述公式①可看出,適當(dāng)減小連接間隔可以提高BLE數(shù)據(jù)通信速率,但是也要明白連接間隔會(huì)影響功耗和客戶體驗(yàn),即連接間隔減小、功耗會(huì)提高;連接間隔增加、實(shí)時(shí)性越差、用戶體驗(yàn)感越差。
●結(jié)合公式②和③可看出,避免空包出現(xiàn)可以提高BLE數(shù)據(jù)通信速率,所以一般建議客戶使用通知notify和寫入無響應(yīng)Write without Response,而不要使用通知有響應(yīng)indicate和寫入有響應(yīng)Write。
●結(jié)合公式①和⑤可看出,使ATT payload盡可能的大,可提高BLE數(shù)據(jù)通信速率,那么使能DLE數(shù)據(jù)擴(kuò)展后,Max ATT payload將從4.0/4.1協(xié)議的20bytes,提高至4.2/5.0協(xié)議的244bytes。
●結(jié)合公式④和⑤可看出,使用LE 2M PHY可以提高BLE數(shù)據(jù)通信速率,但是需注意2M PHY只有BLE5.0/5.1協(xié)議才支持,4.2及以下版本協(xié)議不支持。
●當(dāng)MCU發(fā)給BLE設(shè)備的數(shù)據(jù)包字節(jié)數(shù)超過ATT MTU值時(shí),協(xié)議棧會(huì)進(jìn)行分包,如果ATT MTU盡可能大,例如大于等于Max ATT Payload,那么拆包數(shù)將達(dá)到最小,這將最小化數(shù)據(jù)包無效字節(jié)開銷(即除了ATT Payload外其他字節(jié)開銷),結(jié)合公式④和⑤可看出,這將極大提高BLE數(shù)據(jù)通信速率。
-
通信
+關(guān)注
關(guān)注
18文章
6036瀏覽量
136061 -
BLE
+關(guān)注
關(guān)注
12文章
660瀏覽量
59420
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論