CATEGORII DOCUMENTE |
Notiuni de baza. Definitii
Definitie: Prin comunicatie de date se intelege schimbul de informatie numerica codificata intre doua DTE.
Trebuie facuta distinctia intre termenii 'data' si 'informatie'. Termenul 'data' este folosit pentru a desemna un set sau un bloc de caractere numerice sau alfabetice codificate ce sunt schimbate intre doua echipamente. In cadrul comunicatiei de date in afara transferului acestui tip de date este de asemenea necesar ca cele doua echipamente sa schimbe si diverse mesaje de control (de exemplu pentru a preveni sau corecta erorile de transfer). De aceea termenul de informatie este folosit cu un inteles mai larg desemnand atat date cat si mesaje de control.
Comunicatia de date se ocupa nu numai cu modul de transmisie a datelor printr‑un mediu de transmisie fizic ci si cu tehnicile ce trebuie folosite pentru detectarea si corectarea erorilor de transmisie, cu controlul ratei de transfer a datelor si stabilirea formatului datelor ce trebuie transferate.
Din punct de vedere al numarului de linii ce interconecteaza doua echipamente se deosebesc doua tipuri de conexiuni:
modul de transfer paralel presupune folosirea cate unui fir pentru fiecare bit de date (al unui cuvant). Aceasta inseamna ca mai multe fire sunt folosite pentru interconectarea a doua DTE. Din acest motiv modul de transfer paralel nu se foloseste decat in cazul in care distanta intre DTE este mica.
modul de transfer serial presupune folosirea unei singure perechi de fire pentru interconectarea echipamentelor.
La un moment dat pe linie se transmite un singur bit, pentru fiecare bit fiind alocat un interval de timp fix. Viteza de transfer este mai mica decat in cazul 1 dar distanta intre DTE poate fi mult mai mare.
Cele doua moduri de operare sunt reprezentate in figura 3.1.
Comunicatia de date intre doua echipamente se poate realiza in trei moduri:
simplex: presupune transmisia datelor intr‑o singura directie.
half‑duplex: presupune transferul de date alternativ intre cele doua echipamente. Cand unul din echipamente se afla in starea de emisie celalalt se afla in receptie.
duplex (full‑duplex): presupune schimbul de date in ambele directii simultan.
Datele ce sunt transferate intre doua DTE sunt formate din unitati de lungime fixa, de obicei de cate 8 biti. De exemplu cand un terminal comunica cu un calculator fiecare caracter tastat este codificat intr‑o valoare binara de 8 biti, intregul mesaj fiind format dintr‑un sir de astfel de caractere codificate. Deoarece fiecare caracter este transmis serial, echipamentul receptor pentru a decodifica si interpreta corect bitii transmisi trebuie sa cunoasca:
rata de emisie a bitilor (durata unei celule bit);
inceputul si sfarsitul fiecarui caracter (octet);
inceputul si sfarsitul fiecarui mesaj complet (bloc).
Acesti trei factori sunt cunoscuti sub numele de sincronism la nivel de bit, sincronism la nivel de caracter si sincronism la nivel de bloc.
Din acest punct de vedere comunicatia intre doua echipamente poate fi de doua tipuri:
1) asincrona ‑ daca ceasul receptorului este independent de cel al emitatorului.
2) sincrona ‑ daca ceasurile emitatorului si receptorului sunt sincrone.
In cazul in care datele ce trebuie transmise sunt formate din caractere separate de intervale de timp de lungime aleatoare atunci fiecare caracter este transmis independent si receptorul se sincronizeaza la inceputul fiecarui nou caracter primit. Pentru acest tip de comunicatie se foloseste transmisia asincrona.
In cazul in care datele ce trebuie transmise sunt formate din blocuri continand mai multe caractere (octeti) fiecare, ceasurile emitatorului si receptorului trebuie sa se afle in sincronism pentru mai mult timp si de aceea se foloseste transmisia sincrona.
Transmisia asincrona
Aceasta metoda este folosita atunci cand datele ce trebuie transmise sunt generate la intervale de timp aleatoare de exemplu atunci cand un utilizator comunica de la un videoterminal cu un calculator. In acest caz intervalul de timp intre doua caractere tastate este de lungime aleatoare. Aceasta inseamna ca pe linia de transmisie semnalul va fi pentru un timp mai lung in starea de idle (off).
In cazul acestui tip de comunicare este necesar ca receptorul sa fie capabil sa se resincronizeze la inceputul fiecarui nou caracter receptionat. Pentru a realiza acest lucru trebuie ca fiecare caracter sa fie incadrat de un bit de start si unul sau mai multi biti de stop asa cum se arata in figura 3.2.
Asa cum se poate observa in figura polaritatea bitului de start este diferita de cea a bitilor de stop. Astfel se asigura cel putin o tranzitie (1‑0‑1) intre doua caractere consecutive indiferent de secventa de biti ce trebuie transmisa. Prima tranzitie 1‑0 dupa un interval de linie libera este folosita de echipamentul receptor pentru a determina inceputul fiecarui nou caracter.
In plus, folosind un ceas cu o frecventa de N ori mai mare decat frecventa de emisie (de obicei N=16), echipamentul receptor poate determina mai exact valoarea fiecarui bit transmis prin esantionarea semnalului receptionat aproximativ in centrul fiecarei celule bit.
Din cele prezentate rezulta ca pentru transmiterea unui octet de informatie utila se folosesc de fapt 10 sau 11 biti. Deci, daca presupunem o rata de emisie de 1200 bps atunci in cazul folosirii a doi biti de stop se obtine o rata de 1200/11 aprox. 110 bytes pe secunda. Rata de emisie folosita in realitate este de fapt mai mica din motive ce vor fi discutate mai tarziu.
Cand se defineste rata de emisie a unei linii se foloseste de obicei termenul 'baud'. In intelesul sau corect, termenul indica numarul de tranzitii pe secunda ale semnalului transmis pe linie. In cazul in care fiecare element de semnal poate lua numai doua valori atunci baud este echivalent cu bps. Dar, asa cum s‑a aratat in capitolul 1, in unele cazuri se folosesc mai mult de doua nivele pentru un element de semnal (un element de semnal codifica mai multi biti). Astfel, un semnal cu o rata de 300 baud si 4 biti pentru un element de semnal poate fi folosit pentru transmisia informatiei cu o rata de 1200 bps.
In cazul transmisiei asincrone folosirea bitilor aditionali (de start si stop) este nesemnificativa datorita intervalelor mari de timp intre doua caractere.
Uneori este necesara insa transmisia unor blocuri de date de lungime mare (transmisia de fisiere intre doua calculatoare). In acest caz folosirea bitilor suplimentari la fiecare caracter devine suparatoare.
Totodata, datorita mecanismului de sincronizare folosit de schema asincrona, aceasta nu poate functiona fara erori decat pana la aprox. 19200 bps.
Alternativa eficienta in aceste situatii este transmiterea unui bloc complet ca o singura entitate, adica transmisia sincrona.
Pentru a permite echipamentului receptor sa se sincronizeze trebuie respectate conditiile:
fluxul de biti transmis sa fie astfel codificat incat receptorul sa poata fi mentinut in sincronism la nivel de bit;
toate blocurile transmise sa fie precedate de unul sau mai multe caractere speciale astfel incat la receptie sa poata fi delimitati corect octetii (sincronism la nivel de caracter);
continutul fiecarui bloc sa fie delimitat de o pereche de caractere speciale.
Ultima conditie permite receptorului sa determine inceputul unui nou bloc atunci cand a primit un caracter special (de start) dupa o perioada libera.
In intervalul de timp dintre doua blocuri, fie sunt transmise continuu caractere de sincronizare (pentru a intretine sincronismul receptorului la nivel de bit si byte), fie blocurile sunt precedate de unul sau mai multi octeti de sincronizare (permitand astfel receptorului sa revina in sincronism).
Transmisia sincrona este prezentata schematic in figura 3.3.
In cadrul transmisiei sincrone este necesar sa se asigure ca octetii sau caracterele de sincronizare sa fie unice adica sa nu fie prezente si in continutul blocului ce se transmite.
Circuite de control al transmisiei
Asa cum s‑a aratat, intre doua DTE datele sunt transmise serial (elemente de cate 8 biti) folosind fie modul sincron fie pe cel asincron (figura 3.4). In interiorul DTE fiecare element este memorat si transferat intr‑o forma paralela. Din acest motiv circuitele de control al transmisiei din cadrul fiecarui DTE ce reprezinta de fapt interfata intre DTE si legatura seriala trebuie sa realizeze urmatoarele functii:
conversie paralel‑serie in vederea pregatirii elementului pentru a fi transmis pe linie;
conversie serie‑paralel a fiecarui element receptionat in vederea memorarii si prelucrarii sale in interiorul DTE;
folosirea metodei adecvate la receptie pentru a realiza sincronismul la nivel de bit, caracter sau bloc;
generarea unor biti cu scopul detectarii erorilor de transmisie si eventual detectarea acestor erori daca apar.
Pentru a satisface aceste cerinte au fost proiectate circuite integrate speciale.
Transmisia asincrona
Circuitul de interfata folosit pentru realizarea transmisiei asincrone este cunoscut sub denumirea Universal Asynchronous Receiver and Transmiter sau simplu UART. Este numit universal pentru ca de obicei poate fi programat de catre utilizator prin cuvinte de control predefinite ce selecteaza diverse moduri de operare.
In figura 3.5 este prezentat un UART tipic.
Pentru a folosi un astfel de UART in primul rand registrul de mod trebuie incarcat cu o anumita valoare prin care se selecteaza modul de functionare. Aceasta operatie poarta numele de initializare. De obicei, utilizatorul poate selecta 5,6,7 sau 8 biti/caracter, paritate para, impara sau fara paritate, unul sau mai multi biti de stop si rata de emisie sau receptie. Rata de emisie este selectata dintr‑o gama de valori standard cuprinse de obicei intre 50 bps si 19200 bps.
In figura 3.6 sunt aratate semnificatiile diversilor biti de control pentru modulul INTEL 8251.
Exemplu: daca octetul incarcat in registrul de mod este 01001101 (4DH) atunci UART‑ul va lucra cu 7 biti/caracter, paritate para, un bit de stop si un ceas extern avand o frecventa de 16 x rata bitilor.
Unitatea de control a DTE‑ului determina starea UART‑ului prin citirea continutului registrului de stare si testarea anumitor biti din cadrul acestuia.
Acesti biti sunt de obicei numiti indicatori. Folosirea lor difera de la circuit la circuit.
Pentru a folosi un astfel de circuit pentru transmisia unui caracter, unitatea de control citeste mai intai octetul de stare si testeaza bitul TxBE. Daca acesta este 1 aceasta inseamna ca octetul anterior a fost transferat din buffer in registrul de emisie de unde a fost shift‑at serial pe linie. Dupa ce si ultimul bit de stop a fost transmis, unitatea de control comanda incarcarea in buffer-ul de emisie a unui nou caracter, TxBE fiind adus in 0. De cate ori caracterul este transferat din buffer in registrul de emisie TxBE este pus pe 1. Totodata de cate ori un caracter este incarcat in bufferul de emisie un circuit auxiliar calculeaza bitul de paritate (daca acest lucru a fost cerut). Cand intregul caracter (date + paritate) este transferat in registrul de emisie i se adauga bitii de start si stop si este transmis pe linie.
Unitatea de control citeste octetul de stare si testeaza bitul TxBE. Daca acesta este '1' logic inseamna ca buffer‑ul de emisie este gol (caracterul precedent a fost transferat din buffer‑ul de emisie in registrul de emisie de unde a fost emis serial pe linia de comunicatie). Buffer‑ul este acum pregatit pentru incarcarea unui nou caracter. Unitatea de control da comanda pentru incarcarea unui nou caracter in buffer‑ul de emisie. Logica de control din interiorul UART transfera acest caracter in registrul de emisie imediat ce ultimul bit de stop al caracterului precedent a fost emis. De cate ori un caracter este incarcat in buffer‑ul de emisie, bitul TxBE este resetat (adus in '0'). Similar, de cate ori logica de control interna a UART‑ului transfera un caracter din BT in RT, bitul TxBE este setat ('1'). In momentul incarcarii unui caracter in buffer‑ul de emisie, logica de control calculeaza automat si bitul de paritate, daca aceasta a fost selectata. Cand intregul caracter (date + bit de paritate) este transferat in registrul de emisie sunt inserati si bitii de start si stop.
B. Receptia
UART‑ul receptor trebuie programat sa lucreze cu aceleasi caracteristici ca cel emitator. Cand logica de control detecteaza prima tranzitie pe linia de receptie (dupa un interval liber) ceasul receptorului trebuie resincronizat. Acest lucru este realizat de logica de control prin presetarea unui numarator.
De exemplu, daca UART‑ul a fost programat sa opereze cu x16 rata ceasului extern trebuie folosit un numarator modulo 16. La detectarea primei tranzitii acest numarator este setat la 8. Logica de ceas decrementeaza continutul acestuia dupa fiecare ciclu al ceasului extern. Deoarece o celula bit dureaza 16 perioade de ceas, rezulta ca numaratorul va ajunge in zero aproximativ la mijlocul celulei bitului de start. In continuare numaratorul trece din nou in 16 si va ajunge in zero la mijlocul fiecarei celule bit. De fiecare data cand numaratorul ajunge in zero bitul identificat pe linia de transmisie este introdus in registrul de receptie. Aceasta este ilustrata in figura 3.7
Acest proces continua pana cand toti bitii de date si paritate sunt introdusi in registrul de receptie.
In acest moment intregul caracter este incarcat paralel in buffer‑ul de receptie. Bitul de paritate receptionat este comparat cu bitul recalculat la receptie si daca ei difera este setat indicatorul PE. In acelasi timp, la incarcarea buffer‑ului de receptie, este setat indicatorul RxBF.
Registrul de stare contine inca doi indicatori de eroare: FE (framing error) si OE (overrun error).
FE (eroare de incadrare) este setat atunci cand un '0' logic (sau un bit de stop) nu este prezent pe linia de receptie in momentul in care este asteptat ultimul bit de stop la sfarsitul unui caracter receptionat.
Indicatorul OE este setat atunci cand unitatea de control nu a reusit sa citeasca caracterul anterior din buffer‑ul de receptie inainte ca urmatorul caracter receptionat sa fie transferat in buffer.
Setarea acestor indicatori nu inhiba functionarea UART‑ului ci numai semnaleaza unitatii de control ca a fost detectata o eroare.
UART‑ul contine o sectiune de receptie si una de emisie ce opereaza independent una de cealalta. Astfel este posibil sa se controleze cu un singur UART o legatura de tip full‑duplex.
Majoritatea UART‑urilor dispun de linii de control ce permit interfatarea directa cu un modem.
Transmisia sincrona
De multe ori transmisia sincrona este deosebita de cea asincrona prin natura elementelor transmise (blocuri sau caractere). De fapt deosebirea majora intre cele doua tipuri de comunicatie este reprezentata de sincronizarea sau nesincronizarea ceasurilor la emisie si receptie.
Transmisia sincrona ar putea fi realizata prin folosirea unei linii de legatura suplimentare prin care sa se emita ceasul de sincronizare TxClk. Astfel, echipamentul receptor poate determina exact momentul in care a fost emis un nou bit. In practica nu se foloseste aceasta linie suplimentara, informatia de ceas fiind continuta in unda transmisa. Prin aceasta metoda tactul de esantionare la receptie trebuie extras din fluxul de date primit cu ajutorul unui circuit specializat.
Exista doua moduri de realizare a comunicatiei sincrone:
orientata pe caracter;
orientata pe bit.
Diferenta majora intre cele doua metode consta in modul in care este detectat inceputul si sfarsitul unui element transmis. In cadrul metodei orientate pe bit receptorul poate detecta sfarsitul elementului la orice bit (nu numai la biti multipli de 8). Aceasta face ca elementul sa poata avea o lungime de N biti nu neaparat multiplu de 8. In practica aceasta metoda este mai putin folosita deoarece majoritatea aplicatiilor folosesc elemente formate din octeti.
In cazul acestei metode elementele ce trebuie transmise sunt formate din caractere de 7 sau 8 biti ce sunt emise sub forma unui sir continuu de biti fara intarzieri intre ei.
Echipamentul receptor pentru a realiza sincronizarea trebuie sa fie in stare sa:
detecteze inceputul si sfarsitul fiecarui caracter (sincronism la nivel de caracter);
detecteze inceputul si sfarsitul fiecarui element (bloc) complet (sincronism la nivel de bloc).
Pentru realizarea acestor lucruri au fost oferite diverse solutii, obiectivul principal fiind de a face procesul de sincronizare independent de continutul blocului de date.
Schema cea mai raspandita este cea folosita de protocolul de control sincron numit Basic Mode. Acest protocol este folosit pentru transferul informatiei alfanumerice intre terminale inteligente si calculator.
In figura 3.8 este prezentata una din formele acestui protocol.
In cadrul protocolului Basic Mode sincronizarea la nivel de caracter se realizeaza prin transmisia a doua sau mai multe caractere de sincronizare (SYN) imediat inaintea fiecarui bloc de date.
Receptorul, la pornire sau dupa o perioada libera, urmareste bit cu bit fluxul receptionat pana cand detecteaza caracterul de sincronizare cunoscut. In acest moment receptorul a realizat sincronizarea la nivel de caracter, in continuare sirul de biti fiind tratat ca o secventa continua de caractere de 7 sau 8 biti (dupa cum a fost programat UART‑ ul).
In protocolul Basic Mode caracterul de sincronizare SYN (00010110) este unul din caracterele rezervate din setul de coduri de caractere definit de ISO. Din acest set fac parte si caracterele de inceput (STX) si sfarsit (ETX) de bloc.
Toate caracterele sosite dupa un caracter STX sunt comparate cu codul ETX. In cazul in care caracterul receptionat nu este ETX atunci el este memorat. Daca este un caracter ETX receptia blocului se incheie putandu‑se trece la prelucrarea informatiei receptionate. Aceasta varianta este satisfacatoare atunci cand informatia transmisa este formata din caractere tiparibile (de exemplu introduse de la tastatura). In acest caz nu este posibila prezenta accidentala a unui caracter ETX in interiorul blocului. Daca acest lucru se intampla, receptia se termina anormal.
In unele aplicatii insa continutul blocului poate fi un fisier binar. In acest caz trebuie facute unele operatii suplimentare pentru a putea identifica in mod corect sfarsitul de bloc. Acesta este modul 'data transparent' (independent de date) si foloseste o pereche de caractere pentru identificarea atat a inceputului cat si a sfarsitului de bloc.
Detectia incorecta a sfarsitului de bloc se elimina in felul urmator: de cate ori emitatorul intalneste in interiorul blocului un caracter DLE, el insereaza dupa acesta inca un caracter DLE. La receptie, acest al 2-lea caracter va fi eliminat. Receptorul determina astfel sfarsitul de bloc prin secventa unica DLE‑ETX.
In varianta de transmisie orientata pe bloc de informatie, erorile sunt detectate pe baza unor biti suplimentari calculati pe baza continutului blocului si transmisi dupa sfarsitul de bloc. Pentru a mentine independenta fata de continutul blocului, caracterele pentru verificarea erorilor sunt transmise dupa incheierea secventei de bloc.
In varianta orientata pe bit, fiecare bloc transmis poate contine un numar arbitrar de biti care nu este neaparat multiplu de 8.
In figura 3.9 este reprezentat un format tipic de bloc pentru transmisia orientata pe bit.
Asa cum se poate observa din figura indicatorul de inceput si sfarsit de bloc este acelasi. Pentru a asigura independenta fata de date este necesar ca acest indicator sa nu poata fi prezent in continutul blocului. Acest lucru este realizat prin tehnica inserarii unui bit '0' de cate ori echipamentul emitator detecteaza in continutul blocului un sir continuu de 5 biti '1'. In acest fel secventa 01111110 nu poate fi niciodata transmisa intre inceputul si sfarsitul blocului.
Receptorul, dupa detectarea indicatorului de inceput al blocului, contorizeaza bitii '1' consecutivi si in cazul in care dupa 5 biti '1' urmeaza un bit '0' acesta este eliminat.
In varianta orientata pe byte fiecare bloc contine la sfarsit biti suplimentari pentru detectarea erorilor. Bitii '0' inserati si eliminati nu sunt inclusi in procesul de detectare a erorilor.
Circuitele de interfata folosite pentru controlul comunicatiei sincrone orientate pe caracter sunt cunoscute sub numele USRT. Termenul 'universal' este folosit deoarece modulul este programabil si caracteristicile sale de lucru pot fi modificate de catre utilizator.
In figura 3.10 se prezinta schematic structura unui USRT.
Pentru a folosi un astfel de modul, in primul rand trebuie selectate caracteristicile de functionare prin incarcarea unei valori corespunzatoare in registrul de selectie mod. Semnificatia bitilor acestui registru in cazul modulului INTEL 8251 este prezentata in figura 3.11.
Bitii pentru selectia lungimii si paritatii au acelasi sens ca in cazul UART‑ului.
Bitul SCS permite utilizatorului sa selecteze fie unul, fie doua caractere de sincronizare SYN care preced fiecare bloc transmis.
Unitatea de control determina starea curenta a USRT prin citirea continutului registrului de stare si testarea unor biti specifici cum ar fi cei din figura 3.11.
La inceputul transmisiei unitatea de control initiaza emiterea unor caractere de sincronizare pentru a permite receptorului sa poata realiza sincronismul la nivel de caracter. Caracterele de sincronizare SYN sunt incarcate in buffer‑ul de emisie atunci cand TxBE devine '1'.
Dupa emisia caracterelor de sincronizare se trece la emisia blocului de date. Acesta este transferat caracter cu caracter in bufferul de emisie, operatia fiind controlata de starea bitului TxBE.
Dupa ce a fost transmis si ultimul caracter al blocului, USRT automat incepe sa transmita caractere de sincronizare SYN pana cand unitatea de control este gata sa transmita un nou bloc. In acest fel receptorul poate mentine sincronismul intre doua blocuri succesive.
La echipamentul receptor unitatea de control seteaza USRT‑ul in modul urmarire ceea ce face ca logica de control a acestuia sa compare continutul buffer‑ului de receptie cu caracterul de sincronizare dupa fiecare nou bit receptionat. Cand a fost detectata o coincidenta este setat bitul SYNDET care indica obtinerea sincronismului la nivel de caracter.
In continuare receptorul asteapta un caracter STX care sa indice inceputul receptiei unui bloc de date. Fiecare caracter al blocului este apoi preluat de unitatea de control sub controlul bitului RxBF pana cand este detectat caracterul ETX.
In modul sincron toate datele sunt emise si receptionate cu o rata determinata de ceasurile de emisie si receptie. Ceasul de receptie se obtine din unda receptionata prin intermediul unui circuit de extragere a ceasului.
Sincronizarea la nivel de bit
S‑a aratat ca in cazul comunicatiei asincrone se foloseste un ceas separat la receptie a carui frecventa este de cateva ori mai mare decat rata de comunicatie. Apoi, la detectarea primei tranzitii a bitului de start al fiecarui caracter, receptorul, pe baza ceasului local, estimeaza centrul fiecarei celule bit. Aceasta metoda este acceptabila pentru transmisia asincrona din doua motive:
rata de transfer maxima folosita este relativ mica (aprox.19,2 Kbps);
metoda de codificare asigura garantia sincronizarii la inceputul fiecarui caracter.
In cazul transmisiei sincrone, bitii de start si stop nu sunt folositi. Fiecare bloc este transmis ca un flux continuu de cifre binare. De aceea este necesar sa se utilizeze o metoda diferita de sincronizare la nivel de bit.
O solutie este evident de a folosi doua perechi de linii intre emitator si receptor : una pentru fluxul de date si cealalta pentru semnalul de ceas asociat. Aceasta solutie este insa foarte rar aplicata in practica deoarece intr‑o retea telefonica este de obicei disponibila o singura pereche de linii.
Din acest motiv pentru realizarea sincronizarii la nivel de bit s‑au propus alte doua solutii:
informatia reprezentand semnalul de ceas este inclusa in fluxul de biti si este extrasa din aceasta de catre receptor;
informatia ce trebuie transmisa este astfel codificata incat exista suficiente tranzitii sigure in fluxul transmis pentru a sincroniza un circuit de ceas la receptor.
Codificarea ceasului si extragerea acestuia
In figura 3.12 sunt prezentate doua metode de a include informatia de ceas in fluxul de date transmis.
In figura 3.12 (a) fluxul de biti ce trebuie transmis este codificat astfel incat '1' binar este reprezentat printr‑un impuls pozitiv in timp ce '0' binar este reprezentat printr‑un impuls negativ. Aceasta metoda de codificare este cunoscuta sub numele de codificare bipolara.
In cazul metodei de codificare bipolara fiecare celula bit contine si informatia de ceas care poate fi extrasa din unda transmisa printr‑un simplu circuit de corectie si intarziere. Deoarece semnalul revine in zero dupa fiecare bit codificat el se numeste cu intoarcere in zero ‑return to zero RZ-. Asa cum se poate vedea din figura, semnalul RZ necesita trei nivele de amplitudine pentru a reprezenta fluxul de biti.
In contrast, semnalul ilustrat in figura 3.12 (b) necesita numai doua nivele. Unda rezultata este numita fara intoarcere in zero ‑non return to zero NRZ‑ iar metoda de codificare se numeste codificare in faza ‑ phase (Manchester) encoding PE ‑.
Circuitul pentru extragerea ceasului folosit in cazul metodei PE este ceva mai complicat si se bazeaza pe existenta unei tranzitii pozitive sau negative la mijlocul fiecarei celule bit.
In cazul metodei bipolare ceasul extras este folosit pentru esantionarea fluxului receptionat la mijlocul fiecarei celule bit, in timp ce in cazul metodei PE fluxul de biti este esantionat in a doua jumatate a fiecarei celule bit.
Codificarea datelor si sincronizarea la nivel de bit
O a doua solutie este de a utiliza o sursa de tact stabila a receptorului care sa fie mentinuta in sincronism cu fluxul ce se receptioneaza. Deoarece in cazul transmisiei sincrone nu exista biti de start si stop, informatia trebuie sa fie astfel codificata incat sa existe suficiente tranzitii care sa permita resincronizarea ceasului receptorului la anumite intervale de timp. Pentru rezolvarea acestei probleme exista doua solutii:
datele ce trebuie transmise sunt trecute printr‑un circuit de amestec ce are rolul de a inlatura siruri continue de 1 sau 0.
datele sunt astfel codificate incat sa fie garantata prezenta naturala permanenta a tranzitiilor.
In figura 3.13 se prezinta modul de codificare NRZI (non return to zero inverted) comparativ cu NRZ.
In cazul modului de codificare NRZI (ce se mai numeste si codificare diferentiala) nivelul semnalului se modifica in cazul transmiterii unui bit 0 si ramane nemodificat pe bit 1. Aceasta insemna ca un semnal NRZI va contine intotdeauna tranzitii cu exceptia cazului in care fluxul transmis contine un sir continuu de 1. Pentru a inlatura aceasta situatie se poate adopta metoda inserarii de zero-uri dupa fiecare 5 biti '1' consecutivi. Unda rezultata va contine in mod sigur tranzitiile necesare pentru sincronizarea receptorului.
Circuitul folosit pentru mentinerea sincronizarii la nivel de bit este cunoscut sub numele de DPLL (digital phase‑locked loop). DPLL functioneaza pe baza unui oscilator controlat de cuart avand o frecventa suficient de stabila care nu necesita decat mici ajustari la intervale de timp neregulate. De obicei frecventa oscilatorului este de 32 ori mai mare decat rata de transfer. Presupunand ca fluxul de biti transmisi si ceasul local sunt in sincronism, starea semnalului de pe linie va fi determinata prin esantionare la centrul fiecarei celule bit. Perioada de esantionare este de 32 ori mai mare decat perioada ceasului local asa cum se arata in figura 3.14 (a).
In cazul in care fluxul de biti receptionati si ceasul local ies din sincronism reglarea momentelor de esantionare se face ca in figura 3.14 (b).
Daca pe linie nu sunt tranzitii DPLL genereaza cate un impuls de esantionare dupa 32 perioade de ceas. In momentul in care este detectata o tranzitie (1 0 sau 0 1) DPLL compara momentul aparitiei tranzitiei cu momentul estimat de DPLL. Pentru a realiza acest lucru fiecare perioada bit este impartita in 4 parti notate in figura A,B,C,D. Fiecare parte are o durata de 8 perioade de ceas. In cazul in care tranzitia este detectata pe timpul sfertului A inseamna ca ultimul impuls de esantionare a fost dat prea tarziu si deci perioada pentru urmatorul impuls va fi scurtata la 30 perioade de ceas.
In acest fel, prin ajustari succesive, impulsurile de esantionare sunt generate in apropierea mijlocului fiecarei celule bit.
Cand se foloseste un DPLL, inaintea transmiterii primului bloc pe linie de obicei se transmit cateva caractere care sa asigure minimum 12 tranzitii bit (doua caractere compuse numai din 0 asigura 16 tranzitii in cod NRZI). Astfel DPLL in momentul primirii indicatorului de inceput de bloc va genera corect impulsurile de esantionare.
Metode de detectare a erorilor
In cazul comunicatiei de date intre doua DTE se intampla uneori ca semnalele electrice reprezentand fluxul de biti transmis sa fie modificate de interferente electromagnetice datorate unor echipamente electrice vecine. Aceasta inseamna ca semnalul reprezentand un 1 binar poate fi interpretat de receptor ca un 0 binar.
Pentru a exista o mare probabilitate ca informatia receptionata sa fie identica cu cea transmisa, sunt necesare metode prin care receptorul sa stabileasca daca informatia primita contine sau nu erori. In plus, in cazul detectarii erorilor este necesar un mecanism prin care sa se obtina informatia corecta.
Pentru realizarea acestui lucru exista doua metode:
controlul anticipat al erorii: fiecare caracter sau bloc transmis contine informatii aditionale (redundante) pe baza carora receptorul nu numai ca depisteaza prezenta erorilor, dar reface din fluxul de biti receptionat informatia pe care o presupune a fi corecta.
controlul posterior al erorii: fiecare caracter sau bloc contine numai informatiile aditionale ce permit receptorului sa detecteze prezenta erorilor (fara a le putea elimina). Informatia eronata va fi retransmisa in speranta ca operatia se va efectua corect de aceasta data.
In cazul primei metode numarul de biti aditionali necesari pentru controlul anticipat al erorii creste rapid odata cu cresterea numarului de biti ai informatiei. Din acest motiv in practica este mult mai raspandita a doua metoda. Aceasta poate fi impartita in doua parti:
tehnicile ce pot fi folosite pentru detectarea erorilor;
algoritmii de control asociati schemelor de retransmisie.
In continuare se vor prezenta tehnicile uzuale folosite pentru detectarea prezentei erorilor.
Paritate
Cea mai raspandita metoda folosita pentru detectarea erorilor atunci cand numarul de biti de informatie este mic si cand probabilitatea prezentei unei erori este mica, este folosirea unui singur bit aditional de paritate pentru fiecare element transmis.
Bitii de date ai fiecarui caracter sunt examinati de echipamentul emitator pe baza lor fiind calculat bitul de paritate. Acesta este apoi adaugat astfel incat numarul total de 1 in intregul element este fie par, fie impar, in functie de tipul de paritate folosit (para sau impara). Receptorul recalculeaza bitul de paritate pentru caracterul receptionat determinand astfel aparitia erorilor de comunicatie.
In figura 3.15 (a) este ilustrat formatul unui element transmis:
Eficienta unei anumite metode de detectare a erorii depinde foarte mult de tipul erorilor ce pot sa apara. Astfel, metoda paritatii este eficienta in cazul in care un singur bit al unui caracter este interpretat gresit la receptie. In cazul in care doi biti sunt modificati, eroarea nu va putea fi detectata pe baza bitului de paritate.
Deoarece paritatea este folosita atat in cazul comunicatiei asincrone cat si in cazul comunicatiei sincrone orientata pe caracter atat UART‑urile cat si USRT‑urile contin facilitati pentru:
calculul si inserarea bitului de paritate in fiecare caracter la emisie;
recalcularea paritatii la receptie pentru fiecare caracter primit si semnalarea aparitiei unei erori.
In figura 3.15 (b) este reprezentat un circuit de calcul al bitului de paritate.
Suma de control
Posibilitatile de detectare a erorilor pot fi extinse in cazul folosirii unui singur bit de paritate pe caracter prin folosirea unui set aditional de biti de paritate calculati pe baza intregului set de caractere din bloc. Prin aceasta metoda fiecarui caracter ii este asociat un bit de paritate si in plus este generat un bit suplimentar de paritate pentru fiecare pozitie de bit (coloana) din intregul bloc. Setul de biti de paritate rezultati se numeste suma de control. Un exemplu se prezinta in figura 3.16.
Bitii de paritate generati de USRT pentru fiecare caracter se numesc biti de paritate transversala, iar bitii suplimentari de paritate generati pentru fiecare coloana se numesc biti de paritate longitudinala.
Deoarece bitii suplimentari de paritate (pe coloana) se calculeaza ca suma modulo 2 a bitilor din fiecare coloana, caracterul final rezultat se numeste suma de control a blocului.
Exemplul prezentat in figura 3.16 foloseste paritatea impara pentru randuri si paritate para pentru coloane. De exemplu, se poate observa ca doi biti eronati intr‑un caracter nu pot fi detectati cu bitul de paritate transversala dar eroarea poate fi semnalata cu bitii de paritate longitudinala. Acest lucru nu este valabil atunci cand apar doi biti eronati pe aceeasi coloana (ca in figura). Deoarece probabilitatea de aparitie a acestui caz este mica metoda este folosita in cazul transmisiei (orientata pe bloc) pe linii cu probabilitate de erori mica. Pentru linii mai zgomotoase se folosesc metode mai riguroase de detectare a erorilor.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2878
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved