UART jest powszechną metodą komunikacji szeregowej stosowaną w wielu systemach wbudowanych. Wysyła dane po jednym bitze na raz bez wspólnej linii zegara, stosując dopasowane ustawienia do utrzymania synchronizacji. Niezawodne łącza UART zależą od prawidłowego okablowania, prędkości transmisji, formatu klatki, poziomów napięcia i synchronizacji sygnału. Ten artykuł zawiera informacje o działaniu UART, konfiguracji, zastosowaniach oraz typowych problemach.

Podstawy uniwersalnego asynchronicznego odbiornika-nadajnika (UART)
UART oznacza Universal Asynchronous Receiver-Transmitter (Uniwersalny Asynchroniczny Odbiornik-Nadajnik). Jest to interfejs komunikacji szeregowej, który przesyła dane po jednym bitze pomiędzy podłączonymi urządzeniami. Blok UART jest wbudowany w wiele mikrokontrolerów, procesorów, układów komunikacyjnych i modułów wbudowanych. Podczas transmisji konwertuje dane równoległe na strumień szeregowy, a podczas odbioru przekształca dane przychodzące szeregowe z powrotem na bajty. UART nie korzysta z wspólnej linii zegara. Zamiast tego oba urządzenia pozostają synchronizowane poprzez stosowanie odpowiednich ustawień komunikacji oraz wykrywanie początku i końca każdej ramki danych.
Powody, dla których UART pozostaje powszechny
• Używa tylko kilku linii sygnałowych
• Jest prosta do bezpośredniej komunikacji
• Jest zawarty w wielu urządzeniach wbudowanych
• Obsługuje odczytywalne wyjście przez terminale szeregowe
Jak działają ramy i timing UART?
Części ramy UART

| Element ramki | Funkcja |
|---|---|
| Bit startowy | Oznacza początek ramy |
| Bity danych | Carry the value jest wysyłany |
| Bit parzystości | Dodaje podstawową kontrolę błędów po użyciu |
| Stop bit | Oznacza koniec ramki |
| Stan bezczynności | Utrzymuje linię wysoko, gdy nie są wysyłane dane |
Główne ustawienia UART
| Miejsce akcji | Co kontroluje |
|---|---|
| Szybkość transmisji | Prędkość komunikacji |
| Bity danych | Liczba bitów wartości w każdej klatce |
| Parzystość | Czy dodana jest kontrola parzystości |
| Bity stopu | Format kończący ramkę |
| Kontrola przepływu | Tempo przesyłania danych między podłączonymi urządzeniami |
Prędkość transmisji pozwala na to, jak szybko wysyłane są bity. Wyższe prędkości transmisji zwiększają prędkość transmisji, ale wymagają dokładniejszego timingu i czystszej ścieżki sygnału. Komunikacja UART zależy także od dopasowania ustawień ramek po obu stronach.
Typowe prędkości transmisji
| Szybkość transmisji | Typowe zastosowanie |
|---|---|
| 9600 | Podstawowe terminale, proste moduły i starsze systemy |
| 19200–38400 | Komunikacja średniej prędkości |
| 57600 | Szybsze połączenia sterujące i diagnostyczne |
| 115200 | Wyjście konsoli i debugowanie |
Długość klatki i efektywność danych
Długość klatki wpływa na to, ile użytecznych danych jest przekazywanych w każdej transmisji. Dwa łącza UART mogą używać tej samej prędkości transmisji, ale nadal dostarczać różną efektywną przepustowość danych, jeśli ich formaty ramek się różnią. Na przykład 8N1 i 7E1 używają różnych liczb bitów na klatkę, więc ilość danych ładunku na klatkę nie jest taka sama.
Okablowanie UART, poziomy napięcia i kontrola przepływu

Podstawowe połączenie UART wykorzystuje trzy główne sygnały: TX, RX i GND. Pin TX jednego urządzenia łączy się z pinem RX drugiego urządzenia i oba urządzenia muszą dzielić tę samą masę, aby poziomy sygnału były poprawnie odczytane.
Wiele mikrokontrolerów i modułów wykorzystuje poziomy TTL lub CMOS UART, często przy napięciu 3,3 V lub 5 V. Starsze systemy szeregowe mogą korzystać z RS-232, który ma inny zakres napięcia i sposób sygnalizacji, więc nie jest bezpośrednio kompatybilny z TTL UART. Do łączenia tych standardów stosuje się transceiver przesuwający poziom.
Niektóre łącza UART również wykorzystują kontrolę przepływu, aby zapobiec utracie danych, gdy jedna ze stron nie może wystarczająco szybko przyjmować bajtów przychodzących.
Podstawowe zasady okablowania UART
• Sygnał z jednego urządzenia łączy się z RX na drugim urządzeniu
• Sygnał z jednego urządzenia łączy się z odbiorem na drugim urządzeniu
• Uziemienie musi być połączone po obu stronach
Standardy elektryczne UART
| Typ | Typowe zastosowanie | Główny punkt |
|---|---|---|
| TTL/CMOS UART | Mikrokontrolery, moduły, płyty rozwojowe | Wykorzystuje sygnały na poziomie logicznym, takie jak 3,3 V lub 5 V |
| RS-232 | Starsze porty szeregowe, łącza przemysłowe, połączenia szeregowe PC | Wykorzystuje inny zakres napięć i zachowanie sygnalizacji |
Powszechne metody kontroli przepływu
• Sprzętowa kontrola przepływu wykorzystuje linie RTS i CTS
• Programowa kontrola przepływu wykorzystuje znaki XON i XOFF
Sprzętowa kontrola przepływu wykorzystuje oddzielne linie sterujące do zarządzania przepływem danych. Programowa kontrola przepływu zmniejsza liczbę przewodów, ale wykorzystuje znaki sterujące w strumieniu danych.
Jak działa UART wewnątrz urządzenia?
Wewnątrz urządzenia peryferium UART składa się z kilku elementów obsługujących wysyłanie i odbiór danych. Części te często obejmują sekcję nadawczą, sekcję odbiorczą, rejestry przesuwcze, flagi statusu oraz bufory FIFO. Po przesłaniu danych oprogramowanie umieszcza bajt w UART, a sprzęt dodaje bit startowy, opcjonalny bit parzystości oraz bit stop, zanim przejdzie pełna klatka przez linię TX.
Po odebraniu danych UART obserwuje linię RX pod kątem poprawnego bitu startowego. Następnie pobiera próbkę sygnału we właściwym czasie, odbudowuje bajt, sprawdza format ramki i przechowuje dane, aby oprogramowanie mogło je później odczytać.
Peryferia UART również raportują status i błędy, podczas gdy bufory FIFO przechowują kilka bajtów, aby zmniejszyć liczbę pominiętych danych, gdy oprogramowanie nie odpowiada natychmiast.
Typowe flagi statusu i błędu UART
• Pusty bufor nadawczy
• Odbiór bufora pełnego
• Błąd parzystości
• Błąd ramowania
• Błąd przekroczenia
Typowe zastosowania UART w systemach wbudowanych
• Debugowanie terminala szeregowego
• Komunikacja między mikrokontrolerem a modułem
• Linki do bootloadera i aktualizacji oprogramowania
• Proste interfejsy poleceń i odpowiedzi
• Logowanie danych i diagnostyka
• Dostęp do konsoli płyty wbudowanej
Konfiguracja, testowanie i rozwiązywanie problemów UART
Konfiguracja łącza UART zaczyna się od wyboru kompatybilnych ustawień komunikacji i poziomów sygnału. Testowanie pomaga potwierdzić, że łącze jest poprawnie podłączone, poprawnie skonfigurowane i przesyła poprawne ramki danych.
Planowanie łącza i konfiguracja urządzeń
Wybierz prędkość transmisji, format klatki, standard napięcia oraz metodę sterowania przepływem przed nawiązaniem połączenia. Następnie włącz sprzęt UART w oprogramowaniu i skonfiguruj potrzebne bufory lub ustawienia FIFO. Dokładność zegara, jakość kabli i oczekiwana szybkość transmisji również wpływają na wydajność łącza.
Walidacja komunikacji
Sprawdź link, wysyłając znany wzór danych lub czytelny tekst. Terminal szeregowy, adapter USB-UART, analizator logiczny lub oscyloskop mogą pomóc potwierdzić, że klatki są poprawne i czy linia pozostaje w odpowiednim stanie bezczynności między transmisjami.
Przewodnik po problemach UART
| Objaw | Prawdopodobna przyczyna |
|---|---|
| Losowe lub nieczytelne znaki | Złe ustawienia transmisji lub klatek |
| Brak otrzymanych danych | TX/RX odwrócone, brakuje uziemienia, wyłączony UART, zły poziom napięcia |
| Błędy przerywane | Szum, długie okablowanie, niedopasowanie czasów |
| Błędy ramowania lub parzystości | Złe ustawienia lub słaba jakość sygnału |
| Utracone bajty podczas burstów | Przekroczenie, słabe buforowanie, brak kontroli przepływu |
Kontrole rozwiązywania problemów
• Potwierdzaj, że TX i RX są poprawnie krzyżowane
• Upewnij się, że obie strony dzielą ten sam teren
• Weryfikacja prędkości transmisji i formatu klatki na obu końcach
• Sprawdzić, czy poziomy sygnału to TTL/CMOS czy RS-232
• Zmniejszenie prędkości transmisji w przypadku podejrzenia błędu czasowego lub zakłóceń
• Przegląd flag błędów UART w oprogramowaniu
• Testuj za pomocą sprawdzonych narzędzi terminalowych lub adapterów
Porównanie UART, SPI i I2C

UART, SPI i I2C to powszechne metody komunikacji szeregowej, ale działają na różne sposoby. UART używa bezpośredniego połączenia między dwoma urządzeniami i nie wymaga linii zegara. SPI używa zegara i oddzielnych ścieżek danych dla szybszej komunikacji. I2C również korzysta z zegara, ale pozwala wielu urządzeniom dzielić tę samą magistralę dzięki wbudowanemu adresowaniu.
Porównanie interfejsów
| Cecha | UART | SPI | I2C |
|---|---|---|---|
| Linia zegara | Nie | Tak | Tak |
| Typowa topologia | Punkt-punkt | Kontroler-peryferium | Współdzielona magistrala |
| Złożoność | Low | Umiarkowany | Umiarkowany |
| Wbudowane adresowanie | Nie | Nie | Tak |
| Zwykła siła | Prostota | Prędkość | Mniej przewodów dla wielu urządzeń |
UART oferuje proste, bezpośrednie łącza i dostęp do terminali. SPI nadaje się do komunikacji o większej prędkości. I2C sprawdza się w sytuacjach, gdy kilka urządzeń dzieli jedną magistralę z mniejszą liczbą linii sygnałowych.
Zakończenie
UART pozostaje używany, ponieważ oferuje prostą, bezpośrednią komunikację przy niskiej złożoności sprzętowej. Wydajność zależy od dopasowanych ustawień, poprawnego okablowania TX i RX, współdzielonej masy, kompatybilnych poziomów napięcia oraz prawidłowego zarządzania czasem, buforowaniem i flagami błędów. Zrozumienie struktury ramy, prędkości transmisji, kontroli przepływu oraz typowych przyczyn awarii pomaga wyjaśnić, dlaczego łącza UART zawodzą i jak stabilna komunikacja jest utrzymywana w systemach wbudowanych.
Najczęściej zadawane pytania [FAQ]
Czy UART może wysyłać i odbierać jednocześnie?
Tak. UART obsługuje komunikację pełnodupleksową, dzięki czemu może jednocześnie przesyłać dane na TX, jednocześnie odbierając je na RX.
Co oznacza 8N1 w UART?
8N1 oznacza 8 bitów danych, brak parzystości i 1 bit stop.
Czy UART może łączyć się z wieloma urządzeniami?
Nie bezpośrednio. UART służy głównie do komunikacji jeden do jednego i nie zawiera wbudowanego adresowania.
Czy przepływność transmisji jest taka sama jak przepływność w UART?
W standardowym UART – tak. Traktuje się je jak to samo, ponieważ każdy symbol ma jeden bit.
Dlaczego używać adaptera USB-UART?
Pozwala komputerowi komunikować się z interfejsem UART przez USB.
Czy UART zawiera szyfrowanie czy zaawansowaną korekcję błędów?
Nie. UART nie zawiera szyfrowania ani zaawansowanej korekcji błędów samodzielnie.