UART este o metodă comună de comunicare serială folosită în multe sisteme încorporate. Trimite datele bit cu bit fără o linie de ceas comună, folosind setări potrivite pentru a menține sincronizarea. Legăturile UART fiabile depind de cablajul corect, rata de baud, formatul cadrului, nivelurile de tensiune și sincronizarea semnalului. Acest articol oferă informații despre funcționarea, configurarea, utilizările și problemele comune ale UART.

Bazele receptorului-emițător universal asincron (UART)
UART înseamnă Universal Asynchronous Receiver-Transmitter. Este o interfață de comunicare serială care transferă datele bit cu bit între dispozitivele conectate. Un bloc UART este integrat în multe microcontrolere, procesoare, cipuri de comunicații și module încorporate. Convertește datele paralele într-un flux serial în timpul transmisiei și transformă datele seriale primite înapoi în octeți în timpul recepției. UART nu folosește o linie de ceas partajată. În schimb, ambele dispozitive rămân sincronizate folosind setări de comunicare corespunzătoare și detectând începutul și sfârșitul fiecărui cadru de date.
Motive pentru care UART rămâne comun
• Folosește doar câteva linii de semnalizare
• Este simplu de configurat pentru comunicare directă
• Este inclus în multe dispozitive încorporate
• Suportă ieșire lizibilă prin terminale seriale
Cum funcționează cadrele și sincronizarea UART?
Părți ale unui cadru UART

| Element de cadru | Funcție |
|---|---|
| Pornire | Marcează începutul unui cadru |
| Biți de date | Păstrează valoarea trimisă |
| Bit de paritate | Adaugă o verificare a erorilor de bază când este folosită |
| Stop bit | Marcează sfârșitul cadrului |
| Starea inactivă | Menține linia sus când nu se trimite date |
Setări principale UART
| Cadru | Ce controlează el |
|---|---|
| Rata de baud | Viteza comunicării |
| Biți de date | Numărul de biți de valoare din fiecare cadru |
| Paritate | Dacă se adaugă o verificare de paritate |
| Biți de oprire | Formatul de încheiere a cadrului |
| Controlul fluxului | Ritmul datelor între dispozitivele conectate |
Rata de baud determină cât de repede sunt trimiși biții. Ratele de baud mai mari cresc viteza de transfer, dar necesită o sincronizare mai precisă și un traseu de semnal mai curat. Comunicarea UART depinde, de asemenea, de potrivirea setărilor cadrului pe ambele părți.
Ratele Comune de Baud
| Baud Rate | Utilizare tipică |
|---|---|
| 9600 | Terminale de bază, module simple și sisteme mai vechi |
| 19200–38400 | Comunicare de viteză medie |
| 57600 | Legături de control și diagnostic mai rapide |
| 115200 | Ieșire și depanare pentru consolă |
Lungimea cadrului și eficiența datelor
Lungimea cadrului influențează cât de multe date utile sunt transportate în fiecare transmisie. Două legături UART pot folosi aceeași rată de baud, dar pot oferi totuși un throughput efectiv de date diferit dacă formatele lor de cadre diferă. De exemplu, 8N1 și 7E1 folosesc un număr diferit de biți total pe cadru, astfel încât cantitatea de date de sarcină utilă pe cadru nu este aceeași.
Cablajul UART, nivelurile de tensiune și controlul fluxului

O conexiune UART de bază folosește trei semnale principale: TX, RX și GND. Pinul TX al unui dispozitiv se conectează la pinul RX al celuilalt, iar ambele dispozitive trebuie să împartă aceeași masă pentru ca nivelurile semnalului să fie citite corect.
Multe microcontrolere și module folosesc niveluri TTL sau CMOS UART, adesea la 3,3 V sau 5 V. Sistemele seriale mai vechi pot folosi RS-232, care are o gamă de tensiune și o metodă de semnalizare diferite, deci nu este direct compatibil cu TTL UART. Un transceiver cu schimbare de nivel este folosit la conectarea acestor standarde.
Unele legături UART folosesc și control al fluxului pentru a preveni pierderea datelor atunci când o parte nu poate accepta suficient de rapid octeții primiți.
Reguli de cablare de bază UART
• TX de pe un dispozitiv se conectează la RX de pe celălalt dispozitiv
• RX de la un dispozitiv se conectează la TX pe celălalt dispozitiv
• Împământarea trebuie să fie conectată pe ambele părți
Standardele electrice UART
| Tip | Utilizare tipică | Punct principal |
|---|---|---|
| TTL/CMOS UART | Microcontrolere, module, plăci de dezvoltare | Utilizează semnale la nivel logic precum 3,3 V sau 5 V |
| RS-232 | Porturi seriale vechi, legături industriale, conexiuni seriale PC | Folosește un interval de tensiune și un comportament de semnalizare diferit |
Metode comune de control al fluxului
• Controlul hardware al fluxului utilizează linii RTS și CTS
• Controlul fluxului software folosește caractere XON și XOFF
Controlul hardware al fluxului folosește linii de control separate pentru a gestiona fluxul de date. Controlul fluxului software reduce numărul de fire, dar folosește caractere de control în cadrul fluxului de date.
Cum funcționează un UART în interiorul unui dispozitiv?
În interiorul unui dispozitiv, un periferic UART include mai multe părți care gestionează trimiterea și recepția datelor. Aceste părți includ adesea o secțiune de transmisie, o secțiune de recepție, registre de deplasare, flag-uri de stare și buffere FIFO. Când datele sunt trimise, software-ul plasează un octet în UART, iar hardware-ul adaugă bitul de start, bitul de paritate opțional și bitul de oprire înainte de a trimite cadrul complet prin linia TX.
Când datele sunt primite, UART monitorizează linia RX pentru un bit valid de start. Apoi eșantionează semnalul la momentul corect, reconstruiește octetul, verifică formatul cadrului și stochează datele pentru ca software-ul să le poată citi ulterior.
Perifericele UART raportează, de asemenea, starea și condițiile de eroare, în timp ce bufferele FIFO țin câțiva octeți pentru a reduce datele pierdute atunci când software-ul nu răspunde imediat.
Starea comună UART și semnale de eroare
• Bufferul de transmisie gol
• Primește tampon complet
• Eroare de paritate
• Eroare de structură
• Eroare de depășire
Utilizări comune ale UART în sistemele încorporate
• Depanare a terminalelor seriale
• Comunicarea între un microcontroler și un modul
• Bootloader și legături de actualizare firmware
• Interfețe simple de comandă și răspuns
• Înregistrarea datelor și diagnosticarea
• Acces încorporat la consolele de placă
Configurare, testare și depanare UART
Configurarea unei legături UART începe prin alegerea setărilor de comunicare compatibile și a nivelurilor de semnal. Testarea ajută la confirmarea faptului că legătura este cablată corect, configurată corect și trimite cadre de date valide.
Planificarea legăturilor și configurarea dispozitivelor
Alege rata de baud, formatul cadrului, standardul de tensiune și metoda de control al fluxului înainte de a face conexiunea. Apoi activează hardware-ul UART în software și configurează orice buffere sau setări FIFO necesare. Acuratețea ceasului, calitatea cablului și rata așteptată de date afectează, de asemenea, performanța legăturii.
Validarea comunicării
Verifică linkul trimițând un model de date cunoscut sau un text lizibil. Un terminal serial, un adaptor USB-la-UART, un analizor logic sau un osciloscop pot ajuta la confirmarea faptului că cadrele sunt valide și că linia rămâne în starea corectă de repaus, între transmisii.
Ghidul Problemelor UART
| Simptom | Cauză probabilă |
|---|---|
| Caractere aleatorii sau ilizibile | Rată de baud sau setări greșite de cadre |
| Nu am primit date | TX/RX inversat, împământare lipsă, UART dezactivat, nivel de tensiune greșit |
| Erori intermitente | Zgomot, cablaje lungi, nepotrivire de sincronizare |
| Erori de încadrare sau paritate | Setări proaste sau calitate slabă a semnalului |
| Octeți pierduți în timpul exploziilor | Depășire, buffering slab, fără control al fluxului |
Verificări de depanare
• Confirmă că TX și RX sunt încrucișate corect
• Să se asigure că ambele părți împart același teren
• Verificarea ratei de baud și a formatului cadrului la ambele capete
• Verifică dacă nivelurile semnalului sunt TTL/CMOS sau RS-232
• Reducerea ratei de bauduri dacă se suspectează o eroare de sincronizare sau zgomot
• Revizuiește flag-urile de eroare UART din software
• Testare cu unelte sau adaptoare pentru terminale cunoscute
UART, SPI și I2C comparate

UART, SPI și I2C sunt metode comune de comunicare serială, dar funcționează în moduri diferite. UART folosește o legătură directă între două dispozitive și nu are nevoie de o linie de ceas. SPI folosește un ceas și căi de date separate pentru o comunicare mai rapidă. I2C folosește și el un ceas, dar permite mai multor dispozitive să partajeze aceeași magistrală prin adresare integrată.
Comparație Interfețe
| Caracteristică | UART | SPI | I2C |
|---|---|---|---|
| Linia ceasului | Nu | Da | Da |
| Topologie tipică | Punct-la-punct | Controler-periferic | Autobuz comun |
| Complexitate | Low | Moderat | Moderat |
| Adresare încorporată | Nu | Nu | Da |
| Forță comună | Simplitate | Viteză | Mai puține fire pentru multe dispozitive |
UART se potrivește cu legături simple, directe și acces la terminal. SPI se potrivește comunicațiilor de mare viteză. I2C este potrivit pentru cazurile în care mai multe dispozitive împart o singură magistrală cu mai puține linii de semnalizare.
Concluzie
UART rămâne folosit deoarece oferă o comunicare simplă, directă, cu o complexitate hardware redusă. Performanța depinde de setările potrivite, cablajul corect TX și RX, împământarea comună, niveluri de tensiune compatibile și manipularea corectă a timpului, buffering-ului și a indicatorilor de eroare. Înțelegerea structurii cadrelor, ratei baudio, controlului fluxului și cauzelor comune de defecțiuni ajută la explicarea motivului pentru care legăturile UART cedează și cum se menține o comunicare stabilă în sistemele embedded.
Întrebări frecvente [FAQ]
Poate un UART să trimită și să primească în același timp?
Da. UART suportă comunicare full-duplex, astfel încât poate trimite date pe TX în timp ce primește simultan pe RX.
Ce înseamnă 8N1 în UART?
8N1 înseamnă 8 biți de date, fără paritate și 1 bit de stop.
Se poate conecta un UART la mai multe dispozitive?
Nu direct. UART este destinat în principal comunicării unu-la-unu și nu include adresare integrată.
Este rata de baud aceeași cu rata de biți în UART?
În UART-ul standard, da. Sunt tratate ca la fel deoarece fiecare simbol poartă un bit.
De ce să folosești un adaptor USB-la-UART?
Permite unui calculator să comunice cu o interfață UART prin USB.
Include UART criptare sau corecție avansată a erorilor?
Nu. UART nu include criptare sau corecție avansată a erorilor în sine.