BLE的传输速率分析
2019獨角獸企業重金招聘Python工程師標準>>>
?
?????? 根據藍牙BLE協議, 物理層physical layer的傳輸速率是1Mbps,相當于每秒125K字節。事實上,其只是基準傳輸速率,協議規定BLE不能連續不斷地傳輸數據包,否則就不能稱為低功耗藍牙了。連續傳輸自然會帶來高功耗。所以,藍牙的最高傳輸速率并不由物理層的工作頻率決定的。
在實際的操作過程中,如果主機連線不斷地發送數據包,要么丟包嚴重要么連接出現異常而斷開。
在BLE里面,傳輸速度受其連接參數所影響。連接參數定義如下:
1)連接間隔。藍牙基帶是跳頻工作的,主機和從機會商定多長時間進行跳頻連接,連接上才能進行數據傳輸。這個連接和廣播狀態和連接狀態的連接不是一樣的意思。主機在從機廣播時進行連接是應用層的主動軟件行為。而跳頻過程中的連接是藍牙基帶協議的規定,完全由硬件控制,對應用層透明。明顯,如果這個連接間隔時間越短,那么傳輸的速度就增大。連接上傳完數據后,藍牙基帶即進入休眠狀態,保證低功耗。其是1.25毫秒一個單位。
2)連接延遲。其是為了低功耗考慮,允許從機在跳頻過程中不理會主機的跳頻指令,繼續睡眠一段時間。而主機不能因為從機睡眠而認為其斷開連接了。其是1.25毫秒一個單位。明顯,這個數值越小,傳輸速度也高。
藍牙BLE協議規定連接參數最小是5,即7.25毫秒;而Android手機規定連接參數最小是8,即10毫秒。iOS規定是16,即20毫秒。
連接參數完全由主機決定,但從機可以發出更新參數申請,主機可以接受也可以拒絕。android手機一部接受,而ios比較嚴格,拒絕的概率比較高。
一般場景,連接參數設置16,即20毫秒,一般的傳輸速率是50* 20 = 1000字節/每秒。如果每個連接事件傳輸更多的包,可以獲得更高的傳輸速率。
轉載于:https://my.oschina.net/jlongtian/blog/1648323
總結
以上是生活随笔為你收集整理的BLE的传输速率分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 事件绑定、事件监听、事件委托
- 下一篇: 阿里云Redis开发规范[转]