UART (Universal Asynchronous Receiver/Transmitter) este cea mai simplă interfaţă serială asincronă care de asemenea este numită ACIA (Asynchronous Communication Interface
Adapter).
UART este
asinconă pentru că nu se transmite semnal de ceas prin linia de date serială. Receptorul
recunoaşte valorile binare individuale fără o linie comună de ceas.
Interfaţa UART
constă din două părţi:
– un receptor (receiver - Rx)
care converteşte un flux serial de biţi în date paralele (cuvinte) pentru
microprocesor;
– un transmiţător (transmitter - Tx) care converteşte date paralele de la microprocesor într-un flux serial de biţi, pentru transmisie.
![]() |
Diagrama functionala UART |
UART
furnizezază şi informaţie de stare, cum ar fi “receptorul este plin (datele au
ajuns) sau transmiţătorul este gol (o transmisie în curs s-a terminat)
Interfaţa Serială Asincronă nu are un mecanism de
sincronizare între module (interlocutori). Sincronizarea pe fluxuri de date
este realizată de fiecare interlocutor în parte. Pentru a realiza sincronizarea
pe fluxuri de date, în fluxul de date este introdusă informaţia tehnică despre
transfer, cum ar fi:
a)
Start
Transfer;
b)
Paritatatea;
c)
Stop
– sfîrşitul transferului;
Interlocutorii se
sincronizează folosind informaţia tehnică. Pentru a transfera un număr de
unităţi (o cantitate anumită) de date, va trebui anexată şi transferată şi
informaţia tehnică. Un transfer de date impreună cu informaţia tehnică ce il
însoţeşte, compune un Frame de date.
Formatul
datelor transmise utilizează la începutul transmisiei pentru fiecare caracter
un bit de start şi la sfârşit unul sau doi biţi de stop. Receptorul îşi sincronizează ceasul după recepţionarea
bitului de start şi apoi eşantionează biţii de date (7 sau 8 în funcţie de
configuraţia sistemului). Dacă receptorul nu primeşte secvenţa de stop, se presupune
că ceasul său este defazat faţă de al emiţătorului şi se declară o eroare de
cadru.
Protocolul hardware de
comunicare prin framuri
În starea
pasivă se distinge:
1.
Linia
de transfereste setată („1” logic);
2. Începutul
transferului este semnalizat de cîte o resetare a liniei, acest bit de
informaţie este numit Start Bit;
3.
Se
vor transfera un set de biţi consecutivi conform configuraţiei liniei de
transfer cu o configuraţie de 5-10 biţi.
4.
Urmează
bitul de paritate, ce oferă posibilitatea verificării integrităţii datelor
transferate.
Detecţia erorilor de paritate
Pentru a
detecta erorilor, multe sisteme folosesc bitul de paritate, pentru verificarea
datelor recepţionate. Bitul de paritate e calculat de transmiţător şi e inclus
în cadrul de date. Receptorul calculează paritatea pentru fiecare octet
recepţionat. Dacă bitul de paritate calculat este identic cu cel recepţionat,
receptorul presupune că nu sunt erori.
Calculul parităţii
se evaluiază după logica XOR între biţii de date P=^DATA. Pentru o transmisie corectă, emiţătorul şi
receptorul trebuie să utilizeze acelaşi tip de paritate (P=0 even parity (par), sau P=1 odd parity(impar)).
Notă: În dependenţă de de configuraţia de transfer, bitul de
paritate poate fi exclus din frame.
5. Urmează
un set de indicatori care se numesc Stop
Bit, care setează bus-ul. Lungimea indicatorului Stop poate fi [1; 1,5; 2] biţi. Valoarea bitului de stop depinde de
eroarea vitezei de transfer dintre transmiţător şi receptor.
Configuraţia unui frame de
obicei este prezentat printr-o secvenţă de forma: „9600 8 N1” unde:
- 9600 – viteza de transfer în baud/sec;
- 8 – mărimea datelor;
- N – excluderea bitului de paritate (P – includerea bitului de paritate);
- 1 – numărul de biţide stop.
Viteza de
transfer se măsoară în baud/sec, care reprezintă numărul de biţi de informaţie,
atît tehnică cît şi de date transferate prin interfaţa serială (8 biţi/sec ≈ 11
baud/secundă). Viteza exprimată în biţi pe secundă va reprezenta viteza de
transfer a datelor excluzînd informaţia tehnică.
Sincronizarea
Pentru ca
datele să fie transferate cu siguranţă, înainte de a începe un transfer,
interlocutorii trebuie să adopte aceeaşi viteză de transfer. Din motive că
interlocutorii pot avea diferite metode de calcul/setare a vitezei de transfer,
foarte frecvent apare situaţia de apariţie a unei erori în cadrul liniei de
transfer. Eroarea maximă admisibilă a vitezei de transfer este <
0,5 bit/frame. Dacă viteza de transfer depăşeşte această valoare, va apărea
eroarea de transfer.
Linkuri utile:
Niciun comentariu:
Trimiteți un comentariu