El protocolo UART, como explicó Mattias, es un protocolo asíncrono basado en el tiempo. Lo que define los límites entre los bits es el tiempo tomado desde el principio del bit de inicio. Por lo tanto, el microcontrolador "muestreará" el bit (N+half)/baudrate
segundos después de que comience el bit de inicio. El medio bit es solo para muestrear en el medio de los bits, por lo que puede tener una diferencia de medio bit en el tiempo entre el receptor y el transmisor (recuerde que las diferencias son acumulativas y el peor de los casos ocurre en el último bit de cada trama, que suele ser, pero no siempre, ancho de 8 bits, dependiendo de la configuración). La clave para que funcione es tener el receptor y el transceptor con velocidades de transmisión lo más cerca posible.
Entonces, el microcontrolador cuenta el tiempo entre cada bit para saber dónde está cada bit dentro de un marco. El siguiente caracter entrara en el siguiente cuadro. Cuando termina cada cuadro, el microcontrolador comienza a escuchar el siguiente cuadro automáticamente, de modo que cuando llega el siguiente bit de inicio ya sabe que debe comenzar un nuevo cuadro. Así es como se separan los personajes.
Además, agregaré que en realidad no necesita dos frecuencias para transmitir a un microcontrolador receptor UART. Puede usar una sola frecuencia como OOK en lugar de dos frecuencias como FSK . Tiene una mayor eficiencia espectral y los circuitos son mucho más simples, ya que solo necesita un conmutador de onda portadora como transmisor y un detector de frecuencia única como receptor, muy parecido al código Morse. Recuerde usar generalmente portadoras con frecuencias mucho más altas que la velocidad de transmisión, de lo contrario los circuitos más simples no funcionarán correctamente.