Sunteți pe pagina 1din 27

Modulul 3

Interfaţa standardizată RS-232

3. INTERFAȚA STANDARDIZATĂ RS-232


Subiecte
3.1 Standardul RS-232
3.1.1 Standarde
3.1.2 Cea mai simplă legătură
3.1.3 Conectorul normalizat şi semnalele utilizate
3.1.4 Niveluri logice pe RS-232
3.1.5 Protocol de comunicare pentru date
3.1.5.1 Codarea ASCII a datelor
3.1.5.2 Început şi sfârşit de caracter
3.1.5.3 Controlul parităţii
3.1.6 Legătura standard între DTE şi DCE
3.1.7 Liniile de control şi cablul modem nul
3.1.8 Tipuri de protocoale de comunicaţie
3.1.8.1 Protocol de comunicaţie RTS/CTS
3.1.8.2 Protocol DSR/DTR
3.1.8.3 Protocolul XON / XOFF
3.1.9 Utilizarea celorlalte linii
3.1.10 Protocoale întâlnite în practică
3.2 Circuite specializate pentru interfeţe seriale

Evaluare: 1. Răspunsuri la întrebările finale

3.1 Standardul RS-232


3.1.1 Standarde

Primul care a transmis o informație la distanță a fost


George Stibitz, matematician de la laboratoarele Bell. El a
transmis pentru prima dată de la un calculator, la distanţă, un
mesaj compus din două numere de 8 cifre şi a comandat
împărţirea lor. Astfel de schimburi se produc acum frecvent pe
linii seriale prin intermediul modemurilor, conform standardului
(normei) RS-232. Semnalul se transmite pe linii telefonice.
Această metodă de comunicaţii este folosită pentru a lega între
ele calculatoare, imprimante şi aparate de măsură. Interfaţa de
comunicaţie a fost standardizată în 1960 sub denumirea de RS-
232 (Recommended Standard 232) de către EIA (Electronics
Industry Association). Standardul a fost revizuit în 1969 (RS-
36
Modulul 3
Interfaţa standardizată RS-232
232-C), apoi în 1987 (RS-232 D) ultima variantă fiind în 1991,
denumirea completă fiind EIA/TIA-232-E (TIA =
Telecommunication Industry Association).
Ca şi la revizia anterioară, viteza maximă este de 20
Kbps, chiar dacă se cunosc un număr de aplicaţii software la
care viteza ajunge la 116 Kbps. Versiunea C defineşte lungimea
maximă a cablului la 15 m. Versiunile D şi E definesc mai
corect lungimea liniei în termeni de sarcină capacitivă. Sarcina
capacitivă maximă este de 2000 pF iar distanţa este între 15 şi
20 m. Pentru linii mai lungi şi viteze mai mari este esenţială
utilizarea unei linii diferenţiale (alt tip de interfaţă de
comunicaţie, alt standard).
Pentru a transmite serial caractere care, într-un
calculator, sunt formaţii de 7 sau 8 biţi, aceştia sunt serializaţi
cu ajutorul unui registru cu deplasare paralel-serie comandat de
un generator de bauds, adică cu un tact specific. La sosire, un
alt registru de deplasare serie-paralel va reconstitui acelaşi
”cuvânt ” de 7 sau 8 biţi.
Transmisia biţilor, unul după altul, se poate realiza prin
utilizarea a doar 2 cabluri (unul pentru transmiterea datelor iar
celălalt pentru legătura comună la un semnal de referinţă, masa
electrică). O legătură bidirecţională are nevoie de un cablu în
plus. Dacă se doreşte controlul fluxului de date se ajunge la 4
sau chiar 10 cabluri. Dar instalarea unei legături seriale rămâne
mult mai puţin costisitoare decât una paralelă şi, în plus,
prezintă o imunitate mai ridicată la interferenţele între
semnalele vehiculate pe diferite cabluri, deci ea autorizează
realizarea unor legături pe distanţe de mai multe zeci de metri,
depăşind chiar 100 m, dacă luăm unele precauţiuni.
Dar, din punct de vedere al vitezei, debitul informaţiei
este limitat la câteva mii de caractere pe secundă. Aceasta este
destul pentru imprimante în mod text sau terminale, sau pentru
multe aplicaţii industriale.
Specificaţiile normei cuprind aspectele :
 electrice (tensiuni şi curenţi),
 mecanice (forma conectorilor, numerotarea pinilor)
 şi logice (cod şi protocol de comunicaţie).
În plus, în afara conexiunii fizice, sunt prevăzute (sau
tolerate) multiple posibilităţi pentru debitul de date, sau mai
precis, frecvenţa de transmisie (de la 75 la 19200 bauds de

37
Modulul 3
Interfaţa standardizată RS-232
obicei), formatul caracterelor (cel mai adesea pe 7 sau 8 biţi
plus biţii de servici), metodele de detecţie de erori etc.

3.1.2 Cea mai simplă legătură

Standardul clasează echipamentele care pot fi


interconectate în două categorii :
- echipament terminal de date, cunoscut sub acronimul
DTE (Data Terminal Equipment) şi care înseamnă în principal
calculatoarele cu ecran şi tastatură şi
- echipament de comunicaţie de date, cunoscut sub
acronimul de DCE (Data Communication Equipment),
reprezentat în majoritatea cazurilor de modemuri.

Figura 3.1. DTE pe emisie.


DTE-urile şi DCE-urile sunt concepute să lucreze
împreună. Emisia informaţiei utile de la DTE se face (în cazul
unei conector DB25 standardizat) prin pinul 2 al conectorului, şi
citirea datelor de către DCE se face la pinul 2 al conectorului
său propriu, toate semnalele având ca referinţă pinul 7 atât
pentru DTE cât şi pentru DCE. Deci pinii 2 pentru DTE şi DCE
au funcţii opuse din punct de vedere electric: la DTE pinul 2
este ieşire pe când la DCE este intrare, chiar dacă denumirea lor
este aceeaşi, TD (Transmit Data). Legăturile minime necesare
pentru funcţionarea unei legături seriale cu DTE pe emisie sunt
prezentate în figura 3.1.
Dar să nu uităm că de obicei se doreşte o legătură
bidirecţională: pentru a recepţiona date de la un modem se
foloseşte o altă linie pentru legătura inversă. Astfel DCE emite
pe pinul 3 şi DTE recepţionează pe pinul 3 (figura 3.2).
O legătură bidirecţională la mare distanţă între 2
calculatoare de tip DTE, care implică utilizarea unei linii

38
Modulul 3
Interfaţa standardizată RS-232
telefonice cu câte un modem de fiecare parte, este reprezentată
în figura 3.3.

Figura 3.2. DTE pe recepţie.


Datele sunt emise de la echipamentul DTE din stânga
pe pinul 2, sunt plasate de către modemul de la emisie pe liniile
telefonice şi sunt recepţionate de DTE din dreapta pe pinul 3.
Trebuie reţinut că, acelaşi pin, conectat la acelaşi cablu, are rol
diferit pentru DTE şi DCE: la pinul 3 DCE emite (ieşire) iar
DTE recepţionează (intrare).

Figura 3.3. Legătură bidirecţională la distanţă.


Se întâmplă des să avem de comunicat între două
echipamente de tip DTE pe distanţe nu prea mari, fără a avea
nevoie de echipamente de comunicaţie intermediare. Exemplu
în acest sens sunt: două calculatoare de tip DTE sau un
calculator şi o imprimantă de tip DTE, căci aproape toate
perifericele sunt cablate ca şi DTE-uri. A apărut astfel o primă
interpretare a standardului denumită ”cablu modem nul”. În
aceste cazuri putem utiliza doar 3 cabluri de legătură (figura
3.4): cablul de emisie de la unul trebuie să ajungă la recepţia
celuilalt (deci două cabluri pentru comunicare bidirecţională),
plus cablul pentru potenţialul de referinţă (masa electrică),
deoarece nivelul semnalelor care se vehiculează pe liniile de
legătură se raportează la masă.

39
Modulul 3
Interfaţa standardizată RS-232

Figura 3.4. Legătura “cablu modem nul”.


În anumite condiţii, un astfel de cablu cu 3 fire
transmite datele în cele 2 sensuri şi totul este perfect funcţional.
Totuşi, în numeroase cazuri trebuie să se ţină cont de câteva
reguli şi deci se vor folosi şi semnale de servici. Primele
periferice erau incapabile să schimbe informaţii astfel şi s-au
folosit fire suplimentare. Este deci necesară prezentarea şi
celorlalte semnale care fac parte din norma RS 232. În cele ce
urmează se explică rolul obişnuit al semnalelor generate sau
primite la diferiţi pini, totdeauna prezentând numerotarea
pinilor pentru un DTE de tip DB25, acesta fiind cel mai
răspândit.

3.1.3 Conectorul normalizat şi semnalele utilizate

Conectorul standard (prevăzut pentru norma RS 232 D)


rămâne conectorul DB 25, cu 25 pini. Dar numai câteva dintre
contacte sunt efectiv utilizate. La DTE şi DCE funcţia pinilor cu
acelaşi număr este complementară: în general ieşirea pentru un
tip de semnal, din punct de vedere al unui DTE este intrare
pentru acelaşi semnal în cazul unui DCE şi invers. În figura 3.5
sunt prezentate poziţiile pinilor pentru conectorii cei mai
utilizaţi: DB25 şi DB9. Aceştia sunt de tip “tată” fiind
prezentaţi după cum se văd pe panoul de spate al unui
calculator.
Semnificaţia tuturor semnalelor prezente la pinii unui
conector DB 25 este prezentată în tabelul 3.1.

40
Modulul 3
Interfaţa standardizată RS-232

Figura 3.5. Conectorii întâlniţi cel mai frecvent în legătura


serială de tip RS 232.
Tabelul 3.1. Atribuirea funcţiilor pinilor pentru EIA-232D.
Pin Descriere Sursă Abreviere
1 Protective ground (Pământare)
2 Transmitted Data DTE TD, TXD,
TX
3 Received Data DCE RD, RXD,
RX
4 Request To Send DTE RTS
5 Clear To Send DCE CTS
6 Data Set Ready DCE DSR
7 Signal ground (Masă electrică)
8 Data Carrier Detect DCE DCD, CD
9 Reserved
10 Reserved
11 Unassigned DTE
12 Secondary received signal DCE
detector
13 Secondary clear to send DCE
14 Secondary transmitted data DTE
15 Transmitter signal element DCE
timing
16 Secondary received data DCE
17 Receiver signal element timing DCE

41
Modulul 3
Interfaţa standardizată RS-232
18 Local loopback
19 Secondary request to send DTE
20 Data Terminal Ready DTE DTR
21 Remote loopback/signal quality DCE
detector
22 Ring Indicator DCE RI
23 Data signal rate selector DTE/
DCE
24 Transmit signal element timing DTE
25 Test mode
Semnificaţia tuturor semnalelor prezente la pinii unui
conector DB 9 este prezentată în tabelul 3.2.

Tabelul 3.2. Atribuirea funcţiilor pinilor pentru DB9.


Pin Descriere Sursă Abreviere
1 Data Carrier Detect DCE CD
2 Receive Data DCE RD, RXD,
RX
3 Transmit Data DTE TD, TXD,
TX
4 Data Terminal Ready DTE DTR
5 Signal Ground GND
6 Data Set Ready DCE DSR
7 Request To Send DTE RTS
8 Clear To Send DCE CTS
9 Ring Indicator RI

Cele mai utilizate semnale care apar la pinii


conectorului DB25 au următoarea semnificaţie:
Pământarea (pin 1) = este vorba despre masa de
protecţie împotriva tensiunilor parazite din exterior (pentru
conectarea la carcasa aparatului sau la un eventual ecran). Se
utilizează doar în cazul legăturilor lungi. Pentru legături foarte
lungi (mai mari decât 200 m) se folosesc ecrane care înconjoară
perechile semnal - masă de referinţă.
TD (pin 2) = transmisie date; este ieşire pentru DTE,
adică pinul de ieşire a biţilor succesivi de semnal.
RD (pin 3) = recepţia datelor.

42
Modulul 3
Interfaţa standardizată RS-232
RTS (Request To Send) (pin 4) = cerere de date; este pe
nivel logic ridicat pentru un aparat care cere unui alt aparat să-i
transmită date, de exemplu o imprimantă în funcţiune şi « on
line ». Este ieşire pentru DTE.
CTS (Clear To Send) (pin 5) = intrare pentru DTE.
Această linie este pusă pe nivel logic ridicat de către un
echipament care este gata pentru recepţie.
DSR (Data Set Ready) (pin 6) = intrare pentru DTE.
Prin intermediul acestei linii corespondentul (la origine un
modem sau un calculator) avertizează DTE-ul că are date să-i
trimită.
Masa de referinţă (pin 7) = masa electrică de semnal,
comună la toate semnalele. Nu trebuie confundată cu masa de
protecţie, pe care, în principiu nu circulă nici un curent.
CD (Carrier Detect) (pin 8) = intrare pentru DTE.
Permite unui modem să avertizeze DTE-ul că este în legătură la
distanţă cu un alt modem.
DTR (Data Terminal Ready) (pin 20) = ieşire pentru
DTE. Dacă este pus pe nivel ridicat atunci DTE anunţă
corespondentul că este gata să primească date. Acest semnal
poate juca practic acelaşi rol ca şi RTS de la pinul 4.
În standard sunt prevăzute şi linii suplimentare pentru o
legătură secundară, dar mult prea rar utilizată în practică.
Sunt prevăzute şi semnale pentru transmisii sincrone
(pinii 15, 17 şi 24) dar practic este utilizată doar transmisia
asincronă.
Faţă de versiunea C a standardului, începând cu
varianta D, au apărut unele modificări în ceea ce priveşte
- schimbarea terminologiei pentru DCE având acum
semnificaţia de Data Circuit – Terminating Equipment,
- driver-ul, specific pentru varianta C, se numeşte acum
emiţător (generator).
Există şi reutilizări ale unor pini şi anume:
Local Loopback (LL) (pin 18) = Semnalele de la acest
pin sunt utilizate pentru a controla testul de tip LL efectuat în
DCE-ul local. Are ca sursă DTE-ul.
Remote Loopback (RL) (pin21) = Semnalele de la acest
pin sunt utilizate pentru a controla testul de tip RL efectuat în
DCE-ul aflat la distanţă. Are ca sursă DTE-ul.

43
Modulul 3
Interfaţa standardizată RS-232
Test Mode (TM) (pin 25) = Acest semnal indică dacă
DCE-ul local este în timpul operaţiei de testare. Semnalul are
deci ca sursă DCE-ul.
Se întâmplă ca, în afara standardului, fabricanţii să
utilizeze după bunul plac pinii rămaşi liberi. De exemplu sunt
unii care furnizează la DB9 sau DB25 şi tensiuni de 5V sau 12
V. Este mai indicată lăsarea “în aer” a pinilor a căror funcţie nu
este bine precizată în standard.
Se poate remarca imediat că multe semnale prevăzute
de normă par să aibă rol dublu. De fapt această multiplicare a
posibilităţilor s-a dovedit inutilă, cu atât mai mult cu cât
“inteligenţa“ perifericelor le-a permis să utilizeze mai degrabă
transmisia full duplex, decât fire suplimentare, pentru a semnala
starea lor sau apariţia problemelor. Utilizarea semnalelor va fi
prezentată la paragraful dedicat protocolului de comunicaţie.

3.1.4 Niveluri logice pe RS-232

Toate semnalele transmise pe RS-232 sunt semnale


nediferenţiale care apar ca o tensiune raportată la un nivel de
referinţă (masă electrică). De exemplu, pe linia TXD există un
semnal pe pinul 2 (pentru conectorul DB 25) care poate fi
pozitiv sau negativ faţă de pinul 7 (masa electrică). Atât pentru
semnale de date cât şi pentru cele de control, standardul RS-232
utilizează niveluri logice bipolare. Interpretarea nivelurilor de
tensiune este însă diferită. Astfel, pe liniile de date interpretarea
se face în logică negativă iar pe liniile de control, în logică
pozitivă. Valorile de tensiune permise pe linii sunt:
 între 5V şi 25V este nivelul ridicat de tensiune; de obicei
nivelul real este între 9V şi 12 V;
 între -25V şi -5V este nivelul coborât de tensiune (cel mai
adesea de la -12V la -5V).
Între -5V şi 5V se întinde o plajă interzisă, din punct de
vedere al semnalelor de ieşire (figura 3.6).
Pentru intrări, plaja “moartă” trebuie să fie redusă la
intervalul -3V la 3V (figura 3.7) ceea ce înseamnă că semnalele
transmise în interiorul acestei plaje riscă să nu fie interpretate
corect şi mai rezultă că există o margine de cel puţin 2V între
nivelul minim de emisie şi sensibilitatea utilă la recepţie.

44
Modulul 3
Interfaţa standardizată RS-232

Figura 3.6. Regiunile de tensiune admise la emisie pentru


semnale de date pe RS-232.

Figura 3.7. Regiunile de tensiune admise la emisie pentru


semnale de date pe RS-232.

3.1.5 Protocol de comunicare pentru date

Numărul de bauds este frecvenţa transmisiei, exprimată


în tranziţii pe secundă (în memoria lui Emile Baudot,
inventatorul telegrafului în 1874). Norma precizează
frecvenţele autorizate (în bauds) pentru transmisie.

45
Modulul 3
Interfaţa standardizată RS-232
În practică se utilizează legături ce funcţionează pe
300, 1200, 2400 4800, 9600 şi 19200 bauds. Vom vedea că
transmiterea unui caracter necesită, în afara celor 7 sau 8 biţi de
cod, un bit de start, unul sau doi biţi de stop, la care se adaugă
adesea un bit de control ceea ce face un total între 8 şi 11 biţi,
pentru a obţine un caracter transmis.

3.1.5.1 Codarea ASCII a datelor

Datele sunt transmise aproape întotdeauna folosindu-se


coduri de caractere alfanumerice. Astfel, numărul 7 va fi
transmis codat ASCII (a se vedea tabelul codurilor ASCII din
Anexa 1), adică 55 (zecimal) sau 37 în hexazecimal şi nu ca
valoare binară 7. Se transmite deci 0110111 şi nu 0000111.
Un caracter (un cuvânt) conţine, conform codării ASCII
originale, 7 biţi, ceea ce autorizează scrierea a 128 caractere
diferite. Primele valori din tabelul de coduri ASCII au funcţii
particulare (de exemplu Enter = CR, DC1, DC2, …) iar
codarea caracterelor afişabile începe de la 33 (înseamnă semn
de exclamaţie, !), alfabetul debutând doar la 65, cu litera “A”.
De câţiva ani s-a generalizat scrierea folosind un cod
extins de 256 caractere, codate pe 8 biţi. Primele 128 caractere
rămân identice cu cele din codul de 7 biţi. În plus, această
codare pe 8 biţi permite includerea datelor binare, decupate în
elemente de 8 biţi (deci în octeţi) reprezentând programe sau
grafice.

Figura 3.8. Nivelurile de tensiune transmise pe linia TD pentru


litera M.
O altă particularitate a interfeţei seriale RS-232 este
faptul că datele sunt transmise invers: bitul cel mai puţin
semnificativ este trimis primul. Să nu uitam că 1 logic înseamnă

46
Modulul 3
Interfaţa standardizată RS-232
o tensiune negativă iar 0 logic este o tensiune pozitivă.
Succesiunea tensiunilor corespunzătoare literei “M” cod 77
zecimal sau cod 4D în hexazecimal (corespunzător lui
01001101 în binar), pe 8 biţi, este prezentată în figura 3.8.

3.1.5.2 Început şi sfârşit de caracter

Caracterele se pot trimite cu viteză constantă şi


continuu, dacă se sincronizează emiţătorul şi receptorul cu
acelaşi tact, atât în frecvenţă cât şi în fază: este vorba de
transmisie sincronă. Această metodă necesită două cabluri,
unul pentru semnalele de sincronizare, celălalt pentru date; este
foarte puţin utilizată în practică.
Se preferă să nu se sincronizeze strict emiţătorul cu
receptorul printr-un semnal particular, dar fiecare să fie
comandat de un tact propriu, utilizându-se o comunicaţie
asincronă. În compensaţie, se inserează biţi suplimentari care
nu descriu caracterul dar servesc de reper, încadrându-l: aceştia
sunt biţii de Start şi de Stop, aşa cum se observă în figura 3.9.

Figura 3.9. Un bit de start (tensiune pozitivă) şi un bit de


stop (întoarcere la o tensiune negativă) care încadrează
fiecare caracter.

3.1.5.3 Controlul parităţii

La recepţie se mai poate controla calitatea transmisiei


dacă la emisie s-a inserat un bit suplimentar, bitul de paritate.
Principiul este foarte simplu: atunci când trimite un caracter
spre portul său de comunicare, emiţătorul face astfel încât
numărul de biţi pe 1 logic să fie par (sau impar, conform
configuraţiei sistemului). Astfel, la sfârşitul fiecărui caracter se
adaugă un bit suplimentar, egal, după caz, cu 1 logic sau cu 0
logic, astfel încât numărul total de 1 logic (fără bitul de stop
final) să fie par (sau impar). Atunci când caracterul ajunge la

47
Modulul 3
Interfaţa standardizată RS-232
receptor, acesta verifică numărul de 1 logic şi se asigură că este
par (sau impar). Dacă numărul de 1 logic nu are paritatea
prevăzută, receptorul interpretează că un bit a fost pierdut sau
alterat. Bineînţeles că nu se detectează nici o eroare dacă doi
(sau patru) biţi şi-au complementat starea în timpul transmisiei.
Dar aceste situaţii sunt rare.
Pentru a diversifica posibilităţile, acest bit de paritate
poate fi calculat în mai multe feluri:
a) se completează cu un 0 logic sau 1 logic astfel încât
numărul de 1 logic corespunzător codului ASCII al unui
caracter, descompus în binar, plus bitul de paritate, să fie par
(paritate pară);
b) se completează cu un 0 logic sau 1 logic astfel încât numărul de
1 logic din codul ASCII codat în binar al unui caracter, plus bitul
de paritate, să fie impar (paritate impară);
c) se completează întotdeauna cu un 0 logic şi se verifică la
recepţie că există un 0 logic după caracter (paritate S – Space);
d) se completează întotdeauna cu un 1 logic şi se verifică la
recepţie că există un 1 logic după caracter (paritate M – Mark).
În ultimele două cazuri nu mai este practic vorba de un
control al parităţii, dar prin aceasta receptorul poate verifica faptul
că, într-un punct dat al fiecărei secvenţe, se află acelaşi nivel de
tensiune.
În figura 3.10 se prezintă succesiunea de tensiuni
corespunzătoare pentru trimiterea caracterului A pe 8 biţi, cu bit
de paritate pară şi cu un bit de stop. A înseamnă 65 în cod ASCII,
adică 01000001 în binar pe 8 biţi. Este "par" deci nu vom avea
nimic de adăugat.

Figura 3.10. Caracterul A transmis pe 8 biţi, cu bit de paritate


pară, cu un bit de stop.

48
Modulul 3
Interfaţa standardizată RS-232
3.1.6 Legătura standard între DTE şi DCE

Iniţial standardul prevedea legătura între două aparate


diferite, un DTE (calculator, de exemplu) şi un DCE (modem, de
exemplu) care comunică pe linii telefonice cu o altă pereche DCE
– DTE, aflată la distanţă (figura 3.3).
Ne vom ocupa doar de relaţia între modem şi terminalul
din stânga. Numerele de pini sunt pentru conectorul DB25. De
reamintit că pentru celelalte linii decât cele de date, adică pentru
liniile de control, 1 logic este reprezentat de o tensiune pozitivă
faţă de masa de referinţă (pe pinul 7 pentru DB25).
Modemul DCE, înainte de orice acţiune, verifică nivelul
pe linia corespunzătoare pinului 20 (DTR) (figura 3.11). Dacă
terminalul este deconectat (nivel coborât la DTR), nu se întâmplă
nimic. Dacă nivelul se modifică dar apoi rămâne coborât mai mult
de o secundă, se abandonează orice acţiune în curs: modemul
blochează transmiterea unei purtătoare corespondentului său la
distanţă.
Atunci când la pinul DTR avem nivel ridicat, modemul
va testa linia RTS. Dacă această linie este activă, modemul
acceptă să trimită date.
Astfel modemul DCE nu transmite nimic terminalului
atât timp cât DTR şi RTS nu sunt ambele pe nivel ridicat
(acestea sunt comandate de DTE).

Figura 3.11. Legătura standard între un DTE şi un DCE.

49
Modulul 3
Interfaţa standardizată RS-232
Dar terminalul, prin intermediul tastaturii poate să trimită
date (caractere) spre modem, dar cu condiţia ca acesta să fie în
legătură cu calculatorul de la celălalt capăt al legăturii. Aceasta se
detectează prin existenţa unei purtătoare (carrier). Dacă este cazul,
DCE pune nivel ridicat pe linia corespunzătoare pinului 8 (CD).
El poate comanda de altfel şi linia DSR pentru a comunica
terminalului că există date care sosesc şi că acestea trebuie citite,
precum şi linia CTS pentru a-i comunica că poate trimite date.
Se observă că terminalul DTE controlează liniile DTR şi
RTS, punând nivel ridicat pe aceste linii atunci când este gata
pentru dialog şi urmăreşte liniile CD, DSR şi CTS pentru a
verifica dacă, la distanţă, corespondentul este pregătit pentru date.
Se poate spune că aceste linii au funcţii care se dublează.
Din acest motiv un terminal DTE va putea comanda una din liniile
DTR sau RTS şi va urmări una din liniile DSR, CTS sau CD.
La fel, un modem DCE va urmări una din liniile DTR sau
RTS şi va comanda una sau alta din liniile DSR, CTS şi/sau CD.
Singura problemă este ca fiecare să urmărească aceeaşi
linie pe care celălalt o comandă, în caz contrar comunicaţia nu se
iniţiază.
De exemplu, DCE poate fi programat să urmărească
liniile DTR şi RTS, pentru a demara comunicaţia, dar DTE să
comande doar DTR. Atunci va trebui să “trişăm” repartizând linia
DTR între două intrări: DTR şi RTS (ale lui DCE), care aparţin
receptorului în aşteptare (figura 3.12).

Figura 3.12. Legătură DTE - DCE într-un caz particular.

3.1.7 Liniile de control şi cablul modem nul

Cablul modem nul permite dialogul între 2 terminale


DTE (legături încrucişate emisie-recepţie, pinul 2 cu pinul 3)
50
Modulul 3
Interfaţa standardizată RS-232
(figura 3.4.). Astfel fiecare DTE poate transmite, recepţionând
în acelaşi timp. Dar dacă fiecare aşteaptă autorizarea emiterii pe
una (sau mai multe) din liniile sale CTS, DSR, CD, putem
aştepta la infinit ca transferul să înceapă.

Figura 3.13. Utilizarea tuturor liniilor de control.


În acelaşi timp se poate observa că fiecare din
corespondenţi comandă liniile RTS şi DTR, imediat ce este
pregătit. În concluzie comanda la intrările CTS, DSR şi CD
poate fi furnizată de ieşirile RTS şi DTR ale corespondentului.
Aceasta este o soluţie şi este prezentată în figura 3.13.
Altă soluţie este să asigurăm fiecărui aparat un semnal
de validare fără să ne punem problema ce se întâmplă la celălalt
capăt (figura 3.14).

Figura 3.14. Asigurarea în local a validărilor.


51
Modulul 3
Interfaţa standardizată RS-232
În acest caz, deoarece nu mai există o verificare de tip
hardware a transmisiei între cei doi corespondenţi, trebuie
utilizat un protocol de comunicaţie implementat soft.

3.1.8 Tipuri de protocoale de comunicaţie

Este foarte mică probabilitatea ca emiţătorul să trimită


datele exact în ritmul optim pentru receptor. Dacă emiţătorul
este lent nu sunt probleme. Acestea apar doar dacă emiţătorul
este mai rapid decât receptorul. Acesta din urmă are întotdeauna
nevoie de un registru tampon pentru recepţie, dar aceasta este o
soluţie pe termen scurt. Deci receptorul trebuie :
 să prelucreze datele mai repede decât sosesc sau
 să poată opri fluxul de date atunci când registrul său de
intrare este pe cale de a se umple.
Pentru aceasta trebuie ca receptorul să avertizeze emiţătorul, lucru
care se poate realiza prin mai multe metode.
Există astfel 3 metode prin care receptorul poate opri
transferul datelor dinspre corespondent. Primele două metode,
denumite control ”hardware” datează din epoca în care lucrurile
erau simple: echipamentul terminal comanda linia RTS şi/sau
DTR şi supraveghea liniile CTS, DSR şi CD. Considerând că
avem legătura între o imprimantă şi un calculator, procedura
este următoarea :
 imprimanta pune linia de la pinul 4 (RTS = cerere de
transfer) sau linia de la pinul 20 (DTR = post pregătit) pe
nivel ridicat (tensiune pozitivă) şi drept urmare va putea să
recepţioneze caractere;
 pentru a întrerupe transmisia, imprimanta pune nivel
coborât pe linia respectivă (RTS sau DTR).
Introducerea microprocesorului în terminale şi
imprimante a adus cea de-a treia posibilitate, controlul software.
Cele 3 metode sunt prezentate în continuare.

3.1.8.1 Protocol de comunicaţie RTS/CTS

Se consideră cazul conectării unui calculator cu o


imprimantă, ambele fiind cablate ca şi DTE (cazul cel mai des
întâlnit în practică). Calculatorul trimite datele dacă linia RTS a
imprimantei este pusă pe nivel ridicat (validată). Dacă registrul

52
Modulul 3
Interfaţa standardizată RS-232
său tampon este aproape plin, imprimanta pune linia sa RTS pe
nivel coborât şi calculatorul, care urmăreşte această linie prin
intermediul nivelului ce apare la pinul său notat CTS, opreşte
transferul. Comunicarea se reia la iniţiativa imprimantei. Acesta
este protocolul RTS/CTS.
Pentru a realiza acest protocol de comunicaţie, trebuie
ca:
 aparatele să gestioneze corect liniile RTS şi CTS,
 legătura fizică să fie realizată corect: pinul 4 (RTS) al unui
aparat să fie legat la pinul 5 (CTS) al celuilalt aparat, aşa
cum se prezintă şi în figura 3.15.
Dacă legătura este bidirecţională, atunci, pentru fiecare
aparat, pinul 4 trebuie să fie legat la pinul 5 al celuilalt (figura
3.16).

Figura 3.15. Legătura între o imprimantă DTE şi un calculator.

Figura 3.16. Legătura bidirecţională pentru protocol RTS/CTS.

53
Modulul 3
Interfaţa standardizată RS-232
3.1.8.2 Protocol DSR/DTR

Considerăm din nou cazul conectării unui calculator cu


o imprimantă, ambele fiind cablate ca şi DTE.
În cazul protocolului hardware DSR/DTR, calculatorul
trimite datele doar dacă linia DTR a imprimantei este pusă pe
nivel ridicat. Calculatorul constată aceasta urmărind nivelul de
tensiune de la pinul său DSR. Deci, pentru ca acest protocol să
fie realizabil, este nevoie de legătură între pinul 6 (DSR) al
unuia şi pinul 20 (DTR) al celuilalt şi invers, legături prezentate
în figura 3.17.
În cele două cazuri de protocol hardware, diagrama de
timp pentru transmiterea datelor pe liniile de date este
evidenţiată în figura 3.18.

Figura 3.17. Protocol DSR/DTR.

Figura 3.18. Diagrame de timp pentru punerea în evidenţă a


principiului de comunicare utilizând un protocol hardware.
Se mai folosesc şi metode care utilizează linia de la
pinul 8 (CD) combinată cu celelalte linii de control.

54
Modulul 3
Interfaţa standardizată RS-232

3.1.8.3 Protocolul XON / XOFF

Se consideră cazul conectării a două echipamente de tip


DTE. Protocolul XON/XOFF este unul de tip software. Pentru
controlul software se folosesc caractere speciale aflate printre
primele valori din tabelul cu codurile ASCII, standardizate
pentru a putea fi utilizate pe interfaţa serială RS-232. Aceste
caractere corespund lui 17 în zecimal, denumit DC1 şi respectiv
19 în zecimal, adică DC3.
Cel care trimite datele îşi opreşte transferul dacă
primeşte, pe linia sa de recepţie, care este legată la emisia
corespondentului, caracterul corespunzător lui DC3, denumit în
limbajul RS-232, XOFF. Echipamentul respectiv îşi va relua
transmisia dacă primeşte caracterul XON care este DC1.
Principalul avantaj al acestui protocol este acela că necesită
doar 3 legături cablate (unul pentru fiecare sens de transmisie şi
linia de referinţă = masa) (figura 3.19).

Figura 3.19. Legăturile necesare în cazul protocolului


software (XON / XOFF).
Dar protocolul XON/XOFF nu funcţionează în modul
bidirecţional decât cu date de tip caracter: serii binare lungi pot
conţine secvenţe interpretabile ca XOFF, care interzic
receptorului să transmită o eventuală cerere de oprire a
transmisiei.
De obicei caracterele corespunzătoare de începere şi
oprire a transmisiei trebuie trimise înainte ca registrul tampon
să fie gol (sau plin).

55
Modulul 3
Interfaţa standardizată RS-232
3.1.9 Utilizarea celorlalte linii

În cazul în care calculatorul urmăreşte atât liniile CTS,


DSR şi în acelaşi timp ar ţine cont şi de recepţia unui XOFF,
acesta va opri comunicaţia la apariţia oricărei dintre aceste
posibile cereri de întrerupere. Evident, pentru ca să nu existe un
timp de aşteptare nedefinit pentru reluarea transmisiei, trebuie
ca aparatul corespondent să trimită reînceperea transferului
simultan prin toate metodele protocolului. Este cazul
imprimantei KYOCERA 2010, care semnalează că are registrul
tampon plin trimiţând XOFF şi punând în acelaşi timp RTS şi
DTR pe nivel coborât; dacă devine disponibilă pentru
comunicaţie, semnalele de pe liniile implicate anunţă toate acest
fapt. Atunci, dacă avem un cablu corect legat, se transmit toate
semnalele de care are nevoie emiţătorul pentru ca să decurgă
bine comunicaţia.
Dar nu toate aparatele gestionează aşa mulţimea liniilor
disponibile sau aşteaptă o autorizare din partea
corespondentului (care poate aştepta şi el) pentru a valida la
rândul lui transmisia. Mai mult chiar, în general cablurile
incorect legate nu transmit toate semnalele şi din acest motiv
comunicaţia nu se stabileşte.
De aici rezultă multitudinea schemelor de cablare,
dublată de utilizarea diverşilor conectori: DB25, DB9, RJ11
etc., fiecare putând fi versiunea pentru conector mamă sau tată.
Deci trebuie ca, după caz, să realizăm astfel cablul de legătură
încât fiecare aparat implicat să creadă că celălalt aparat este gata
de emisie sau recepţie, păstrând însă unul din protocoalele de
control a fluxului de date, pe care le au în comun.
Plecând de la principiul că eşti bine servit dacă te
serveşti singur, se apelează des la conectarea unei ieşiri a
fiecărui aparat la intrarea corespunzătoare a aceluiaşi aparat.
Astfel fiecare crede că primeşte de la celălalt aparat
permisiunea de a continua transferul (conexiunea prezentată în
figura 3.14).
De exemplu se pot observa adesea pinii 4 şi 5 şi/sau 6 şi
20 sau 6, 20 şi 8 legaţi împreună (pe grupe) pentru un conector:
calculatorul se autovalidează crezând că are corespondentul în
aşteptare şi deci îi trimite datele. De partea cealaltă,
corespondentul face acelaşi lucru. Bineînţeles, va trebui

56
Modulul 3
Interfaţa standardizată RS-232
menţinută cel puţin o metodă de control operaţional al fluxului,
cel mai adesea fiind implementat controlul XON/XOFF.

3.1.10 Protocoale întâlnite în practică

Firmele DIGITAL şi APPLE utilizează XON/XOFF


pentru controlarea traficului; terminalele de tip DTE cu interfaţă
RS-232, inspirate de obicei după VT a lui DIGITAL (VT 52,
VT 100, VT 200), funcţionează cel mai adesea pe 8 biţi, 9600
bauds, 1 bit de stop, fără paritate, XON/XOFF. Bineînţeles
parametrii sunt modificabili.
Imprimantele DIGITAL sau compatibile sunt
configurate în DTE şi, în general, pe 8 biţi, 4800 bauds, 1 bit de
stop, fără paritate, XON/XOFF.
Imprimantele APPLE LASERWRITER sunt cablate în
DTE, cu parametrii: cuvinte de 8 biţi, 9600 bauds, 1 bit de stop,
fără paritate.
Calculatoare PC sunt cablate ca şi DTE-uri şi sunt
prevăzute cu un control de flux hardware prin DSR/DTS.
Imprimantele şi plotterele HP şi compatibile sunt DTE-
uri cu următorii parametri : 8 biţi, 9600 bauds, 1 bit de stop, fără
paritate.
Modemurile sunt de tip DCE şi funcţionează la 1200,
2400, 9600 şi 14400 bauds. Cele care transmit la viteze
superioare vitezei de 9600 realizează mai întâi o compresie a
datelor. Controlul fluxului se face conform standardului:
DTR/DSR şi RTS/CTS.
Aparatele de măsură şi control pot fi de tip DTE sau
DCE, fără regulă generală pentru viteză şi protocol. Din acest
motiv este imperios necesară studierea manualului de utilizare a
aparatului respectiv deoarece funcţiile electrice sunt opuse
pentru acelaşi pin la un DTE faţă de un DCE şi se pot conecta,
din greşeală, două ieşiri împreună.

3.2 Circuite specializate pentru interfeţe seriale

Aproape toate dispozitivele care se folosesc


funcţionează cu niveluri logice TTL sau CMOS. De aceea
primul pas în conectarea unui dispozitiv la portul RS-232 este
transformarea nivelurilor RS-232 înapoi în tensiuni de 0V şi

57
Modulul 3
Interfaţa standardizată RS-232
respectiv 5V. Această deplasare a nivelurilor de tensiune se
realizează cu circuite specializate de interfaţare, care se mai
numesc şi convertoare de nivel RS-232.
Primele circuite au fost cele de tip 1488 şi 1489,
având fiecare câte 4 emiţătoare respectiv 4 receptoare. 1488
are nevoie de două tensiuni de alimentare, o tensiune între
+7,5V şi +5V iar a doua între -7,5V şi –15V. Din acest
motiv poate apărea o problemă în multe cazuri unde există
doar o tensiune de alimentare de +5V. Singurul avantaj al
acestor circuite integrate este că sunt ieftine.
Structura unui circuit 1488 este prezentată în figura
3.20. Sunt de asemenea prezente şi conexiunile tipice care
trebuie avute în vedere pentru a realiza interfaţarea între un
calculator şi un microcontroler. S-a avut în vedere că la
ieşirea calculatorului avem semnale specifice pentru RS-232
iar microcontrolerul funcţionează cu niveluri de tensiune
care sunt de obicei egale cu 0V sau 5V.

Figura 3.20. Circuitul 1488 şi conexiuni pentru interfaţarea


unui microcontroler cu un calculator.
Pentru receptoarele din structura circuitului 1489
(figura 3.21) avem următoarele caracteristici :
 domeniul tensiunilor pe intrări : +/- 30 V;
 au histerezis intern al tensiunii de prag la intrare;
 prezintă un terminal de control care permite alegerea
tensiunii de prag şi filtrarea zgomotului.

58
Modulul 3
Interfaţa standardizată RS-232

 Figura 3.21. Circuitul 1489 şi conexiunile necesare pentru


interfaţarea unui microcontroler cu un calculator.
În figura 3.21 s-a prezentat şi un exemplu de conectare
a acestui circuit ca şi interfaţă între un microcontroler şi un
calculator.

Figura 3.22. Configurarea pinilor şi conexiuni tipice pentru


circuitul MAX 232.
Circuitele 1488 şi 1489 se utilizează de obicei împreună
(cel mai adesea este nevoie şi de emiţătoare şi de receptoare).

59
Modulul 3
Interfaţa standardizată RS-232
Dezavantajul acestor circuite de a avea nevoie de două
tensiuni de alimentare cu valori neuzuale este surmontat de alte
tipuri de circuite dintre care cel mai des utilizat este MAX 232,
fabricat de firma Maxim. Acesta are în componenţă: 2 emiţătoare,
2 receptoare, convertoare interne pentru dublare şi inversare de
tensiune. Datorită convertoarelor interne are nevoie de o singură
sursă de alimentare, la + 5 V, acesta fiind unul din motivele
pentru care este atât de des utilizat. În figura 3.22 este prezentată
structura internă a acestui circuit precum şi o posibilitate de
conectare ca interfaţă între un microcontroler şi un calculator.
Valorile capacităţilor condensatoarelor necesare în
exteriorul circuitului MAX 232 sunt prezentate în tabelul 3.3.

Tabelul 3.3. Valorile capacităţilor condensatoarelor necesare


în exteriorul circuitului MAX 232 (două variante).
Circuit Capacități (F)
C1 C2 C3 C4 C5
MAX 232 1 1 1 1 1
MAX 232A 0,1 0,1 0,1 0,1 0,1

Există multe variante ale acestui circuit, în tabelul 3.3


prezentându-se doar două tipuri. Pentru conectarea unor
variante de circuit MAX-232 sunt necesare condensatoare de
valori relativ mari care sunt mai voluminoase şi mai scumpe. Se
pot utiliza şi alte circuite care sunt disponibile şi care folosesc
capacităţi mai mici, existând chiar şi unele cu capacităţi
încorporate.
Multe astfel de produse sunt proiectate pentru a
transmite şi recepţiona date la viteze de până la 120 Kbps sau
chiar 250 Kbps. Vitezele mai mari impun anumite precauţiuni
deoarece fronturile de ridicare ale semnalelor pe liniile de
transmisie sunt mult mai abrupte şi prin urmare apar efectele
radiaţiilor electromagnetice şi cele legate de liniile de
transmisie. Astfel, dacă se utilizează circuite capabile de
transfer la viteze mari pentru un port RS-232 obişnuit, nu poate
fi garantată o funcţionare corectă nici dacă viteza de transfer
este setată la 20 Kbps.

60
Modulul 3
Interfaţa standardizată RS-232

Rezumat
RS-232 este una dintre cele mai utilizate standarde,
existând aproape în orice calculator și permițând o
interfațare relativ ușoară a acestuia cu alte dispozitive.
Standardul prevede utilizarea unor conectori
specifici, fie cu 25 pini, fie cu 9 pini. Se utilizează mult câteva
dintre semnalele specifice RS-232: linia de emisie, cea de
recepție, liniile DTR, DSR, RTS și CTS. RS-232 utilizează o
legătură serială, de obicei asincronă: se transmite un singur
bit pe linie, la un moment dat. Principalul avantaj este că
trebuie să se cableze mai puține fire decât în cazul
interfețelor paralele: câteodată, la utilizarea unui protocol de
comunicație software, se pot folosi doar trei fire de legătură
pentru emisie, recepție și pentru masă.
Dezavantajul este că lungimea cablurilor este mică,
de maximum 20 m și, în plus, viteza de transfer a datelor
nu poate depăși 19600bps. Conform standardului, se pot
realiza legături între două echipamente, pentru transfer de
date bidirecțional full-duplex. Echipamentele au denumiri
consacrate, în denumire fiind subînțelese și anumite
funcții. Astfel, pentru că un DTE și un DCE sunt destinate
să comunice în pereche, la pinul “i” de la DTE avem o
ieșire iar la pinul “i” de la DCE avem o intrare. Deci pinul
cu același număr are funcții electrice diferite astfel încât
un cablu de legătură între un DTE și un DCE va putea fi
realizat prin legarea directă a pinilor cu același număr.
Se întâlnesc interpretări ale standardului atât
pentru conectarea mai multor echipamente cât și pentru
conectarea a două echipamente de tip DTE, In acest ultim
caz cablul de legătură se numește cablu modem nul.

61
Modulul 3
Interfaţa standardizată RS-232

ÎNTREBĂRI RECAPITULATIVE
1. Care este lungimea maximă a cablului în cazul
standardului RS-232 ?
2. Care este diferența între un DTE și un DCE ?
3. Cum se poate identifica un “cablu modem nul” ?
4. Comunicația pe RS-232 poate fi full duplex ?
5. Prezentați funcțiile semnalelor RTS, CTS, DTR, DSR.
6. Ce valoare de tensiune este utilizată pentru a desemna
valoarea logică 0 ?
7. Care este diferența între liniile de date și liniile de control
pe RS-232 ?
8. Dați exemple de niveluri logice interpretate în logică
negativă, utilizând valori tipice pentru RS-232.
9. Explicați modalitatea de a transmite caractere pe RS-232.
10. Desenați succesiunea de niveluri de tensiune pentru
transmiterea caracterului D.
11. Prezentați protocolul hardware RTS/CTS.
12. Care este diferența între protocolul software de
comunicație și protocoalele hardware de comunicație ?
13. Ce circuite specifice pentru RS-232 cunoașteți ?
14. Ce conține circuitul MAX232 ?

62