低功耗藍牙 4.0 可以同時連接多少個藍牙設備,可以同時與多少個藍牙設備進行數據通訊和傳輸?
看到小米電視官網上說,小米電視2採用低功耗藍牙 4.0 獨立天線設計,可同時連接遊戲手柄、耳機等 15 個藍牙設備。但是我使用智能手機與藍牙體質儀、藍牙血壓儀,只能同時建立一個連接。
1 首先提下 @方博宇@Vincent Gao 都提到的一個數字7 ,
這個7其實準確的說並不是主機(central/master/local)連接設備(peripheral/device/remote)的限制,而是LOGICAL TRANSPORT ADDRESS (LT_ADDR) 的限制,這貨是什麼呢 就是我們常說的ACL鏈路。 平常很多藍牙晶元在介紹主機的時候會介紹 我支持7個ACL鏈路。注意:這貨只有3個bit 正好就是7個設備。001~111(二進位) 000被其他佔用。所以從這個角度講,藍牙主機最多連接7個(同時工作/active)傳統藍牙設備。為什麼是傳統,因為並不是所有藍牙設備都需要ACL鏈路,簡單的說你也別管ACL是啥,你就理解 我們常規見到的藍牙滑鼠鍵盤耳機最多只能連接7個。 注意用詞:「 最多」 、」傳統「,而且這個最多是指協議層的最多。BLE部分是不歸這貨管滴。1部分涉及到的層屬於藍牙協議的baseband。=================================================================2radio 層
不管並發連接幾個設備,原理都離不開分時,sniffer RF hopping, 既然是分時,大家得有個底就是 即使是BLE 也不可能能支持非常多的設備並發,一旦solt管理出錯,某個已連接的設備丟包率過載,必然斷開。 我想很多電腦某些驅動的藍牙,比如鍵盤只能同時連接使用4個 應該和這個相關。2部分沒有嚴格的數據支撐====================================================================3 L2CAP 不管是否是BLE 需要完整的連接 傳輸 都需要過L2CAP層。L2CAP有個參數是CID ,CID的分配是需要host的資源的,比如android的藍牙協議棧bluedroid 如果在分配CID的時候資源緊張了,自然不會繼續連接使用設備。暫時想到的這麼多 後面再補充。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
反正籠統的說:一般設備即使多BLE也最多開放連接7個左右的並發,對傳統藍牙設別最多也只能開放7個並發連接使用,如果是BLE,本身是允許更多的設備連接使用,但每個協議棧 主機分配給協議棧的資源 , 以及官方測試過的穩定連接數量都是非常小的一個保守參數,不會太多。目前沒有任何統一的答案,只能這麼說: 某個協議棧在某台手機上能大概同時連接幾個耳機+BLE設備。注意大概這個詞,即使你測試到可以連接立體聲耳機A+4個BLE設備,也不能代表你就能連接立體聲耳機B+4個BLE設備,因為每個藍牙設備的同時開啟的通道數量 source ID 不一樣,所佔用的主機資源也不一樣,這是無解的。
所以這個問題 如果是客戶問 你大體測試下 忽悠下就成, 如果需要增加大體的連接數量,慢慢跳參數慢慢測試唄 。。。。。。這個和好幾個因素相關。
最主要的還是這個星型拓撲中中央節點的資源。這個資源包括CPU的運算能力和RAM的大小。每一個連接都需要自己獨立的緩衝區,而且CPU還得有能力處理這麼多數據的處理。而且還要看CPU除了處理藍牙的部分是否還有別的事。如果是手機上或者電腦上的CPU,一般來說能夠分配給藍牙協議棧的還是比較小的資源。如果是個嵌入式的SOC,那也許獨佔的資源還要多一些。
另外就得看你需要傳的數據大小以及能夠接受的延時了。
首先藍牙是時分系統,兩個設備會在約定好的時間約定好的地點(頻率)進行一個固定的時間的約會(time slot)。一個LE設備只要是和另外一個LE設備在跳頻上同步了就算是LL連接上了。但是LE是可以設置很大的連接間歇時間(connection interval),而且還可以設置比較大的從設備延時(Slave Latency).理論上一個LE設備可以最久500*4s=2000s才應答一次連接事件(connection event). 也就是說如果一個LE設備有了一點數據,也許要2000s以後才發出來。如果這系統中大家都是這麼懶,作為一個時分復用的系統,這個間隔足以允許非常之多的設備同時工作了。這就是為什麼LE在宣傳中提到可以連接幾乎無限多設備的一個原因。
問題在於誰也不可能接受這樣的極限參數,比如iOS對於LE的限制是這樣的:
Interval Max * (Slave Latency + 1) ≤ 2 secondsInterval Min ≥ 20 msInterval Min + 20 ms ≤ Interval MaxSlave Latency ≤ 4connSupervisionTimeout ≤ 6 secondsInterval Max * (Slave Latency + 1) * 3 &< connSupervisionTimeout
這意味著至少2秒之內得有一次完整的connection event。這個延時對於某些應用比如溫度感測器是足夠了。但是如果是個滑鼠或者鍵盤就完蛋了。所以說如果你的設備已經連了一個滑鼠或者鍵盤,那就意味著大量的時間槽(time slot)是被佔用的了。那能連接的設備數量又進一步被大量縮減了。而且還要照顧BR/EDR的那些設備,那些一旦跑起來是要佔掉大量帶寬的,留給LE的已經非常少了。
從我們的測試結果來看,iOS已經是對藍牙處理的最好的移動操作系統了(OS X沒有仔細去測量過,由於蘋果內部iOS和OS X的團隊是完全獨立而且互相不鳥的,所以iOS的結果不能直接轉接給OS X)。Android基本上就只能呵呵了。小米電視2如果真的可以同時連接15個LE設備,那在設計上和協議棧的修改上還是下了不少的功夫的,因為鍵盤滑鼠遙控器和手柄這些都是要求低延遲的。不知道誰有小米電視2可以去驗證一下這個事情。
但是LE不光是為了圍繞手機或者電腦來的。在不久的將來我們將會看到很多自主的LE的設備,他們不直接依賴於手機平板或者電腦。他們只是安安靜靜的做著美男子,在你最需要的時候回眸一笑。他們的數量可能是數以百計的在你的家庭或者辦公室裡面存在,互相丟著肥皂而不讓你們知道。在協議中並沒有限制並發連接數。只是不同的協議棧實現各有不同。安卓4。3 似乎是7個。
我印象中標準說是7個,一個central可以同時跟7個peripheral連接。
好專業的回答!
藍牙連接數應該有2個數字:
1. 同時收發數據的終端數
2. 同時靜默數另外還要考慮:
這些藍牙設備間的兩兩通信
請各位大俠幫忙答覆?多謝贊成 @藍牙彪 的結論。
事實上,我們在實際連接操作中(android + ble),不同的ble設備和不同的android設備連接過程都有不同的表現。但一般來說,連接6~7個是沒有問題的,在N5 + 2541開發板上我們最多能連接8個,但是再多就算是能連上,也會馬上報257/133錯誤,斷開連接了。SKYLAB的藍牙模塊SKB360可以同時連接8個藍牙設備,藍牙mesh組網模塊SKB365連接的數量是2的15次方也就是32768個。藍牙BLE模塊SKB360_深圳市天工測控技術有限公司Mesh組網藍牙模塊SKB365_深圳市天工測控技術有限公司
推薦閱讀:
※為什麼 iOS 11 的控制中心的藍牙開關和 Wi-Fi 開關的關閉狀態不是永久的?
※筆記本bluetooth設備控制,應用程序初始化失敗?
※iPhone7藍牙一直搜不到其他設備是怎麼回事?
※如何理解 iPhone 7 不支持藍牙 APT-X 協議?
※藍牙4.0安全嗎?
TAG:藍牙Bluetooth | 低功耗藍牙 |