¿Cuál es el tamaño máximo de paquete de un LoraWan, incluidos los encabezados phy?


7

Creé un paso de LoRa a USB a través de Arduino para usarlo como una puerta de enlace temporal para fines de desarrollo. Entonces, de alguna manera, necesito saber qué tan grande es un paquete LoRa que incluye encabezados PHY, para determinar cuánto tiempo tomará mi software leer y enviar los datos en la parte superior de un USB.

En palabras, mi arquitectura será la siguiente:

Arquitectura para LoraWan

Por lo tanto, la PC / computadora portátil necesitará "saber" qué tan grande será el paquete LoRa para no recibir a través de USB innumerables números de bytes.


1
Por otro lado: de forma predeterminada, LMiC solo admite cargas de hasta 51 o 52 bytes, consulte github.com/matthijskooijman/arduino-lmic/issues/100 Y algunos proveedores, como el KPN holandés, solo permiten 51 bytes de todos modos: zakelijkforum.kpn .com / lora-forum-16 / ... En cierto modo, está bien: si un nodo necesita soportar SF12, tampoco debería enviar más en mejores condiciones.
Arjan

Respuestas:


7

¿Qué tan grande es un paquete LoRa que incluye encabezados PHY?

¿Supongo que te refieres al encabezado MAC? Después de que un chip LoRa haya demodulado las señales de radio LoRa por usted, le dará la carga útil LoRa PHY. Para un enlace ascendente LoRaWAN, dicha carga útil PHY contiene un encabezado MAC, carga útil MAC y MIC.

Para 1.0.x, la regla general parece ser que un paquete LoRaWAN es al menos 13 bytes más grande que la carga útil de la aplicación:

Creo que generalmente al menos 13 [MHDR (1) + DevAddr (4) + FCtrl (1) + FCnt (2) + Fport (1) + MIC (4)] en un paquete sin opciones

La carga útil máxima de la aplicación depende de la velocidad de datos seleccionada. Si un nodo debe poder operar en las peores condiciones, entonces uno debe asumir la peor velocidad de datos, SF12, donde el nodo no debe enviar más de aproximadamente 51 bytes. (Donde, en las mejores condiciones, SF7, eso podría ser 222 bytes). Creo que todo eso también depende de la región. (Y las cosas podrían ser mejores cuando el nodo LoRaWAN no usa LoRa, sino FSK).

Entonces, para su caso de uso, trataría de no depender de una longitud máxima a través de USB. En lugar:

  • Puede convertir fácilmente el paquete binario LoRaWAN a texto sin formato con Base64 . A continuación, puede enviar como texto a través de USB y terminar con un salto de línea o un NULL -character dejar que sus habilidades receptor cuando el mensaje USB es completa. Incluso puede enviar metadatos adicionales en esa línea de texto si elige un separador que no está en el juego de caracteres Base64.

  • Por ejemplo, el protocolo UDP Semtech entre puertas de enlace y servidores utiliza mensajes de texto JSON, lo que también le permite pasar metadatos adicionales. En el texto JSON, el paquete binario LoRaWAN también se codifica utilizando Base64. Si el texto JSON está bastante formateado para incluir nuevas líneas, aún puede terminar dicho mensaje de texto con un carácter NULL y su receptor no se confundirá.


de acuerdo con la especificación LoRaWAN V1.0.X El campo Fport es opcional, por lo que la longitud mínima es en realidad 12 bytes
RoKK

Es cierto, @RoKK, si no hay carga útil de la aplicación. Pero si hay una carga útil de la aplicación, entonces FPort es obligatorio, por lo que cualquier carga útil de la aplicación siempre agrega al menos 13 bytes. (Y posiblemente también algunos comandos MAC en FOpts. Por otro lado, los 13 bytes tampoco se aplican a las uniones OTAA.)
Arjan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.