Sunteți pe pagina 1din 39

252

15

Familia Intel

15.1 Interfaa paralel programabil Intel 8255


Circuit integrat realizat n tehnologie NMOS, 40 de terminale, cu o singur tensiune de alimentare, +5 V. Toate intr rile i ie irile sunt compatibile TTL. Con ine 3 porturi de intrare / ie ire programabile, n total 24 linii I/O. Fiecare port poate fi programat ca port de intrare sau ca port de ie ire, n mod independent. De i face parte din familia Intel, poate fi utilizat n orice sistem cu microprocesor de cel pu in 8 bi i. Se utilizeaz ca interfa paralel ntre un sistem cu microprocesor i diverse periferice inteligente sau echipamente de execu ie.
Comand grup A Port A

D0 - D7

PAo - PA7

Tampon magistr.

Port C sup.

PC4 - PC7

RD WR Ao A1 Reset
Comand grup B Port B Logica de comand Port C inf.

PC0 - PC3

PBo - PB7

CS

Fig.1 Intel 8255 - structura intern Structura intern con ine trei blocuri func ionale: Interfa a cu magistralele sistemului de calcul. Magistrala intern de date i dou blocuri de comand grup. Interfa a cu perifericele;

253 15.1.1. Interfaa cu magistralele Con ine un registru tampon de date i un bloc logic pentru selec ie, adresare i opera ii de citire/scriere. Selec ia porturilor se realizeaz cu liniile A0 , A1 ale magistralei de adrese i cu semnalul CS ( Chip Select ) generat de sistemul de calcul pe baza liniilor de adres , altele dect A 0 , A 1. Semnalul RESET, activ n ''1'', produce ini ializarea circuitului, adic anularea informa iilor de programare anterioare. Semnalele RD i WR sunt generate de microprocesor, fiind comanda de citire, respectiv scriere port.
Tabelul 1. Selec ia porturilor i a registrului de comand

CS 0 0 0 0 1

A1 0 0 1 1 X

A0 0 1 0 1 X

Obiectul selectat Port A (I/O) Port B (I/O) Port C (I/O) Registrul de comand Circuit 8255 neselectat

Formarea adresei unui port : (de 8 bii)

A7 A6 A5 A4 A3 A2 A1 A0
bii de adres pentru generare CS (selecie circuit) bii pentru selecie port

2. Interfa a cu perifericele . Con ine 24 linii de intrare / ie ire, logica intern de comand i registrele temporare de date pentru ie iri. Caracteristicile i func iile liniilor de interfa sunt determinate de modul de operare stabilit prin programare. Sunt puse la dispozi ia utilizatorului 3 moduri de lucru, care acoper o mare varietate de aplica ii. Modul 0 . Este modul de baz de intrare / ie ire, care ofer mai multe variante de utilizare: dou porturi de 8 bi i (PA i PB) care se programeaz independent ca porturi de intrare sau de ie ire; dou porturi de 4 bi i (PC4-7, PC0-3) care se programeaz independent, cu posibilitatea pozi ion rii individuale n ''0'' sau ''1'' a fiec rei linii de ie ire;

254
Liniile bidirecionale ale portului I/O
0 1 2 3 4 5 6 7

0
8 amplificatoare pentru date de intrare

0
8 bistabile flip-flop de memorie ieiri
D0 D1 D2 D3 D4 D5 D6 D7 Magistrala intern de date (spre microprocesor)

RD CS

WR

Fig. 2 Structura intern a unui port de intrare/ ieire de 8 bii (PA, PB, PC)

255 porturile de ie ire dispun de registre de memorare temporar a datelor; porturile de intrare sunt f r memorie; transfer datele existente n momentul comenzii de citire. Modul 1 i 2 . PA i PB sunt utilizate ca porturi de intrare / ie ire iar liniile portului PC au diferite func ii ce deservesc liniile de date ale porturilor PA, PB (validare intrare sau ie ire, cereri de ntrerupere). Stabilirea modului de lucru, func ia fiec rui port i pozi ionarea liniilor n ''0'' sau ''1'' se realizeaz prin nc rcarea unor cuvinte de comand sub controlul programului. Cuvintele de comand sunt nc rcate i memorate ntr-un registru special, registrul de comand , care are adres proprie (tabelul 1).

256
Structura cuvntului de comand pentru definirea modului de operare 1 bit 7 M M A Cs M B Ci
Grup B Port C (PC3-PC0) 1=intrare; 0=ieire Port B: 1=intrare; 0=ieire Selecie mod: 0=Mod 0; 1=Mod1 Grup A Port C (PC7-PC4) 1=intrare; 0=ieire Port A: 1=intrare; 0=ieire

Selecie mod: 00 - Mod 0 01 - Mod 1 1X - Mod 2

Structura cuvntului de comand pentru poziionarea n 1 / 0 a biilor din PC 0 bit 7 bii neutilizai trebuie s fie ''0'' selecie bit 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 0 = poziioneaz n zero bit selectat 1 = poziioneaz n unu bit selectat Bit selectat pentru poziionare: PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7

Fig.3 Structura cuvintelor de comand (programare)

Cuvintele de comand (fig.3) sunt de dou categorii: - pentru definirea modului de operare (bit 7 = 1); un singur cuvnt de comand de 8 bi i programeaz modul de lucru i tipul porturilor PA, PB, PC. - pentru pozi ionarea individual a liniilor de ie ire ale portului PC (bit 7 = 0). Adresele porturilor se stabilesc la proiectarea sistemului de calcul; acestea pot fi de 8 sau 16 bi i, n func ie de tipul microprocesorului. Exemplu: Dac PA are adresa: PA: 1 1 1 1 1 0 0 0 = F8 H, atunci celelalte adrese trebuie s fie: PB: 1 1 1 1 1 0 0 1 = F9 H

257 PC: 1 1 1 1 1 0 1 0 = FA H adresa registrului de comand : 1 1 1 1 1 0 1 1 = FB H. La programare, cuvntul de comand se transmite la adresa FB iar octe ii de date se scriu sau se citesc de la adresele corespunz toare fiec rui port. De i se utilizeaz aceea i adres att pentru programarea modului de operare ct i pentru pozi ionarea individual a bi ilor portului PC, cuvintele de comand se memoreaz n registre diferite, n func ie de valoarea bitului b7. Pentru programarea porturilor PA, PB ca porturi de intrare i PC ca port de ie ire, toate n modul M0, rezult cuvntul de programare: 1 0 0 1 0 0 1 0 = 92 H. n limbaj de asamblare Intel 8086, secven a de program este:
MOV AL, 92H OUT 0FBH, AL ; se ncarc octetul de programare n acumulator ; se transfer octetul la 8255 n registrul de ; comand .

Urm toarea secven de program (Intel 8086) cite te porturile PA i PB, pune datele n registrele DL respectiv El i transfer octetul FF la portul PC:
IN AL, 0F8H MOV DL, AL IN AL, 0F9H MOV EL, AL MOV AL, 0FFH OUT FAH, AL ; ; ; ; ; ; datele de la PA se transfer n acc. (citire PA) se salveaz datele n DL datele de la PB se transfer n acc. (citire PB) se salveaz datele n EL se ncarc octetul FF n acumulator se transmite FF la portul PC (scriere n port PC)

Secven a urm toare pozi ioneaz bi ii b5=1 i b6=0 ai portului PC:


MVI AL, 0BH OUT FBH, AL MVI AL, 0CH OUT FBH, AL ; ; ; ; ; ; cuvntul de pozi ionare pentru b5 = 1 n acc. se transfer cuvntul de pozi ionare n registrul de comand , care are adresa FB cuvntul de pozi ionare pentru b6 = 0 n acc. se transfer cuvntul de pozi ionare n registrul de comand , care are adresa FB

Dup aceast secven , ie irea PC5 trece n ''1'' i ie irea PC6 trece n ''0''; valorile logice se men in pn la repozi ionare sau schimbarea modului de operare.

258

Sistem numeric de calcul

Sistem numeric de calcul

8251

MODEM

Linie Tc.

MODEM

8251

Fig.5 Schema unui sistem de comunicaii de date


PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA4 D0 - D7 magistrala de date PA5 PA0 - PA7 portul A PA6 PA7 PB0 - PB7 portul B WR PC0 - PC7 portul C RESET D0 RD - comand de citire port D1 WR - comand de scriere n port D2 D3 RESET - iniializare D4 CS - selecie circuit D5 D6 A0, A1 - linii de adres D7 +5 V PB7 PB6 PB5 Fig.4 Configuraia semnalelor la PB4 pinii circuitului Intel 8255 PB3

Intel 8255

15.2 Interfaa serial programabil Intel 8251 (USART)


Cunoscut sub numele de USART ( U niversal S ynchronous A synchronous R eceiver T ransmitter ), Intel 8251 este un circuit realizat n tehnologie NMOS cu 28 de terminale, destinat comunica iei seriale de date ntre dou sisteme numerice (port serial).

259 Pentru comunica ii seriale la distan e mari (zeci, sute de km), circuitul 8251 dispune de intr ri /ie iri standard pentru conectare cu echipamente MODEM specifice liniilor de telecomunica ii (n cablu, pe fibre optice, radio). Intel 8251 poate func iona att n modul sincron ct i n modul asincron; modul de operare, viteza de transmisie/recep ie i formatul datelor se stabilesc prin cuvinte de comand (programare). Se poate conecta la un sistem numeric cu microprocesor (Intel 8080 sau orice microprocesor de cel pu in 8 bi i), prin magistrala de date de 8 bi i i 6 semnale de intrare prin care sistemul numeric controleaz toate func iile sale. Avnd n structur un transmi tor i un receptor cu func ionare independent , circuitul 8251 poate realiza simultan func iile de recep ie i transmisie. Dispune de semnale de ie ire ce pot fi utilizate drept cereri de ntrerupere c tre unitatea central , activate la recep ia complet a unui caracter (pentru func ia de receptor) sau la terminarea transmisiei unui caracter (pentru func ia de transmi tor). Principalele func ii ale circuitului 8251 sunt: Accept i transmite date, n paralel, sub form de octe i, prin magistrala de date conectat la magistrala sistemului cu microprocesor; Realizeaz conversia datelor n format serial de 5, 6, 7 sau 8 bi i pe caracter i le transmite la ie irea serial de date, cu viteza programat (n bi i / secund ); Recep ioneaz date n formatul serial prestabilit, la intrarea de date, realizeaz asamblarea lor n octe i pe care i transmite paralel c tre microprocesor; Genereaz semnale pentru microprocesor cu semnifica ia ''recep ie gata'' sau ''transmisie gata'' care pot fi utilizate ca ntreruperi sau pot fi testate periodic de c tre microprocesor pentru stabilirea momentelor n care acesta trebuie s preia datele recep ionate sau s ncarce date pentru transmisie; Interfa a serial dispune de un registru de stare care poate fi citit n orice moment de c tre microprocesor; Se poate conecta cu un echipament MODEM prin patru semnale standard de protocol i dou semnale de date.

260
D0 - D7 Magistrala extern de date

Registrul de stare Reg. de date em. i comenzi

Registrul de date recepionate Bloc de intrare / ieire

RESET CLK C/D RD WR CS Logica de comand RD / WR Bloc de comand emisie TxRDY TxE RxC Transmitor TxD

DTR DSR RTS CTS

Bloc de comand MODEM

Bloc de comand recepie

RxRDY SYNDET RxC

Receptor

RxD

Fig. 5 Structura intern a circuitului Intel 8251

Structura intern con ine 5 blocuri func ionale: blocul de intrare/ie ire, blocul de comand , transmi torul, receptorul i blocul de interfa cu echipamentul MODEM. Toate blocurile func ionale sunt conectate la magistrala intern de date de 8 bi i. Blocul de intrare/ie ire . Conecteaz circuitul la magistrala de date a sistemului de calcul. Prin aceast magistral se transmit cuvintele de comand (programare), datele de emisie, datele recep ionate i cuvntul de stare, toate pe 8 bi i. Registrul de stare este permanent la dispozi ia microprocesorului i con ine toate informa iile cu privire la func ionarea interfe ei seriale. Registrul datelor de emisie i de comenzi, memoreaz temporar octetul de date nc rcat de pe magistrala extern i cuvntul de comand n etapa de programare. Octetul de date urmeaz a fi transferat prin magistrala intern la emi tor, de ndat ce acesta elibereaz registrul propriu de emisie.

261 Registrul datelor recep ionate memoreaz temporar octetul de date furnizat de receptor pn cnd microprocesorul l transfer printr-o comand de citire date, ntr-un registru intern. n acest interval, receptorul stocheaz datele ce sosesc n flux continuu ntr-un registru propriu. Transmi torul face conversia datelor din format paralel n format serial, adaug bi ii de start, stop i eventual de paritate (conform program rii) i transmite caracterul astfel format, bit cu bit, la ie irea TxD ( Transmission Data ), cu viteza (bi i / secund ) programat . Viteza de transmisie este determinat de frecven a semnalului TxC ( Transmission Clock ) dar n modul asincron pot fi selectate i op iunile 1:16 i 1:64 din frecven a de tact, cnd linia de comunica ie nu permite o frecven egal cu TxC. Transmi torul con ine un bloc de comand a emisiei, care coordoneaz func ionarea conform program rii i genereaz semnalele TxRDY ( Transmitter Ready ) i TxE ( Transmitter Empty ). Receptorul prime te date bit cu bit la intrarea RxD ( Reception Data ) n formatul serial, face conversia lor n format paralel pe 8 bi i dup eliminarea bi ilor de start, stop, paritate i le transfer n registrul de date recep ionate din blocul de intrare/ie ire. Dup acest transfer, activeaz semnalul RxRDY ( Reception Ready ), pentru a semnaliza c un caracter este preg tit pentru a fi citit de microprocesor. Semnalul de intrare RxC este semnalul de tact pentru recep ie; el poate avea frecven diferit fa de TxC. Semnalul SYNDET ( Synchrony Detection ) este utilizat n modul de lucru sincron. El este activat la detec ia caracterelor de sincronizare sau n cazul n care se utilizeaz sincronizare extern . Blocul de comand MODEM lucreaz pe baza a dou perechi de semnale de protocol de tip dialog. Genereaz semnalul DTR ( Data Terminal Ready ), activ n zero, indicnd c interfa a 8251 este preg tit , la care modemul r spunde cu DSR ( Data Set Ready ), activ n zero, indicnd c modemul este de asemenea preg tit. Interfa a 8251 genereaz semnalul RTS ( Request to Send ), activ n zero, cu semnifica ia ''cerere n vederea transmisiei'', la care modemul r spunde cu CTS ( Clear to Send), activ n zero, anulare n vederea transmisiei. Ie irea de date TxD se conecteaz ca intrare la modem iar ie irea de date de la MODEM, se conecteaz la intrarea de date recep ionate, RxD. n cazul func ion rii f r MODEM, acesta trebuie simulat prin conectarea direct a semnalelor de comand pereche (fig. 6).

262
TxD RxD MODEM intel 8251 DTR DSR RTS CTS GND a) Fig. 6 Funcionarea cu MODEM (a) i fr MODEM (b).
simulare

TxD intel RxD 8251 DTR DSR RTS CTS

Linie Tc. GND

Linie Tc.

b) MODEM

Logica de comand decodific semnalele de comand (de la procesor) i pe cele de selec ie i realizeaz func iile corespunz toare pe baza controlului pe care l exercit asupra tuturor unit ilor interne.
Tabel 2. Semnalele de comand i func iile lor. CS C/D RD WR 0 0 0 0 1 0 1 0 1 x 0 0 1 1 x 1 1 0 0 x

Funcia

Unitatea central citete data de la 8251 Unitatea central citete starea lui 8251 Unitatea central scrie data n 8251 Unitatea central scrie o comand n 8251 Interfa 8251 neoperaional (neselectat)

Interfa a 8251 necesit dou adrese de port I/O: o adres pentru portul de date ( C/D = 0 ) i o adres pentru portul de comenzi i st ri ( C/D = 1 ). Cuvntul de comand i cuvntul de stare sunt memorate ntr-un registru de 16 bi i i transferate pe rnd, ca octe i. Cele dou cuvinte au aceea i adres dar cuvntul de comand se scrie (WR activ) iar cuvntul de stare se cite te (RD activ), a adar nu se face confuzie ntre ele de i au aceea i adres de selec ie.

15.2.1. D0 - D7 : RESET : CLK : C/D :

Semnificaia semnalelor.

magistrala de date a sistemului numeric; intrare de ini ializare: intrare de tact (comun cu tact sistem); selec ie C omand / D ate (de regul este linia A 0 a magistralei de adrese, ''1'' - comand , ''0''-date); RD : ( Read ) citire date sau stare de c tre unitatea central ;

263 WR : ( Write ) scriere date sau cuvnt de programare de c tre unitatea central ; RxD : ( Reception Data ) intrare serial de date; TxD :( Transmission Data ) ie ire serial de date; RxRDY : ( Receptor Ready ) caracter recep ionat, ce poate fi citit de procesor; TxRDY : ( Transmitter Ready ) transmi torul disponibil pentru un nou caracter; TxE : ( Transmitter Empty ) transmi torul este vid (nu are date de transmis); RxC : ( Reception Clock ) intrare de tact pentru recep ie; TxC : ( Transmission Clock ) intrare de tact pentru transmisie; SYNDET : ( Synchrony Detection ) for are sau detec ie sincron de date; DTR : ( Data Terminal Ready ) terminal de date preg tit; DSR : (Data Set Ready ) echipament de date preg tit; RTS : ( Request To Send ) cerere n vederea transmisiei; CTS : ( Clear To Send ) anulare n vederea transmisiei. Comunica ia serial , cu echipamente locale sau plasate la distan , legate prin modemuri, poate fi realizat de c tre interfa a 8251, fie sub form asincron , fie sub form sincron .

15.2.2. Transmisia asincron Sincronizarea ntre emi tor i receptor se face la nceputul fiec rui caracter, f r a se utiliza semnal special de sincronizare. Frecven a semnalului de tact la emi tor poate s difere de cea de la receptor cu max. 5%, de unde i denumirea. Fiec rui caracter ( 5 - 8 bi i de date ) i se adaug informa ia de cadru, constnd ditr-un bit de START, definit ca zero logic i unul sau doi bi i de STOP (n func ie de op iunea programatorului), defini i ca unu logic. Tranzi ia 1 0 , de la bitul de STOP al unui caracter la bitul de START al caracterului urm tor, asigur sincronizarea ntre emi tor i receptor, deoarece indic receptorului nceputul unui nou caracter n fluxul serial de bi i. Dac diferen a frecven elor de tact la emi tor i receptor este n limite normale, sincronizarea se men ine pe toat durata recep iei unui caracter i datele recep ionate vor fi corecte. Bitul sau bi ii de STOP ad uga i la sfr itul fiec rui caracter asigur tranzi ia necesar sincroniz rii.

264

date (caracter de 5 - 8 bii)


STOP START
Bit de

STOP START

paritate

format serial asincron (cadru) Fig.7 Formatul asincron pentru transmisia serial

Prin cuvntul de programare, se poate selecta op iunea privind inserarea n fiecare cadru serial a unui bit de paritate ( de control ). Dac pe durata transmisiei, num rul erorilor de bit este impar, bitul de paritate indic existen a erorilor; dac este afectat chiar bitul de paritate, efectul este acela i: interfa a serial semnalizeaz c tre unitatea central recep ionarea unui caracter eronat, prin bitul PE ( Parity Error ) din cuvntul de stare.

15.2.3. Transmisia sincron Sincronizarea emi torului cu receptorul se face permanent, la fiecare bit, pe durata comunica iei, fie utiliznd informa ia de sincronizare furnizat de semnalul modulat, fie pe baza unei surse externe de semnal de tact, comun pentru emi tor i receptor. Caracterele de 5 - 8 bi i se transmit n ir continuu, de orice lungime, dup ce se adaug la nceputul irului unu sau dou caractere speciale SYN care servesc receptorului pentru identificarea nceperii transmisiei sincrone.

SYN

SYN

Caracter 1

...
Bloc de date

Caracter n

Caractere de sincronizare

Fig. 8 Formatul sincron pentru transmisie serial

Un caracter poate fi de 5, 6, 7 sau 8 bi i, la care se adaug eventual un bit de paritate. Sincronizarea se realizeaz extern, prin echipamente hardware adecvate, sau intern prin detectarea caracterelor speciale SYN. Acest caracter este specificat prin software n cadrul procedurii de ini ializare i programare. El este memorat att la emi tor ct i la receptor, care verific bit cu bit caracterul de sincronizare recep ionat i la recunoa terea sa valideaz nceperea recep iei datelor. Dac unitatea

265 central nu furnizeaz la timp datele de emisie, interfa a insereaz automat caractere SYN pentru a nu pierde sincronizarea. Comparnd cele dou modalit i de transmisie, se constat c pentru mesaje ce d p esc 8 caractere, devine mai eficient transmisia sincron , innd seama de num rul de bi i suplimentari ce se adaug n cele dou cazuri. Transmisia sincron ns , necesit semnal de sincronizare la fiecare bit, deci echipament suplimentar i ca urmare, este mai scump . La transmisia sincron , echipamentul MODEM furnizeaz semnalul de sincronizare c tre terminal i impune ca datele s -i fie livrate sincron cu acest semnal. MODEM - ul receptor dispune de un generator de tact cu aceea i frecven cu cel de la emisie, a c rui faz este ajustat cu faza emi torului. n unele cazuri, cnd se urm re te cre terea vitezei de operare f r a schimba protocolul, se opereaz ntr-un mod hibrid cu format asincron i transmisie sincron ; aceast transmisie se nume te isosincron .
D2 D3 RxD GND D4 D5 D6 D7 TxC WR CS C/ D RD RxRDY

D0 - D7 magistrala de date RD - citire data sau starea WR - scriere data sau comanda RESET - iniializare CS - selecie circuit Intel C/ D - selecie comand / date DTR -terminal de date gata 8251 DSR - echipament de date gata RTS - cerere de transmisie CTS - anulare n vederea transm. RxD - intrare serial TxD - ieire serial SYNDET RxRDY - caracter recepionat TxRDY TxRDY - caracter transmis RxC - tact de recepie TxC - tact de emisie TxE - transmitor vid Fig.9 Configuraia semnalelor la SYNDET - forare sau detecie pinii circuitului Intel 8251 sincron de date
1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 D0 D1 +5 V RxC DTR RTS DSR RESET CLK TxD TxE CTS

15.2.4. Funcionare La aplicarea tensiunii de alimentare interfa a trece n starea ''selec ie mod'' n care a teapt cuvintele de comand pentru stabilirea modului de operare. Dac este programat modul asincron , transmi torul a teapt date de transmis iar receptorul a teapt date seriale pe intrarea RxD. Receptorul, preg tit pentru recep ie asincron , urm re te tranzi ia 1 0 la intrarea RXD, la care declan eaz un generator intern cu

266 perioada T/2 fa de durata T a unui bit; bitul recep ionat este testat la mijlocul duratei sale, pe tranzi ia 1 0 a tactului intern (fig.10).

STOP START

Bit de paritate

STOP START

Tact intern 0 1 0 1 1 0 1 0 1 1 0

Fig.10 Recepionarea valorilor logice prin sondare la mijloc

Cuvntul recep ionat este memorat temporar n registrul tampon de recep ie i se activeaz semnalul RxRDY, pentru a indica unit ii centrale c un caracter este disponibil pentru transfer. Transmi torul, n modul asincron, pe durata START activeaz semnalul TxRDY, pentru a indica unit ii centrale c poate transfera un nou caracter n registrul tampon de emisie, deoarece caracterul curent este n curs de transmisie. Unitatea central r spunde cu WR activ i caracter pe magistrala de date, ceace anuleaz semnalul TxRDY. Dac unitatea central nu ncarc un nou caracter pn la terminarea transmisiei celui curent, se activeaz semnalul TxE (transmi tor vid). Dac este programat modul sincron , receptorul nregistreaz datele bit cu bit, i le grupeaz n caractere (conform modului prestabilit prin programare). Pentru a grupa bi ii corect, receptorul trebuie sincronizat cu emi torul, ceea ce se realizeaz n modul HUNT (vn toare). n modul HUNT, interfa a ncarc fiecare bit recep ionat la intrarea RxD, n registrul de recep ie i compar con inutul acestuia cu cel care p streaz caracterul SYN, nc rcat prin program. Modul HUNT ia sfr it cnd cele dou caractere sunt identice; realizarea sincroniz rii determin activarea semnalului SYNDET (cnd sunt dou caractere SYN, modul HUNT se termin dup coinciden a celor dou ). Transmi torul sincron transmite unul sau dou caractere SYN la ie irea TxD, dup care urmeaz , f r pauz , caracterele blocului de date, n num r nelimitat. Dac nu are caracter de transmis, va transmite SYN, pentru a nu pierde sincronizarea cu receptorul.

267

15.2.5. Programarea Const n dou cuvinte de comand nc rcate succesiv de unitatea central prin instruc iunea ''OUT''.
7 6 Modul asincron 5 4 3 2 1 0 7 6 Modul sincron 5 4 3 2 1 0 0 0

0 0 1 1

Viteza 0 -invalid 1 - rata x 1 0 - rata x 16 1 - rata x 64

Modul sincron

Lungime caracter 0 0 - 5 bii / caract. 0 1 - 6 bii / caract. 1 0 - 7 bii / caract. 1 1 - 8 bii / caract. Control de paritate x 0 - dezactivat 0 1 - paritate par 1 1 - paritate impar

Lungime caracter 0 0 - 5 bii / caract. 0 1 - 6 bii / caract. 1 0 - 7 bii / caract. 1 1 - 8 bii / caract. Control de paritate x 0 -dezactivat 0 1 -paritate par 1 1 -paritate impar

Comanda cadrrii Comanda SYN 0 0 - invalid x 0 - SYN intern 0 1 - 1 bit STOP x 1 - SYN extern 1 0 - 1 1 2 bii STOP 0 x - 2 caract. SYN 1 1 - 2 bii STOP 1 x - 1 caract. SYN Fig.11 Structura primului cuvnt de comand pentru cele dou moduri

268
7
H

2
R

1
DTR

0
T

RS RTS ERR BK

Transmisie

activat: 1 dezactivat: 0

1 foreaz n ''0'' ieirea DTR (Data Terminal Ready) activat: 1 Recepie dezactivat: 0 0 operare normal Transmite BREAK pe linie 1 foreaz TxD=''0'' Anulare eroare: 1 anuleaz Err. din reg. de stare

1: Foreaz n ''0'' ieirea RTS (Request To Send) 1: Reset intern: foreaz 8251 n modul instr. 1: Intrare n modul HUNT

Fig. 12 Structura celui de-al doilea cuvnt de comand

DSR SYNDET FE

OE

PE

TxE RxRDY TxRDY

Eroare de paritate: PE (Parity Error) - se poziioneaz n ''1'' la apariia unei erori de paritate Eroare de ritm: OE (Overrun Error) - se poziioneaz n ''1'' cnd caracterul recepionat se suprapune peste cel anterior (se pierde un caracter) Eroare de cadrare: FE (Framing Error) - se poziioneaz n ''1'' cnd nu se recepioneaz bitul de stop (n modul asincron) Valorile logice ale semnalelor existente la terminalele circuitului, cu acelai nume.

Fig. 13 Structura cuvntului de stare.

Structura primului cuvnt de comand difer dup modul de lucru sincron sau asincron. Al doilea cuvnt de comand are aceea i structur pentru ambele moduri de lucru. n orice moment, unitatea central poate citi starea interfe ei, cu instruc iunea ''IN <adres port>'', unde adres port este adresa cuvntului de stare. 15.2.6. Adresarea circuitului 8251 Interfa a serial 8251 con ine din punct de vedere logic dou porturi de 8 bi i, care pot fi adresate pe minim 8 bi i.

269

D0 - D7

Tampon magistr.

C0

Contor 0

G0 Out 0

RD WR Ao A1 Logica de comand C1

Contor 1

G1 Out1

CS Registr. cuv. comand C2

Contor 2

G2 Out2

Fig.15 Intel 8253 - structura intern Bitul A 0 , se utilizeaz de regul ca separator ntre cele dou adrese, fiind conectat la intrarea C/D.
An

....
n Decodor n / 2

A2 A1 A0

C/D Intel 8251

....
2 -1
n

3 2 1 0

CS
Fig. 14 Formarea adreselor de port.

Dac C/D = 0, se adreseaz portul de date (adres par ) iar cnd C/D = 1, se adreseaz portul de comand sau stare (adres impar ). n ambele cazuri, valorile bi ilor de adres pentru generarea lui CS, sunt acelea i. Exemplu: S consider m adresa pe 8 bi i:

270 1 1 1 0 1 1 1 0 = EE H; (A 0 =0, deci este adres de port de date) Adresa urm toare, va fi: 1 1 1 0 1 1 1 1 = EF H (adresa portului de comand sau stare). Utiliznd aceste adrese, cele 4 tipuri de comenzi sunt:
OUT 0EEH, AL IN AL, 0EEH OUT 0EFH, AL IN AL, 0EFH ; Acc. se transfer la portul de date (scriere caracter) ; se transfer un octet n Acc. (citire caracter) ; cuvnt de programare la portul de comand ;citire cuvnt de stare de la portul de comand /stare

15.3 Circuitul contor / periodizator Intel 8253 (Timer)


Circuit integrat LSI, realizat n tehnologie NMOS, cu 24 de pini, con ine trei num r toare independente de 16 bi i. Fiecare num r tor poate fi programat n 6 moduri de lucru, acoperind practic toate variantele curente de utilizare. Structura intern a circuitului este prezentat n fig.15. Blocurile func ionale principale sunt: registrul tampon de date, blocul de comand , registrul cuvntului de comand i cei trei contori, fiecare cu logica proprie de num rare i de conectare la magistrala intern de date. Registrul tampon de date stocheaz temporar datele de intrare, la comanda de ''scriere'' (WR), pe care le transfer pe magistrala intern sau datele de ie ire pe care le transfer pe magistrala extern la comanda de ''citire date'' (RD), ini iat de unitatea central . Ie irile sunt cu trei st ri (''0'', ''1'' i starea SIR, de nalt impedan ). Logica de comand , pe baza celor 5 semnale de intrare, genereaz comenzi interne c tre toate blocurile circuitului, determinnd realizarea func iilor acestora. RD ( Read ) determin citirea con inutului unui contor (octet inferior, octet superior), prin transferul octetului n registrul tampon, orientat spre magistrala de date extern . WR ( Write ) determin scrierea datelor n contori (ini ializare contori) sau a cuvntului de comand , traseul fiind: magistral extern , registru tampon, magistral intern , destina ie (contor sau registru de comand ). A 0 , A 1 linii ale magistralei de adrese; sevesc select rii contorilor i registrului de comand , conform tabelului de mai jos. CS ( Chip Select ) semnal de intrare pentru selec ie circuit, care devine activ cnd pe magistrala de adrese se ncarc adresa circuitului, stabilit prin hardware.

271 CS 0 0 0 0 0 0 0 0 1 0
D0 D1 D2 D3 D4 D5 D6 D7 C0 O0 G0 GND

RD 1 1 1 1 0 0 0 0 X 1
1 2 3 4 5 6 7 8 9 10 11 12

WR 0 0 0 0 1 1 1 1 X 1
24 23 22 21 20 19 18 17 16 15 14 13

A1 0 0 1 1 0 0 1 1 X X

A0 0 1 0 1 0 1 0 1 X X
+5 V WR

Funcia scrie n contor 0 scrie n contor 1 scrie n contor 2 scrie n registrul de comand citete contor 0 citete contor 1 citete contor 2 combinaie inoperant circuit neselectat nici o operaie
D0 - D7 magistrala de date RD - citire contor WR - scriere data sau comanda CS - selecie circuit A0, A1 linii de selecie contor C0, C1, C2 intrri de tact (Clock) O0, O1, O2 ieirile contorilor (Out) G0, G1, G2 intrri de tip poart pentru controlul hard

RD
CS A1 A0 C2 O2 G2 C1 G1 O1

Intel 8253

Fig.16 Configuraia semnalelor la pini.

Registrul cuvntului de comand , de 24 de bi i, memoreaz informa ia privind modul de lucru al fiec rui contor (trei cuvinte de comand de 8 bi i); se selecteaz conform tabelului de mai sus i nu poate fi citit. Contorii 0, 1, 2 , sunt num r toare de 16 bi i identice. Con inutul fiec rui contor este stabilit prin program, num rarea efectundu-se prin decrementare. Contorii opereaz n cod binar sau n cod BCD, n diverse configura ii privind intrarea de tact, poarta de comand i ie irea.

15.3.1. Modul de funcionare

272 Se stabile te prin cuvinte de comand nc rcate n registrul corespunz tor. Valoarea ini ial din fiecare contor se transfer direct, utiliznd adresa contorului. Dup programare, fiecare contor este decrementat la fiecare front descresc tor al semnalului s u de tact. Semnalul de tact (0 - 3 MHz) poate fi asincron cu semnalul de tact al unit ii centrale sau sincron cu acesta. n primul caz, contorul va fi utilizat la num rarea unor evenimente aleatoare, externe; n cel de-al doilea caz, va fi utilizat pentru generarea unor intervale de timp sincrone cu semnalul de tact al sistemului numeric. Semnalul de intrare G ( Gate ) poate activa (cu ''1'' logic) contorul corespunz tor sau poate bloca func ionarea contorului (cu ''0'' logic). Ie irile contorilor pot fi utilizate, n func ie de programare, ca semnale de tact, impulsuri singulare sau cereri de ntrerupere.
7 6 5 4 3 2 1 0 0 - contorul opereaz n binar 1 - contorul opereaz n BCD Selecie MOD 0 0 0 Modul 0 0 0 1 Modul 1 x 1 0 Modul 2 x 1 1 Modul 3 1 0 0 Modul 4 1 0 1 Modul 5 Citire / Iniializare contor 0 0 - operaia de citire contor 1 0 - citete / scrie octet superior (la ncrcare octet inf. = 00 H) 0 1 - citete/ scrie octet inferior (la ncrcare octet sup = 00 H) 1 1 - citete / scrie octet superior, apoi octet inferior. Selecie contor 0 0 - este selectat contorul 0 0 1 - este selectat contorul 1 1 0 - este selectat contorul 2 1 1 - comand ilegal Fig. 17 Structura cuvntului de comand

Un contor se consider nc rcat (ini ializat) cnd s-au nscris n el 16 bi i; n func ie de programarea bi ilor b5, b4 din cuvntul de comand ,

273 dac se nscrie numai octetul superior (D8 - D15) octetul inferior (D0 D7) se ini ializeaz automat cu 00 H iar dac se nscrie numai octetul inferior, atunci octetul superior se ini ializeaz automat cu 00 H. Dac se nscriu ambii octe i, primul octet nc rcat se consider a fi cel superior. Bi ii b3, b2, b1 programeaz modul de operare: Modul 0 : este definit ca ntrerupere la terminarea num r rii; ie irea trece din ''0'' n ''1'' cnd num r torul trece n starea 0000 H. Modul 1 : este definit ca monostabil programabil; Modul 2 : este definit ca generator de impulsuri divizate cu N; Modul 3 : este definit ca generator de impulsuri cu factor de umplere 50%; Modul 4 : este definit ca strobe comandat prin software; ie irea este ''0'' o perioad de tact, cnd starea num r torului este 0000 H. Modul 5: este definit ca strobe comandat prin hardware. Decrementarea ncepe pe frontul cresc tor al intr rii G; ie irea este ''0'' o perioad de tact, cnd starea num r torului este 0000 H.
Clock 0 Gate 0 Clock 1 Gate 1 Clock 2 Gate 2 Numrtor 0 Numrtor 1 Numrtor 2 Fig. 18 Out 0 Out 1 Out 2

Modul 0 Este definit ca ntrerupere la terminarea num r rii a N impulsuri de tact, unde N este num rul nc rcat ini ial; ie irea trece din ''0'' n ''1'' cnd num r torul trece n starea 0000 H. Dup nc rcarea cuvntului de comand i a contorului cu valoarea ini ial , ie irea contorului trece n ''0'' i prin decrementare la fiecare impuls de tact, cnd valoarea contorului devine 0000 H, ie irea trece n ''1'' logic. Decrementarea continu i dup atingerea valorii finale. n figura 19 sunt prezentate diagramele pentru N=5. Decrementarea este blocat pe durata aplic rii valorii ''0'' logic la intrarea G.

274
CLK t WR t OUT 5 4 3 N=5 Fig. 19 Funcionarea unui numrtor n modul 0. 2 1 0 t cerere de ntrerupere

Exemplu: Consider m adresele de selec ie: F4 H pentru N0, F5 H pentru N1 F6 H pentru N2, F7 H pentru registrul de comand . Secven a de program (8086) urm toare, stabile te Mod 0 pentru N2, num rare binar i N=128, deci dup 128 perioade de tact ie irea trece n ''1'' logic. Cuvntul de comand este 1 0 0 1 0 0 0 0 = 90 H. ------ ---- ---- -----MOV OUT MOV OUT AL, 90H 0F7H, AL AL, 80H 0F6H, AL ; ; ; ; ; se ncarc n AL cuvntul de comand transfer cuv. de comand la 8253 se ncarc N =128Z = 80H n registrul A transfer N la contor 2, ca octet inferior octetul superior = 00H (automat)

--------------------Modul 1 Este definit ca monostabil programabil declan at de o tranzi ie 0 1 la intrarea G ( Gate ), cnd ie irea OUT trece n ''0''. Durata men inerii n ''0'' a ie irii OUT este dat de valoarea N nc rcat ini ial n contor ( N x T).

275
CLK t WR t G t OUT 5 4 3 2 1 t

N=5 Fig. 20 Funcionarea unui numrtor n modul 1.

Dac la intrarea G apare o tranzi ie pozitiv , indiferent dac decrementarea s-a terminat sau nu, contorul este relansat cu valoarea nc rcat ini ial (monostabil retrigerabil). Exemplu: Se programeaz contorul 1 n Mod 1, num rare n BCD, N=3000. Cuvntul de comand este: 0 1 1 0 0 0 1 1 = 63 H. Secven a de program (8086) este urm toarea: ------ ---- ---- -----MVI OUT MVI OUT AL, 63H 0F7H, AL AL, 30H 0F5H, AL ; ; ; ; ; se ncarc n A cuvntul de comand transfer cuv. de comand la 8253 se ncarc N =30 Z (30 BCD) n registrul A transfer N la contor 1, ca octet superior octetul inferior = 00H (automat)

--------------------Modul 2 Este definit ca generator de impulsuri cu frecven a de N ori mai mic dect frecven a impulsurilor de tact (divizor cu N). Ie irea trece la nivel cobort pe durata unei perioade de tact, dup num rarea celor N impulsuri (N este num rul nc rcat ini ial n contor).

276
CLK t WR t OUT 4 3 2 N=5 Fig. 21 Funcionarea unui numrtor n modul 2 (G=1). 1 0 4 3 2 1 0 4 t

Contorul se blocheaz (ie irea se men ine n ''1'' logic) dac intrarea G ( Gate ) trece n ''0'' logic pe durata decrement rii. Cnd intrarea G revine n ''1'' logic, contorul porne te de la valoarea ini ial (N); astfel, intrarea G poate fi utilizat pentru sincronizarea contorului cu evenimente externe. Exemplu: Se programeaz contorul 0 n Mod 2, fiind nc rcat ini ial cu valoarea 02F0 H. nc rcarea se face ncepnd cu octetul mai pu in semnificativ iar datele vor fi tratate n binar. Cuvntul de comand este: 0 0 1 1 0 1 0 0 = 34 H -- - -- - - - -- - - - - -- - - -MOV OUT MOV OUT MOV OUT AL, 34H 0F7H, AL AL, 02H 0F4H, AL AL, 0F0H 0F4H, AL ; ; ; ; ; ; se ncarc n AL cuvntul de comand transfer cuv. de comand la 8253 se ncarc n AL octetul superior transfer 02 la contor 0, ca octet superior se ncarc n AL octetul inferior transfer F0 la contor 0, ca octet inferior

Modul 3 Este definit ca generator de impulsuri dreptunghiulare, similar cu cel /2 din mod 2 dar cu factor de umplere 50%, mai precis, f = NN pentru N =1 2 (N+1)/2 1 1 par i f = N = 1 + N 2 pentru N impar. Func ionarea este continu , prin reluarea decrement rii de la valoarea ini ial , N.

277
CLK

t
WR t OUT 3 2 1 0 3 2 1 0 3 2 1 t

N=4 Fig. 22 Funcionarea unui numrtor n modul 3 (G=1).

Modul 4 Definit ca strobe comandat prin software, ie irea trece pe nivel cobort pentru o perioad de tact, la terminarea decrement rii. Dup stabilirea modului de operare i dup nc rcarea valorii ini iale, N, ie irea se men ine la nivel ridicat ct timp starea contorului este diferit de 0000 H.
CLK t WR t OUT 4 3 2 1 0 4 3 2 1 0 4 t

N=4 Fig. 23 Funcionarea unui numrtor n modul 4.

Modul 5 Este definit ca strobe comandat prin hardware. Decrementarea contorului ncepe la primul impuls de tact dup frontul cresc tor al intr rii G. Ie irea va fi n starea ''0'' pe o durat egal cu perioada impulsurilor de tact.

278
INTA
Tampon de date

INT

D0 - D7

Logica de comand

RD WR A0 CS CAS0 CAS1 CAS2 SP / EN


Logica RD / WR

ISR

IRR

IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

Tampon
comparator

Registrul de mascare IMR

Fig. 26 Structura intern a circuitului Intel 8259 CLK t WR t G t OUT 3 2 1 0 t

Fig. 24 Funcionarea unui numrtor n modul 5.

Citirea con inutului unui contor Se poate face n dou moduri: n timpul func ion rii sau prin blocarea tactului.

Logica pentru rezolvarea prioritii

279 I. Con inutul contorului se transfer ntr-un registru intern al procesorului; decrementarea contorului continu . Pentru citire este necesar un cuvnt special de comand transmis la adresa portului de comand .
7 0 0 1 6 0 1 0 5 0 4 0 3 2 1 x x x citire contor 0 citire contor 1 citire contor 2 0 x

Fig. 25 Cuvntul de comand pentru citirea unui contor

Bi ii b5=0, b4=0 specific opera ia de memorare a con inutului unui contor. II. Citirea contorului se face dup blocarea semnalului de tact printr-o logic extern adecvat sau prin controlul unit ii centrale asupra intr rii G, care poate bloca n anumite moduri de lucru decrementarea, chiar dac semnalul de tact este prezent. Exemplu: I.
MOV AL, 40 H OUT 0F7H, AL IN AL, 0F5H MOV CL, AL IN AL, 0F5H MOV BL, AL ; ; ; ; ; ; cuvntul de comand n AL (citire contor 1) se transfer cuv. com. la 8253 se cite te octet inferior n AL. se salveaz octet n registrul CL se cite te octet inferior n AL. se salveaz octet n registrul BL

II. Pentru citirea contorului cu blocarea decrement rii, nu mai este necesar cuvntul de comand (linia 1,2) dar trebuie oprit decrementarea.

15.4 Controlerul de ntreruperi Intel 8259, 8259A, 82C59A (Programmable Interrupt Controler)
Circuit integrat LSI, realizat n tehnologie NMOS, 28 de pini, deserve te 8 cereri de ntrerupere de tip INT (mascabile). n cazul conect rii n cascad a 8 circuite 8259, considerate '' slave '' i unul ''master '', num rul cererilor de ntrerupere ce pot fi deservite cre te la 64. Controlerul 8259 memoreaz cererile de ntrerupere, stabile te ordinea de tratare, lanseaz cererea INT c tre unitatea central i sus ine dialogul necesar cu aceasta pn la servirea complet a fiec rei cereri.

280 Blocurile componente principale (fig. 26) sunt: registrul tampon de date, blocul de control pentru citire / scriere, blocul pentru conectare n cascad , blocul de comand (logica de comand ), logica de tratare a priorit ilor i trei registre de 8 bi i pentru eviden a cererilor de ntrerupere. 15.4.1. Registrele 1. Registrul cererilor de ntrerupere ( Interrupt Request Register IRR ), este conectat cu cele 8 intr ri IR0 - IR7 ( Interrupt Request ) - cereri de ntrerupere, pe care le memoreaz n momentul apari iei unui front pozitiv. nregistrarea unei cereri este anulat n momentul n care unitatea central accept tratarea acesteia prin semnalul INTA activ. 2. Registrul de servire a ntreruperilor ( In Service Register - ISR ) specific ntreruperea activ , atunci cnd sunt nregistrate mai multe cereri; ntreruperea activ este selectat pe baza logicii de tratare a prioritar , care func ioneaz conform priorit ilor stabilite prin programare. 3. Registrul de mascare ( Interrupt Mask Register - IMR ) nregistreaz acele ntreruperi care nu trebuie luate n considera ie, acestea fiind stabilite de program i transmise controlerului 8259, prin cuvinte de comand . Registrul tampon de date conecteaz unitatea 8259 la magistrala de date a sistemului de calcul. Stocheaz temporar datele de intrare (D0-D7), la comanda de scriere (WR), pe care le transfer pe magistrala intern sau datele de ie ire pe care le transfer pe magistrala extern la comanda de ''citire date'' (RD), ini iat de unitatea central . Ie irile sunt cu trei st ri (''0'', ''1'' i starea SIR, de nalt impedan ).

15.4.2. Logica de comand citete/scrie Pe baza celor 4 semnale de intrare, genereaz comenzi interne c tre toate blocurile circuitului, determinnd realizarea func iilor acestora. RD ( Read ) determin citirea st rii circuitului. WR ( Write ) determin scrierea cuvintelor de comand n 8259. A 0 linie de adrese; seve te select rii celor dou porturi I/O. CS ( Chip Select ) semnal de intrare pentru selec ie circuit, care devine activ cnd pe magistrala de adrese se ncarc adresa circuitului, stabilit prin hardware. 15.4.3. Blocul de cascadare

281 Permite conectarea n paralel a 2, 3 . . .,8 circuite 8259 de tip slave ( SP/EN = 0) cu un circuit master ( SP/EN = 1), pentru cre terea num rului de cereri de ntrerupere deservite de la 8 la 64. Dac se utilizeaz un singur controler 8259, pinii de cascadare CAS0 - CAS2 r mn neconecta i, iar unitatea se consider master .
CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 +5 V A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/ EN CAS2

Intel 8259

D0 - D7 magistrala de date RD - citire stare WR - scriere comand CS - selecie circuit A0 - linie de adres CAS0 - linii bidirecionale CAS1 de selecie CAS2 n cascad INT cerere de ntrerupere la UC INTA acceptare ntrerupere SP / EN - identific unitatea ca master / slave IR0 - IR7 intrri de ntrerupere active pe front

Fig.26 Configuraia semnalelor la pinii circuitului 8259A

15.4.4. Secvenele de lucru n servirea cererilor de ntrerupere 1. Una sau mai multe intr ri IR sunt activate de fronturile cresc toare ale cererilor de ntrerupere; 2. Unitatea 8259 transmite INT = 1 c tre unitatea central , ca urmare a accept rii unei cereri de ntrerupere, dup rezolvarea priorit ii. 3. Unitatea central accept tratarea i genereaz INTA ( Interrupt Acknowledge ); 4. Unitatea 8259 recunoa te INTA i r spunde cu codul instruc iunii CALL, pe magistrala de date. 5. Unitatea central genereaz succesiv nc dou semnale INTA, la care 8259 r spunde de fiecare dat cu octet pe magistrala de date, n total 16 bi i, care reprezint adresa subrutinei de tratare a cererii de ntrerupere. Se formeaz astfel cei 3 octe i ai instruc iunii CALL <Adresa>, de salt necondi ionat la subrutina de tratare.

282
GND

INT INT INT IR4 IR3 IR2 IR1 IR0 IR6 IR5

82 59 A

CA S0 CA S1 CA S2

IR7

SP/ EN
8259A

CAS2 CAS1 CAS0

INT INT INT INT INT

INT

INTA
+5V 10k

SP/ EN

Master
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

8 x 8259A Slave

Fig. 27 Conectarea unitilor 8259A n cascad

15.4.5. Programarea unitii PIC 8259A Pentru programare se transmit circuitului dou tipuri de cuvinte de comand : Primul tip este de ini ializare ( Initialization Command Word -ICW), de 2 sau 4 octe i, nota i ICW1, ICW2, ICW3, ICW4.
ICW1 ICW2
NU
(bitul D1 din ICW1 este 1) Exist PIC slave ?

DA

(bitul D1 din ICW1 este 0)

ICW3
NU
(bitul D0 din ICW1 este 0)

Trabuie ICW4 ?

DA

(bitul D0 din ICW1 este 1)

ICW4 STOP Fig. 25 Schema logic a cuvintelor de comand pentru iniializare

Primul cuvnt de comand , ICW1, transmis cu A0 = 0, are ca efect: - aducerea la zero a registrului IRR (anularea unor cereri nregistrate); - aducerea la zero a registrului IMR (de mascare cereri de ntrerupere);

283 - atribuirea priorit ilor standard (prioritate maxim IR0, minim IR7); - stabilirea existen ei unor unit i slave.
ICW1 (A0 = 0)
7 A7 6 A6 5 A5 4
1

3 X

IC4

1 - exist ICW4 0 - nu exist ICW4


1 - o singur unitate 8259 0 - mai multe uniti slave i un master

Bii ai vectorului de ntrerupere

ICW2 (A0 = 1) 7 6 5

1 - ntre vectorii de adres, 4 octei 0 - ntre vectorii de adres, 8 octei

1
A9

0
A8

A15 A14 A13 A12 A11 A10

= Biii A15 - A8 ai vectorului de ntrerupere (adresa subrutinelor de tratare )

Fig. 28 Structura cuvintelor de comand ICW1 i ICW2.

Al doilea cuvnt de comand , ICW2, specific o parte din adresa subrutinelor de tratare a ntreruperilor i anume bi ii A15 - A8 din cei 16 bi i de adres . Bi ii A0, A1 sunt ''0'' logic pentru toate adresele, bi ii A2, A3, A4 sunt pozi iona i conform nivelului ntreruperii (Tab. 2) iar A5, A6, A7 sunt specifica i de ICW1. Tab.2a Tab.2b A7 A6 A5 A4 A3 A2 A1 A0 Linia A7 A6 A5 A4 A3 A2 A1 A0 Linia
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7

Tabelul 2 prezint formarea octetului inferior de adres n cele dou cazuri ce rezult din structura lui ICW1: ntre vectorii de adres 4 loca ii (2a) i ntre vectorii de adres 8 loca ii (2b). Astfel vectorii de adres sunt determina i de cele dou cuvinte de comand .

284 Dac , de exemplu, ICW2 = 86 H i bitul D2 = 1 n ICW1 (4 loca ii ntre adrese), rezult urm toarele 8 adrese ale subrutinelor de tratare ntrerupere: IR0 determin CALL 8600 H ; subrutina la 8600H IR1 determin CALL 8604 H ; subrutina la 8604H IR2 determin CALL 8608 H ; subrutina la 8608H IR3 determin CALL 860C H ; subrutina la 860CH IR4 determin CALL 8610 H ; subrutina la 8610H IR5 determin CALL 8614 H ; subrutina la 8614H IR6 determin CALL 8618 H ; subrutina la 8618H IR7 determin CALL 861C H ; subrutina la 861CH Dac ICW2 = 86 H i bitul D2 = 0 n ICW1 (8 loca ii ntre adrese), rezult adresele subrutinelor de tratare ntrerupere sunt: IR0 determin CALL 8600 H ; subrutina la 8600H IR1 determin CALL 8608 H ; subrutina la 8608H IR2 determin CALL 8610 H ; subrutina la 8610H IR3 determin CALL 8618 H ; subrutina la 8618H IR4 determin CALL 8620 H ; subrutina la 8620H IR5 determin CALL 8628 H ; subrutina la 8628H IR6 determin CALL 8630 H ; subrutina la 8630H IR7 determin CALL 8638 H ; subrutina la 8638H Al doilea tip de cuvnt de comand este de operare ( Operation Command Word - OCW) i permite mascarea unor ntreruperi, stabilirea ''sfr it tratare'', modificarea nivelurilor de prioritate i preg tirea pentru citirea st rii. Urm toarea secven n limbaj de asamblare (80286) realizeaz ini ializarea unei unit i 8259A master i a unei unit i slave.
MOV OUT JMP MOV OUT JMP MOV OUT JMP MOV OUT JMP MOV OUT ; Initializarea lui 8259 master AL, 11H ; ICW1 20H, AL $+2 ; Timp de asteptare AL, 08H ; ICW2, octetul superior de adresa 21H, AL $+2 ; Timp de asteptare AL, 04H ; ICW3 21H, AL $+2 ; Timp de asteptare AL, 01H ; ICW4 21H, AL $+2 ; Timp de asteptare AL, 0FFH ; Validarea intreruperilor 21H, AL

285
IOR IOW MEMR MEMW +5V READY HLDA ADSTB AEN HRQ CS CLK
RESET 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

Intel 8237

A7 A6 A5 A4 EOP A3 A2 A1 A0
+5 V DB0 DB1 DB2 DB3 DB4 DACK0 DACK1 DB5 DB6 DB7

DACK2 DACK3 DREQ3 DREQ2 DREQ1 DREQ0 GND

Fig. 30 DMA - 8237 Configuraia semnalelor la pini MOV OUT JMP MOV OUT JMP MOV OUT JMP MOV OUT JMP MOV OUT ; Initializarea lui 8259 slave AL, 11H ; ICW1 A0H, AL $+2 ; Timp de asteptare AL, 70H ; ICW2, octetul superior de adresa A1H, AL $+2 ; Timp de asteptare AL, 02H ; ICW3 A1H, AL $+2 ; Timp de asteptare AL, 01H ; ICW4 A1H, AL $+2 ; Timp de asteptare AL, 0FFH ; Validarea intreruperilor A1H, AL

La terminarea trat rii unei ntreruperi, unitatea central trebuie s trimit la 8259, cu A0 = 1, un cuvnt de ''terminare normal '' (20H); exist i variante de ''terminare special ''. Citirea st rii se face cu instruc iunea IN, dup ce n prealabil s-a transmis la unitatea 8259 un cuvnt special pentru citire.

15.5 Controlerul programabil Intel 8237

286

( D irect M emory A ccess - DMA)


Circuit LSI realizat n tehnologie NMOS, 40 de pini, cu o singur tensiune de alimentare (+5V), serve te pentru transferul rapid al blocurilor de date, f r implicarea procesorului, care poate efectua, pe durata transferului, opera ii interne din programul propriu, f r utilizarea magistralelor. Principalele caracteristici sunt: poate deservi 4 periferice independente (are 4 canale DMA); viteza maxim de transfer este 1,6 MB/sec.; dimensiunea maxim a blocului de date transferat este de 64 kB; Transferul DMA se poate efectua ntre: zon de memorie - zon de memorie; memorie - disc magnetic; memorie - periferic rapid (disc optic, band , etc.); Obiectivul tehnicii DMA este de a c tiga timp; microprocesorul este degrevat de opera ii repetitive, de rutin , care sunt efectuate de un circuit specializat, sub controlul microprocesorului. Pentru organizarea unui unui transfer DMA, trebuie s se specfice: Adresa de nceput a zonei de memorie care se transfer (surs ); Adresa de nceput a zonei de memorie n care se transfer (destina ie); Num rul de octe i ce se transfer . Circuitul DMA este nc rcat de procesor cu aceste informa ii i apoi gireaz transferul, cednd controlul asupra magistralelor sistemului pe durata transferului. Pentru cedarea magistralelor, procesorul se autodeconecteaz prin trecerea ie irilor sale n starea de nalt impedan ; controlerul DMA raporteaz terminarea transferului prin dezactivarea semnalului de solicitare, ceea ce determin procesorul s preia controlul asupra magistralelor.

287
IOR IOW MEMR MEMW

Decrementare
Bloc de comand

Incr. / Decrem. A0-3

Adres de baz

Contor de baz

Adres curent

Contor curent

B u e a fr d . r

C S AdStb AEN RDY CLK E O P DRQ 0-3 A4-7 Registru scriere Registru citire B u e f a e r fd r . r B u e fr D0-7 R de comand R mascare R cereri DMA R stare R temporar R mod B u d e fa r e t

Bloc de DACK 0-3 arbitrare cereri HRQ DMA HLDA

Fig. 29 Structura intern a controlerului DMA - Intel 8237

Controlerul DMA 8237 con ine n structur un num r mare de registre (27), din care cele mai importante sunt: Registrul pentru adresa de baz : con ine adresa de nceput a zonei destina ie care nu se modific pe durata transferului; Registrul num rului de octe i: con ine dimensiunea, n octe i a blocului de date care se transfer , nu se modific pe durata transferului; Registrul adresei curente: con ine adresa octetului ce se transfer i este incrementat dup fiecare transfer de octet; Registrul num r tor de octe i: con ine num rul de octe i de transferat i este decrementat dup fiecare transfer; cnd ajunge la zero, transferul este ncheiat; Registrul de comand : este destinat memor rii cuvntului de programare; Registrul de mod: determin modul de func ionare (unul din trei posibile); Registrul cererilor DMA: r spunde cererilor de transfer i le nregistreaz ; Registrul de mascare: serve te masc rii unor linii de solicitare DMA;

288 Registrul de st ri: memoreaz starea circuitului i poate fi citit de procesor; Registrul de adres temporar ; Registrul de num rare temporar a cuvintelor transferate.

15.5.1. Semnalele i modurile de funcionare Controlerul programabil pentru DMA, 8237 dispune de 4 intr ri pentru cereri de tip DMA, notate DREQ0 - DREQ3 ( DMA Request ), ceea ce era suficient pentru primele PC-uri. Prin conectarea n cascad a dou circuite 8237, rezult 7 linii de intrare DMA, necesare la PC - AT. Cnd un periferic necesit un transfer masiv de date, emite o cerere c tre 8237, la una din intr rile DREQ; aceste intr ri sunt independente i au fiecare un nivel de prioritate, ca i cererile de ntrerupere. Cererea DMA cea mai prioritar este prima luat n considera ie. De regul prioritatea cea mai nalt este atribuit liniei 0. La apari ia unei cereri DMA, 8237 emite un semnal HRQ ( Hold Request ) la microprocesor, prin care se cere acestuia cedarea magistralelor. Microprocesorul r spunde prin HLDA ( Hold Acknowledge ), dup trecerea magistralelor n starea de nalt impedan . Controlerul 8237 emite acordul DACK c tre solicitatorul de DMA. Se execut transferul de date prin acces direct la memorie. Unitatea 8237 trebuie s contabilizeze dou adrese, pe care s le in ''la zi'': adresa surs i adresa destina ie. Octetul citit este stocat temporar ntr-un registru intern; etapele transferului sunt: 8237 cite te un octet de la adresa surs ; memoreaz octetul citit n registrul temporar; comut pe adresa destina ie i transfer octetul;
Tabel 2. Semnalele controlerului DMA 8237 I - intrare Semnal E - ieire CLK CS RESET READY HLDA DREQ0 - DREQ3 DB0 - DB7 IOR I I I I I I I/E I/E Selecie circuit Iniializare Gata - acordare de timp de ateptare memoriilor lente Acceptare de ctre procesor a cererii DMA DMA Request - 4 intrri, cereri DMA Magistral de date de 8 bii Input/Output Read - Citire port

Funcie

Semnalul de tact al sistemului

289
IOW EOP A0, A1, A2, A3 A4, A5, A6, A7 HRQ DACK0 - DACK3 AEN ADSTB MEMR MEMW I/E I/E I/E E E E E E I I Input/Output Write - Scriere port End of Process - Terminare transfer Adres pentru registre (I) / Adres DMA (E) Adres pentru DMA Hold Request - Cerere de DMA la procesor DMA Acknowledge - Acceptare DMA Address Enable - Autorizare adres Address Strobe - ncrcare octet sup. de adres Memory Read - Citire pentru transfer Memory Write - Scriere pentru transfer

Adresa surs poate fi men inut constant , caz n care se transfer acela i octet n toat zona destina ie. Priorit ile programate pot fi: 1. Fixe: nivelul de prioritate corespunde num rului cererii, ''0'' fiind cea de prioritate maxim . 2. Variabil : ultimul nivel care a fost servit pentru transfer devine cel mai pu in prioritar, din cele r mase se elimin ultimul servit i a a se determin nivelul ce va fi servit (regula se aplic dac apar cereri simultane).
DREQ0 DREQ1 DREQ2 DREQ3 DREQ1 DREQ2 DREQ3

DREQ

8237 ''slave'' HRQ

8237 ''master'' HRQ HLDA la microprocesor

Fig. 31 Montarea n cascad a dou circuite 8237. Numrul de intrri devine 7

ntr-un PC - AT, unit ile DMA 8237 sunt cascadate (fig. 31) i furnizeaz astfel 7 intr ri pentru cereri DMA. Ceea ce complic schema, este ad ugarea unor circuite externe pentru stocarea octe ilor suplimentari de adres , dat fiind c un 8237 are magistrala de adrese de 8 bi i (A0 A7) iar un PC - AT lucreaz cu adrese de 20 sau 32 de bi i. Pentru evitarea conflictelor logice n alocarea intr rilor DMA, se aloc , fiec rui periferic nou introdus, o linie pentru cereri DMA.

290

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