Giao thức UART, như Mattias giải thích, là giao thức không đồng bộ dựa trên thời gian. Điều xác định ranh giới giữa các bit là thời gian lấy từ đầu bit bắt đầu. Vì vậy, vi điều khiển sẽ "lấy mẫu" bit (N+half)/baudrate
giây sau khi bit start bắt đầu. Nửa bit chỉ là lấy mẫu ở giữa các bit để nó có thể có một nửa chênh lệch về thời gian giữa máy thu và máy phát (hãy nhớ rằng sự khác biệt là tích lũy và trường hợp xấu nhất xảy ra ở bit cuối của mỗi khung, thường là, nhưng không phải luôn luôn, rộng 8 bit, tùy thuộc vào cấu hình). Chìa khóa để làm cho nó hoạt động là có máy thu và thu phát với tốc độ càng gần càng tốt.
Vì vậy, vi điều khiển đếm thời gian giữa mỗi bit để biết mỗi bit nằm trong một khung. Nhân vật tiếp theo sẽ đi vào khung hình tiếp theo. Khi mỗi khung kết thúc, vi điều khiển bắt đầu tự động lắng nghe khung hình tiếp theo, vì vậy khi bit bắt đầu tiếp theo xuất hiện, nó đã biết nên bắt đầu một khung mới. Đó là cách các nhân vật được tách ra.
Ngoài ra, tôi sẽ thêm rằng bạn thực sự không cần hai tần số để truyền đến vi điều khiển nhận UART. Bạn có thể sử dụng một tần số duy nhất là OOK thay vì hai tần số như FSK . Nó có hiệu suất phổ cao hơn và các mạch đơn giản hơn nhiều, vì bạn chỉ cần một bộ chuyển đổi sóng mang là máy phát và máy dò tần số duy nhất là máy thu, khá giống mã morse. Hãy nhớ thường sử dụng các sóng mang có tần số cao hơn nhiều so với tốc độ baud, nếu không các mạch đơn giản hơn sẽ không hoạt động chính xác.