UART yra įprastas nuosekliojo ryšio metodas, naudojamas daugelyje įterptųjų sistemų. Jis siunčia duomenis po vieną bitą be bendros laikrodžio linijos, naudodamas suderintus parametrus sinchronizavimui palaikyti. Patikimos UART jungtys priklauso nuo teisingo laidų, perdavimo spartos, kadro formato, įtampos lygio ir signalo laiko. Šiame straipsnyje pateikiama informacija apie UART veikimą, sąranką, naudojimą ir dažniausiai pasitaikančias problemas.

Universalaus asinchroninio imtuvo-siųstuvo (UART) pagrindai
UART reiškia universalų asinchroninį imtuvą-siųstuvą. Tai nuosekliojo ryšio sąsaja, kuri perduoda duomenis po vieną bitą tarp prijungtų įrenginių. UART blokas yra įmontuotas į daugelį mikrovaldiklių, procesorių, ryšio lustų ir įterptųjų modulių. Jis konvertuoja lygiagrečius duomenis į nuoseklųjį srautą perdavimo metu ir konvertuoja gaunamus nuosekliuosius duomenis atgal į baitus priėmimo metu. UART nenaudoja bendros laikrodžio linijos. Vietoj to, abu įrenginiai sinchronizuojami naudojant atitinkamus ryšio nustatymus ir aptikdami kiekvieno duomenų kadro pradžią ir pabaigą.
Priežastys, dėl kurių UART išlieka dažnas
• Naudoja tik kelias signalines linijas
• Paprasta nustatyti tiesioginį bendravimą
• Jis įtrauktas į daugelį įterptųjų įrenginių
• Palaiko nuskaitomą išvestį per nuosekliuosius terminalus
Kaip veikia UART rėmai ir laikas?
UART rėmo dalys

| Rėmo elementas | Funkcija |
|---|---|
| Pradžios bitas | Žymi kadro pradžią |
| Duomenų bitai | Perkelti siunčiamą vertę |
| Paritetinis bitas | Prideda pagrindinį klaidų tikrinimą, kai naudojamas |
| Stabdymo antgalis | Žymi kadro pabaigą |
| Neveikianti būsena | Išlaiko aukštą eilutę, kai nesiunčiami jokie duomenys |
Pagrindiniai UART nustatymai
| Nustatymas | Ką jis valdo |
|---|---|
| Perdavimo sparta | Ryšio greitis |
| Duomenų bitai | Reikšmių bitų skaičius kiekviename kadre |
| Paritetas | Ar įtrauktas pariteto tikrinimas |
| Stabdymo bitai | Kadro pabaigos formatas |
| Srauto valdymas | Duomenų perkėlimas tarp prijungtų įrenginių |
Perdavimo sparta nustato, kaip greitai siunčiami bitai. Didesnis perdavimo greitis padidina perdavimo greitį, tačiau reikalauja tikslesnio laiko ir švaresnio signalo kelio. UART komunikacija taip pat priklauso nuo atitinkamų kadrų nustatymų abiejose pusėse.
Įprasti perdavimo dažniai
| Perdavimo sparta | Įprastas naudojimas |
|---|---|
| 9600 | Pagrindiniai terminalai, paprasti moduliai ir senesnės sistemos |
| 19200–38400 | Vidutinės spartos ryšys |
| 57600 | Greitesnės valdymo ir diagnostikos jungtys |
| 115200 | Konsolės išvestis ir derinimas |
Kadro ilgis ir duomenų efektyvumas
Kadro ilgis turi įtakos tam, kiek naudingų duomenų perduodama kiekviename perdavime. Dvi UART jungtys gali naudoti tą patį perdavimo greitį, bet vis tiek užtikrinti skirtingą efektyvų duomenų pralaidumą, jei skiriasi jų kadrų formatai. Pavyzdžiui, 8N1 ir 7E1 naudoja skirtingą bendrą bitų skaičių viename kadre, todėl naudingosios apkrovos duomenų kiekis vienam kadrui nėra vienodas.
UART laidai, įtampos lygiai ir srauto valdymas

Pagrindinis UART ryšys naudoja tris pagrindinius signalus: TX, RX ir GND. Vieno įrenginio TX kaištis jungiasi prie kito RX kaiščio, o abu įrenginiai turi turėti tą patį įžeminimą, kad signalo lygiai būtų teisingai nuskaitomi.
Daugelis mikrovaldiklių ir modulių naudoja TTL arba CMOS UART lygius, dažnai esant 3,3 V arba 5 V. Senesnėse serijinėse sistemose gali būti naudojamas RS-232, kuris turi skirtingą įtampos diapazoną ir signalizacijos būdą, todėl jis nėra tiesiogiai suderinamas su TTL UART. Prijungiant šiuos standartus naudojamas lygio poslinkio siųstuvas-imtuvas.
Kai kurios UART nuorodos taip pat naudoja srauto valdymą, kad būtų išvengta duomenų praradimo, kai viena pusė negali pakankamai greitai priimti įeinančių baitų.
Pagrindinės UART laidų taisyklės
• TX iš vieno įrenginio jungiasi prie RX kitame įrenginyje
• RX iš vieno įrenginio jungiasi prie TX kitame įrenginyje
• Įžeminimas turi būti sujungtas iš abiejų pusių
UART elektros standartai
| Tipas | Įprastas naudojimas | Pagrindinis punktas |
|---|---|---|
| TTL/CMOS UART | Mikrovaldikliai, moduliai, kūrimo plokštės | Naudoja loginio lygio signalus, pvz., 3,3 V arba 5 V |
| RS-232 | Senieji nuoseklieji prievadai, pramoninės jungtys, kompiuterių nuosekliosios jungtys | Naudojamas skirtingas įtampos diapazonas ir signalizacijos charakteristikos |
Įprasti srauto valdymo metodai
• Aparatūros srauto valdymas naudoja RTS ir CTS linijas
• Programinės įrangos srauto valdymas naudoja XON ir XOFF simbolius
Aparatūros srauto valdymas naudoja atskiras valdymo linijas duomenų srautui valdyti. Programinės įrangos srauto valdymas sumažina laidų skaičių, tačiau duomenų sraute naudojami valdymo simboliai.
Kaip UART veikia įrenginio viduje?
Įrenginio viduje UART periferinį įrenginį sudaro kelios dalys, kurios tvarko duomenų siuntimą ir gavimą. Šios dalys dažnai apima perdavimo sekciją, priėmimo sekciją, pamainos registrus, būsenos vėliavėles ir FIFO buferius. Kai duomenys siunčiami, programinė įranga įdeda baitą į UART, o aparatūra prideda pradžios bitą, pasirenkamą paritetinį bitą ir sustabdymo bitą prieš siunčiant visą kadrą per TX liniją.
Kai duomenys gaunami, UART stebi RX liniją galiojančiam pradžios bitui. Tada jis atkuria signalą tinkamu laiku, atkuria baitą, patikrina kadro formatą ir saugo duomenis, kad programinė įranga galėtų juos perskaityti vėliau.
UART periferiniai įrenginiai taip pat praneša apie būseną ir klaidų sąlygas, o FIFO buferiai talpina kelis baitus, kad sumažintų praleistų duomenų, kai programinė įranga nereaguoja iš karto.
Įprastos UART būsenos ir klaidų vėliavėlės
• Perdavimo buferis tuščias
• Gaukite pilną buferį
• Pariteto klaida
• Kadravimo klaida
• Viršijimo klaida
Įprastas UART naudojimas įterptinėse sistemose
• Serijinio terminalo derinimas
• Ryšys tarp mikrovaldiklio ir modulio
• Įkrovos įkroviklio ir programinės įrangos atnaujinimo nuorodos
• Paprastos komandų ir atsakymų sąsajos
• Duomenų registravimas ir diagnostika
• Integruota prieiga prie plokštės konsolės
UART sąranka, testavimas ir trikčių šalinimas
UART ryšio nustatymas prasideda nuo suderinamų ryšio nustatymų ir signalo lygių pasirinkimo. Testavimas padeda patvirtinti, kad nuoroda tinkamai prijungta, tinkamai sukonfigūruota ir siunčia galiojančius duomenų rėmelius.
Nuorodų planavimas ir įrenginio konfigūracija
Prieš prisijungdami pasirinkite perdavimo greitį, kadro formatą, įtampos standartą ir srauto valdymo metodą. Tada įjunkite UART aparatinę įrangą programinėje įrangoje ir sukonfigūruokite visus reikalingus buferius arba FIFO nustatymus. Laikrodžio tikslumas, kabelio kokybė ir numatoma duomenų perdavimo sparta taip pat turi įtakos ryšio veikimui.
Ryšio patvirtinimas
Patikrinkite nuorodą siųsdami žinomą duomenų šabloną arba skaitomą tekstą. Nuoseklusis terminalas, USB-to-UART adapteris, loginis analizatorius arba osciloskopas gali padėti patvirtinti, kad kadrai yra galiojantys ir kad linija tarp perdavimų išlieka teisingoje tuščiosios eigos būsenoje.
UART problemų vadovas
| Požymis | Tikėtina priežastis |
|---|---|
| Atsitiktiniai arba neįskaitomi simboliai | Neteisingi perdavimo spartos arba kadrų nustatymai |
| Duomenų negauta | TX/RX atvirkštinis, trūksta įžeminimo, išjungtas UART, neteisingas įtampos lygis |
| Protarpinės klaidos | Triukšmas, ilgi laidai, laiko neatitikimas |
| Kadravimo arba pariteto klaidos | Blogi nustatymai arba prasta signalo kokybė |
| Prarasti baitai pliūpsnių metu | Viršijimas, silpnas buferis, nėra srauto kontrolės |
Trikčių šalinimo patikrinimai
• Įsitikinkite, kad TX ir RX yra teisingai perkirsti
• Įsitikinkite, kad abi pusės turi tą patį pagrindą
• Patikrinkite perdavimo spartą ir kadrų formatą abiejuose galuose
• Patikrinkite, ar signalo lygis yra TTL/CMOS ar RS-232
• Sumažinkite perdavimo greitį, jei įtariama laiko klaida ar triukšmas
• Peržiūrėkite UART klaidų vėliavėles programinėje įrangoje
• Išbandykite su gerai žinomais terminalų įrankiais ar adapteriais
UART, SPI ir I2C palyginimas

UART, SPI ir I2C yra įprasti nuosekliojo ryšio metodai, tačiau jie veikia skirtingai. UART naudoja tiesioginį ryšį tarp dviejų įrenginių ir nereikia laikrodžio linijos. SPI naudoja laikrodį ir atskirus duomenų kelius, kad būtų galima greičiau bendrauti. I2C taip pat naudoja laikrodį, tačiau jis leidžia keliems įrenginiams dalytis ta pačia magistrale naudojant integruotą adresavimą.
Sąsajos palyginimas
| Funkcija | UART | SPI | I2C |
|---|---|---|---|
| Laikrodžio linija | Ne | Taip | Taip |
| Tipinė topologija | Taškas į tašką | Valdiklis-periferinis | Bendras autobusas |
| Sudėtingumas | Žemas | Vidutinis | Vidutinis |
| Įtaisytasis adresavimas | Ne | Ne | Taip |
| Bendras stiprumas | Paprastumas | Greitis | Mažiau laidų daugeliui įrenginių |
UART tinka paprastoms, tiesioginėms jungtims ir prieigai prie terminalo. SPI tinka didesnės spartos ryšiui. I2C tinka tais atvejais, kai keli įrenginiai dalijasi viena magistrale su mažiau signalo linijų.
Išvada
UART tebėra naudojamas, nes siūlo paprastą, tiesioginį ryšį su mažu aparatinės įrangos sudėtingumu. Jo veikimas priklauso nuo suderintų nustatymų, teisingų TX ir RX laidų, bendro įžeminimo, suderinamų įtampos lygių ir tinkamo laiko, buferio ir klaidų vėliavėlių tvarkymo. Rėmo struktūros, perdavimo spartos, srauto valdymo ir dažniausiai pasitaikančių gedimų priežasčių supratimas padeda paaiškinti, kodėl UART ryšiai sugenda ir kaip stabilus ryšys palaikomas įterptinėse sistemose.
Dažnai užduodami klausimai [DUK]
Ar UART gali siųsti ir gauti tuo pačiu metu?
Taip. UART palaiko dvipusį ryšį, todėl vienu metu gali siųsti duomenis TX, o gauti RX.
Ką reiškia 8N1 UART?
8N1 reiškia 8 duomenų bitus, be pariteto ir 1 stop bitą.
Ar UART gali prisijungti prie kelių įrenginių?
Ne tiesiogiai. UART daugiausia skirtas asmeniniam ryšiui ir neapima integruoto adresavimo.
Ar perdavimo sparta yra tokia pati kaip UART bitų sparta?
Standartiniame UART, taip. Jie traktuojami kaip vienodi, nes kiekvienas simbolis turi po vieną bitą.
Kodėl verta naudoti USB-to-UART adapterį?
Tai leidžia kompiuteriui susisiekti su UART sąsaja per USB.
Ar UART apima šifravimą ar išplėstinį klaidų taisymą?
Ne. UART neapima šifravimo ar išplėstinio klaidų taisymo.