El FS1000A es un transmisor OOK (On Off Keying) de 433MHz. Produce una onda portadora continua de 433 MHz cuando la señal de entrada digital es alta (con clave 'ENCENDIDO'), y ninguna portadora cuando la entrada es baja (con clave 'APAGADA'). OOK es una forma de Modulación de amplitud adecuada para transmitir señales digitales.
Esta transmisión podría recibirse con un simple circuito sintonizado y un detector de diodo (es decir, un 'conjunto de cristal') para recrear la señal digital original, pero solo a corta distancia porque la intensidad de la señal de RF disminuye rápidamente con la distancia (y el FS1000A solo saca unos pocos milivatios, por lo que el rango sería extremadamente corto!).
La mayoría de los usuarios quieren más de unos pocos cm de rango, por lo que el XY-MK-5V usa un superregenerativo simple pero muy efectivo
-
cuando la señal de RF está desactivada, el receptor 'enrolla la ganancia' tratando de detectar la señal inexistente entre los pulsos de la onda portadora. Si la portadora está APAGADA durante demasiado tiempo, los impulsos de ruido comenzarán a aparecer entre los períodos de ENCENDIDO. Cuando no se transmite ninguna señal, la salida del receptor es solo un ruido de ruido.
-
La salida de un detector superregenerativo es AC , por lo que la señal digital de 0-5V DC se convierte en una señal de audio cuyo voltaje DC promedio varía según la relación de los tiempos de pulso de alto a bajo. El XY-MK-5V tiene un segmentador de datos que intenta regenerar la señal digital, pero solo funciona correctamente cuando la relación alta / baja no está muy lejos del 50%.
Su señal de pulso de servo es alta para 1 ~ 2 ms y baja para 18 ~ 19 ms, una relación de ENCENDIDO / APAGADO de solo 5 ~ 11%. Es probable que esto sea demasiado bajo para que el cortador de datos funcione de manera confiable, y el largo tiempo de apagado puede ser suficiente para causar ruido cuando el receptor 'aumenta la ganancia'. El resultado final es que su señal digital no se recibe limpiamente.
Para resolver estos problemas, necesita 'codificar' el pulso del servo en una señal digital cuya relación de ENCENDIDO / APAGADO promedio no sea demasiado lejos del 50% (para mantener feliz al cortador de datos) y con tiempos cortos entre pulsos (para mantener el AGC del receptor feliz). Luego, en el extremo receptor, debe "decodificarlo" de nuevo a un pulso de servo de 1 ~ 2 ms.
Una forma sencilla de hacerlo es producir una señal PWM del 50% cuyo período varía de 1 a 2 ms. En el receptor puede usar otro PIC que mide el período y lo utiliza para controlar su propio servo generador de pulso. (La razón para usar el período en lugar del ancho de pulso es evitar errores de tiempo debidos a tiempos de subida y caída de pulso desiguales).
Un protocolo más complicado podría enviar datos digitales a través de Codificación Manchester o algún otro esquema de codificación amigable de RF, con un decodificador correspondiente en el receptor. Los datos digitales generalmente necesitan bits de sincronización para identificar dónde comienzan y terminan los paquetes de datos, y más bits (paridad / suma de comprobación / CRC) para detectar y posiblemente corregir errores. Esto puede hacer que la codificación de los protocolos de datos digitales sea bastante compleja.
Un UART está diseñado para enviar y recibir datos seriales asíncronos a través de cables. El formato de datos normalmente no es compatible con RF porque la señal puede pasar largos períodos de tiempo siendo alta o baja sin intentar mantener un promedio del 50%. Esto puede solucionarse seleccionando cuidadosamente qué patrones de datos transmitir, o codificando más la salida. Sin embargo, a menos que necesite transmitir y recibir una gran cantidad de datos digitales, puede ser más fácil simplemente 'golpear a su alrededor' su propio protocolo.
UARTS tiene un sistema de detección de errores muy básico que usa un bit de 'paridad' para verificar que el número de '1's en un byte es par o impar, y pueden detectar errores de' trama 'causados por la falta de los bits de inicio y parada. Sin embargo, a menudo esto es no suficiente para atrapar todos los errores causados por el ruido de RF.