Tengo una pregunta genérica con respecto a la comunicación inalámbrica y qué técnicas se pueden usar para detectar si dos transmisores envían el mensaje exactamente al mismo tiempo.
Dado que esta es una pregunta genérica y realmente no sé mucho sobre este campo y realmente me gustaría saber más, supongamos que estoy usando técnicas súper simples. Hablemos de la técnica de modulación de activación y desactivación (creo que la frecuencia de la portadora no importa, pero digamos la banda 433 IMS) y el uso de algún tipo de preámbulo (como el de Arduinos 433 lib que envía 25 1s y 0s alternados ).
¿Qué pasaría si dos transmisores comienzan a enviar sus datos al mismo tiempo? Supongo que habrá alguna interferencia constructiva/destructiva involucrada y la integridad de los datos se verá comprometida. ¿La única solución es tener la suma de verificación del mensaje como parte del mensaje y luego verificar la integridad y descartar los mensajes corruptos?
¿Cómo se maneja esto en Wi-Fi/Cellular/LoRa/... ?
¡Gracias!
ACK y Retransmisión es una solución común.
El remitente espera un ACK (reconocimiento) del receptor. Si no puede obtener ningún ACK del receptor (tal vez por un tiempo limitado), transmite el mensaje nuevamente. En BLE, por ejemplo, todos los paquetes perdidos (es decir, los paquetes que no devolvieron ningún ACK del receptor) se volverán a intentar infinitamente hasta que se pierda el enlace.
Por supuesto, los transmisores de los paquetes perdidos no estarán enviando simultáneamente para siempre. Uno de ellos eventualmente se enviará antes que el otro durante la retransmisión.
¿La única solución es tener la suma de verificación del mensaje como parte del mensaje y luego verificar la integridad y descartar los mensajes corruptos?
Es bastante estándar que se emplee alguna forma de método robusto de verificación de errores con la transmisión de datos por radio. Tampoco tiene nada que ver con dos transmisores simultáneos; un solo transmisor/receptor y cualquier forma de interferencia dentro de la banda causará una posible corrupción de sus datos, por lo que la verificación de errores no solo es agradable, es fundamental.
Hablemos de la técnica de modulación de activación y desactivación (creo que la frecuencia de la portadora no importa, pero digamos la banda 433 IMS) y el uso de algún tipo de preámbulo (como el de Arduinos 433 lib que envía 25 1s y 0s alternados ).
Además de la verificación de errores, debe verificar los bits de dirección contenidos en el mensaje, la longitud del mensaje y la integridad del preámbulo del mensaje si desea que su sistema sea lo más sólido posible.
A excepción de CDMA y algunos otros esquemas de modulación muy complejos que se usan en los teléfonos inteligentes, si dos transmisores transmiten un mensaje m a la misma frecuencia al mismo tiempo, el receptor es completamente incapaz de reconstruir el mensaje original m , a menos que un transmisor esté lejos y el otro está cerca del receptor.
Puedes hacer protocolos más o menos complicados para manejar esta situación. Cada uno tiene un conjunto diferente de ventajas y problemas. Independientemente, todas las transmisiones tienen que hacer checksums de contenedores o similares. Protocolos es la forma en que los informáticos tendemos a llamar las "reglas" para los sistemas que interactúan.
Para mí, se dividen en dos categorías distintas: con un maestro o sin él.
En un sistema con un maestro, la estación maestra puede sondear cada estación esclava para obtener información. Los esclavos envían solo cuando son encuestados. Además, el maestro verificará en algún intervalo si han llegado nuevas estaciones.
Sin un maestro, el protocolo se vuelve más complicado. Cada unidad tiene que tener un poco, o mucho, más de funcionalidad.
Una de las mejores soluciones es kallade SOTDMA y se utiliza en la comunicación AIS de datos de barcos. En esta configuración no hay maestro, todas las unidades se comportan igual. Para la división exacta del tiempo, se utiliza un reloj GPS para sincronizar las franjas horarias (de todos modos, los barcos tienen un GPS, ya que el mensaje contiene la posición y el rumbo/velocidad). Cada unidad escucha durante un rato para saber qué intervalos de tiempo, si los hay, están actualmente en uso y selecciona al azar uno de los libres. Consulte una breve descripción: http://www.allaboutais.com/index.php/en/technical-info/transmission-types/105-ais-technicals/technical-lfundamentals/93-sotdma
El acceso múltiple por división de tiempo, TDMA abreviado, se usa de diferentes maneras cuando se usa una sola frecuencia (como el ejemplo SOTDMA anterior). Un esquema que se conoce como STDMA (acceso múltiple por división de tiempo autoorganizado, parcialmente patentado) consiste en escuchar un silencio, luego enviar el mensaje y esperar una señal ACK del receptor. Si no recibe una señal de reconocimiento en poco tiempo, vuelva a enviar el mensaje. Para que dos estaciones no se "sincronicen", haga que el intervalo de espera entre retransmisiones sea controlado por alguna función aleatoria. Al recibir un mensaje, el receptor calcula la suma de verificación mientras lo recibe y, si es correcto, envía un acuse de recibo directamente. Puede hacer varias variaciones de esto, pero básicamente todas las unidades deben seguir el mismo protocolo para que funcione.
Como nota al margen...
Esta es una técnica que actualmente se utiliza en los sistemas de búsqueda para mejorar la cobertura y la intensidad de la señal en el receptor. Se llama transmisión simultánea de múltiples estaciones, o más coloquialmente, transmisión simultánea.
En un sistema de radiolocalización simultánea multiestación, cada estación base transmite la misma señal de RF (FSK) simultáneamente a la misma frecuencia. Los transmisores están sincronizados para garantizar la temporización de bits adecuada (por ejemplo, utilizando información de temporización de GPS). Un receptor de buscapersonas en el área superpuesta recibirá varias señales de RF transmitidas desde diferentes estaciones base.
Un receptor cercano a un transmisor, no tendrá problema en recibir los mensajes de buscapersonas del transmisor más cercano. Un receptor en algún lugar entre dos (o más) transmisores recibirá la señal combinada de los transmisores. Debido a que la distancia a cada transmisor es aproximadamente la misma, la señal combinada será más fuerte y tendrá la sincronización de bits correcta.
Las tasas de baudios de paginación son bastante bajas (512, 1200 o 2400 baudios), por lo que la sincronización de bits no es muy crítica. Los datos de paginación (Pocsag) utilizan la codificación BCH para la integridad del mensaje.
Andy alias
Lundin
Alan Birtles
Steve
Steve
Pellé