Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




TRANSMISIA SERIALA A DATELOR

Informatica


TRANSMISIA SERIALĂ A DATELOR



Transmisia seriala

Transmisia digitala de date a evoluat de la conexiunea între un calculator cu echipamentele periferice, la calculatoare care comunica în retele internationale complexe. Cu toate ca transferul paralel este mai rapid, majoritatea transmisiilor de date între calculatoare sunt facute pe cale seriala pentru a reduce costul cablului si conectorilor. Exista si limitari fizice de distanta, care nu pot fi depasite de magistralele paralele. In comunicatia seriala, datele sunt transmise bit cu bit. Toate comunicatiile sunt caracterizate de trei elemente principale:

Date - întelegerea lor, scheme de codificare, cantitate

Temporizari - sincronizarea între receptor si emitator, frecventa si faza

Semnale - tratarea erorilor, controlul fluxului si rutare

3.1.1 Sincronizare, frecventa si faza

Este necesar un mecanism care sa permita receptorului sa citeasca corect bitul curent de intrare la jumatatea duratei lui. Receptorul trebuie sa stie durata unui bit si de unde începe bitul respectiv, adica trebuie sa cunoasca frecventa si faza secventei de date. Daca emitatorul si receptorul au acelasi semnal de tact, sincronizarea este perfecta; emitatorul scrie bitul pe frontul crescator al tactului, iar receptorul citeste bitul pe frontul coborâtor al tactului. Problemele apar când

receptorul si emitatorul nu au un semnal de tact comun. Daca duratele celor doua semnale de tact, pentru emitator si receptor, nu sunt egale, apare o decalare, care dupa un anumit numar de biti rezulta intr-o eroare. Pentru a evita aceasta, receptorul trebuie resincronizat regulat la nivel de bit. Din alte motive, trebuie resincronizate si începutul unui caracter, pachet sau mesaj. In figura 3.1, in primul caz, fiecare bit este citit la mijlocul duratei lui, iar in cazul al doilea, bitul 4 se pierde deoarece tactul receptorului este prea incet.

Fig. 3.1 Transmitere seriala

a) ideala; b) date corupte

Daca emitatorul si receptorul au acelasi semnal de tact atunci se spune ca lucreaza in mod Sincron. Altfel, daca au semnale de tact separate, atunci lucreaza în mod Asincron.

În modul Asincron, emitatorul nu trimite un tact deodata cu datele, ci insereaza un pseudo-impuls de tact, cunoscut ca Bit de Start, in fata fiecarui octet transmis. Astfel, pentru fiecare caracter ASCII avem o transmisie independenta, cu adaugarea bitilor de Start, Stop si Paritate. Viteza de lucru se stabileste manual la începutul transmisiei. Pentru informatia de faza, receptorul trebuie sa detecteze începutul bitului de Start. Pentru ca aceasta metoda sa functioneze, trebuie sa existe, o perioada de l 444i88e iniste între caractere, realizata cu bitul de Stop.

În modul Sincron, caracterele sunt transmise rapid, unul dupa altul, fara biti de Start si de Stop. Pentru sincronizare, mesajul transmis este precedat de caractere speciale de sincronizare, detectabile de circuistica receptorului. Acestea sunt transmise în continuu si când nu sunt date de transmis. Transmisiile in mod sincron pot folosi scheme de inteligente de modulare, care se bazeaza pe circuistica suplimentara, iar semnalele de date si tact folosesc aceeasi pereche de fire. Aceasta metoda, cunoscuta sub numle de codificare Manchester, este folosita in retele Ethernet.

O metoda sincrona alternativa este folosita pentru transmsii seriale rapide non-caracter, orientate pe bit. Protocoalele care folosesc aceasta metoda permit transferul de date la viteze mari. Un astfel de protocol este si protocolul HLDC.

3.1.2 Codificarea datelor si controlul erorilor

Erorile pot apare când circuistica folosita pentru conexiune este afectata de zgomot (interferente electrice) cum ar fi: lampi fluorescente, comutarea unor motoare mari, etc. Aceste vârfuri sunt induse in firele de comunicatie care se comporta ca niste antene. Deoarece tensiunile cu care se lucreaza în calculatoare sunt mici, efectul pe care îl are acest zgomot este important. Circuistica respectiva trebuie sa fie imuna la aceste zgomote.

Canalele moderne de comunicatie sunt din ce în ce mai fiabile. Metodele de detectie si corectie a erorilor se indreapta spre domeniile CD-ROM-urilor si DVD-urilor. Toate aceste metode implica introducerea de informatie neesentiala, pe lânga date utile, în transmisia datelor. Exista mai multe metode care se folosesc:

Biti de paritate - simplu de aplicat , nu ofera siguranta mare

Sume de control la nivel de bloc - simplu de aplicat , nu ajuta prea mult  Impartire polinomiala - mai complicat de calculat, ofera securitate

De exemplu, receptorul trimite înapoi o copie a datei primite. Acest mecanism injumatateste latimea de banda folosita. O alternativa ar fi ca emitatorul sa trimita data urmata de o copie a acesteia.

Toate metodele de tratare a erorilor folosesc informatie redundanta. De cele mai multe ori, aceste informatii sunt codificate înainte de transmisie.

Paritatea este cea mai discutata metoda de detectie a erorilor pentru protectia transmisiilor seriale de caractere ASCII. La oricare din metode, emitatorul prelucreaza o parte din date si genereaza un fel de semnatura pe care apoi o transmite impreuna cu date utile. Când mesajul ajunge la receptor, acesta prelucreaza datele primite si genereaza o semnatura pe care o compara cu cea primita. Daca cele doua semnaturi nu coincid, atunci înseamna ca s-a produs o eroare. Metoda bitului de paritate se poate aplica pentru date binare de orice lungime. Pentru fiecare cuvânt este adaugat un bit de paritate (semnatura). Paritatea poate fi para (cuvântul contine un numar par de 1) sau impara (cuvântul contine un numar impar de 1). Calcularea paritatii se poate face cu operatorul XOR (SAU Exclusiv) între bitii cuvântului. Prin aceasta metoda este posibila doar detectia erorii singulare, când sunt afectati un numar impar de biti. O eroare dubla (afecteaza un numar par de biti) nu poate fi detectata prin acest mecanism. Prin urmare, aceasta metoda nu ofera prea multa securitate. Un singur bit de paritate nu ofera informatii despre pozitia erorii.

Codurile Hamming reprezinta o alta metoda care permite si localizarea erorii prin adaugarea a mai mult de un bit de paritate dupa bitii utili. Este astfel posibila detectia si corectia erorii. Problema este "unde sunt pozitionati bitii de paritate între bitii utili ?" Raspuns: pentru bitii de paritate se aloca pozitiile care sunt puteri ale lui 2 în cuvântul dat. De xemplu, pentru 4 biti utili avem urmatoarea asezare:

D4

D3

D2

P3

D1

P2

P1

unde D1, D2, D3, D4 sunt biti utili si P1,P2,P3, P4 sunt biti de paritate.

Cu formula d=2p - (p+1) se poate calcula numarul de biti utili (d) acoperiti de un numar (p) de biti de paritate. Calcularea bitilor de paritate (sindrom) se poate face prin înmultire de matrici.

X

Exemplu:

unde bitii ingrosati sunt selectori pentru bitii de paritate, iar 001 sindrom 4d-3p.

De exemplu, daca bitul 5 este afectat de eroare, la receptie, sindromul recalculat va fi [1 0 1], adica 5 (în zecimal), pozitia bitului eronat. Cuvântul primit poate fi astfel corectat prin inversarea bitului 5. Acest mecanism permite corectia erorii singulare si detectia erorii duble.

Suma de control la nivel de bloc este alt mecanism de detectie a erorilor de transmisie. Prima data este necesar ca datele sa fie impartite in blocuri, care apoi se însumeaza si se obtine o suma care va fi trunchiata, inversata si adaugata la sfârsit. La receptie, blocurile primite, care includ si suma de la sfârsit, se aduna pe masura ce sosesc, si daca suma obtinuta nu este 0 atunci înseamna ca datele sunt eronate si secventa trebuie retransmisa. Nu este posibila corectia erorii. Pentru identificarea erorilor multiple si corectia lor, s-a dezvoltat mecanismul BCH.

Cyclic Redundancy Chek. O alta metoda de detectie a erorilor este CRC. si în acest caz se calculeaza o suma de control, dar prin impartire aritmetica. Secventa de biti este impartita cu un numar special ales. Impartirea se face in modulo 2, adica folosind operatorul XOR. Restul impartirii reprezinta semnatura care va fi adaugata la sfârsit, dupa bitii utili. Divizorul se obtine cu algoritmul folosit la codurile Hamming. La receptie, se recalculeaza restul impartirii si daca nu coincide cu cel primit, atunci secventa este eronata.

Performantele acestei metode sunt impresionante. Un CRC care genereaza un rest de 16 biti poate detecta:

toate erorile în rafala de maxim 16 biti

toate numerele impare de biti din eroare

99.998 % din toate erorile de orice lungime

CRC-ul se poate calcula mai usor prin metode hardware, folosind registre cu deplasare si porti logice XOR.

3.1.3 Controlul fluxului de date

Controlul fluxului de date este necesar pentru a preveni erorile de depasire, când receptorul nu poate prelucra datele care vin cu viteza prea mare. La început, datele sunt receptionate corect, dar nu pot fi prelucrate cu viteza cu care alte date sosesc si astfel se umple buffer-ul de receptie, rezultând o eroare de depasire. În acest caz, datele vechi din buffer vor fi înlocuite de date noi, înainte de a fi prelucrate. Pentru a evita aceasta eroare, receptorul trebuie sa poata sa-i ceara emitatorului sa opreasca transmisia pâna când sunt prelucrate toate datele din buffer-ul de receptie (golire). Aceasta facilitate se numeste controlul fluxului de date si este un element esential pentru toate legaturile de comunicatie.

Mecanismul poate fi implementat în mai multe moduri:

Cu ecou - receptorul trimite înapoi la emitator fiecare caracter primit

Hardware - folosind liniile de control RTS/CTS (RequestToSend/ClearToSend)

Software - prin coduri de control ^S/^Q (Stop/Continuare)

La nivel de cadru - prin codurile ACK/NAK

(Acknowledge/NegativeAcknowledge)

3.2 Specificatiile RS-232

Astazi, cel mai popular standard de comunicatie seriala este cu siguranta EIA/TIA-232-E. Acest standard, care a fost dezvoltat de "Electronic Industry Asociation and the Telecommunications Industry Association" (EIA/TIA) este cunoscut mai simplu ca "RS-232", unde "RS" inseamna "recomended standard". Se mai foloseste si denumirea EIA/TIA atunci când se doreste a sugera originea acestui standard. Vom folosi notatia "RS-232" pe parcursul acestei lucrari.

Numele oficial al standardului EIA/TIA-232-E este "Interface Between Data Terminal Equipment and Data Circuit-Termination Equipment Employing Serial Binary Data Intercharge". Desi denumirea poate parea complicata, acest standard este pur si simplu dedicat comunicatiei seriale între un sistem gazda (Data Terminal Equipment sau DTE) si un sistem periferic (Data Circuit-Terminating Equipment, sau DCE).

Standardul EIA/TIA-232-E, care a fost introdus în 1962, a fost reactualizat de 4 ori de la introducerea sa, pentru a întâmpina cât mai bine necesitatile comunicatiei seriale. Litera "E" în denumirea sa indica cea de-a cincea revizuire a standardului.

RS-232 este un standard "complet". Aceasta înseamna ca standardul asigura compatibilitatea între sistemele gazda si periferice specificând:

Nivelurile tensiunii si semnalului

Configuratia pinilor si a legaturilor

Controlul informatiei între cele doua echipamente

Spre deosebire de multe standarde care specifica sau delimiteaza numai caracteristicile electrice ale unei interfete date, RS-232 specifica proprietatile electrice, functionale si mecanice care trebuie îndeplinite pentru a se respecta cele 3 criterii de mai sus. Fiecare din aceste aspecte ale RS-232 va fi discutat in continuare.

3.2.1 Caracteristicile electrice

Sectiunea standardului RS-232 privitoare la caracteristicile electrice include specificatiile asupra nivelului tensiunilor, rata de schimbare a nivelului semnalului si impedanta legaturii (liniei de comunicatie).

Standardul RS-232 a fost definit în 1962. Cum aceasta a fost înainte de cercetarile asupra TTL, el nu foloseste nivelurile logice de 5 si 0 volti. În schimb, nivelul superior al iesirii driverului este definit ca fiind între +5 si +15 volti, si nivelul inferior al iesirii driverului este definit ca între -5 si -15 volti. Figura 3.2 ilustreaza nivelurile logice definite de standardul RS-232. Este important de mentionat ca nivelul jos (între -5 si -15 volti) este definit ca logic 1 si un nivel înalt (între +5 si +15 volti) este definit ca logic 0.

RS-232 delimiteaza si traficul maxim de date admis la iesirea driverului. Aceasta limitare a fost introdusa pentru a reduce probabilitatea de interferenta a semnalelor adiacente. Cu cât e mai scurt timpul de urcare si coborâre, cu atât e mai mica posibilitatea de interferenta. Ţinând cont de aceste lucruri, viteza maxima de transfer a datelor este de 20Kbiti/s. Aditional, viteza maxima dv/dt acceptata este de 30V/µs, tot pentru reducerea posibilitatii de interferenta.

În ceea ce priveste impedanta între driver si receptor, aceasta este mentionata ca fiind între 3 KΩ si 7 KΩ. În standardul initial RS-232, cablul dintre cele doua echipamente era specificat ca fiind de maxim 15 metri în lungime. Aceasta parte a standardului a fost schimbata în revizuirea "D" (EIA-TIA-232-D). In loc de a impune lungimea maxima a cablului, a fost specificata o încarcare capacitiva maxima a cablului de 2500 pF. Lungimea maxima a cablului ce poate fi folosit este determinata de capacitatea pe unitate de lungime, care trebuie mentionata de producatorul cablului.

Fig. 3.2. Nivelurile logice ale RS-232

3.2.2 Caracteristici functionale

Din moment ce RS-232 este un standard "complet", include mai mult decât specificatii asupra caracteristicilor electrice. Al doilea aspect acoperit de acest standard se refera la caracteristicile functionale ale interfetei. Concret, RS-232 defineste functiile diferitelor semnale care sunt folosite în interfata. Aceste semnale sunt împartite în categorii diferite: de masa, de date, de control si de timp. Tabelul 3.1. ilustreaza semnalele definite de standardul RS-232. Asa cum se poate vedea, exista un numar covârsitor de semnale posibile. Standardul prevede o abundenta de semnale de control si suporta doua canale de comunicatie, unul primar(principal) si unul secundar. Din fericire foarte putine aplicatii necesita toata aceasta gama de semnale. De exemplu, numai 8 semnale sunt folosite de un modem obisnuit. Unele aplicatii simple necesita numai 4 semnale (doua pentru transportul datelor si doua de sincronizare), în timp ce altele pot avea nevoie numai de semanlele de date fara sincronizare.

Nume semnal*

Directie

Tip semnal

Signal Common

de masa

Transmited Data (TD)
Received Data (RD)

DTE DCE

DTE DCE

de date

Request to Send (RTS)

Clear to Send (CTS)

DCE Ready (DSR)

DTE Ready (DTR)

Ring Indicator (RI)

Data Carrier Detect (DCD)

Signal Quality Detector

Data Signal Rate Detector from DTE

Data Signal Rate Detector from DCE

Ready for Receiving

Remote Loopback

Local Loopback

Test Mode

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

DTE DCE

de control

Transmitter Signal Element Timing from DTE

DTE DCE

Transmitter Signal Element Timing from DCE

Receiver Signal Element Timing from DCE

DTE DCE

DTE DCE

de timp

Secondary Transmited Data

Secondary Received Data

DTE DCE

DTE DCE

de date

Secondary Request to Send

Secondary Clear to Send

Secondary Received Line Signal Detector

DTE DCE

DTE DCE

DTE DCE

de control

*Semnalele cu abreviatii în paranteza sunt cele 8 semnale uzual folosite

Tabel 3.1. Semnalele interfetei RS-232

3.2.3 Caracteristicile mecanice


A treia arie acoperita de RS-232 se refera la interfata mecanica (conectorul). În particular, RS-232 specifica un conector cu 25 pini. Aceasta este marimea minima a conectorului care permite folosirea tuturor semnalelor definite în sectiunea functionala a standardului. Asezarea pinilor în cadrul acestui conector este aratata în figura 3.3.

Desi RS-232 specifica un conector cu 25 de pini, trebuie mentionat ca deseori nu este folosit acest conector. Aceasta datorita faptului ca cele mai multe aplicatii nu au nevoie de toate semnalele definite si deci un conector cu 25 pini este mai mare decât ar fi necesar. Se folosesc alte tipuri de conectori, cel mai popular fiind cel cu 9 pini DB9S, care este de asemenea ilustrat in figura 2. El este suficient pentru aplicatiile uzuale (cum ar fi un modem), permitând transmisia si receptia semnalelor necesare acestor aplicatii.

Figura 3.3. Cupla seriala cu 9 si 25 pini (partea de la calculator)

3.3. Transmisia datelor în RS-232

Aceasta presupune un conector D cu 25 sau 9 pini, la care de cele mai multe ori sunt legate doar 3 fire. Un bit de 1 logic este transmis ca aproximativ -9 volti, iar un bit de 0 logic ca +9V. In standardul RS232 datele se transmit in urmatorul format:

Bit Start

Bit 0

Bit 1

Bit 2

Bit 3

Bit 4

Bit 5

Bit 6

Bit 7

Bit Paritate

Bit Stop

Modul in care un octet furnizat de catre utilizator este trimis pe linia TxD, respectiv receptionat pe linia RxD este invizibil utilizatorului. Aceste operatiuni sunt executate la nivel hardware de portul serial implementat cu circuitul UART 16550 (Receptie si Transmisie Universala in mod Asincron). Toate calculatoarele ofera porturi seriale pentru conectare de modem sau alte echipamente UART. Acest circuit face legatura intre magistrala de date paralela, din interiorul calculatorului, si linia seriala din exterior. Pe lânga liniile de date si control, circuitul ofera si linii de semnalizare a erorilor de cadrare, depasire, paritate si semnale de intrerupere pentru a anunta procesorul de sosirea unei date. Porturile seriale pot fi configurate la nivel utilizator prin interfete grafice oferite de sistemul de operare, care permit stabilirea parametrilor unei comunicatii seriale: viteza de lucru, numarul de biti de date, tipul de paritate, modul de control al fluxului de date.

Transmitted Data (TD): Unul dintre cele doua semnale de date. Acest semnal este generat de DTE si receptionat de DCE.

Received Data (RD): Cel de-al doilea semnal de date. Acest semnal este generat de DCE si receptionat de DTE.

Request To Send (RTS): Când sistemul gazda (DTE) este pregatit sa trimita date sistemului periferic (DCE), RTS este ON. În sistemele simplex si duplex, aceasta conditie mentine DCE-ul în mod de receptie. În sistemele half-duplex, aceasta conditie mentine DCE-ul în mod de receptie si dezactiveaza posibilitatea de a transmite. Pentru ca DCE-ul sa fie pe mod transmisie, RTS trebuie sa fie OFF.

Clear To Send (CTS): CTS este folosit împreuna cu RTS pentru a realiza handshaking-ul între cele doua echipamente. Dupa ce DCE-ul primeste semnalul RTS, trimite CTS când este gata de a începe comunicarea.

Data Set Ready (DSR): Acest semnal este pus de DCE pe pozitia ON pentru a indica ca este conectat la linia de comunicatie.

Data Carrier Detect (DCD): Acest semnal este ON cand DCE-ul primeste semnale corespunzatoare, compatibile cu criteriile sale. DCD ramâne ON atât timp cât purtatorul de semnal poate fi detectat.

Data Terminal Ready (DTR): DTR indica disponibilitatea echipamentului DTE. Semnalul este pus ON de catre DTE când este pregatit de a transmite sau receptiona. DTR trebuie sa fie ON înainte ca echipamentul DCE sa activeze DSR.

Ring Indicator (RI): Este folosit in cazul comunicatiei cu un modem. RI indica prezenta unui apel pe linia telefonica de comunicatie.

Acest tip de comunicatie este folosit pentru a transmite un semnal digital de la un calculator la un modem, care folosind mai departe alte standarde de comunicatie, transmite semnalul sub forma analogica, pe linia de telefon, spre un alt modem legat la alt calculator. Computerul se numeste DTE (Data Terminal Equipment), iar modem-ul DCE (Data Communications Equipment). In figura 3.4 este ilustrat rolul pe care-l are legatura RS232 in comunicatiile de date, pe distante mari.

Fig 3.4. Rolul legaturii RS-232 în comunicatia datelor


Document Info


Accesari: 6166
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )