¿Qué técnica es más adecuada para múltiples (10+) comunicaciones Bluetooth simultáneas? CC2564

Estoy desarrollando un hardware industrial que se comunica a través de BLE 5.0. El diseño es el siguiente: varios dispositivos: (10, 20 dispositivos) se comunica con una tasa de bits alta (alrededor de 20 bytes cada 50 ms, por lo que alrededor de 150 3,2 kbps). A veces también es el central el que comunica, pero mayoritariamente es periférico vs. central.

Estoy desarrollando esta arquitectura con transmisores CC2564 ( https://www.ti.com/lit/ds/symlink/cc2564.pdf?ts=1616973324278&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FCC2564 ).

Ahora, tengo las siguientes opciones:

  1. emparejar todos los dispositivos, antes de la transmisión
  2. conéctese a través de una conexión BLE, sin emparejamiento, y administre la transmisión de datos mediante la lectura o escritura característica.
  3. no conectar dispositivos, pero transmitir mensajes usando el sistema de publicidad.

La pregunta es: ¿qué enfoque usaría para evitar el colapso de datos, aumentar el alcance y la confiabilidad de la transmisión, que es crucial, y evitar perder datos o, peor aún, la conexión?

¿Ve algún posible problema que deba saber o límite intrínseco de bluetooth para este tipo de aplicación?

Gracias por tus sugerencias.

¿Parece que quieres algo que no sea bluetooth?
@MarcusMüller ¿por qué no? Pero si hay algo más adecuado, estoy abierto a cualquier propuesta. AFAIK, bluetooth 5.0 admite conexiones ilimitadas ( stackoverflow.com/questions/48418427/… ).
sí, pero BLE básicamente no está coordinado. ¡Se dirige a una situación en la que obtiene más colisiones que datos!
@MarcusMüller ese es el punto. Como puede ver, la tasa de bits es bastante baja. Si existiera algún sistema de subdivisión automática en diferentes canales, esto podría no ser cierto. ¿Qué tecnología sugieres? De todos modos, pienso en un área abarrotada: hay cientos de dispositivos bluetooth publicitarios y bluetooth que aún funcionan. Sé que el caso de uso es bastante particular, por eso pregunto.
hablemos menos sobre la tasa de bits y más sobre el ciclo de trabajo. cada uno de sus 20 dispositivos está transmitiendo activamente ¿cuánto % del tiempo?
@MarcusMüller 20 bytes cada 50 ms. Entonces, si la tasa de bits es de 115k, la comunicación duraría solo 1 ms, por lo que teóricamente el ciclo de trabajo sería más que suficiente, digamos para 10 dispositivos. Cualquiera, la probabilidad de colisión se vuelve alta si internamente no existe la posibilidad de división en canal: este es un punto crucial.
entonces, ese es un ciclo de trabajo del 2% por dispositivo. Con 20 dispositivos, eso le da una probabilidad de colisión muy sólida, de hecho. No puede "predividir" las cosas en canales con bluetooth LE. Realmente no estoy seguro de lo que gana al usar BLE en lugar de un modo ISM de menor complejidad donde puede a) predefinir canales estrechos y b) tener un esquema fijo donde sus nodos saben cuándo es su turno después de un anuncio por parte del maestro.

Respuestas (1)

Siento que está tratando de enfatizar demasiado la arquitectura BLE. Un envío de atributo cada 50ms desde 20 nodos necesitaría una central con un intervalo de conexión de 2.5ms. Lástima que el mínimo sea de 7,5 ms (exactamente seis tics de 1,25 ms)

Creo que debería revisar su necesidad de ancho de banda y tal vez usar otro tipo de protocolo.

Esto, por supuesto, si el maestro realmente admite 20 nodos conectados. Al transmitir datos en el protocolo de publicidad (es decir, como una baliza), el límite sube a 20 ms, pero es muy posible que ocurra algún conflicto: la idea es que incluso si un anuncio está desordenado, el siguiente llegará más o menos correctamente (pero por supuesto que el aire se saturará)

¿Qué protocolo comercial sugiere utilizar?