Sunteți pe pagina 1din 16

8.2.

Interfaa RS-232 C

8.2.1. Introducere
Standardul RS-232 C, introdus de Electronic Industries Association (EIA),
definete caracteristicile electrice ale unei interfee dintre un echipament numeric
- numit n standard Data Terminal Equipment (DTE) si un modem - denumit de
standard Data Communications Equipment (DCE). Denumirea complet a
interfeei RS-232 C este : Interface Between Data Terminal Equipment and Data
Communi-cation Equipment Employing Serial Binary Data Interchange. Litera C
vine de la ultima revizie fcut standardului. Recomandarea V.24 a CCITT este
aproape identic cu RS-232 C.
Standardul RS-232 C acoper patru domenii :
1. Caracteristicile mecanice ale interfeei.
2. Semnalele electrice.
3. Funcia fiecrui semnal.
4. Subset de semnale pentru aplicaii specifice.



8.2.2. Specificaiile mecanice ale interfeei RS 232 C

Prescripiile mecanice se refer la faptul c pe echipamentul numeric se
afl dispus conectorul mam, c lungimea maxim a cablului dintre DTE si DCE
este 15 metri i c se admite o capacitate maxim a cablului de 2500 picofarazi.
Dei nespecificat n standard, n momentul de fa, aproape toate aplicaiile
utilizeaz pentru RS-232 C conectorul cu 25 pini: DB25.
Denumirea semnalelor asociate fiecrui pin aparinnd conectorului DB25,
precum i sursa i abrevierea fiecrui semnal este dat n tabelul 8.1.

Tabelul 8.1
PIN DENUMIRE SEMNAL SURS
A
PIN DENUMIRE SEMNAL SURS
A
1 mpmntare 14 2-nd TD DTE
2 Transmitted data
(TD),(Tx)
DTE 15 Transm sign timing DCE
3 Received date (RD), (Rx) DCE 16 2-nd RD DCE
4 Request to send (RTS) DTE 17 Receiv sign timing DCE
5 Clear to send (CTS) DCE 18 Neconectat
6 Data set ready (DSR) DCE 19 2-nd RTS DTE
7 Masa semnal (GND) 20 DTE ready (DTR) DTE
8 Data carrier detect (DCD) DCE 21 Signal quality detector DCE
9 Rezervat 22 Ring indicator (RI) DCE
10 Rezervat 23 Data sign rate selector
11 Neconectat 24 Transm sign timing DTE
12 2-nd received sign detect DCE 25 Neconectat
13 2-nd CTS DCE

Figura 8.7 arat i alte tipuri de conectoare ce pot fi ntlnite n practic.
Sgeile indic semnalele de intrare i ieire pentru DTE. n cazul conectorului
DB-25 au fost explicitate doar semnalele pentru canalul principal. Se observ c
n cazul celorlalte conectoare, datorit numrului mai mic de pini se poate
implementa un singur canal de transmisie.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Tx
Rx
RTS
CTS
DSR
DTR
RI
DCD
5 - Rx
3 masa e
6 Tx 2
1 - DTR
7 -Nc
8 Rx 2
2 - Tx 6 - DSR
1
2
3 4
5
6
7 8
d
c
1
2
3
4
5
6
7
8
9
Tx
Rx
DTR
DCD
DSR
RTS
CTS
RI
b
1 - DTR
3 - Tx
4 masa r 4 - masa
5 - Rx
2 - DSR
a
6
5
1

Fig 8.7 Diferite tipuri de conectoare pentru interfaa RS 232: a) conector mam
DTE cu 25 pini, b) conector mam cu 9 pini, montat pe PC, c) conector MINI-DIN
8, dinspre partea cu lipituri - utilizat la calculatoarele Mac-Intosh, d) conector RJ-
11

8.2.3. Specificaiile electrice
Standardul specific patru tipuri de linii: linii de date (4), linii de control
(11), linii de sincronizare (3) i linii de mas (2).
Un semnal de date este considerat pe "1" logic dac potenialul fa de
mas al liniei respective este cuprins ntre - 3 V i - 25 V, (de regul ntre - 3 V i
- 25 V la recepie i ntre - 5 V i - 25 V la generare).
Pentru "0" logic potenialul liniei de date este cuprins ntre +3 V i +25 V.
Figura 8.8 arat zonele admise i interzise pentru palierele semnalelor
vehiculate de ctre interfaa RS 232. Timpul petrecut n zona de tranziie trebuie
s fie mai mic de 4 din durata necesar transmiterii unui bit. Aceast cerin
limiteaz capacitatea maxim admis pentru cablu la 2500 pF, deci i lungimea
maxim a cablului.
Pentru liniile de control, polaritatea potenialelor asociate lui 1 i 0 logic
sunt inversate fa de liniile de date. Liniile de control sunt considerate n starea
"ON" dac sunt pe "1" logic (potenial pozitiv) i n starea "OFF" dac sunt n "0"
logic (potenial negativ).
Semnalele electrice sunt astfel generate nct scurtcircuitarea oricror linii
ale interfeei s nu conduc la defectarea echipamentelor. Evident c pe durata
scurtcircuitului interfaa, funcie de pinii scurtcircuitai, este posibil s nu
funcioneze, dar o dat cu ndeprtarea scurtcircuitului toate funciile de interfa
pot fi reluate.


Regiune de tranzi]ie a semnalului
Palierul negativ al semnalului; 1 logic
Palierul pozitiv al semnalului; 0 logic
- 25
- 3
+3
V
+25

Fig.8.8 Limitele de tensiune admise pentru semnalele interfeei RS 232

Standardul RS-232 C cuprinde dou tipuri de canale: un canal primar ce
opereaz la viteze ridicate de transfer i care este dedicat transferului de date i
un canal secundar, de vitez redus, dedicat informaiei de control. La rndul
su, canalul secundar poate fi divizat ntr-un canal auxiliar pe care se transmit
date independent de canalul primar i un canal de rspuns asociat canalului
primar. Pe canalul de rspuns, direcia de transmitere a datelor este ntotdeauna
invers fa de direcia de transmitere a datelor pe canalul primar.
Este de remarcat c majoritatea aplicaiilor folosesc doar canalul primar.
Foarte important este modul de conectare al masei. Exist (figura 8.8 a i
tabelul 8.1) dou legturi la mas: pinul 1 este mpmntare i folosete la
legarea ntre ele i la pmnt a carcaselor dispozitivelor i pinul 7 care este
masa de referin a semnalelor. Neutilizarea ambelor legturi poate s fie cauza
unor erori: figura 8.9.

cablu
Conector B
Conector A
+3V
GND A
- 3V
GND B

Fig. 8.9 Explicativ pentru erorile cauzate de legarea incorect a pmntrii

Carcasele aparatelor nempmntate corect se pot gsi la diferee de
potenial mare. Utilizarea firului de mas de referin pentru egalarea
potenialelor carcaselor conduce la apariia unei cderi de tensiuni pe acest fir,
cdere de tensiune ce decaleaz nivelurile logice transmise i recepionate.
Dac acest decalaj este suficient de mare apare situaia din figura 8.9, unde
zona nivelurilor pozitive ale aparatului A are o poriune ce se suprapune cu zona
nivelurilor negative ale aparatului B. Faptul conduce la erori de transmisie, mai
ales n situaia n care nivelurile sunt apropiate de zona de tranziie. Ca s se
evite pe ct posibil aceast situaie, majoritatea interfeelor RS 232 lucreaz cu
niveluri de 12 V (niveluri acceptate de circuitele electronice i n plus aceste
tensiuni sunt tensiuni de alimentare ntr-un PC).

8.2.4. Funciile semnalelor

Semnalele de date sunt definite din punctul de vedere al DTE i pentru
canalul principal sunt dou astfel de semnale : transmisie date (TD), (Tx) - pinul
2 i recepie date (RD), (Rx) - pinul 3. DTE trebuie s in semnalul Tx n starea
logic "1" (potenial negativ) atunci cnd nu se transmit date precum i n
intervalul dintre caractere. DTE nu poate activa semnalul Tx dac semnalele de
control RTS, CTS, DSR i DTR nu sunt n starea logic "1" (ON, potenial
pozitiv).
Semnalul recepie date Rx trebuie inut pe "1" logic atta timp ct semnalul
de control "DATA CARRIER DETECT" (DCD) este OFF. n transmisia "half-
duplex" RD este pe "1" atunci cnd RTS este ON. Canalul secundar are la pinii
14 i 16 semnale de date analoage cu cele prezentate anterior.
Procedura de handshake la RS 232 este ilustrat n figura 8.10.
Semnalele de control pot fi utilizate n totalitate sau numai o parte dintre
ele. Se descrie n continuare funcia fiecrui semnal de control.
- REQUEST TO SEND (RTS) (pinul 4) are drept surs DTE i anun c
exist date de transmis. n cazul legturilor de tip simplex sau duplex punerea pe
ON ("1" logic) a liniei RTS determin trecerea modemului (DCE) n modul
"transmite". n legtura de tip half-duplex, starea ON a semnalului RTS pune
DCE n modul "transmite" i totodat inhib modul "recepie". O dat ce semnalul
RTS trece n starea OFF el nu mai poate fi readus n starea ON dect cu condiia
ca semnalul CLEAR TO SEND (CTS) s fi fost comutat n starea OFF de ctre
DCE.



CTS (DCE)
DTR (DTE)
TxD (DTE)
RTS (DTE)
ON
OFF
ON
OFF
ON
OFF
0
1


Fig. 8.10 Procedura de handshake la RS 232

Semnalul CLEAR TO SEND (CTS) (pinul 5) are ca surs DCE i constituie
rspunsul modemului la semnalul RTS. Dac CTS este n starea ON,
transmiterea datelor poate ncepe. Dac CTS este n starea OFF, DTE nu poate
transmite date. Modemul ine CTS n starea ON numai dac liniile de control
DATA SET READY (DSR) i DATA TERMINAL READY (DTR) sunt n starea
ON.
Semnalul DATA SET READY (DSR) (pinul 6) d informaii despre starea
n care se gseste modemul n sensul c este pus sub tensiune, este pornit i
gata s primeasc date pentru a le transmite pe linia telefonic. Este un rspuns
al modemului la semnalul DTR emis de echipamentul numeric (DTE). Punerea
lui DSR n starea ON nu nseamn c ntreg circuitul telefonic este stabilit, ci
doar c modemul local este pregtit pentru utilizare .
Semnalul DATA TERMINAL READY (DTR) - pinul 20 - n starea ON
anun c DTE este n functiune i se dorete conectarea lui DCE la interfa.
Dac DTR devine OFF, DCE este deconectat din lanul de comunicaie dup ce
s-a terminat comunicarea aflat n curs de derulare.
Semnalul RING INDICATOR (RI) - pinul 22 - este pus n starea ON atunci
cnd DCE anun DTE c s-a primit un semnal de apel.
Semnalul DATA CARRIER DETECT (DCD) - pinul 8 este pus n starea ON
atunci cnd DCE este n msur s anune DTE c pe linia telefonic a fost
detectat existena purttoarei. Dac nu exist purttoare sau nivelul acestuia
este insuficient, DCD trece n starea OFF.
Dac parametrii purttoarei se menin n limitele prescrise un timp mai
ndelungat, exist o mare probabilitate ca schimbul de informaie ce urmeaz a fi
efectuat s se desfoare fr erori. Acest lucru este semnalizat de ctre DCE
prin punerea n stare ON a liniei SIGNAL QUALITY DETECTOR - pinul 21.
Semnalul DATA SIGNAL RATE SELECTOR - pinul 22 - este pus n starea
ON atunci cnd se selecteaz o vitez de transfer mai mare .
Semnalele de control SECONDARY REQUEST TO SEND, SECONDARY
CLEAR TO SEND i SECONDARY DATA CARRIER DETECT au pentru canalul
secundar acelai rol cu semnalele RTS, CTS i DCD pentru canalul primar.
Semnalele de sincronizare se utilizeaz doar n cazul comunicaiei
sincrone, de altfel foarte rar folosit de ctre interfaa RS-232 C.
TRANSMITTER SIGNAL ELEMENT TIMING (DTE SOURCE) are ca surs
DTE i marcheaz mijlocul fiecrui bit transmis.
RECEIVER SIGNAL ELEMENT TIMING este folosit de DCE pentru a
marca mijlocul fiecrui bit recepionat.
Cel de-al treilea semnal TRANSMITTER SIGNAL ELEMENT TIMING
(DCE SOURCE) este folosit de DTE pentru a schimba datele ce se transmit pe
linia de date (TxD). Data se modific atunci cnd semnalul de sincronizare are o
tranziie din starea OFF n starea ON.
Semnalele de mas sunt dou: mpmntarea - pinul 1 - ce realizeaz
legarea echipotenial a carcaselor DTE si DCE si masa de semnal - pinul 7 - ce
reprezint potenialul de referin pentru celelalte semnale.
Dup cum se observ din figura 8.11, aplicaia tipic a interfeei RS-232 C
presupune o comunicare de tip asincron, utilizeaz doar canalul primar i
accept faptul c linia telefonic este ntr-o stare foarte bun. n plus, aplicaia
tipic nu utilizeaz linia RI. n schimb, se utilizeaz ambele linii de mas.







DCE




DTE
20
6
5
4
3
2
7
DTR
1
DSR
CTS
RTS
Recepie de date (RxD)
Transmisie de date (TxD)
Mas de referin (GND)
Mas de protecie

Fig.8.11. Utilizarea liniilor ntr-o aplicaie tipic a interfeei RS-232 C.

n practic se utileaz frecvent un numr minim de legturi, ca n figura
8.12.
Trebuie remarcat faptul c interfaa RS-232 C a fost proiectat pentru a
stabili comunicaia la distan ntre dou DTE prin intermediul liniei telefonice i a
modemurilor. Practica a impus utilizarea interfeei RS-232 C i n alte scopuri:
spre exemplu, la legarea imprimantei la calculator. Apare problema de a ti care
este DTE i care este DCE. Un mod simplu de a le identifica const n observaia
c DTE transmite la pinul 2 pe cnd DCE transmite la pinul 3. Prin urmare, modul
de legare a liniilor TxD i RxD trebuie s in cont de tipul dispozitivelor ce
comunic. n figura 8.13.a se arat modul de legare a unui DTE cu un DCE, iar
figura 8.13.b ilustreaz legarea a dou DTE.






DCE




DTE
3
2
7
Recepie de date (RxD)
Transmisie de date (TxD)
Mas de referin (GND)


Fig.8.12. Legturile minim necesare pentru RS-232 C.


DCE DTE
3
2
7
a
1
DTE DTE
3
2
7
b
1

Fig.8.13 Conexiunile la pini pentru legarea ntre un a) DTE i un DCE b) DTE i
un DTE.

Interfaa RS-232 C poate funciona asincron sau sincron. Cel mai adesea
se folosete comunicarea asincron. n acest caz transmitorul emite mai nti
un bit de start prin care anun receptorul c urmeaz un caracter. Dup bitul de
start transmitorul pune pe linia TxD caracterul, ncepnd cu bitul cel mai
semnificativ. Fiecare bit este meninut pe linie o durat bine stabilit de timp.
Receptorul eantioneaz linia TxD la momente de timp care se situeaz ct mai
aproape de centrul momentului de timp afectat fiecrui bit. Lucrul acesta se
ntmpl numai dac transmitorul i receptorul lucreaz cu aceeai vitez (au
acelai "baud rate"). Codul folosit pentru caractere este codul ASCII ce folosete
7 bii. Dup biii caracterului urmeaz bitul de paritate ce permite receptorului s
detecteze dac un bit a fost greit recepionat. Bitul de paritate permite
detectarea eronrii unui singur bit. Ultimii bii transmii sunt biii de stop care dau
timp receptorului s asambleze ntr-un cuvnt biii recepionai serie i s se
pregteasc pentru recepionarea noului caracter. Se utilizeaz 1, 1,5 sau 2 bii
de stop.
n cazul n care un calculator transmite unei imprimante, pot apare
probleme din cauza vitezei de lucru a acesteia. De aceea se utilizeaz un
protocol de transmisie realizat cu liniile RTS i CTS. Datorit dotrii imprimantei
cu o memorie tampon, protocolul se realizeaz pe blocuri de date. Unii
productori nlocuiesc CTS cu unul dintre semnalele DTR i DSR.
La comunicarea ntre dou calculatoare, ce folosesc RS-232 C i modul
full-duplex, legate direct sau prin intermediul modemurilor, se utilizeaz frecvent
aa- numitul protocol XON/ XOFF. Acest protocol folosete dou coduri ASCII,
numite unul "Device Control 1" (DC1) i cellalt "Device Control 2" (DC2), n
modul urmtor: la primirea caracterului DC1 transmitorul ncepe s transmit
(XON), iar la primirea caracterului DC2 transmitorul se oprete (XOFF).
La echipamentele ce lucreaz la distan mare se prefer lucrul n curent.
Standardul RS-232 C a fost definit n termeni de tensiune, dar se construiesc
dispozitive ce consider nivel logic "1" atunci cnd trece un curent de 20...60 mA
i nivel logic "0" la absena curentului. La asamblarea unor astfel de dispozitive
n vederea comunicrii prin RS-232 C apare problema care dintre ele constituie
sursa de curent.
Procedura de autotest a interfeei RS 232 presupune efectuarea unor
legturi provizorii la conectorul interfeei (figura 8.14). n acest mod,
echipamentul care transmite i recepioneaz ceea ce a transmis.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
4
5
6
7
8
9
TxD
RxD
TxD
RxD
RTS
CTS
DSR
CD
DTR
CD
DSR
DTR
RTS
CTS

Fig. 8.14 Legturile ce se fac la conectoare pentru autotest RS 232





8.4. Aplicaie. Circuit pentru comunicarea serial asi ncron INS8250

Este un circuit ce se gsete n calculatoarele mai vechi sub forma unui
integrat cu 40 pini. La calculatoarele de generaie recent, electronica pentru
comunicarea serial asincron se gsete n controlerul I/O, alturi de circuite ce
guverneaz portul paralel sau comunicarea cu discurile.
Circuitul INS8250 realizeaz conversia serie - paralel (n cazul recepiei
datelor seriale) i paralel - serie (n cazul transmiterii datelor sub form serial).
n primul caz terge, iar n al doi-lea caz adaug automat i conform programrii
biii de start, stop i de paritate. Se poate programa numrul de bii ai cuvntului
ce se transmite (cuvnt pe 5, 6, 7, sau 8 bii), generarea i detecia bitului de
paritate att pentru paritate par ct i impar, generarea biilor de stop (1, 1 ,
sau 2 bii de stop), precum i rata de transfer, cuprins ntre 0 i 56k Baud/s. De
fapt rata de transfer se stabilete funcie de frecvena de tact care se divide cu
un numr cuprins ntre 1 i 2
16
, numr ce se nscrie n registrul intern Divisor
Latch. Exist registre n care se nscriu cuvinte prin care se stabilete modul de
transmisie, recepie i de funcionare a ntreruperilor.
INS8250 poate fi cuplat direct la magistrala intern a calculatorului (figura
8.17). El realizeaz ntreg protocolul RS 232, doar c mai are nevoie de circuite
suplimentare (drivere) pentru a converti nivelurile TTL n niveluri de tensiune 12
V, impuse pentru intrri i ieiri.
Activarea circuitului se face de ctre PC prin trecerea pe 0 a semnalului
chip select CS. Prin intermediul semnalelor MEMR (I/OR) sau MEMW (I/OW),
active pe 0, procesorul calculatorului alege dac scrie sau citete unul dintre
cele 10 registre interne ale circuitului INS8250. Care este acel registru, se
decide prin coninutul liniilor de adres A0, A1, A2 i bitul DLAB, cel mai
semnificativ bit din registrul de control, conform tabelului 8.2:
D7-D0 SOUT
SIN
DISTR RTS
DOSTR DTR
INTRPT
MR DSR
A0 DCD
A1 8250 CTS
A2 R1
ADS
DOSTR XTAL1
DISTR
CS2 XTAL2
CS1 BAUDOUT
CS0 RCLK
D7-D0
MEMR sau I/OR
MEMW sau I/OW
DRIVERS
3,072
MHz
M
a
g
I
s
t
r
a
l
a
P
C
La conectorul
RS 232
CS
0
1


Fig.8.17 Conectarea integratului INS8250

Tabelul 8.2
A
2
A
1
A
0
DLAB Registrul Adresa
PC
0 0 0 0 Reg. recepie (citete), Reg. Transmite (scrie)
(Receiver Buffer, Transmitter Holding Register)
3F8
0 0 1 0 Validare ntreruperi (Interrupt Enable) 3F9
0 1 0 x Identificare ntrerupere - poate fi numai citit
(Intrerrupt Identification - read only)
3FA
0 1 1 x Registrul control (Line Control) 3FB
1 0 0 x Control MODEM (MODEM Control) 3FC
1 0 1 x Registrul stare (Line Status) 3FD
1 1 0 x Stare MODEM (MODEM Status) 3FE
0 0 0 0 Divisor Latch - least significant byte 3F8
0 0 1 0 Divisor Latch - most significant byte 3F9

Datele se vehiculeaz pe cele 8 linii D0-D7 i ele pot reprezenta cuvnt
recepionat, cuvnt ce se va transmite sau cuvinte pentru programarea modului
de lucru. INS8250 poate lansa cereri de ntrerupere ctre microprocesor dac
cuvntul su de control (nscris n regitrul control), valideaz lucrul cu ntreruperi.
Schema bloc intern a circuitului INS8250 este prezentat n figura 8.18.
DATA
BUS
BUFFER
RECEIVER
BUFFER
REGISTER
LINE
CONTROL
REGISTER
RECEIVER
SHIFT
REGISTER
RECEIVER
TIMING
&
CONTROL
DIVISOR
LATCH (LS)
DIVISOR
LATCH (MS)
BAUD
GENERATOR
LINE
STATUS
REGISTER
TRANSMITTER
HOLDING
REGISTER
TRANSMITTER
TIMING
&
CONTROL
TRANSMITTER
SHIFT
REGISTER
MODEM
CONTROL
REGISTER
MODEM
STATUS
REGISTER
INTERRUPT
ENABLE
REGISTER
INTERRUPT
ID
REGISTER
INTERRUPT
CONTROL
LOGIC
MODEM
CONTROL
LOGIC
SELECT
&
CONTROL
LOGIC
INTERNAL
DATA BUS
(1-8)
(11)
(9)
(10)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
(20)
+5 V
(40)
SIN
RCLK
BAUDOUT
SOUT
RTS
CTS
DTR
DSR
RLSD
RI
OUT 1
OUT 2
INTRPT
D
7
-D
0
A
0
A
1
A
2
CS0
CS1
CS2
ADS
MR
DISTR
DISTR
DOSTR
DOSTR
DDIS
CSOUT
XTAL1
XTAL2
GND
POWER
SUPPLY


Fig. 8.18 Schema bloc a circuitului INS8250
Circuitul se leag direct la semnalele ce se gsesc pe magistrala intern a
unui PC. Octetul, ce poate reprezenta data ce urmeaz s se transmit, sau data
ce a fost recepionat i se livreaz unitii centrale (CPU), sau un cuvnt de
control ce se citete sau se nscrie ntr-unul dintre registrele interne, se gsete
n registrul tampon al magistralei de date Data Bus Buffer. De aici octetul este
vehiculat prin intermediul magistralei interne a circuitului INS8250.
Dac este vorba de un octet ce urmeaz s se transmit, acesta se
transfer n registrul temporar pentru transmisie: Transmitter Holding Register
i apoi n registrul de deplasare: Transmitter Shift Register, unde i se adaug
biii de start, stop i paritate i de unde, funcie de viteza de transmisie, biii
cuvntului sunt scoi la ieirea serial SOUT.
Viteza de transmisie sau recepie este programat n funcie de frecvena
de tact i de numrul pe 16 bii nscris n cele dou registre de 8 bii: Divisor
Latch. La ieirea BAUDOUT se furnizeaz un semnal cu frecvena de 16 ori mai
mare dect viteza de transmisie, semnal ce poate fi utilizat ca intrare de tact
RCLK pentru seciunea de recepie.
Cuvntul recepionat intr serial prin pinul SIN n registrul de deplasare
pentru recepie Receiver Shift Register de unde, n paralel, trece n registrul
tampon pentru recepie Receiver Buffer Register unde este curat de biii de
start, stop i paritate i totodat se face verificarea corectitudinii recepiei. Dac
este identificat o eroare se poziioneaz bitul corespunztor din cadrul
registrului de identificare a ntreruperii Interrupt ID Register. ntreruperea este
lansat spre CPU la pinul INTRPT numai dac este validat prin nscrierea
corespunztoare n registrul de validare ntreruperi Interrupt Enable Register
Funcionarea circuitului este guvernat prin cuvntul nscris n registrul de
control Line Control Register i este monitorizat prin cuvntul pe care CPU l
citete n registrul Line Status Register.
Funcionarea liniilor de MODEM este programat prin cuvntul nscris n
registrul control MODEM: MODEM Control Register i este monitorizat prin
citirea registrului de stare MODEM: MODEM Status Register.
Cuvntul de 8 bii ce programeaz modul de lucru se nscrie n registrul
de control (Li ne Control Register). Biii B0 i B1, mai puin semnificativi,
determin numrul de bii ai cuvntului ce se recepioneaz sau se transmite,
conform tabelului 8.3:
Tabelul 8.3
Bit 1 Bit 0 Lungimea cuvntului transmis sau
recepionat
0 0 5 bii
0 1 6 bii
1 0 7 bii
1 1 8 bii
Bitul B2 specific numrul de bii de stop: pentru valoarea 0 este generat
sau verificat un bit de stop la transmisie, respectiv recepie, iar pentru valoarea 1
sunt generai sau verificai 1 bii de stop (pentru cuvinte de 5 bii lungime) i 2
bii de stop (pentru cuvinte de 6, 7 sau 8 bii).
Bitul B3 valideaz (pentru valoare 1) verificarea, respectiv generarea biilor
de paritate situai ntre ultimul bit al cuvntului i bitul de stop.
Bitul B4 stabilete tipul de paritate: pentru B4 =0 se verific, respectiv se
transmite un numr impar de valori 1 a cuvntului recepionat, respectiv
transmis, iar pentru B4 =1 se verific, respectiv se transmite un numr par de
valori 1 a cuvntului recepionat, respectiv transmis.
Bitul B5 este indicator logic de paritate; dac B3 = 1, B4 =1 i B5 = 1,
atunci bitul de paritate care se transmite sau se verific la recepie are valoarea
logic 0; dac B3 =1, B4 =0 i B5 =1 atunci bitul de paritate care se transmite
sau se verific la recepie are valoarea logic 1.
Bitul B6 folosete pentru introducerea unei pauze n transmisia serial a
datelor. Dac B6 =1, ieirea serial SOUT este forat pe 0 i rmne acolo
pn B6 se pune pe 0.
Bitul B7 este bitul DLAB, de acces la cele dou registre Divisor Latch care
pstreaz numrul ce stabilete viteza de transfer. Valoarea pe 16 bii ai
numrului nscris, se calculeaz mprind cu 16 ctul obinut prin divizarea
frecvenei de tact la viteza de transfer dorit. Dac DLAB =1, registrele se pot
citi sau scrie, funcie de semnalele Read, respectiv Write ate CPU. Dac DLAB =
0, accesul este permis la registrele: Receiver Register, Transmitter Holding
Register, sau Interrupt Enable Register.
Registrul de control poate fi scris sau citit (inspectat) de ctre unitatea
central (CPU).
Registrul de stare ( Li ne Status Regi ster ) furnizeaz CPU informaii
privind derularea transferului de date.
Bitul 0 este un indicator Data Ready (DR) pentru recepie. El primete
valoarea 1 atunci cnd recepia unui caracter este complet, iar caracterul este
n registrul de recepie (Receiver Buffer). Este automat pus pe 0 atunci cnd
CPU citete registrul de recepie. Valoarea 0 poate fi i scris de CPU.
Bitul 1 este un indicator de eroare de depire (Overrun Error - OE) i
indic faptul c registrul de recepie nu a fost citit de CPU, iar un nou caracter a
fost recepionat i a alterat valoarea ce se gsea n registrul de recepie.
Indicatorul OE este ters la citirea registrului de stare de ctre CPU.
Bitul 2 este indicatorul de eroare de paritate (Parity Error - PE) i
valoarea 1 a lui arat faptul c numrul de 1 din cuvntul recepionat nu
ndeplinete condiia de paritate. PE este pus pe 0 dup citirea registrului de
stare de ctre CPU.
Bitul 3 este indicatorul de eroare de format (Framing Error - FE) i este
pus pe 1 atunci cnd valoarea bitului de Stop nu este corect; adic se
detecteaz 0 pe poziia corespunztoare bitului de stop.
Bitul 4 este indicatorul de pauz (Break Interrupt - BI). Ia valoarea 1 de
fiecare dat cnd se recepioneaz la intrare valoarea 0 un timp mai lung dect
cel corespunztor recepiei unui cuvnt; (timpul necesar transmiterii bitului de
start +biii de date +bitul de paritate +biii de stop).
Observaie. Biii 0, 1, 2, 3 sunt bii de eroare i valoarea 1 a oricruia
determin lansarea unei cereri de ntrerupere ctre CPU. Cei patru bii formeaz
aa-numitul registru de stare a recepiei.
Bitul 5 este un indicator al faptului c registrul temporar pentru transmisie
este gol (Transmitter Holding Register Empty - THRE). Valoarea 1 indic CPU
(prin lansarea unei cereri de ntrerupere ctre CPU, dac ntreruperea este
validat) c INS8250 este gata s accepte un nou caracter pe care s-l
transmit. THRE este pus pe 1 n momentul n care cuvntul a fost transferat
din registrul temporar n registrul de deplasare pentru transmisie (Transmitter
Shift Register). La nscrierea unei noi valori n registrul temporar, THRE ia
valoarea 0.
Bitul 6 este un indicator al faptului c registrul de deplasare pentru
transmisie s-a golit i este n ateptare (Transmitter Shift Register Empty -
TSRE). TSRE se pune pe 0 la fiecare transfer din registrul temporar n registrul
de deplasare pentru transmisie. TSRE poate fi doar citit.
Bitul 7 are totdeauna valoarea 0.
Registrul de identificare a ntreruperii (IIR) clasific ntreruperile n patru
nivele de prioritate: 1) prioritatea cea mai mare este acordat registrului de stare
a recepiei, 2) prioritatea 2 faptului c exist un caracter recepionat n registrul
tampon recepie (Receiver Buffer Register), 3) prioritatea 3 se acord faptului
c registrul temporar pentru transmisie este gol, 4) cea mai mic prioritate o are
registrul de stare MODEM.
Tabelul 8.4
Bit
2
Bit
1
Bit
0
Nivel de
prioritate
Tipul de
ntrerupere
Sursa de
ntrerupere
Anularea cererii de
ntrerupere
0 0 1 - - - -
1 1 0 1) registrul de stare a
recepiei
OE sau PE
sau FE sau BI
citind registrul de
stare
1 0 0 2) cuvnt recepionat
n registrul tampon
s-a recepionat
un cuvnt
citind reg. Tampon
de recepie
0 1 0 3) este gol reg. temp.
pt. transmisie
reg. temporar
pt. transmisie
citind IIR, scriind n
reg. temp.
0 0 0 4) stare MODEM CTS, DSR, RI,
DCE
citind reg. stare
MODEM
Bitul 0 poate fi folosit la realizarea unei ntreruperi hard sau n procesul de
interogare a ntreruperii. Valoarea 0 a bitului 0 indic faptul c este n derulare
un proces de cerere de ntrerupere, iar coninutul IIR poate fi folosit ca pointer
pentru subrutina ce trateaz ntreruperea. Valoarea 1 indic faptul c INS8250
nu cere ntrerupere, iar procesul de interogare poate continua.
Biii 1 i 2 sunt utilizai pentru identificarea ntreruperii dup cum se arat
n tabelul 8.4.
Registrul de validare ntreruperi ( Interupt Enabl e Regi ster ) permite
validarea separat a celor patru niveluri de ntrerupere, scriind 1 n bitul
corespunztor, dup cum urmeaz:
Bitul 0 valieaz ntreruperea de nivel 2,
Bitul 1 valieaz ntreruperea de nivel 3,
Bitul 2 valieaz ntreruperea de nivel 1,
Bitul 3 valieaz ntreruperea de nivel 4. Biii 4 pn la 7 sunt mereu pe 0.
Registrul de control MODEM ( MODEM Control Register ) stabilete
valorile logice TTL pentru liniile MODEM:
Bitul 0 stabilete valoarea pentru Data Terminal Ready Valoarea 0 pune
DTR pe 1 i invers.
Bitul 1 stabilete valoarea pentru Request to Send Valoarea 0 pune
RTS pe 1 i invers.
Bitul 2 stabilete valoarea pentru ieirea Output 1 - OUT1, o ieire la
dispoziia utilizatorului Valoarea 0 pune OUT1 pe 1 i invers.
Bitul 3 stabilete valoarea pentru ieirea Output 2 - OUT2, o alt ieire la
dispoziia utilizatorului Valoarea 0 pune OUT2 pe 1 i invers.
Bitul 4 permite un autotest al funcionrii INS8250. Punerea bitului 4 pe 1
are urmtorul efect: ieirea serial SOUT se pune pe 1, iar intrarea serial se
deconecteaz. n interiorul circuitului, ieirea registrului de deplasare pentru
transmisie se leag la intrarea registrului de deplasare pentru recepie.
Concomitent cele patru intrri de control MODEM (CTS, DSR, RLSD i RI) se
deconecteaz spre exterior, iar spre interior se leag la cele patru ieiri de
control MODEM (DTR, RTS, OUT1 i OUT2). Astfel se realizeaz o bucl,
recepionndu-se ceea ce se transmite.
n modul autotest, sistemul de ntreruperi poate fi complet testat, prin faptul
c ntreruperea testat se poate activa prin nscrierea unui 1 pe poziia
corespunztoare din Line Status Register sau MODEM Status Register.
Revenirea la funcionarea normal se face prin reprogramarea corect a
tuturor registrilor dup care se pune pe 0 bitul 4 din registrul de control
MODEM. Biii 4 pn la 7 sunt mereu pe 0.
Registrul de stare MODEM monitorizeaz liniile de intrare MODEM. Biii
acestui registru se pun pe 1 atunci cnd intervine o schimbare a strii logice a
liniei monitorizate. Resetarea se face la fiecare citire de ctre CPU a registrului
de stare MODEM.
Bitul 0 se pune pe 1 atunci cnd linia Clear to Send (CTS) schimb
starea logic.
Bitul 1 se pune pe 1 atunci cnd linia Data Set Ready (DSR) schimb
starea logic.
Bitul 2 se pune pe 1 atunci cnd linia Ring Indicator (RI) schimb starea
logic din 1 (On) n 0 (Off).
Bitul 3 se pune pe 1 atunci cnd linia Received Line Signal Detector
(RLSD) schimb starea logic.
Observaie: De fiecare dat cnd unul dintre biii 0, 1, 2, 3 se pune pe 1,
se genereaz o cerere de ntrerupere de tip stare MODEM.
Biii 4 pn la 7 servesc n procedura de autotest. Dac bitul 4 din registrul
de control MODEM are valoarea 1 atunci, n cadrul registrului de stare MODEM,
bitul 4 este echivalent liniei CTS, bitul 5 liniei DSR, bitul 6 liniei OUT1, iar bitul 7
liniei RLSD.

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