Esos tipos de transmisores y receptores solo funcionan en un solo canal. Los receptores generalmente emplean una forma de control de ganancia activa (AGC), por lo que aumentarán la ganancia hasta que se reciba algo (generalmente ruido). La ganancia se reduce a un nivel apropiado cuando se inicia una transmisión.
Generalmente, la mejor práctica es:
- Acepte una tasa de bits entre los dos sistemas (por ejemplo, 4800 bps). Generalmente
los pares de receptor / transmisor le darán una guía sobre estos.
- Transmita un preámbulo de 10101010 (generalmente entre 8 y 40 bits) antes de iniciar la transmisión principal. Esto tiene dos propósitos: permite al AGC establecerse en
Un buen punto, y puede ser detectado por el microcontrolador por lo que es
consciente de que se está iniciando una transmisión.
- Transmitir una palabra de sincronización, p. ej. 0xD5F7, y solo escuche paquetes que tengan la palabra de sincronización correcta. La longitud de la palabra de sincronización varía.
- Use el resto del paquete de datos para detallar la dirección, dirección y
datos.
Descubrí que la biblioteca VirtualWire para Arduino es en realidad un ejemplo claro y agradable de Como va esto. Tal vez eche un vistazo, incluso si está trabajando con otra familia de microcontroladores.
Otra cosa que vale la pena considerar es la codificación de bits. Solo puedes enviar un 1 como un 1 y un 0 como un 0. Sin embargo, hay esquemas más complejos. La codificación de Manchester garantiza que cada bit de datos transmitidos tenga al menos una transición de señal. Esto tiene dos efectos significativos:
- Independientemente de los datos enviados, habrá un número igual de altos y bajos enviados. Esto significa que el AGC puede funcionar correctamente y no hay una polarización de CC en la señal.
- Como hay una transición para cada bit, es fácil recuperar el reloj de la señal incluso si no se conoce. Esto realmente significa que los transmisores ya no tienen la necesidad de usar un cristal externo: el oscilador interno es lo suficientemente preciso.