Porcentaje esperado de colisiones para transmisiones inalámbricas unidireccionales

Estoy desarrollando sensores a batería para medir diferentes parámetros dentro de mi casa.

Las mediciones se toman mediante controladores AVR simples (sin Arduino) a intervalos más o menos regulares y se envían de forma inalámbrica a un Arduino central con protección Ethernet que las transmite a mi servidor, donde se almacenarán.

Para mantener bajo el consumo de energía y mantener los sensores simples, planeé usar transmisores de 433 MHz en los sensores y un receptor en el Arduino: no se espera una comunicación bidireccional. Los sensores enviarán el valor y una suma de verificación y el receptor los verificará antes de retransmitir.

Si ocurren dos transmisiones al mismo tiempo, ya sea

  • el receptor no podrá entenderlos
  • la suma de control será incorrecta
  • uno de ellos será cubierto por el otro y se perderá.

Considero estos tres casos "colisiones".

Planeo introducir fluctuaciones "aleatorias" entre mediciones (y transmisiones, siempre se realizan juntas) agregando al intervalo predefinido un retardo pseudoaleatorio de 8 bits. Esto debería reducir el número de colisiones. Sin embargo, habrá algunos de todos modos dependiendo del número de sensores y de la duración de la comunicación. Además, los relojes de los sensores no están sintonizados, puede haber pequeñas variaciones (10% es la tolerancia del oscilador integrado en los AVR).

Puedo aceptar algunas colisiones, pero me gustaría estimar cuántas son para poder bajar la tasa de bits de la transmisión (y por lo tanto la potencia de transmisión) y para poder estimar cuántos sensores y qué lecturas frecuentes puedo permitirme.

Entonces, ¿es posible estimar las colisiones esperadas de acuerdo con

  • duración (en ms) de cada transmisión
  • número total de transmisiones por segundo

suponiendo que las transmisiones tienen lugar de forma más o menos homogénea?

Incluso si se puede suponer que la energía por bit es constante y, por lo tanto, debo apuntar a la tasa de bits más alta para ahorrar ciclos de CPU y pasar antes al modo de bajo consumo, la pregunta sigue siendo válida: saber cuántas colisiones debo esperar dado el frecuencia de las mediciones y el número de sensores?

Gracias

(¿Quizás alguien debería agregar "colisión" como etiqueta? Yo no puedo)

Respuestas (2)

Puedo aceptar algunas colisiones, pero me gustaría estimar cuántas son para poder bajar la tasa de bits de la transmisión (y por lo tanto la potencia de transmisión)

Reducir la velocidad de bits extenderá el tiempo de transmisión, lo que, irónicamente, puede aumentar el consumo total de energía.

Si tiene un valor promedio de todas las transmisiones por hora, creo que la probabilidad de que ocurran dos transmisiones en un período de tiempo determinado se puede calcular asumiendo una distribución de Poisson . Si la probabilidad de una transmisión en un período de tiempo determinado es (digamos) 0,1, entonces la probabilidad de más de una transmisión es 0,00468. Ver esta calculadora. Supuse que X era 1 y que la probabilidad, m era 0.1 y enchufamos los números.

Recuerde que si una transmisión tiene una duración de (digamos) 20 ms, debe considerar un período de hasta 60 ms de ancho porque podría ocurrir una transmisión colisionada justo al final de cualquiera de las transmisiones.

Parece razonable y completo, marcado como respuesta a menos que lleguen mejores. Con respecto al consumo de energía, lo sé y es por eso que mencioné que la pregunta también podría usarse para obtener la cantidad máxima de transmisiones por vez :) Buen punto sobre los 20 ms frente a los 60 ms, realmente no lo pensé.

Hice algunas medidas wrt. energía/bit en transmisiones inalámbricas.

Uno de los resultados es; elija la tasa de datos más alta posible, porque la ganancia en ancho de banda supera el aumento en el consumo de energía. 1

Estaría interesado en enlaces a medidas similares para transceptores de 433 MHz, o en sus datos.