Protokół UART, jak wyjaśnił Mattias, jest protokołem asynchronicznym opartym na czasie. To, co określa granice między bitami, to czas pobierany od początku bitu początkowego. Mikrokontroler „spróbuje” bit (N+half)/baudrate
po sekundach od rozpoczęcia bitu startowego. Pół bit jest po prostu próbkujący w środku bitów, aby mógł mieć pół-bitową różnicę w czasie między odbiornikiem a nadajnikiem (pamiętaj, że różnice kumulują się, a najgorszy przypadek występuje w ostatnim bicie każdej ramki, co zwykle jest ale nie zawsze, szerokość 8 bitów, w zależności od konfiguracji). Kluczem do tego, aby działał, jest jak najbliższy odbiornik i nadajnik-odbiornik z szybkościami transmisji.
Mikrokontroler zlicza czas między poszczególnymi bitami, aby wiedzieć, gdzie każdy bit znajduje się w ramce. Następna postać przejdzie do następnej klatki. Kiedy kończy się każda ramka, mikrokontroler zaczyna automatycznie nasłuchiwać następnej ramki, więc kiedy nadchodzi następny bit startowy, już wie, że powinien rozpocząć nową ramkę. W ten sposób rozdzielane są postacie.
Dodatkowo dodam, że tak naprawdę nie potrzebujesz dwóch częstotliwości do transmisji do mikrokontrolera odbierającego UART. Możesz użyć pojedynczej częstotliwości jako OOK zamiast dwóch częstotliwości jako FSK . Ma wyższą efektywność widmową, a obwody są znacznie prostsze, ponieważ potrzebujesz jedynie przełącznika fali nośnej jako nadajnika i pojedynczego detektora częstotliwości jako odbiornika, podobnie jak kod Morse'a. Pamiętaj, aby na ogół używać nośnych o częstotliwościach znacznie wyższych niż szybkość transmisji, w przeciwnym razie prostsze obwody nie będą działać poprawnie.