Usando BLE, ¿qué tan rápido puedo obtener ~ 50 bytes de datos del maestro a un esclavo? ¿Cómo cambia eso al aumentar el número de esclavos presentes?

1

En el proyecto personal mío, busco tener un sistema donde un número de periféricos deban haberles proporcionado, en el mayor tiempo posible, pequeñas cantidades de información desde un controlador central. Estaba considerando el uso de Bluetooth de baja potencia para esto y me pregunto qué tipo de rendimiento podría esperar. ¿Cuántas veces por segundo puedo enviar este 'paquete' de datos si solo hubiera un periférico? ¿Y si el número aumenta a, digamos, diez?

    
pregunta Sanuuu

1 respuesta

2

Usted estará limitado por lo que se conoce como el Intervalo de conexión. Esto define la frecuencia con la que la Central (host) se comunica con el Periférico.

BLE utiliza un esquema de salto de frecuencia; dos dispositivos envían y reciben datos entre sí en un canal específico, y luego se reúnen en un nuevo canal más tarde. El tiempo entre cada salto se define como el Intervalo de conexión.

Puede haber un máximo de seis paquetes (cuatro para iOS) enviados por intervalo de conexión, y cada paquete puede tener hasta 20 bytes de carga útil. Entonces, en su caso, usaría tres paquetes, que cabrían en un intervalo de conexión. Usted desperdiciaría los paquetes restantes.

De acuerdo con la especificación BLE, el rango permitido para el parámetro Intervalo de conexión es de 7.5 ms a cuatro segundos. Con un intervalo de conexión mínimo de 7,5 ms, podría enviar teóricamente 133 conexiones por segundo. Por lo tanto, su rendimiento sería de 133 * 50 * 8 = 53.2 kb / s. Esto no cuenta el tiempo inicial para establecer una conexión inicial durante la búsqueda de dispositivos BLE Periféricos (que enviarán paquetes de publicidad de forma periódica). Además, si se debe enviar un ACK para acusar recibo de los paquetes de datos, esto requerirá otro Intervalo de conexión y, por lo tanto, reducirá a la mitad la velocidad de datos.

Nota: las pautas de Apple iOS limitan el intervalo mínimo de conexión a 20 ms, no a 7.5. Entonces solo tendrías un máximo de 50 conexiones por segundo. En ese caso, el rendimiento sería 33 * 50 * 8 = 20.0 kb / s.

Aquí hay más información sobre las tarifas de datos BLE.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas