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.
¿Está utilizando este tipo de módulos?
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 'arena '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.
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.
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.
Anguila trifásica
Ilker Demirel