BLE 數據吞吐量的大小推導

在推導數據吞吐量之前需要明白幾個概念:

首先數據發送由Connection Events組成:

Connection Events的間隔由connInterval決定

 

Connection Events中transmitWindowSize是發送數據的有效大小:

transmitWindowSize的範圍是1.25ms 到 10ms 或者connInterval - 1.25ms

兩種情況:

如果10ms > connInterval - 1.25ms那麼transmitWindowSize的範圍是1.25ms ~ connInterval - 1.25ms

反之:

如果10ms < connInterval - 1.25ms 那麼transmitWindowSize的範圍是1.25ms ~ 10ms

在每一個具體pack之間是由 T_IFS(固定150us)決定

transmitWindowSize = WinSize * 1.25ms

WinSize(1 ~ 8) 這個值由BLE core決定

推導公式如果

DataSize = 1000ms \div connInterval * transmitWindowSize \div 150us * 20 \div 2

1000ms 表示1s

connInterval: 這個大小在 MIN_CONN_INTERVAL 與 MAX_CONN_INTERVAL

150us 代表T_IFS

20:表示BLE有效的數據(也就是用戶數據20 字節)除以2 由於在發送完數據還需要等待回覆,對於發送來說是無效等待

假設:

MIN_CONN_INTERVAL :20ms

WinSize 1:

              DataSize = 4Kb/s

WinSize 8:

              DataSize = 32Kb/s

MAX_CONN_INTERVAL:75ms

WinSize 1:

              DataSize = 1.08Kb/s

WinSize 8:

              DataSize = 8.08Kb/s

 

所以數據的吞吐量範圍區間在:

            1.08/KB/s~32KB/s

實際的發送中一般是4.5Kb左右。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章