Sunteți pe pagina 1din 16

Interfee seriale.

RS232 i circuite programabile

5b.Interfee seriale. RS232 i circuite programabile


Cuprins modul
5b.1.Standardul RS232
5b.2.Circuit de interfa programabil
A.Descrierea circuitului
B.Funcionarea circuitului
C.Programarea circuitului
5b.3.Modificarea nivelului de tensiune
Cuprins

Introducere

Obiective

Durata medie
de studiu
individual

Modulul Interfee seriale. RS232 i circuite programabile


continu prezentarea interfeelor seriale care a nceput n modulul
5a cu aspecte generale de codare i de formare a cuvintelor i
cadrelor seriale. n acest modul se va prezenta exemplul concret al
standardului de transmisie serial RS232, care este implementat n
majoritatea microcontrollerelor. Un exemplu de circuit de interfa
programabil i modul de programare vor completa imaginea
acestei interfee seriale. La sfrit se vor meniona cteva aspecte
legate de modificarea nivelui de tensiune.

Dup parcurgerea acestui modul studenii vor cunoate interfaa


RS232 i implementarea ei cu un circuit de interfa programabil.
Studenii vor putea s:
Conceap o interfa serial asincron cu o interfa
specializat pentru a o conecta pe magistral;
Programeze o interfa serial RS232 din structura unui
microcontroller.
Obiective specifice:
1.nvarea noiunii de protocol cu aplicare la transferul de date
prin interfee;
2.nvarea programrii la nivel de bit a interfeelor seriale i
paralele;
3.Cunoaterea unor tipuri de transmisii seriale i interfee seriale
ca structur, protocol i interfee tipice.
4.nelegerea noiunilor prin exemplificri practice

Durata medie de studiu individual este de 2 ore.

81

Interfee seriale. RS232 i circuite programabile


5b.1. Standardul RS232
EIA (Electronics Industries Association) mpreun cu TIA (Telecommunication Industry
Association) au realizat standarde pentru interfee seriale. Standardul utilizat n prezent
pentru conectarea microcontrollerelor la un calculator gazd este EIA/TIA RS232-E.
Valorile tensiunilor admisibile pentru fiecare nivel logic sunt date n figura 5.10. Valorile
maxime admisibile sunt +25V i 25V.
+12V
0 logic
+5V
+3V
0V
-3V

-5V
1 logic
-12V

Figura 5.10. Nivelele de tensiune ale valorilor logice n RS232

Nivelele mai mari de tensiune asigur o margine de zgomot mai mare i prin urmare o
imunitate mai mare la perturbaii. Distana maxim de transfer este de 15m la un debit de
informaie de 115Kbps.
Cele mai importante semnale de interfa n standardul RS232 sunt:
Tabelul 1
Semnal

Sens

Semnificaie

RxD

recepie date

TxD

emisie date

RxC

ceas de recepie

TxC

ceas de emisie

RTS

Request to Send (cerere de emisie)

CTS

Clear to Send (gata de emisie)

DTR

Data Terminal Ready (terminal de date gata?)

DSR

Data Set Ready (terminal de date gata)


82

Interfee seriale. RS232 i circuite programabile

Termenii Half Duplex (HDX) i Full Duplex (FDX) se refer la simultaneitatea


transferului de date n ambele sensuri ntre dou echipamente. Dac exist flux de date
att ntr-un sens ct i n cellalt, dar nu simultan, atunci transferul este HDX. Dac exist
flux de date ntr-un sens i n cellalt n acelai timp, atunci transferul este FDX. n
industrie se folosete pentru HDX termenul TWA (Two Way Alternate) i pentru FDX
termenul TWS (Two Way Simultaneous).
O legtur punct la punct conecteaz dou dispozitive, iar o legtur multipunct
conecteaz mai mult de dou dispozitive. Aceste legturi sunt ilustrate n frigura 5.11. n
legtura punct la punct, unul din dispozitive este emitor i cellalt este receptor
(stnga). n legtura multipunct un singur dispozitiv este emitor i dintre celelalte, la un
moment dat, unul sau mai multe dispozitive sunt receptoare (dreapta). Receptorul este
activat printr-un mecanism de adresare specific interfeei.

A
B

Punct la punct
Point-to-Point

Multipunct
Multipoint

Figura 5.11.Legtur punct la punct i multipunct

Din punctul de vedere al acestor precizri, interfaa serial RS232 este o interfa punct la
punct, Full Duplex.
O legtur complet RS232 ntre dou sisteme de calcul utilizeaz toate semnalele
principale din Tabelul 1 i este dat n figura 5.12.
Datele circul prin liniile TxD i RxD n mod FDX sau HDX, depinde de capacitatea
circuitelor seriale de interfa. Perechile de semnale RTS /CTS i DTR /DSR au rolul de a
implementa un protocol hardware de comunicaie. Unul dintre sistemele conectate
solicit un transfer prin semnalul RTS sau DTR, iar cellalt prin CTS sau DSR confirm
disponibilitatea receptorului de a primi date. Tactul de recepie i cel de emisie pot fi
diferite dare de cele mai multe ori ele sunt egale i provin de la un genrator extern.
Transmisia serial RS232 poate fi cu tact standard i n acest caz cele dou generatoare
de tact genereaz un tact precizat n standard i n foile de catalog a circuitelor. Dac
83

Interfee seriale. RS232 i circuite programabile


tactul este generat la un singur sistem i este transmis prin linia de transmisie se obine o
transmisie serial cu transmiterea tactului, care poate asigura un debit mai mare de
informaie. n transmisia RS232 cele dou sisteme trebuie s aib mas comun, deci
conexiunea trebuie completat cu o linie de mas (GND).

Sistem 2

Sistem 1
RxD

RxD

TxD

TxD

RxC

Tact

Tact

RxC

TxC

TxC

RTS

RTS

CTS

CTS

DTR

DTR

DSR

DSR

GND

GND

Figura 5.12. Legtur RS232 complet

Conexiunea ntre cele dou sisteme se face cu 7 fire. Avantajul interfeelor


seriale este numrul mic de linii de conectare. Nu este aici o contradicie?
Ba da, de aceea de cele mai multe ori nu se folosesc toate liniile de
protocol.

Dintre cele dou perechi de linii de protocol RTS /CTS i DTR /DSR se poate folosi doar
una, scznd astfel numrul de linii de conexiune de la 7 la 5. Protocolul hardware de
comunicaie se numete DTR sau RTS n funcie de perechea utilizat. Pentru transfer
poate fi implementat i un protocol software care se numete XonXoff. Acest protocol
nseamn transmisia pe linia TxD i recepia pe RxD a unor coduri, unul care semnific
liber (Xon) i unul care semnific ocupat pentru Xoff. n aceast situaie numrul de
linii de conexiune scade la 3, figura 5.13.

84

Interfee seriale. RS232 i circuite programabile

Sistem 2

Sistem 1
RxD

RxD

TxD

TxD

GND

GND

Figura 5.13. Transmisia RS232 pe 3 fire cu protocol software

Tactul de transmisie este standard dar evoluia echipamentelor a necesitat mrirea vitezei
de comunicaie. De aceea s-au definit viteze standard de comunicaie iar circuitele de
interfa serial prelucreaz prin divizare tactul standard pentru a obine mai multe viteze
de comunicaie standard, selectabile software. Vitezele de comunicaie standard sunt (n
Baud): 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.

5b.2.Circuit de interfa programabil


A.Descrierea circuitului
Ca exemplu de circuit programabil de interfa serial RS232 a fost ales circuitul Intel
8251, care a fost primul circuit conceput n acest scop de Intel. Circuitul se numete
circuit USART (Universal Syncronous Asyncronous Receiver Transmitter) pentru c
poate lucra att n mod asincron ct i sincron. Dac la interfeele paralele primul circuit
programabil realizat de Intel a fost utilizat o lung perioad de timp, circuitul de interfa
serial I8251 a fost nlocuit dup scurt timp de interfee mai evoluate. Alegerea acestui
circuit s-a datorat valorii educative, pentru c realizeaz att mod asincron ct i sincron
spre deosebire de circuitele mai noi care realizeaz doar modul asincron al interfeei
RS232. Un alt motiv este simplitatea circuitului I8251 i modul simplu de programare.
Schema bloc a circuitului este dat n figura 5.14.
Semnalele de interfa cu microprocesorul gazd au aceeai semnificaie ca la circuitul de
interfa paralel:

RD se execut cu ciclu de citire de la un port sau de la memorie. Acest pin se


conecteaz la semnalul de magistral IOR;
WR se execut cu ciclu de scriere la un port sau n memorie. Acest pin se
conecteaz la semnalul de magistral IOW;
85

Interfee seriale. RS232 i circuite programabile

C/D, Comenzi / Date, cu 0 arat transfer de date, cu 1 transfer de comenzi. Se


conecteaz de regul la linia cel mai puin semnificativ de adres;
CLK tact de magistral pentru comanda operaiilor interne n interfa;
RESET este o linie care comand iniializarea circuitului prin tergerea
informaiei din toate registrele;
CS este o linie care selecteaz circuitul. Formrii acestui semnal i se dedic un
modul de studiu ulterior;
D0-D7 magistrala de date a gazdei, 8 linii bidirecionale;

I8251
D0-D7

Buffer
de date
Interfaa cu
microprocesorul
RD
WR
CS
C/D
CLK
RESET

Canal serial

EMISIE

TxD
TxC

RECEPIE

RxD
RxC

PROTOCOL

STARE

DTR
DSR
RTS
CTS
TxRDY
TxE
RxRDY
SYNDET

Magistrala intern
Figura 5.14. Schema bloc a circuitului programabil de interfa serial I8251

Semnalele de conectare cu linia RS232 sunt cele standard, descrise la 5b.1. n plus fa de
acestea exist cteva semnale care au rolul de a informa procesorul gazd de starea
circuitului. Aceste semnale sunt:

TxRDY transmitor pregtit pentru a primi date de pe magistrala D0-D7;


RxRDY receptorul a recepionat un caracter care este gata de a fi trimis pe
magistrala D0-D7;
TxE transmitor gol;
SYNDET un semnal cu sens dublu, interfaa anun c a detectat sincronizarea
sau este anunat c un circuit extern a detectat sincronizarea.
86

Interfee seriale. RS232 i circuite programabile


Aceste semnale pot fi utilizate ca cereri de ntrerupere pentru procesor.
B.Funcionarea circuitului
Circuitul are ca i funcie principal conversia paralel serie i serie paralel. Un cuvnt
care trebuie transmis paralel este scris n circuit n format paralel de ctre procesor pe
liniile D0-D7, este serializat i n mod asincron i se adaug bii de START, STOP i de
paritate. Serializarea se face cu tactul TxC. Este transmis apoi serial pe linia TxD, cu un
protocol hardware activnd i citind perechile RTS/CTS, DTR/DSR sau un protocol
software XonXoff. Dup transmisia cuvntului se activeaz semnalul TxRDY pentru ca
procesorul s poat trimite alt cuvnt.
La recepia n mod asincron informaia serial care vine pe linia RxD este citit serial cu
tactul RxC ncepnd cu primul front care este recunoscut ca bit de START. Se verific
paritatea, apoi sunt eliminai biii de START i STOP i se face conversia serie paralel.
Circuitul activeaz semnalul RxRDY pentru ca procesorul s tie c poate citi caracterul
n format paralel pe liniile D0-D7.
n mod sincron la recepie circuitul poate lucra n dou moduri, cu sincronizare intern
sau cu sincronizare extern. Cu sincronizare intern la recepie citete continuu datele de
pe linia RxD i le compar cu un cuvnt de 8 bii de sincronizare. Acest cuvnt este
standardizat, este folosit la cadre de date cu codare ASCII i marcheaz nceputul unui
cadru de date. Acest mod de funcionare n care circuitul urmrete sincronizarea se
numete mod Hunt. n acest mod circuitul nu transmite date spre procesor. n momentul
recunoaterii cuvntului de sincronizare, datele sunt citite serial de pe linia RxD, sunt
transformate n format paralel, se verific bitul de paritate i sunt transmise spre procesor
pe liniile D0-D7. La detectarea sincronizrii se activeaz semnalul SYNDET. Semnalul
RxRDY se activeaz la fiecare cuvnt recepionat.
n mod sincron la recepia cu sincronizare extern, un circuit extern se ocup cu
recunoaterea cuvntului de sincronizare. Cnd este recunoscut un astfel de cuvnt se
activeaz ctre circuitul de interfa serial semnalul SYNDET i circuitul ncepe s
citeasc serial date de pe linia RxD, sunt transformate n format paralel, se verific bitul
de paritate i sunt transmise spre procesor pe liniile D0-D7.
n mod sincron la transmisie un cadru de date este transferat octet dup octet n format
paralel pe liniile D0-D7 ctre circuit, circuitul insereaz cuvntul de sincronizare,
calculeaz i insereaz bitul de paritate, serializeaz cuvintele i le transmite pe linia
TxD. Cnd a terminat de trimis un cuvnt semnalizeaz procesorului prin activarea
semnalului TxRDY.
n mod sincron cuvntul de sincronizare poate avea un octet sau doi octei.

87

Interfee seriale. RS232 i circuite programabile


C.Programarea circuitului
Primul cuvnt de comand trimis n circuit cu linia C/D=1 comand modul de lucru i
principalii parametri de funcionare, astfel:
Dac D1=0 i D0=0 modul de lucru este sincron, la orice alt combinaie modul este
asincron.
Semnificaia biilor din primul cuvnt de comand n mod asincron
D7

D6

bii de STOP

invalid

1 bit

1 bit

2 bii

D3

D2

lungime caracter

D1 D0

Tact de transmisie

5 bii

invalid

6 bii

tact/64

7 bii

tact/16

8 bii

tact

D5 D4

paritate

dezactivat

paritate par

paritate impar

Semnificaia biilor din primul cuvnt de comand n mod sincron


D7=0 cuvntul de sincronizare are doi octei, D7=1 cuvntul de sincronizare are 1 octet
D6=0 sincronizare intern, D6=1 sincronizare extern
D5 D4

paritate

dezactivat

paritate par

paritate impar

D3

D2

lungime caracter

5 bii

6 bii

7 bii

8 bii

D1=0, D0=0 pentru selectarea modului sincron

88

Interfee seriale. RS232 i circuite programabile


Dac s-a selectat modul sincron cu sincronizare extern atunci dup primul cuvnt de
comand nu mai urmeaz alt cuvnt de programare specific modului sincron. Dac s-a
selectat modul sincron cu sincronizare intern cu un octet de sincronizare atunci urmeaz
un al doilea cuvnt de programare care conine octetul de sincronizare. Dac s-a selectat
modul sincron cu sincronizare intern cu doi octei de sincronizare atunci urmeaz al
doilea i al treilea cuvnt care conin aceti doi octei.
Al doilea cuvnt de comand i cuvntul de stare
Structura cuvntului al doilea de comand este dat n stnga i a cuvntului de stare (citit
cu semnalul C/D=1) este dat n dreapta.
Al doilea cuvnt de comand
Bit

Semnificaie

Cuvnt de stare
Bit

Semnificaie

D7

Intrare n mod Hunt

D7

DSR

D6

Reset intern

D6

SYNDET

D5

RTS

D5

FE (Frame Error)

D4

Anularea tuturor erorilor din registrul D4


de stare

OE (Overrun Error)

D3

Transmisie caracter BREAK

D3

PE (Parity Error)

D2

Activare recepie

D2

TxE

D1

DTR

D1

RxRDY

D0

Activare emisie

D0

TxRDY

Primul cuvnt de comand programeaz parametric comunicaiei, iar al doilea cuvnt de


comand declaneaz execuia unei operaii: transmisia, recepie, modul de detectare a
sincronizrii etc. Transmisia unui caracter BREAK nseamn c linia de transmisie este
trecut n stare SPACE i nu mai este posibil transmisia informaiilor pe linie. O
utilizare posibil a acestui caracter BREAK este la detectarea automat a vitezei de
transmisie. Lungimea caracterului, prin urmare durata meninerii liniei n stare SPACE
poate da informaii receptorului despre viteza de transmisie, pentru ca acesta s-i poat
adapta tactul de recepie. Cu al doilea cuvnt de comand se pot genera semnalele de
protocol DTR i RTS dac protocolul folosit este cel hardware. Dac se folosete
protocolul software aceste linii nefolosite se pot utiliza de exemplu pentru semnalizarea
strii circuitului.

89

Interfee seriale. RS232 i circuite programabile


Cuvntul de stare conine starea liniilor TxE, RxRDY,TxRDY i SYNDET pentru a putea
fi citite de procesor n cazul n care transferul este programat. n cuvntul de stare se
poate citi semnalul de protocol DSR i se pot identifica erorile care au aprut la
transmisie: eroarea de paritate PE cnd bitul de paritate transmis nu corespunde cu cel
generat la receptor, eroarea de sincronizare FE cnd nu s-a recepionat un bit de STOP
corespunztor i eroarea de suprascriere (OE) cnd s-a recepionat un cuvnt nainte ca
cel anterior s fie citit.

5b.3.Modificarea nivelului de tensiune


n figura 5.10 se arat c nivelele de tensiune RS232 sunt ntre 3 i 15V, iar din figura
5.14 se vede c circuitul interfa serial nu are circuite de modificare de nivel i fiind n
tehnologie TTL are nivele ntre 0 i 5V. Prin urmare, semnalele generate i recepionate
de circuitul interfa serial trebuie convertite ca nivel n semnale RS232. Pentru aceasta,
cel mai cunoscut i utilizat circuit este MAX232. De cele mai multe ori, modulele
echipate cu interfa serial sunt alimentate doar de la 5V, aa nct circuitul MAX232
conine n interior dou convertoare DC/DC pentru a forma +12V i -12V din 5V.
Schema bloc intern a circuitului MAX232 este dat n figura 5.15 (stnga):

Nivele RS232

Nivele TTL

Figura 5.15. Schema bloc intern a circuitului MAX232

n figura 5.15 n dreapta se poate vedea o schem electric tipic de utilizare a unui circuit
MAX232 n cazul unei legturi seriale RS232 cu protocol software, la care comunicaia
se face pe dou fire TxD i RxD, i GND.
90

Interfee seriale. RS232 i circuite programabile


n figura 5.16. se poate vedea o diagram de timp vizualizat cu un osciloscop pentru
transmiterea serial a unui caracter. Jos este reprezentat semnalul la nivele TTL iar sus se
observ semnalul cu amplitudine mai mare (RS232). Se poate observa c polaritatae la
RS232 este inversat de MAX232.

Figura 5.16. Diagrama transferului serial RS232 a unui caracter (jos la nivel TTL, sus la
nivel RS232)
La examinarea de final de curs este nevoie ca studenii s memoreze
poziia fiecrui bit de programare?
Nu. ntrebarea de la test va fi asociat cu un text care va conine toate
datele necesare rezolvrii.

91

Interfee seriale. RS232 i circuite programabile

Se poate proiecta o aplicaie cu datele furnizate de acest modul de


nvare?
Nu, pentru c modulul este didactic i nu conine detalii privind variaia n
timp a semnalelor, valorile lor logice n care semnalele sunt active, etc.
Pentru proiectare este nevoie de consultarea foilor de catalog.

Cele mai multe calculatoare PC nu mai au interfa serial RS232. Ce se


poate face n acest caz pentru conectarea unui dispozitiv RS232?
Se poate utiliza un convertor USB RS232.

Este complicat de a asigura o conexiune serial ntre un microcontroller i


un PC prin interfaa serial?
Din figura 5.17 se poate vedea c o astfel de conexiune este simpl.

Figura 5.17. Conectarea unui microcontroller la un PC prin interfaa serial cu MAX232,


sursa http://creativeelectron.net/blog/2009/10/pic-serial-communition-in-picmicrocontroller-1/

92

Interfee seriale. RS232 i circuite programabile

Rezumat

Bibliografie

Modulul Interfee seriale a fost mprit n dou. n


aceast parte a doua este descries standarul serial RS232 ca
nivele de tensiune, semnale principale i protocol de
comunicaie. Este descris apoi circuitul interfa serial
programabil Intel 8251 cu schema bloc, funcionare i
programare. Se justific necesitatea circuitelor de conversie
de nivel i se descrie sumar circuitul MAX232. O diagram
de timp vizualizat cu un osciloscop marcheaz sfritul
celor dou module dedicate interfeelor seriale. Cteva
dintre modulele urmtoare vor fi dedicate altor interfee
seriale, de exemplu Ethernet, IEEE 1394, IrDA, SATA etc.

1. C. Gerigan, P. Ogruan, Tehnici de interfaare, Ed.


Transilvania Braov, 2000, 315p., ISBN 973-9474-942, pag. 69-93, online la:
http://vega.unitbv.ro/~ogrutan/ti/cap5.pdf
2. RS-232 online la: http://en.wikipedia.org/wiki/RS-232
3. RS232 detalii, online la:
http://academic.evergreen.edu/projects/biophysics/tech
notes/electron/serial.htm
4. I8251 online la:
http://www.electronics.dit.ie/staff/tscarff/8251usart/82
51.htm
5. http://creativeelectron.net/blog/2009/10/pic-serialcommunition-in-pic-microcontroller-1/

93

Interfee seriale. RS232 i circuite programabile

Test de autoevaluare

1.O legtur HDX este realizat ntre 2 interfee seriale RS232.


Se transmit date n acelai timp pe linia TxD i se
recepioneaz date pe linia RxD.

adevrat
fals
I. vezi pagina 3

1.Comunicaia RS232 este gestionat cu un protocol soft care


include coduri diferite trimise pe liniile DTR /RTS i
recepionate pe liniile DSR / CTS.

adevrat
fals
I. vezi pagina 3 i 4

3.Semnalul SYNDET este generat de interfaa serial I8251


dac:
(a) un circuit extern de sincronizare a detectat
apariia unui octet de sincronizare
(b) circuitul I8251 a detectat apariia unui octet de
sincronizare
(c) n mod asincron s-a recepionat un cod Xon

(d) la recepia fiecrui caracter


I. vezi pagina 7

94

Interfee seriale. RS232 i circuite programabile

4.Un circuit I8251 este conectat pe o magistral de 8 bii de


adrese i 8 bii de date, semnalul C/D fiind conectat la linia de
adrese A0. Secvena de cod urmtoare:
MOV DX,0000H
MOV AL,55H
OUT DX,AL
Are ca efect:
(a) trimiterea n 8251 a primului cuvnt de
programare
(b) trimiterea n 8251 a celui de al doilea cuvnt de
programare
(c) trimiterea octetului 55H n 8251 ca i octet de
date i transmisia lui pe linia TxD
(d) trimiterea octetului 55H n 8251 ca i octet de
date

I. vezi pagina 6, 8 i 9

5.Programai circuitul 8251 pentru mod asincron cu viteza


maxim de transfer, 1 bit de STOP, paritate par, 8 bii/
caracter:

MOV DX, adresa port serial


MOV AL,
H
OUT DX,AL

I. Vezi pagina 8. (biii care sunt indifereni se pun pe zero)

95

Interfee seriale. RS232 i circuite programabile

6. Un circuit I8251 este conectat pe o magistral de 12 bii de


adrese i 8 bii de date la adresa 0000H, semnalul C/D fiind
conectat la linia de adrese A0. Comandai circuitul s execute
transmisia caracterului AAH cu parametri de comunicaie:
mod asincron cu viteza minim, 1 bit de STOP, fr paritate, 8
bii/ caracter:

MOV DX,
H
MOV AL,
H
OUT DX,AL
MOV AL,
H
OUT DX,AL

I. Vezi paginile 6,8, 9. (biii care sunt indifereni se pun pe


zero)

Rspunsuri corecte:
1. fals, HDX nu nseamn transmisie i recepie n acelai
timp, pagina 3
2. fals, codurile se trimit pe linia TxD i se recepioneaz
pe RxD, pagina 3 i 4
3. b, SYNDET este activat doar la modul sincron i doar
la sincronizare intern, realizat de I8251, pagina 7
4. d, adresa 0000H corespunde la C/D=0, deci octet de
date. Nu exist al doilea cuvnt de programare care s
comande transmisia, deci rspunsul c nu este corect,
paginile 6,8 i 9.
5. 5FH, 01011111 binar, pagina 8
6. 0001H penru ca C/D=1 i se trimite primul cuvnt de
comand 4DH, apoi al doilea 01H care valivalideaz
transmisia. Paginile 6,8,9.

96

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