Sunteți pe pagina 1din 12

Transferul serial

Caracteristici Transferul serial se definete ca fiind transmisia secvenial a datelor ntre dou puncte de comunicaie. Suportul fizic necesar transferului de informaii este reprezentat de ctre magistrale. Caracteristica principal a unei magistrale seriale este transmisia bit cu bit a informaiilor, folosindu-se pentru aceasta un numr redus de semnale sau linii de comunicaie.

Calculator

Dispozitiv periferic

Figura 1. Transferul serial al datelor Spre deosebire de magistrala serial, o magistral paralel permite transferul simultan al mai multor bii pe mai multe linii de date. Transmisia serial, dei asigur o vitez de transfer mai redus n comparaie cu transmisia paralel, prezint n plus o serie de avantaje, cum ar fi: un numr redus de linii de transmisie i o distan de transfer mai mare. Clasificarea modalitilor de transfer serial [1] Intre dou puncte de comunicaie se pot stabili mai multe moduri de transfer serial. Se poate face o clasificare a acestor moduri n funcie de urmtoarele criterii : 1. Modul de sincronizare : - transfer sincron, n care se utilizeaz un semnal de ceas care s indice momentul n care un anumit bit de dat este valid ; - transfer asincron, n care nu se utilizeaz un semnal de ceas, sincronizarea ntre unitatea emitent i cea receptoare fcndu-se pe baza structurii

specifice a blocului de date transmis (care de exemplu poate include un bit de start, 6 bii de date, un bit de stop). 2. Lungimea blocului de date transmis : - transfer pe octet - transfer pe bloc (numr mai mare de octei) 3. Numrul de participani n comunicaie - transfer punct-la-punct : legtura se realizeaz ntre dou puncte de comunicaie - transfer multipunct : legtura se realizeaz n circuit ntre mai multe componente, dintre care la un moment dat una transmite i celelalte ascult 4. Direcia de transfer - transfer unidirecional (ntr-un singur sens) - transfer bidirecional sau full duplex (simultan n dou sensuri) - transfer bidirecional pe o singur linie sau half duplex (se transmite pe rnd n cele dou direcii) De asemeni, magistralele seriale se pot clasifica dup modul n care realizeaz legtura serial : - magistrale sistem, folosite pentru interconectarea componentelor unui sistem de calcul (microcontroler, memorii, convertoare) - linii seriale, folosite pentru interconectarea unor calculatoare i dispozitive periferice (imprimant , consol ) prin legtur punct-la-punct - reele de comunicaie, utilizate pentru comunicaia multipunct ntre mai multe calculatoare.

Protocolul de comunicaie Protocolul de comunicaie reprezint un set de reguli pe baza cruia se realizeaz transferul serial. Dou echipamente care comunic pe o magistral serial trebuie s respecte acelai protocol, respectiv aceleai reguli de transmisie, cerin fr de care nu s-ar putea ntelege reciproc. Protocolul cuprinde dou categorii de informaii: A. Reguli privind modalitatea fizic de efectuare a legturii, cum ar fi: - tipul i semnificaia semnalelor folosite pentru transmisie, - mecanismele de sincronizare a echipamentelor comunicante, - tipul de conectori folosii, - natura i parametri fizici ai mediului de transmisie (cablu bifilar torsadat, cablu coaxial, fibr optic, etc.)

B. Reguli privind parametrii transmisiei, ca de exemplu : - viteza de transfer a datelor (9600 bauds, 19600 bauds,etc.) ; - tipul de sincronizare (transmisie sincron sau asincron) ; - mecanismele de detecie i corecie a erorilor ; - structura blocului de date, etc. Standarde folosite n comunicaia serial [1] Pentru a asigura compatibilitatea ntre diferite componente realizate de diveri productori, s-au definit mai multe de standarde internaionale. Cele mai cunoscute standarde uilizate n comunicaia serial sunt : RS 232, RS 485, HDLC/SDLC, pentru comunicaia asincron, respectiv I2C pentru comunicaia sincron. Standardul RS 232 se folosete pentru comunicaia punct la punct pentru transmisia de coduri ASCII sau date n format binar. Standardul RS 485 asigur comunicaia multipunct pe cablu bifilar torsadat, iar HDLC/SDLC este un standard pentru comunicare n reea ce folosete un protocol de comunicaie bazat pe cadre. Standardul I2C se utilizeaz pentru interconectarea pe o magistral serial a componentelor unui sistem cu microcontroler.

Standardul RS-232 Este cel mai cunoscut standard de comunicaie serial asincron. Iniial standardul a fost conceput cu scopul de a permite conectarea unui terminal inteligent la un calculator central printr-o legtur telefonic. Standardul precizeaz interfaa dintre un echipament de calcul (DTE- Data Terminal Equipment) i adaptorul su la linia telefonic modem (DCE- Data Circuit Equipment) vezi figura 2 :
linie serial DTE Data Terminal Equipment Calculator DCE Data Circuit Equipment Modem linie telefonica DCE Data Circuit Equipment Modem linie serial DTE Data Terminal Equipment Calculator

Figura 2. Componentele unui ansamblu de comunicaie n standardul RS-232

Interfaa permite comunicaia serial bidirecional ntre calculator (DTE) i componenta de comunicaie (DCE), la o vitez de transfer ntre 110 i 19200 bauds. Standardul se poate folosi i pentru a realiza legturi seriale ntre diverse echipamente fr a mai folosi un modem. Aa cum am mai spus, modul de transmisie este n acest caz serial asincron, bidirecional. Codificarea informaiilor binare (1 logic, respectiv 0 logic) se face prin nivele de tensiune sau curent. n standardul RS-232, avem urmtoarea structur a informaiei de transmis (figura 3): - un bit de start (0 logic) - 5-8 bii de date - 0-1 bit de paritate (pentru detecia erorilor) - 1-2 bii de stop (1 logic)

linie liber bit de start

bii de date bit de paritate 1-2 bii de stop

linie liber

Figura 3. Structura unui bloc de date transmis n standardul RS-232 n cazul transmisiei seriale asincrone, sincronizarea ntre transmitor i receptor se realizeaz la nceputul fiecrui caracter prin bitul de start (0 logic). De precizat c n repaus linia este n 1 logic. Citirea datelor se face secvenial, la jumtatea intervalelor de bit care urmeaz bitului de start. Protocolul asigur citirea corect a datelor chiar i n cazul n care exist mici diferene (pin la 2%) ntre frecvena de emisie i cea de citire a datelor. Aceast sincronizare nu s-ar pstra n cazul n care lungimea blocului de date ar fi mai lung.

Protocoale de comunicaie n cazul standardului RS-232 Standardul RS-232 prezint posibilitatea de specificare a dou tipuri de protocoale : A. Protocol hardware, caz n care controlul transferului de date se realizeaz prin intermediul semnalelor fizice DTR/DSR. Cu ajutorul acestor semnale, receptorul poate opri fluxul de date transmis, de exemplu din cauza vitezei prea mari a transmitorului.

DSR

T Trans mitor

DTR date

R Receptor

Figura 4. Semnalele de control utilizate n cazul protocolului hardware Semnificaia semnalelor este urmtoarea: - DTR (Data Terminal Ready) : transmitorul este pregtit pentru transmisie - DSR (Data Set Ready) : receptorul e gata s primeasc datele. DTR este generat de ctre transmitor n momentul n care el poate furniza datele de transmis. Cnd receptorul este gata, genereaz semnalul DSR, moment n care transmisia poate ncepe. Transmisia se oprete ori de cte ori semnalul DSR este dezactivat. Pentru transmisia i recepia datelor se folosesc semnalele : - TXD (Transmit Data), la transmitor, respectiv - RXD (Receive Data), la receptor. Conectarea semnalelor la capetele de comunicaie este ilustrat n figura 5. n cazul transmisiei unidirecionale, se folosesc doar semnalele figurate cu linie continu, iar pentru transmisia bidirecional, i semnalele cu linie punctat.
TXD RXD DTR DSR GND TXD RXD DTR DSR GND

Transmitor

Receptor

Figura 5. Conectarea punctelor de comunicaie n cazul protocolului hardware

B. Protocol software, n care se folosesc coduri XON/XOFF integrate n structura blocurilor de date pentru pornirea, respectiv oprirea fluxului de date. XON i XOFF au aceeai semnificaie ca i semnalele DTR, respectiv DSR din cazul protocolului hardware, cu deosebirea c ele nu sunt semnale fizice, ci sunt generate prin software. n acest caz, conectarea punctelor de comunicaie arat ca n figura 6, unde observm c nu mai este necesar conectarea pe liniile DTR/DSR:
TXD RXD DTR DSR GND TXD RXD DTR DSR GND

Transmitor

Receptor

Figura 6. Conectarea punctelor de comunicaie n cazul protocolului software n tabelul de mai jos s-a indicat numele i semnificaia celor mai importante semnale definite de standardul RS-232. De asemenea s-a indicat poziia acestor semnale pe un conector de 25 pini i pe unul de 9 pini. Direcia este indicat ntre calculator (DTE) i modem (DCE) [1].
Nume semnal

Semnificaia/Funcia Receive Data - recepie date Transmit Data transmisie date Masa digital Data Terminal Ready terminal pregtit pentru transmisie Data Set Ready Pregtete dispozitiv pentru transmisie Request To Send Cerere de transmisie Clear To Send Pregtit pentru transmisie

RXD TXD GND DTR DSR RTS CTS

Direcie Poziia Poziia DTEpe con. pe con. DCE RK25 RK9 3 2 2 3 -5 20 4 6 4 5 6 7 8

RI CD

Ring sonerie Carrrier Detect detecie purttoare

22 8

9 1

Observaie : Pentru controlul fluxului de date transmise se pot utiliza att semnalele DTR/DSR, ct i semnalele RTS/CTS. Prin ambele modaliti, unitatea receptoare poate s opreasc temporar fluxul de date transmis, sincronizind frecvena de transmisie a datelor la viteza de prelucrare a receptorului.

Interfaa serial la calculatorul IBM PC Pentru implementarea interfeei seriale la calculatorul IBM PC se folosete un controler specializat care ndeplinete urmtoarele funcionaliti: serializarea datelor de iesire, generarea informaiilor de control (bii de start, stop, paritate), deserializarea datelor recepionate, generarea semnalelor de control conform standardului utilizat, pstrarea temporar a datelor recepionate i a celor ce urmeaz a fi transmise, i altele. Controlerul are n componena sa mai multe registre, dintre care amintim aici trei registre mai importante (lista complet a registrelor apare n tabelul de la sfritul lucrrii) : - registrul de date pentru depozitarea datelor de pe linia de comunicaie, att la transmitor ct i la receptor ; - registrul de control pentru setarea paritii (par sau impar), a numrului de bii de stop (1 sau 2) i a numrului de bii dintr-un bloc de date (5-8 bii) ; - registrul de stare, ce indic starea registrelor de date. Astfel, bitul D0=1 indic registru de recepie plin (s-a primit un caracter), iar biii D6D5 = 11 indic faptul c registrul de transmisie este gol (s-a transmis caracterul curent) :
0 1 1 0 0 0 0 1 D6 D5 D0

n mod uzual un calculator compatibil IBM PC conine dou canale seriale plasate ncepind de la adresele 2F8 i 3F8. n faza de iniializare a sistemului se testeaz prezena interfeelor seriale, i n caz afirmativ adresele canalelor detectate se nscriu n memoria RAM, ncepind de la adresa 40:00. Sistemul de operare va asigna nume logice COM1 i COM2 adreselor de canale seriale n ordinea n care ele sunt prezente la adresa 40:00. Un transfer serial se poate realiza att prin controlul direct al programului, ct i prin ntreruperi.

Algoritmii de transmisie pe linie serial Presupunem c avem de transmis pe linie serial o secven de caractere oarecare, de la un calculator transmitor la un calculator receptor.

C Caracter de transmis

Registru de Date (Transmisie)

Registru de Date (Recepie)

C Caracter recepionat

Registru de Stare

Registru de Stare

Registru de Control TRANSMITOR

Registru de Control RECEPTOR

Figura 7. Registrele interfeelor seriale la transmitor i receptor Algoritmii de transmisie sunt urmtorii :

A. Algoritmul pentru Transmitor : Iniializare_linie( ) ; for (each Caracter) {


// Bucla de ateptare pentru punerea unui caracter n registrul de transmisie

do{ Citire_Registru_Stare( ) ; }while(Registru_Transmisie_Plin( ) ) Registru_Transmisie = Caracter ; } n algoritmul de mai sus, fiecare caracter trebuie plasat mai nti n registrul de transmisie. Pentru aceasta, acest registru trebuie s fi trimis deja caracterul precedent, i abia dup aceea l putem ncrca cu caracterul urmtor. Starea registrului de transmisie o putem afla prin interogarea registrului de stare. Cnd registrul de transmisie e gol, plasm caracterul curent n acest registru. n acelai timp, interfaa asigur punerea caracterului i pe linia serial, deci caracterul este transmis.

B. Algoritmul pentru Receptor : Iniializare_linie( ) ; for (each Caracter) { // Bucla de ateptare pentru recepia unui caracter do{ Citire_Registru_Stare( ) ; }while(Registru_Recepie_Gol( ) ) Caracter = Registru_Recepie ; } Algoritmul pentru receptor este invers celui pentru transmitor. Acum se ateapt ca registrul de recepie s fie plin, cu alte cuvinte s recepioneze caracterul curent de pe linie. Din nou este necesar interogarea registrului de stare. Cnd registrul de recepie a primit caracterul, acesta se va memora n calculatorul receptor.

Bibliografie 1. Gorgan D., Sebestyen G., Proiectarea Calculatoarelor, Ed. Albastr, ClujNapoca, 2005 2. Lupu, E., Sisteme cu Microprocesoare, Ed. Albastr, Cluj-Napoca, 2003 3. Toderean G., Reele de calculatoare : ndrumtor de laborator, Ed. Risoprint, Cluj-Napoca, 1999

Anexa 1. Registrele interfeei seriale n tabelul de mai jos se prezint registrele interfeei seriale pentru un calculator compatibil IBM PC-AT (s-au indicat adresele pentru portul 3F8).

Adresa Tip registru

Tip operaie

Descriere registru

3F8

Registru de date

3F9

3FA

3FB

conine data recepionat (registru de recepie) scriere conine data ce trebuie transmisa (registru de transmisie) dac XFB.bit7=1 atunci conine partea mai puin semnificativ a divizorului de frecven Registru de validare scriere D3=1- validare ntrerupere generat de ntrerupere modificarea starii modemului (CTS, DSR, RI) D2=1 validare ntrerupere generat la modificarea starii liniei (eroare sau break) D1=1 validare ntrerupere generat la golirea registrului de transmisie D0=0 validare ntrerupere generat la recepia unui caracter dac XFB.bit7=1 atunci conine partea mai semnificativ a divizorului de frecven Registru de citire D2,1=00- modificare stare linie (eroare identificare a sau break) ntreruperii =01- caracter recepionat =10- registru de transmisie gol =11- modificare stare modem D0=0 lipsa ntrerupere =1 prezen ntrerupere Regisru de control citire/ D7- determin modul de utilizare a linie scriere registrelor XF8 i XF9 (D7=0 registru de date ; D7=1 registre pt. divizarea frecvenei de transmisie) D6- generare semnal de break (se genereaza zero n mod continuu)

citire

3FC

Registru de control modem

3FD

Registru de stare linie

3FE

Registru de stare modem

D4,3 paritate (x0- fara paritate, 10par, 11-impar) D2- bii de stop (0-un bit, 1- doi bii) D1,0 lungime caracter (00-5biti, 01-6 bii, 10-7 bii, 11-8 bii) scriere D4 activare bucl invers pentru testare D3- activare OUT2 D2 activare OUT1 D1- activare RTS D0 activare DTR citire D6- registru de serializare gol (transmisie) D5- registru de transmisie gol D4- indicator break D3- eroare de cadrare D2- eroare de paritate D1- eroare de supraincrcare D0- registru de recepie plin citire D7- detecie purttoare D6- indicator sonerie D5- DSR D4- CTS

Anexa 2. Funcii BIOS utilizate n cazul transmisiei seriale Se utilizeaz ntreruperea BIOS INT 14h. Parametrii de intrare i ieire sunt urmtorii: Intrri: AH funcia solicitat DX -- numrul canalului (0-COM1, 1-COM2) Funcii specifice : AH=0 - iniializare canal serial AL parametrii de iniializare : -D7,6,5 viteza de transmisie ( 000 110 bauds ; 001150 bauds, 010-300 bauds, 011-600 bauds, .1119600 bauds) -D4,3 paritatea (x0- fr paritate, 01 paritate par, 11impar) -D2 bii de stop (0-un bit, 1-doi bii) -D1,0- lungimea caracterului (10- 7 bii, 11- 8 bii) AH=1 transmitere caracter

AL caracterul de transmis Ieire : AH(bit7) !=0 eroare ; AH(bit6-0)=cod eroare AH=2 recepie caracter Ieire : AL caracterul recepionat AH !=0 - eroare AH=3 citire stare canal serial Ieire : AL stare modem D6- sonerie (ring) D5- DSR D4- CTS AH stare linie D7- time-out D6- registru de serializare gol (transmisie) D5- registru de transmisie gol D4- detecie break D3- eroare de cadrare D2- eroare de paritate D1- eroare de suprancrcare D0- stare registru de recepie (1= registru plin)

S-ar putea să vă placă și