回覆列表
-
1 # 韋物辯證
-
2 # 鼎域科技互
藍芽5.0傳輸速度上限為24Mbps,有效工作距離可達300米。
藍芽
同時,還有一項改進是固定信標的廣播。藍芽5.0允許無需配對接受信標的資料,比如廣告、Beacon、位置資訊等,這一傳輸率提高了8倍。
此外的改進還有針對IoT物聯網的底層優化,更快更省電。
-
3 # 科技進度
傳輸速度大概每秒195-215KB左右,最高24Mbps,也就是每秒3MB。
1Byte=8bits,所以Mbps和MB/s是有8倍區別的單位。
位元組和位元的換算關係如下:
還在困惑BLE低功耗藍芽資料傳輸率有多快?
這並不僅僅是一個人的問題,即使谷歌搜尋會出現很多不完整的答案。每個作業系統和裝置都有自己的限制,例如連線間隔和每個間隔的資料包數量。另外,您是否知道使用iOS,您可以每一個連線間隔可以傳送4個數據包,而且HID裝置的可以在一個連線間隔傳送10個數據把,從而把速率提高2.6倍?
如果你想最終清楚你可以通過BLE與iPhone,Android裝置或Mac通訊多快,下面的內容講會一一解析你的疑問。
誤區
藍芽PHY 標稱資料傳送率是1M/bps,即為每秒由藍芽物理層除錯過後傳到空中的速率為1兆位元,這並不表示藍芽接收端接收的資料傳輸率可以到1M/bps。
影響/限制BLE吞吐量的因素有很多,最大吞吐量才為1M/bps,資料收發還具有相應通訊協議和藍芽協議,例如:
- 最大資料包長度
- 資料包之間的時間延遲
- 資料包中開銷位元組,如資料包長度,資料完整性檢查和通用資料包資訊。
那麼,1Mbps的50%到75%呢?那仍然是31.25到62.5 kB每秒。這仍然是非常好的。
一個BLE連線只有兩個裝置,其中一個被稱為Master(如主),另一個被稱為Slave(如從屬)。每一側在給定的時間段內與另一側通訊,稱為連線間隔(最小7.5毫秒,最小增加的增量為1.25毫秒)。兩個裝置之間的每個通訊例項稱為通訊事件。
最小連線間隔
當外圍裝置處於接收模式時,通訊事件由中央(主裝置)傳送分組開始。如果外設成功從中央接收到資料包,外設將在中央處於接收模式時隨後傳送資料包。預設情況下,即使沒有任何要傳送的資料包,中央和外圍裝置也會發送一個數據包,這通常稱為空鏈路層的心跳包。
在每次主從心跳包結束之後,主機或者從機端如有有排隊等待發送的訊息,他們可以“詢問”或“警告”對方,告知自己有更多的資料要傳送。這將會出現一個時間間隔內交換多個數據包。連線事件將繼續,直到資料包未能正確接收,傳送者結束連線事件,或者在非正常情況下結束(超時)。
需要注意的是,在連線事件中,您可以交換兩個以上的資料包,這將極大地提高吞吐量,但是你需要了解每個連線事件的最大資料包數量取決於BLE堆疊/晶片組,每個iOS裝置連線事件最大允許四個資料包,Android裝置每個連線事件最大執行六個資料包。
資料包每個時間間隔可以由以下公式計算:
一般BLE資料吞吐量公式中重要因數就是以下三個重要元素:
1.連線間隔- 裝置通話的頻率。
2.每個連線間隔的資料包數量- 當他們說話時交換了多少個數據包。
3.資料包長度- BLE資料包中應用資料的長度。
BLE中的理論最大應用資料吞吐量可以描述為以下公式:
Throughput = Packets Per Second * Data Per Package
由此我們可以得到以下公式:
現在可以肯定的是,BLE資料包最多包含20個位元組的BLE應用程式資料v4.0和v4.1(v4.2包含一個數據包長度擴充套件,但是在iOS或Android很多不支援)。請記住,實際的BLE資料包的大小較長,但自然包括許多重要用途的段,例如CRC和不同層的標題。
減小連線間隔解
對於iOS 9.2和iPhone 6以上手機,最小連線間隔為30毫秒,除非您支援通過GATT配置BLE裝置作為HID方式,最小連線間隔允許降至11.25毫秒。對於Android裝置,最小連線間隔為7.5毫秒。
BLE裝置與iPhone 6 資料吞吐量=(1000 mSecs)* 20 *(4)/(30 mSecs)= 2,667.66 byte/s。
如果IOS裝置支援HID, 吞吐量增加到=(1000 mSecs)* 20 * 4 /(11.25 mSecs)= 7,111.11 Bytes per second
實現更快的吞吐量
簡單的答案有時候會受到其他BLE裝置三個引數限制的限制,即使您的BLE裝置可以支援較低的連線間隔或每個連線事件傳送超過4個數據包。
例如,讓我們把我們用來連線iPhone 6的外圍裝置連線到一個不同的客戶端(硬體),每個連線事件的連線間隔為10mSecs,最多連線12個數據包(每個方向6個)。這將增加理想的最大值如下:
BLE裝置與Iphone 6最大吞吐量=(1000mSecs)* 20 *(6)/(10 mSecs)= 12,000 Bytes per second。
目前由於支援藍芽4.2大資料包的手機和BT 5的手機並不多,所以無法通過提高資料包長度的方式提升資料傳送率,希望後續手機更新換代把藍芽5作為標配,提高資料傳輸率指日可待。
下列資料為iphone和安卓兩種系統的親測資料,供大家參考:
iPhone 6,6 +,6S,6S +:
正常連線間隔30mSecs:最大資料吞吐量 2,667位元組/秒
HID模式, 連線間隔為11.25mSecs:最大資料吞吐量 7,111位元組/秒
MacBook Pro - OS X(不同型號):
最大連線間隔範圍(11.25 - 15mSecs):最大資料吞吐量 7,111位元組/秒 - 5334位元組/秒
Android的
Nexus 4:最小連線間隔7.5 mSecs - 每個連線的資料包間隔:6 - 最大資料吞吐量:16,000 Bytes / Sec
Nexus 6P:最小連線間隔7.5 mSecs - 每個連線的資料包間隔:6 - 最大資料吞吐量:16,000 Bytes / Sec
原文連結:https://blog.csdn.net/weixin_42583147/java/article/details/80886207