Problemas de ruido de RF de 433 MHz

Sé que esta es una pregunta de novato. Estoy tratando de establecer una comunicación inalámbrica entre dos microcontroladores 8051 utilizando un módulo RF de 433 MHz. Pero dado que 433 MHz es una frecuencia bastante ruidosa, el receptor inmediatamente comienza a recolectar basura. En este caso, ¿la implementación de un filtro de software haría el trabajo para eliminar los datos basura o mis datos se alterarán por completo en el camino? Gracias de antemano.

¿Puede caracterizar la(s) fuente(s) de ruido involucradas?
En realidad, estoy enviando caracteres ascii de un microcontrolador a otro y luego los muestro en la pantalla LCD. Pero los caracteres que se muestran en la pantalla LCD no son los esperados. No sé si esto se debe a que el ruido corrompe los datos o es solo un problema de transmisión con el hardware que estoy usando. En cuanto a la fuente de los ruidos, no puedo señalar una fuente determinada que esté usando 433 MHz para la comunicación en el entorno que domina mi módulo.

Respuestas (4)

¿Está utilizando este tipo de módulos?

ingrese la descripción de la imagen aquí

En caso afirmativo, no espere que funcionen sin los algoritmos de filtrado de ruido de software adecuados. Este módulo entregará datos en la salida Rx incluso si no hay otro transmisor operando a 433MHz. Esto se debe a que este dispositivo funciona con OOK (activación y desactivación) y AGC (control automático de ganancia). Por lo tanto, si Rx no detecta ninguna señal durante un tiempo, reducirá automáticamente el umbral y, una vez que el umbral se acerque al nivel de ruido, el ruido se interpretará como el flujo de bits de 1 'arena 0 's.

Para identificar correctamente sus paquetes, agregue 3-4 bytes de identificación a cada uno de los marcos que transmite. Agregar más bytes de identificación reducirá la probabilidad de que el ruido se interprete como su paquete. Por lo general, 3-4 bytes son suficientes.

Además, lleva algo de tiempo (unas pocas duraciones de bits) ajustar el umbral con el nivel de la señal de transmisión, por lo que si no está transmitiendo continuamente, es mejor enviar 1 o 2 bytes basura antes de transmitir cualquier cuadro (ya que los bits iniciales tienen algunos posibilidad de corromperse debido a un nivel de umbral inicial incorrecto).

Solución de hardware: un conjunto de chips común utilizado en dicho módulo receptor es PT4317. Si revisa la hoja de datos , puede ver que las entradas del cortador de datos están disponibles fuera del chip. Por lo tanto, el umbral de corte se puede ajustar manualmente asignando correctamente el voltaje de umbral al pin DSN. Pero esto comprometerá la sensibilidad del receptor y, por lo tanto, el rango más largo con el que puede operar. Tendrá que experimentar con diferentes valores del voltaje de este pin y el rango que produce.

Sí, y este es exactamente el caso. Por ejemplo, cuando envío 6 bytes de datos, el último de los bytes siempre llega de manera segura y aparece en la pantalla LCD, pero los primeros dos bytes son muy inconsistentes, pueden ser verdaderos o falsos. Gracias por tu consejo.

No tiene por qué ser el entorno el que es ruidoso, también es el propio receptor el que produce ruido. La forma en que se resuelve en la mayoría de los dispositivos de 433 MHz es mediante el uso de la codificación de los datos . Entonces, los paquetes de datos consisten en los datos en sí más un código adicional para que el micro pueda reconocer los paquetes de datos y distinguirlos del ruido.

Hay bibliotecas para Arduino para la transferencia de datos a más de 433 (o 315) MHz. Un ejemplo es la biblioteca Virtualwire . Le sugiero que mire en esos para ver cómo se hace.

Simplemente no espere un canal "limpio" cuando no está enviando datos. Las comunicaciones de 433 MHz no funcionan así. Están diseñados con un receptor y transmisor extremadamente simples (y baratos) que usan modulación OOK (también simple), el bit "inteligente" se realiza luego en el software mediante correlación, reconocimiento de patrones, etc. Dado que es para velocidades de datos bajas, esto se puede hacer incluso en un simple microcontrolador.

No hay nada en la banda de 433 MHz que la haga especialmente ruidosa, aunque puede haber interferencias ocasionales de otros usuarios de la banda, probablemente eso no sea lo que estás viendo.

Los receptores simples pueden aumentar la ganancia en ausencia de una señal hasta que su propio ruido interno se decodifique como señales espurias, y eso es probablemente lo que está viendo: es poco probable que el filtrado de software sea una solución.

Consulte la hoja de datos de su receptor: puede haber una salida RSSI - (Indicador de intensidad de la señal recibida), generalmente un voltaje analógico, que representa la intensidad de la señal entrante (y no con mucha precisión).

Un enfoque es leer esto en un canal analógico (ADC) e ignorar la salida del receptor si el RSSI está por debajo de cierto nivel. Si no está intentando alcanzar el rango máximo, puede configurar este nivel bastante alto para que solo decodifique una señal fuerte con pocos errores.

De lo contrario, es posible que deba combinarlo con algún otro esquema de mitigación de errores (retransmisión de mensajes defectuosos o códigos de corrección de errores, por ejemplo). Los detalles son demasiado amplios para una simple sesión de preguntas y respuestas, pero cómo cumplir con un objetivo de servicio específico podría ser una mejor pregunta.

Los receptores baratos de 433 MHz suelen ser diseños regenerativos, que en esencia siempre "recibirán" algo y solo se calmarán cuando haya una señal calificada. Esto es vagamente similar a un AGC hiperactivo en un mejor receptor, pero un poco diferente y mucho más primitivo.
@ChrisStratton Así es (aunque creo que te refieres a superregenerativo). Y no todos tienen RSSI: mejor buscar uno que lo tenga.

Experimento mental: retire la antena del receptor, reemplácela con un cortocircuito desde la conexión de la antena en la placa de circuito impreso a tierra en la placa de circuito impreso. Coloque el receptor en una jaula de Faraday perfecta y solo cuando lo enfríe a un nivel significativamente cercano al cero absoluto, el control automático de ganancia en el receptor no será lo suficientemente sensible para captar el ruido y amplificarlo.

Estos suelen ser receptores regenerativos, por lo que no se trata solo de ruido, sino del comportamiento real del propio receptor en ausencia de señal.