经典蓝牙
对于经典蓝牙来说,一个蓝牙主设备最多连接7个从设备,例如一个电脑连接蓝牙耳机、蓝牙键盘等经典蓝牙设备,最多连接7个。
经典蓝牙在一个piconet中有7个从属设备的限制,而且它们与主控设备的时间和跳数(time and hop)是同步的,即主控设备和从属设备共享一个共同的物理通道,当处于活动模式时,不可能为一个主控设备寻址超过七个从属设备。
即一个主机master,能与最多7个活动的从设备slave进行通信,因为地址使用3 bit表示,所以最大7个。
另外,同一piconet中最多有255个处于非活动状态(parked状态)的设备。
注:
Bluetooth Piconet: 蓝牙微网
BLE
对BLE来说,连接的设备数量没有限制,这完全取决于硬件/蓝牙协议栈的能力。
因为BLE使用24-bit的地址,所以理论上在一个星型网络上,可以连接百万以上的设备。
处于中心的是central device或master,与其连接的是peripheral或slave。
蓝牙规范没有对BLE的连接数进行限制,因此,理论上的最大值取决于与蓝牙相关的时序控制(即连接间隔和连接监督超时 connection interval and connection supervision timeout)。
在实际使用中,最多可同时连接上百个slave设备,因为每个连接都需要时间并占用内存。比如100个连接,那分给每个slave和master的通信时间平均每秒只有10ms。
但一般蓝牙BLE方案供应商在设计上允许的最大连接数不会太多,可能还是几个而已。
在BLE中,主设备到从设备的每个连接都在一个独立的物理通道中运行(即LE从设备不与主设备共享一个共同的物理通道),因此,除了连接间隔和从设备延迟规则所规定的以外,该规范没有施加任何限制(注意,个别蓝牙控制器制造商可能会根据实际带宽限制决定限制连接的数量)。
我试了一下,两个同类型的BLE键盘设备,用苹果手机只能连接一个,用Android手机两个都能连上。
说明,具体的BLE模式下的多连接,要以硬件软件实际支持为准。
注意:这里讨论的情况是简单连接网络,由处于中心的master或central device和处于外围的slave或peripheral device相连接,都是星型拓扑结构,没涉及到多个蓝牙网络之间的连接。
参考:
How many devices we can connect to bluetooth 5 - Stack Overflow
Central and Peripheral Roles - v3.1 - Bluetooth API Documentation Silicon Labs