Universālais asinhronais raiduztvērējs

Vikipēdijas lapa

Universālais asinhronais raiduztvērējs jeb UART (angļu: Universal asynchronous receiver-transmitter) ir elektroniska shēma, kas nodrošina asinhronus seriālos sakarus. Tas nosūtāmos datus no paralēlām ķēdēm pārveido vienā seriālā bitu straumē, ko var pārraidīt vienā fiziskā līnijā citai UART ierīcei. Analoģiski pa otru līniju ienākošā bitu straume tiek konvertēta vajadzīgajā formā. "Asinhronais" nozīmē to, ka sakaru līnijā nav takts impulsu signāla, kas sinhronizētu pārraidāmos datus starp raidītāju un uztvērēju.

USB un UART adapters

UART var būt realizēts kā savrupa integrālā shēma vai arī integrēts kādā ierīcē, piemēram, mikrokontrolierī.

Līdzīga ierīce ir universālais sinhronais un asinhronais raiduztvērējs (Universal synchronous and asynchronous receiver-transmitter, USART), kas nodrošina gan asinhrono, gan sinhrono datu pārraidi.

Fiziskā uzbūve[labot šo sadaļu | labot pirmkodu]

UART shēmas galvenās sastāvdaļas ir:

Citas papildu sastāvdaļas:

  • raidīšanas un uztveršanas buferi
  • sistēmas datu kopnes buferis
  • FIFO bufera atmiņa

UART parasti tieši neģenerē vai neuztver ārējos signālus no citām ierīcēm. UART izejas un ieejas loģikas līmeņi atbilst attiecīgajām pusvadītāju loģikas saimēm, piemēram TTL. Tādu fizisko līmeni var pielietot tikai vienas ierīces robežās, bet lielākos attālumos līnijā rodas traucējumi. Lai ierīci savienotu ar attālinātu ierīci, tiek izmantoti sakaru standarti (piemēram, RS-232, RS-422, RS-485). Visi šie standarti nosaka atšķirīgas līnijas fiziskā signāla ģenerēšanas metodes, kas atšķiras arī no TTL ķēžu loģikas līmeņa. Šāda fiziskā signāla pārveidošana raidītāja pusē un otrādi, atkarībā no sakaru standarta, tiek veikta ar atdalītu shēmu, kas var būt arī kā atsevišķa mikroshēma.

Dati pārraidīšanai UART shēmai tiek nodoti baitu veidā, visbiežāk no paralēlās kopnes. UART datus pārraida secīgi pa vienam bitam. Otrā līnijas galā cita UART ierīce saņemtos bitus saformē pilnos baitos. Šim nolūkam katram UART ir pārbīdes reģistri, kas veic pārveidošanu starp seriālo un paralēlo formu un otrādi.

Sakari UART var būt organizēti simpleksā (dati tiek sūtīti tikai vienā virzienā), pusdupleksā (vienā laika vienībā var vai nu nosūtīt vai saņemt datus) vai pilndupleksā veidā (abas ierīces var vienlaicīgi nosūtīt un saņemt datus).

Datu pārraidīšana un saņemšana[labot šo sadaļu | labot pirmkodu]

Datu pārraidīšana UART ir organizēta paketēs. Katrā paketē ir viens startbits, 5 līdz 9 datu biti (atkarībā no UART realizācijas), neobligāts pārības bits un viens vai divi stopbiti.

UART pārraides līnijā normāli tiek turēts augsts sprieguma līmenis pat tad, kad nenotiek datu pārraide. Tas ir vēsturisks mantojums no telegrāfa, kur sakaru līnija tiek turēta sprieguma augstā līmenī, lai pārliecinātos, ka līnija un raidītājs nav bojāts. Lai sāktu datu pārraidīšanu, raidošais UART vienā takts ciklā pārslēdz pārraidošo līniju no augsta līmeņa uz zemu. Kad uztverot UART konstatē sprieguma pāreju no augsta uz zemu līmeni (startbits), tas sāk lasīt bitus datu kadrā bodu ātruma frekvencē.

Pēc startbita seko datu kadrs. Tas var būt 5 līdz 9 bitu garš, bet parasti ir 8 biti, kas atbilst vienam baitam. Ja neizmanto pārības bitu, tad kadrs var būt 9 bitu garš. Visbiežāk dati tiek sūtīti ar visnenozīmīgāko bitu pirmo.

Datu kadra beigās var būt pārības bits, kas rāda, vai skaitlis ir pāra vai nepāra. Pārības bits ir veids, kā saņēmēja UART var uzzināt, vai raidīšanas laikā ir mainījušies dati. Bitus var izmainīt elektromagnētiskais starojums, neatbilstoši bodu ātrumi vai liela attāluma datu pārsūtīšana. Pēc tam, kad uztverošais UART nolasa datu kadru, tas saskaita bitus ar vērtību 1 un pārbauda, vai šis skaits ir pāra vai nepāra skaitlis. Ja pārības bits ir 0 (pāra pārība), datu kadrā 1 bitiem ir jābūt pāra skaitā. Ja paritātes bits ir 1 (nepāra pārība), datu kadrā 1 bitiem ir jābūt nepāra skaitā. Ja pārības bits atbilst datiem, tas nozīmē, ka pārraidē nav kļūdu. Savukārt, ja paritātes bits ir 0, un skaits ir nepāra; vai paritātes bits ir 1 un skaits ir pāra, tātad datu kadrā esošie biti ir mainīti.

Datu paketes beigu signāls ir stopbits. UART pārslēdz pārraidošo līniju no sprieguma zema līmeņa uz augstu. Dažas UART realizācijas izmanto divus stopbitus, lai samazinātu sinhronizācijas nojukšanas iespējamību uztvērēja galā.

Lai veidotu laika intervālus (takts impulsus), gan raidošajam gan uztverošajam UART ir taktimpulsu ģenerators. Tā precizitātei jābūt tādai, lai uztvērēja un raidītāja laika impulsu nobīdes kļūdu summa no starta impulsa līdz stop impulsam nepārsniegtu pusi bita intervāla. 8 bitu paketei 0,5 / 9,5 = 5 %. Tā kā jāņem vērā arī iespējamie signāla kropļojumi sakaru līnijā, tad UART taktimpulsu ģeneratora rekomendējamā neprecizitāte ir ne lielāka par 1,5 %.

Ārējās saites[labot šo sadaļu | labot pirmkodu]