¿La malla inalámbrica es una mala elección para dispositivos con sueño?

7

He estado pensando en lo que se necesitaría para construir una red de sensores de temperatura para el bloque de apartamentos en el que vivo. Una malla inalámbrica, si es que funciona , tendría algunas características agradables. En particular, podría colocar sensores en las áreas de almacenamiento de garaje y bodega donde no llegarían señales móviles o Wi-Fi.

Una posible razón para no usar malla es que probablemente también quiera usar dispositivos finales con sueño para evitar cambiar las baterías con frecuencia. Por lo que puedo ver, la única forma en que esto funcionará es con la sincronización del reloj para que los dispositivos se activen al mismo tiempo y el tiempo suficiente para que la señal se propague a través de la red.

Si bien he escuchado tal solución descrita, me pregunto qué tan bien funcionaría en la práctica. Presumiblemente, la sincronización periódica del reloj debe agregarse al protocolo para evitar la deriva. ¿Alguien tiene experiencia con esto, y existen otras estrategias para usar mallas y dispositivos con sueño, aparte de la sincronización del reloj?

Chris Steinbach
fuente

Respuestas:

7

En realidad, es posible permitir nodos inactivos sin la necesidad de sincronización horaria. La idea básica es enviar un mensaje varias veces hasta que el nodo finalmente se despierte. Por supuesto, hay mucho espacio para una optimización inteligente, por lo que hay cientos de enfoques de capa MAC basados ​​en esta idea.

Pero dado que su pregunta específicamente solicita capas MAC, donde un nodo sabe cuándo transmitir por adelantado, es decir, Acceso múltiple por división de tiempo (TDMA), me centraré en esos enfoques.

Como ya mencionó, un problema es la deriva del reloj, por lo que los dispositivos tienen que despertarse regularmente para la sincronización horaria. En las aplicaciones inalámbricas típicas de corto alcance de las que estamos hablando, la duración de la propagación de la señal en un solo salto no es un gran problema. Por lo tanto, es suficiente que un coordinador central envíe una baliza, incluida la hora actual, en intervalos de tiempo regulares que los nodos conocen.

En una red de múltiples saltos se vuelve más complicado. Simplemente reenviar la baliza no funcionará, porque la latencia es demasiado alta. La solución es que varios nodos (si no todos) envían balizas, es decir, reciben una baliza de un nodo más cercano al coordinador, corrigen la deriva del reloj y envían una baliza propia con la hora corregida. Solo debes evitar construir círculos (estado allí, hecho eso ...).

Como ahora todos los nodos de la red tienen la misma noción de tiempo, hay un segundo problema: ¿cómo sabe un nodo cuándo debe despertarse para transmitir o recibir? Básicamente hay cuatro enfoques, que también se pueden combinar:

  • Ranura común : todos los nodos se activan al mismo tiempo y utilizan un método de acceso basado en contención para transmitir sus paquetes. Ventaja : fácil (si sabe cómo hacer CSMA / CA). Desventaja : propenso a colisiones, menor rendimiento.

  • Predefinido : para un número restringido de nodos, solo puede asignar ranuras fijas a los nodos. Por ejemplo, el nodo 2 puede enviar al nodo 1 en el primer intervalo de tiempo y el nodo 3 puede enviar al nodo 2 en el segundo intervalo de tiempo. Ventaja : Tragamonedas dedicadas y sin colisiones. Desventaja : la topología tiene que ser fija (muy difícil en redes de malla inalámbricas).

  • Centralizado : un coordinador central solicita información de los nodos sobre la topología, calcula un cronograma global y lo distribuye nuevamente a los nodos. Ventaja : no se requiere una topología predefinida. Desventaja : se escala mal y es propenso a cambios en la topología (todo el proceso debe reiniciarse).

  • Descentralizado : dos nodos que desean comunicarse negocian la ranura ellos mismos. Es bastante complejo, ya que deben asegurarse de que ningún dispositivo vecino transmita al mismo tiempo. Ventaja : Escala bien porque la negociación es local. Desventaja : Complejo de implementar.

Hay dos técnicas relacionadas incluidas en el estándar IEEE 802.15.4 que actualmente encuentran mucha atención de investigación: TSCH y DSME.

TSCH en sí es bastante básico. Solo resuelve el problema de sincronización de tiempo, pero deja el problema de asignación de ranura para una capa superior. Hay 6TiSCH que intenta llenar este vacío, pero todavía está en progreso. Hay implementaciones, por ejemplo incluidas en Contiki u OpenWSN .

DSME, por otro lado, ya proporciona un mecanismo para la negociación descentralizada de slots. De hecho, hemos creado una implementación de código abierto de esto llamada openDSME . Si bien hay un video tutorial para ejecutar una simulación, desafortunadamente la implementación del hardware todavía está subdocumentada. Haga otra pregunta o contáctenos directamente si desea usarla.

koalo
fuente