UART

UART arba Universalus Asinchroninis Imtuvas-Siųstuvas (Universal Asynchronous Receiver – Transmiter) – prietaisas, kuris verčia lygiagrečius duomenų bitus į nuoseklius duomenų bitus. UART dažniausiai būna intergruotas pagrindinėje asmeninio kompiuterio plokštėje ir palaiko nuosekliają komunikaciją tarp kompiuterio ir periferinių įrenginių. UART taip pat gali būti integruotas kai kuriuose mikrovaldikliuse, pavyzdžiui, PIC16F628.

Pagrindai 
Bitai iš vienos vietos į kitą buvo perduodami naudojant laidus. Didėjant atstumui, laidų naudojimas pasidarė per daug brangus. Siekiant sumažinti išlaidas, duomenų bitai buvo pradėti siųsti eiliškai, vienas po kito, naudojant UART konvertuoti siunčiamus bitus tarp eiliškos ir lygiagrečios formos kiekviename sąsajos gale. Kiekvienas UART naudoja postūmio registrą, kuris yra pagrindinis būdas „susišnekėti“ nuoseklioms ir lygiagrečioms duomenų formoms.

UART greitis dažnai matuojamas bodais per sekundę. Standartiniai greičiai yra 110, 300, 1200, 2400, 4800, 9600, 19200, 28800, 38400, 57600, 115200 bit/s ir papildomi 230400, 460800, 921600 bodų. Vienas bodas lygus vienam duomenų linija fiziškai perduodamam bitui, įskaitant pagalbinius (starto, pabaigos, kontrolinius ir kitus). Tagi naudingos informacijos per sekundę perduodama šiek tiek mažiau.

UART dažniausiai tiesiogiai nesukuria ir nepriima įtampos lygių kurie ateina laidais iš įvairių prietaisų. Tam naudojama standartinė sąsaja, kuri apiprėžia įtampos lygius ir kitas susijungimo chrakteristikas. Tokie standartai yra EIA RS232, RS422, RS 485. Priklausomai nuo komunikacijos kanalo apribojimų su kuriuo susietas UART, komunikacijos gali būti dviejų rūšių: „pilnas dvipusis“ (abu siunčia ir priima tuo pačiu metu) arba „pusiau dvipusis“ (įrenginiai pasiskirsto priimti ar siųsti). UART naudojamas nuosekliuose komunikacijos kanaluose.

Formatas 
Duomenys perduodami viena pora laidų tarp kurių gali būti („vienetas“) arba nebūti („nulis“) sutarta elektros įtampa.

Nesant signalo, duomenų perdavimo linijoje palaikomas aukštas („vieneto“) įtampos lygis. Taip susiklostė istoriškai: telegrafo linijoje buvo palaikoma įtampa, kad ir duomenų nesiunčiant iškart būtų aišku ar kabelis nepažeistas. Kiekvienas perduodamas ženklas prasideda nulinės reikšmės pradžios (starto) bitu, po kurio seka aštuoni ar kartais mažiau ženklą koduojantys duomenų bitai (dažniausiai pradedant mažiausai reikšmingu), paskui kai kada kontrolinis bitas kuris pasako ar perduotų vienetų skaičius yra lyginis. Paskutiniu seka pabaigos bitas, kurio reikšmė visada lygi vienetui. Taigi perduodant duomenis, signalo lygis visada pasikeičia bent vieną kartą (bent jau tarp pabaigos bito ir sekančio simbolio pradžios bito). Perduodant daug duomenų simboliai seka iškart vienas po kito, tačiau esant reikalui tarp jų gali būti kiek norima ilgi laiko tarpai. Pavyzdžiui, kompiuterio klaviatūros UART perduoda klavišo kodą tik kada tas klavišas paspaustas, visą likusį laiką palaikydamas „tylos vieneto“ lygmenį.

Duomenų perdavimas