Протокол UART, як пояснив Маттіас, є асинхронним протоколом на основі часу. Те, що визначає межі між бітами, - це час, відведений від початку початкового біта. Таким чином, мікроконтролер буде "вибірки" бітових (N+half)/baudrate
секунд після початку пускового біта. Половина біт - це просто зробити вибірку в середині бітів, щоб вона могла мати половинну різницю в часі між приймачем і передавачем (пам’ятайте, що відмінності накопичуються, а найгірший випадок трапляється в останньому біті кожного кадру, як правило, але не завжди, 8-бітова ширина, залежно від конфігурації). Ключовим для його роботи є отримання приймача та приймача з баудратами якомога ближче.
Отже, мікроконтролер рахує час між кожним бітом, щоб знати, де кожен біт знаходиться в кадрі. Наступний символ перейде в наступний кадр. Коли кожен кадр закінчується, мікроконтролер починає слухати наступний кадр автоматично, тому, коли настає наступний біт запуску, він уже знає, що він повинен запустити новий кадр. Ось так розділяються персонажі.
Додатково додам, що вам фактично не потрібні дві частоти для передачі на мікроконтролер, що приймає UART. Ви можете використовувати одну частоту як OOK замість двох частот як FSK . Він має більш високу спектральну ефективність, а схеми набагато простіші, оскільки вам потрібен лише перемикач несучої хвилі як передавач і одиночний детектор частоти як приймач, що дуже схоже на код Морзе. Пам'ятайте, як правило, використовуйте носії з частотами, які набагато вище, ніж боудрат, інакше прості схеми працюватимуть неправильно.