Sunteți pe pagina 1din 116

7.

SUBSISTEMUL
DE INTRRI / IEIRI AL
CALCULATORULUI DIDACTIC

7. SUBSISTEMUL DE INTRRI / IEIRI AL CALCULATORULUI DIDACTIC


7.1 Generaliti
7.2 Structura informaiilor n operaiile de I/E
7.3 Operaiile de baz n transferul de date
7.4 Modaliti de transfer ale datelor de I/E
7.4.1 Transfer programat
7.4.2 Transferul prin acces direct la memorie (DMA)
7.4.3 Transfer prin canal de intrare / ieire
7.4.4 Transfer prin calculator de I/E
7.5 Interaciunea i sincronizarea unitii centrale de prelucrare cu echipamentele de I/E
7.6 Manipularea echipamentelor de I/E n calculatorul didactic
7.7 Exemple de proiectare a unei interfee de I/E
7.7.1 Interfaarea imprimantei
7.8 Proiectarea modulului de acces direct la memorie (DMA) pentru calculatorul didactic
7.8.1 Structura modulului de acces direct la memorie
7.8.2 Arhitectura modulului de acces direct la memorie (DMA)
7.8.3 Proiectarea unitii de comand a calculatorului didactic n modul transfer
al datelor prin acces direct la memorie (DMA)
7.8.4 Proiectarea unitii de comand a memoriei (UCM)
7.8.5 Proiectarea unitii de comand a DMA (UCDMA)
7.9 Interfaa serial standard
7.9.1 Norme de transmisie serial a informaiei
7.9.2 Proiectarea unei interfee seriale pentru calculatorul didactic

7.1 Generaliti
Legatura unitii centrale cu mediul extern se realizeaz prin intermediul
subsistemului de intare/ieire (I/E).
n funcie de domeniul de utilizare a sistemului de calcul, subsistemul de I/E
este proiectat pentru:
-a conversia informaiei ce caracterizeaz mediul extern ntrun format
acceptat de ctre unitatea central;
-conversia rezultatelor prelucrrilor n formatul specific mediului extern.
Pentru a proiecta un subsistem de I/E trebuie examinate aspecte privind:
structura informaiilor de I/E;
operaiile de baz implicate ntrun transfer de I/E;
modaliti de transfer a datelor de I/E;
interaciunea i sincronizarea unitii centrale de prelucrare cu echipamentele
periferice.

Structur ierarhic hardwaresoftware a


sistemului de calcul, care arat cum este vzut SIE de
utilizatorul de operaii de I/E:
Sistemul de programe care asigur transferul,
prelucrarea i structurarea informaiilor n funcie de
aplicaie;
Unitatea central de prelucrare inclusiv memoria, ca
suport de execuie a programelor;

MEMORIE
UCP

Interfata
de
intrare/iesire

Unitatea de adaptare care asigur interfaa ntre


unitatea central i echipamentele periferice;
Echipamentele periferice care realizeaz
transformarea informaiilor din formatul extern n cel
intern i invers;
Suportul informaiilor.

Echipament periferic

Suport exterior

7.2 Structura informaiilor n operaiile de I/E


n funie de particularitile echipamentelor periferice se pot evidenia
urmtoarele modaliti de organizare a datelor n vederea transferurilor de I/E:
un singur cuvnt;
blocuri de lungime fix;
blocuri de lungime variabil;
un singur cuvnt sau blocuri de lungime fix;
un singur cuvnt sau blocuri de lungime variabil.

7.3 Operaiile de baz n transferul de date


Operaia de transfer implic, n general, urmatoarele aciuni:
analiza strii echipamentului periferic;
activarea acestuia, dac este operaional;
transferul propriuzis de date;
dezactivarea echipamentului periferic.

Unitatea central de prelucrare poate s obin informaiile despre starea


echipamentului periferic n dou moduri :
se citete, de ctre unitatea central de prelucrare, un cuvnt de stare din interfa cu o structur
cunoscut;
n memoria UC se pstreaz o variabil asociat cu starea curent a echipamentului periferic,
fiecare schimbare a strii sesizat printro cerere de ntrerupere generat de echipament i
actualizat de memorie.

Initializare transfer bloc date

Activeaza EP
Sistem
operare

Citire stare EP
Nu

Rutina
tratare
eroare

EP operational
Da

Eventuale
prelucrari

Comanda citire
Citire stare EP
Nu

EP operational
Da

Date
disponibile?

Nu

Da
Nu

Rutina pentru citire cuvant

Transfer
corect?
Da

Preluare date
Nu

Transfer
bloc terminat?

transferul unui bloc de date prin citirea


ciclic a strii, operaia de citire cuvnt

Da

Dezactiveaza EP

Initializare transfer bloc date

Activeaza EP
Sistem
operare

Citire stare EP
Nu

Rutina
tratare
eroare

EP operational
Da

Pregatire nou
cuvant din
bloc

Transfer date
Comanda scriere

Eventuale
prelucrari

Citire stare EP
Nu

EP
operational?
Da
Nu

Operatie
tereminata?
Da
Nu

Rutina apentru scriere cuvant

Transfer
corect?
Da

Transfer bloc
terminat?

transferul unui bloc de date prin citirea ciclic


a strii, operaia de scriere cuvnt

Da

Dezactiveaza EP

Nu

Initializare transfer bloc date

Activeaza EP
Sistem
operare

Citire stare EP
Nu

Rutina
tratare
eroare

EP operational
Da

Pregatire nou
cuvant din
bloc

Nu

Operatie
terminata?
Da
Nu

Rutina pentru scriere cuvant

Eventuale
prelucrari

Transfer
corect?
Da

Transfer date
Comanda scriere
Nu

Transfer
bloc terminat?
Da

Dezactiveaza EP

transferul unui bloc de date prin citirea ciclic


a strii, operaia de scriere cuvnt

Initializare transfer
bloc

PROGRAM
PRINCIPAL

Rutina de tratare
intrerupere

Activeaza EP
Sistem
operare

Sistem
operare

Citire stare EP
Rutina
tratare
eroare

Nu

EP
operational?

Rutina
tratare
eroare

Da

Comanda citire
Salvare context
Citire stare EP

Intrerupere de la EP

Nu

EP
operational?
Da

Transfer
corect?
Da

Preluare date
Transfer
bloc terminat?
Comanda citire
Dezactivare EP
actualizare date
Intrerupere de la EP

Refacere context

transferul unui bloc de date n ntreruperi;


citirea unui bloc de date

PROGRAM
PRINCIPAL

Rutina de tratare
intrerupere

Initializare transfer
bloc
Activeaza EP

Sistem
operare

Sistem
operare

Citire stare EP
Rutina
tratare
eroare

Nu

EP
operational?

Rutina
tratare
eroare

Da
Transfer date

Salvare context

Comanda scriere

Citire stare EP

Intrerupere de la EP

Nu

EP
operational?
Da

Nu

Transfer
corect?
Da

Nu

Pregatire
nou cuvant
din bloc
Transfer date
Intrerupere de la EP

Transfer
bloc terminat?
Da

Dezactivare EP

Comanda scriere

Refacere context

transferul unui bloc de date n ntreruperi;


scrierea unui bloc de date

7.4 Modaliti de transfer al datelor de I/E


Din punctul de vedere al modului n care unitatea central de prelucrare i
echipamentele periferice interacioneaz pentru efectuarea transferurilor de I/E distingem
urmtoarele modaliti de transfer al datelor :
transfer programat;
acces direct la memorie (DMA);
canal de intrare/ ieire;
procesor specializat pentru intrare / ieire.

Transfer programat
Fiecare cuvnt transferat implic participarea unitii centrale de prelucrare, prin
executarea unei secvene de instruciuni reprezentnd programul de I/E specific.
Prin intermediul interfeelor de I/E, unitatea central de prelucrare i echipamentele
periferice, interacioneaz la fiecare cuvnt transferat. Interaciunea:
-cuvnt de stare citit n mod ciclic;
-prin ntreruperi.
Transferul programat este uor de implementat:
-interfaa;
-programul ce controleaz transferul de date.
Dezavantaj: ineficient din punctul de vedere al utilizrii unitii centrale de prelucrare.
Utilizare: echipamente cu debitul de transfer i cantitatea de informaii transferate
relativ sczute.

Transferul prin acces direct la memorie (DMA)


Cuvintele de transferat nu mai trec prin UCP, ci sunt transferate direct ntre memorie i
echipamentele periferice.
Iniierea unui transfer: UCP -> DMA:
adresa zonei de memorie implicat n transfer ;
numrul de cuvinte din bloc, dac blocurile sunt de lungime variabil;
caracteristicile transferului ( intrare/ieire, activarea/dezactivarea ntreruperilor, modul de
rezolvare a concurenei la memorie etc.);
cuvnt de comand pentru iniierea efectiv a transferului.
Transferul datelor este efectuat far intervenia UCP (DMA conine toate resursele
necesare pentru efectuarea autonom a transferului: registru de adresare a memoriei, contor de
cuvinte transferate, mecanismul de acces la memorie, ntreruperi, etc.).
Soluia de rezolvare a concurenei la memorie dintre UCP si DMA:
transfer prin furt de ciclu;
transfer n mod rafal.

Transfer prin canal de intrare / ieire


Canal de I/E = procesor specializat capabil s execute "programe de canal" scrise
ntrun limbaj main specializat n operaii de I/E.
Canalul conine o unitate de comand proprie pentru controlul echipamentelor
periferice i a accesului la memorie n mod independent.
Unitatea central de prelucrare interacioneaz cu canalul de I/E prin construcii ale
limbajului main asociat, denumite comenzi de canal (iniializare, citire stare, lansare program
de canal, etc.)
Un program de canal trebuie s specifice:
adresele zonelor de memorie implicate n transfer;
numrul i dimensiunile blocurilor de date care trebuie transferate;
echipamentele periferice implicate i caracteristicile transferului;
directive privind modul de tratare, de ctre canal, a unor evenimente aprute n cursul
transferului;
operaiile care trebuie controlate de canal.

Canalul de I/E:
-poate transfera mai multe blocuri de date far intervenia UCP;
-functionare "inteligenta" n cazul apariiei unor evenimente n cursul
transferului (ex: erori de poziionare a capetelor la disc, poriuni de suport magnetic
deteriorat, erori de citire tranzitorii, etc.) rezolvnd far intervenia UCP aceste situaii;
-la terminare sau la apariia unor erori fatale (iremediabile) se invoc
intervenia UCP.
n general, un canal controleaz transferul cu mai multe echipamente
periferice => dou tipuri de canale de I/E:
de tip selector, care controleaz un singur periferic la un moment dat;
de tip multiplexor, care controleaz mai multe periferice simultan.

Transfer prin procesor de I/E


Pentru aplicaii complexe (mare putere de calcul i un trafic intens de
transferuri de date cu echipamentele de I/E) => sistem de calcul cu dou procesoare
interconectate printro legatur de mare vitez (un procesor realizeaz prelucrrile, iar
celalalt este specializat n operaii de I/E).
Procesorul de I/E:
-operaii specifice manipulrii informaiilor de I/E;
-culegerea i validarea datelor;
-gestiunea datelor pe suporturi magnetice;
-cutri n fiiere de date.

7.5 Interaciunea i sincronizarea unitii centrale de prelucrare


cu echipamentele de I/E
Functii interfata de I/E:
adaptarea caracteristicilor electrice UCP cu cele ale echipamentelor periferice;
asigurarea compaibilitii dialogului UCP echipamente periferice;
sincronizarea UCP cu echipamentul periferic (linii de date + linii de comand/stare);

7.6 Manipularea echipamentelor de I/E n


calculatorul didactic
Instruciunile IN si OUT difer de instruciunea MOV doar prin
caracteristici de ordin cantitativ cum ar fi:
dimensiunea spaiului de adresare;
formatul instruciunilor i modurile de adresare;
registrele ce pot fi specificate n transfer.
Cele 256 porturi de I/E, ale calculatorului didactic, pot fi asimilate cu
256 de registre plasate ntrun spaiu de adresare separat de cel al registrelor
generale i al memoriei, care pot fi citite sau nscrise individual prin intermediul
instruciunilor IN i OUT.

Consideratii:
echipamentele periferice fie de intrare fie de ieire ;
fiecarui echipament periferic i se asociaz un registru de date (din cele 256) n care
UCP nscrie datele ce trebuie transmise ctre echipamentul periferic de ieire sau din
care UCP preia datele nscrise de un echipament periferic de intrare;
fiecrui echipament periferic i se asociaz un registru de comenzi n care UCP nscrie
comenzile transmise spre echipamentul periferic i un registru de stri n care
echipamentul periferic nscrie starea ce va fi preluat de UCP (din punctul de vedere al
implementrii este convenabil s se considere 2 registre separate, unul de comenzi
selectat numai la execuia instruciunilor OUT i unul de stri selectat numai la execuia
instruciunilor IN, cele dou registre avnd aceeai adres);
registrele de I/E sunt conectate la magistrala MAG a unitii centrale de prelucrare;
fiecare interfa i recunoate adresele asociate.

datele sunt structurate pe cuvinte;


ca modalitate de transfer se alege transferul programat (transferul prin modulul de
acces direct la memorie se trateaz ulterior) ;
interaciunea i sincronizarea unitii centrale de prelucrare cu echipamentul periferic
se realizeaz prin citirea ciclic a strii echipamentului periferic utiliznd
instruciunile IN, TEST, Jcondiie, etc (interaciunea prin ntreruperi se trateaz n
capitolul 8);
magistrala MAG trebuie prevzut, pe lng liniile de date, cu un set minim de linii
de comenzi i stri care asigur un dialog corect ntre unitatea central de prelucrare i
registrele de I/E;
pentru echipamentele periferice complexe se pot prevedea mai multe registre de I/E.

7.7 Exemple de proiectare a unei interfee de I/E


Interfaarea imprimantei
Imprimanta: echipament periferic de ieire (tiprirea caractere ASCII).
Caracteristicile interfeei pentru imprimant sunt :
viteza de scriere este de 200 linii/minut;
lungimea liniei este de maxim 132 caractere. Dac se transmit mai mult de 132 caractere far a
se comanda ntoarcerea carului de tiprire (transmiterea caracterului CR = 0DH) i trecerea la o
linie nou (transmiterea caracterului LF = 0AH) caracterele se supraimprim n ultima poziie;
interfaa trebuie s identifice caracterele de control CR, LF i s genereze pentru imprimant,
comenzi de ntoarcere car respectiv avans rnd.
interfaa este prevzut cu o memorie tampon circular de 256 celule, Fig. 7.6, de tip FIFO
(FIRST IN-FIRST OUT) primul introdus - primul extras, pentru a asigura o adaptare ntre viteza
de lucru a unitii centrale de prelucrare i imprimanta. Unitatea de comand a memoriei FIFO
acord prioritate operaiei de scriere din partea unitii centrale de prelucrare.

Resursele memoriei tampon de tip FIFO sunt:

MT

memorie de tip RAM de 256 cuvinte a 8 bii ;

RSMT

registrul de adrese pentru operaia de scriere n memoria tampon, ce


indic adresa celulei n care unitatea central de prelucrare nscrie un nou
caracter ;

RCMT

registrul de adrese pentru operaia de citire din memoria tampon, ce


indic adresa celulei de unde interfaa preia un caracter pentru a l transfera
imprimantei ;

RDATE

registrul de date al memoriei tampon n care se citete caracterul ce se va


transfera imprimantei.

MT
RSMT
Caractere ce trebuiesc transferate
imprimantei

RCMT

RDATE
MAG

Semnalele de legatur ntre unitatea central de prelucrare, interfa imprimant i imprimant

___
tipc
_____
avansr

_____
retcar

_____
opterm
defal
cdes

hl
rl
DATE

- tiprete caracter semnal ce comand tiprirea caracterului al carui cod se afl pe


liniile DATE. Este activ pe "0".
avans rnd

semnal ce comand avansul cu un rnd al capului de scriere.


Acest semnal este asociat cu codul caracterului LF = 0AH; este
activ pe "0".

rentoarcerea
carului de tiprire

semnal ce comand ntoarcerea carului de tiprire la nceput de


rnd. Acest semnal corespunde identificrii caracterului CR =
0DH . Este activ pe "0".

operaie terminat semnal ce specific terminarea unei operaii de avans rnd,


ntoarcere cap tiprire, tiprire caracter. Este activ pe "0".
defect alimentare semnal asociat cu un defect de alimentare (siguran alimentare
general defect ; sigurane cap scriere). Este activ pe "1".
capac deschis
semnal ce indic poziia capacului de la imprimant. Datorit
incidentelor ce pot aprea dac capacul este deschis, n general o
imprimant nu poate lucra cu capacul deschis (n special cele cu
lan sau tambur). Este activ pe 1.
hrtie lips
semnal ce indic faptul c imprimanta nu are hrtie pe care s
tipareasc caracterele. Este activ pe "1".
ribon lips
semnal ce indic faptul c ribonul nu este bine poziionat sau
lipsete. Este activ pe "1 ".
liniile de date
- semnal prin care se transmite caracterul curent spre imprimant

Structura cuvntului de date este transmis cu OUT 0FAH.

7 8

15
DATE

Structura cuvntului de comenzi / stri:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

operational

actint

hl

resint

rl
defal
cdes

edis

Bit0

_________
imprimant operaional (operaional)
este nscris de imprimant i citit de unitatea central de prelucrare. Este constituit din
suma cauzelor de oprire a funcionrii imprimantei.
=0
imprimanta este operaional conectat la reea; siguranele capului de scriere
n bun funcionare, are hrtie, are ribon, capacul este nchis
=1
imprimanta nu este operaional. Una din condiiile de bun funcionare nu este
ndeplinit

hl
rl
defal
cdes

operational
D

TACT

CLK

Bit1

Bit2

Bit3

Bit4

hrtie lips (hl)


-este nscris de echipamentul periferic i citit de unitatea central de prelucrare
= 0 imprimanta are instalat hrtie pentru lucru
=1
nu are hrtie
ribon lips (rb)
- este nscris de echipamentul periferic i citit de unitatea central de prelucrare
= 0 imprimanta are ribon i este corect instalat
=1
imprimanta nu are ribon sau acesta nu este corect instalat
defect de alimentare(defal)
- este nscris de echipamentul periferic i citit de unitatea central de prelucrare
=0
imprimanta este conectat la reea i siguranele capului de scriere sunt n bun
funcionare
=1
imprimanta nu este conectat la reea sau siguranele capului de scriere sunt
defecte.
capac deschis (cdes)
- este nscris de echipamentul periferic i citit de unitatea central de prelucrare
=0
imprimanta are capacul nchis
=1
imprimanta are capacul deschis i nu este recomandat s se lucreze aa

Bit7

____
echipament disponibil (edis)
- este nscris de echipamentul periferic i citit de unitatea central de prelucrare
= 0 memoria tampon a interfeei mai poate primi un nou caracter
=1
memoria tampon a interfeei nu mai poate primi un nou caracter deoarece este
plin cu caractere care nu au fost nc tiprite

Bit10 terge ntrerupere (resint)


- este scris / citit de unitatea central de prelucrare
= 0 nu se terge ntreruperea eventual cerut de echipament
= 1
se terge (anuleaz) cererea de ntrerupere cerut de interfaa imprimantei.
Anularea cererii de ntrerupere se comand dup ce eventual s a tratat cauza ntreruperii
respective.
____
Bit11

activare ntrerupere (actint)


este scris / citit de unitatea central de prelucrare
=0
permite generarea unei cereri de ntrerupere la schimbarea strii: operaional
<> neoperaional, disponibil <> nedisponibil
=1
nu permite generarea unei cereri de ntrerupere

Presupunnd c imprimanta are asociate porturile :


0FAH port de ieire pentru transfer date ntre unitatea central de prelucrare i imprimant,
0FBH port de ieire pentru transfer comenzi
imprimant,

ntre unitatea central de prelucrare i

0FBH port de intrare pentru citirea registrului de stare al imprimantei,


se poate utiliza urmtoarea rutin de tiprire a unui caracter la
presupune n registrul RB):

imprimant (caracterul se

;Rutina de scriere caracter la imprimant RTIP


;Intrri
:codul ASCII al caracterului de tiprit n registrul RB
;Ieiri
:se tiprete caracterul pe foaia de imprimant
;Funcie :tiprete caracter n modul de lucru transfer programat (bucla de ateptare)
;Afecteaz
:registrul RA i indicatorii de condiie
RTIP:
RCSI
EQU
0FBH
RDATI
EQU
0FAH
AST:
IN
RCSI
;citete starea
TEST
RA,8000H
;verific dac este operaional
JNZ
ERR
;salt la tratarea erorii
TEST
RA, 100H
;dac memoria tampon a interfeei
JNZ
AST
;nu poate primi caracter
;atunci asteapt
MOV
RA, RB
;se transfer caracterul n RA
OUT
RDATI
;se transmite n memoria tampon
RET
ERR:
; rutina de analiza a erorii

n programul care apeleaz rutina de transfer trebuie introdus o secven de


iniializare a modului de lucru al interfeei de imprimant care const n:
MOV
RA,30H
;se comand lucrul n transfer programat
OUT
RCSI
;cu citirea ciclic a strii

Modul de lucru al interfeei, pe baza cruia se va proiecta hardware ul necesar:


interfaa ateapt comenzi, date de la UCP sau citirea strii de ctre UCP ;
dac nu este activ nici o operaie cu UCP, se analizeaz dac n memoria tampon exist
caractere i dac da, se tipresc i se actualizeaz adresa de citire din memoria tampon;
pentru operaia de citire stare pune pe magistrala MAG cuvntul de stare;
pentru operaia de transfer comenzi, preia comenzile trimise de UCP n bistabilii de
comand;
pentru operaia de transfer date, nscrie data n memoria tampon, actualizeaz adresa de
scriere n memoria tampon i verific dac nu sa umplut memoria tampon.

7.8 Proiectarea modulului de acces direct la memorie (DMA)

Structura modulului de acces direct la memorie


Schema bloc a calculatorului didactic cu posibiliti de acces direct la memorie:

ADRESA

DENUMIRE

FUNCIE

Baza +0

CSEP0

Registrul de comenzi/stri pentru EP 0

Baza +1

CSEP1

Registrul de comenzi/stri pentru EP 1

Baza +2

CSEP2

Registrul de comenzi/stri pentru EP 2

Baza +3

CSEP3

Registrul de comenzi/stri pentru EP 3

Baza +4

CSDMA

Registrul de comenzi/stri pentru modulul de acces


direct la memorie

Baza +5

AMDMA

Registrul adresare memorie pentru modulul de


acces direct la memorie

Baza +6

RCDMA

Registrul contor (lungime bloc) pentru modulul de


acces direct la memorie

Baza +7

ITDMA

Registrul comenzi pentru iniializarea modulului


de acces direct la memorie

Formatul registrului de comenzi/stri pentru modulul de acces direct la memorie:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

SEP0
SEP1

activare/dezactivare transfer
sens transfer
mod transfer

SEP2
activare/dezactivare intrerupere
SEP3
intrerupere programabila
DMA liber
intrerupere externa
terminare transfer bloc

Registrul de comenzi pentru iniializarea modulului de acces direct la memorie,


ITDMA, adresabil cu adresa Baza+7, nu este un registru propriu-zis ci este format din bistabilii
ce aparin registrului de comenzi/stri prezentat anterior.
Prin executarea unei instruciuni OUT Baza+7 (coninutul registrului RA fiind
indiferent), au loc urmtoarele aciuni:

Bit 6 ( DMA liber ) 0


Bit 7 (terminare transfer bloc) 1
Bit10 (intrerupere programabi la ) 1

Programul de I/E ce asigur iniierea i controlul transferului unui bloc de date.


Pentru exemplificare vom presupune c la modulul de acces direct la memorie este
conectat un singur echipament periferic de intrare care necesit un singur registru de
comenzi/stri CSEP1.
Adresa acestui registru este BAZA+1. Registrele CSEP0 i CSEP2:3 sunt neutilizate
deocamdat.
Exemplu de rutin pentru transferul unui bloc de date prin DMA:

;Definirea constantelor
BAZA EQU 0D0H
BIT1
EQU 4000H
BIT6
EQU 200H
BIT7
EQU 100H
CCDMA EQU 0234H

;adresa de baz a registrelor DMA


;SEP1
;DMA liber
;Terminare transfer
;DMA ocupat, dezactivare ntreruperi,

CCEP
LNG
ADR

;ntrerupere programabil inactiv


;transfer prin furt de ciclu
;sens transfer=scriere, activare transfer
;se definete n funcie de EP conectat
;lungimea blocului de transferat
;zona de memorie implicat n transfer

EQU H
EQU H
DW H

;Operaia 1 test dac transferul poate fi iniiat


RDMA:
AST: IN
BAZA+4
;citete cuvntul de stare al DMA
TEST RA,BIT1
;testeaz CSDMA1
JNZ ERR
;Echipamentul periferic neoperaional, eroare
TEST RA,BIT6
;DMA ocupat, ateapt
JNZ AST
;Operaiile 2 i 3 transferul poate fi iniiat i deci unitatea central de prelucrare va
transmite ctre modulul de acces direct la memorie:
;cuvntul de comand
;adresa de nceput a zonei implicate n transfer
;lungimea zonei implicate n transfer
MOV RA,CCDMA
;cuvntul de comand transfer prin DMA
OUT BAZA+4
;se transmite n registrul CSDMA
MOV RA,ADR
;adresa zonei implicate n transfer
OUT BAZA+5
;se transmite n AMDMA
MOV RA,LNG
;lungimea zonei implicate n transfer
OUT BAZA+6
;se transmite n registrul RCDMA

;Operaiile 4 i 5 iniiaz echipamentul periferic i start transfer


MOV RA,CCEP
;cuvnt comand transfer pt. EP si start transfer
STT:
OUT BAZA+1
;transfer n CSEP1 i start transfer
;Operaia 6 transferul propriu-zis al blocului de date are loc
;far intervenia unitii centrale de prelucrare pe baza unui dialog ntre EP,
;DMA si memorie prin furt de ciclu
Operaiile 7 i 8 test terminare transfer
TERMT: IN BAZA+4
;citete cuvntul de stare al DMA
TEST RA,BIT7
;transfer bloc terminat?
JZ
GATA
;da, gata transfer
TEST RA,BIT1
;test echipament periferic operaional ?
JZ
TERMT
;da, ateapt terminare transfer
ERR:
.
;rutina de tratare a erorilor
GATA: IN BAZA+1
;citete starea EP1, analizeaz
.
;condiiile de terminare transfer
;Dac transferul a avut loc corect, se iniializeaz DMA si EP
;pentru un nou transfer, dac este cazul
OUT BAZA+7
;comand de iniializare
;Echipamentul periferic poate fi iniializat prin registrul ITDMA sau prin CSEP1

Arhitectura modulului de acces direct la memorie (DMA)


Dup efectuarea instruciunii cu eticheta STT (start transfer) efectuarea transferului
poate fi rezumat astfel:
EP recepioneaz comanda de start transfer i cnd devine capabil s trimit sau s primeasc un
cuvnt trimite spre modulul de acces direct la memorie cerere de transfer;
DMA preia cererea din partea EP i transmite o cerere de acces memorie ctre unitatea de
comand a memoriei (cmdma sau smdma);
Unitatea de comand a memoriei primete cererea i n momentul n care memoria devine
disponibil efectueaz operaia cerut i trimite un rspuns la DMA (atmdma);
DMA primete acest rspuns il transmite mai departe la EP (atie), dac este cazul, i
actualizeaz AMDMA i RCDMA ;
EP primete acest rspuns i lanseaz o nou cerere de transfer ;
la terminarea transferului ntregului bloc, EP este dezactivat prin executarea instruciunii OUT
Baza+7 sau prin trimiterea unei comenzi la adresa Baza+1.

___

ctie
_______

_______

cmdma smdma
________

atmdma
___

atie
Terminarea unui ciclu de transfer
Memoria sau EP preia datele

Intercondiionarea semnalelor de dialog ntrun ciclu elementar de transfer

Pentru definitivarea unitii de comand trebuie rezolvate urmtoarele probleme:


proiectarea unitii de comand a memoriei ;
modificarea secvenei de comand a fazelor de citire interpretare i execuie a instruciunilor,
conform cu noul algoritm de acces la memorie ;
proiectarea unitii de comand asociat modulului de acces direct la memorie.

Proiectarea unitii de comand a memoriei (UCM)


Unitatea de comand a memoriei trebuie proiectat avnd n vedere funciile pe care
trebuie s le execute:
evitarea interferenelor la memorie prin excluderea mutual a operaiilor cu memoria controlate
de DMA i UCP;
rezolvarea concurenei la memorie acordnd prioritate cererilor DMA;
asigurarea transferului n modurile "furt de ciclu " sau "rafal" cerut de DMA;
realizarea dialogului cu UCP i DMA conform cu diagrama de timp din Fig 7.15;
executarea operaiilor efective de citire/scriere a memoriei.

actAM

____
actM

selecie adres, semnal de selecie pentru multiplexorul de adrese


=0
selecteaz AMDMA
=1
selecteaz AM

activare date de ieire


=0
=1

activeaz datele pe MAG


nu activeaz datele pe MAG

Proiectarea unitii de comand a modulului de acces direct la


memorie (UCDMA)
Principalele funcii pe care trebuie s le execute UCDMA:
citirea/scrierea n orice moment a registrelor de I/E asociate DMA;
generarea semnalelor de comand pentru citirea/scrierea registrelor de I/E asociate EP;
actualizarea permanent a strii DMA;
controlul dialogului ntre EP i memorie;
efectuarea transferului unui bloc de date, independent de UCP;
interaciunea cu UCP la iniierea/terminarea transferului unui bloc de date .

Indiferent de modul de transfer programat, modul de lucru va fi trecut n "mod furt de


ciclu" la sfritul transferului de bloc sau dac s a cerut o ntrerupere extern.
Cererea de ntrerupere cerint este activat dac:
sa specificat lucrul n ntreruperi (CSDMA11=0) i a venit o cerere de ntrerupere extern
intex, sau
DMA nu este ocupat cu un transfer de date i sa cerut o ntrerupere programabil (CSDMA10
=0 i CSDMA6=0), sau
DMA este n curs de transfer bloc i contorul de cuvinte transferate a ajuns la zero, sau
unul dintre echipamente periferice conectate prin DMA ia schimbat starea din operaional n
neoperaional */

7.9 Interfaa serial standard


=> a aprut necesitatea unei standardizri i unificri a echipamentelor de transmisie a
datelor.
Organizaii internaionale:
-CCITT (Comitetul Consultativ Internaional pentru Telefonie i Telegrafie);
-ISO (Organizaia Internaional de Standardizare);
etc
recomandri referitoare la unificarea echipamentelor.
Transferul de date ntre echipamentul periferic i calculator:
-paralel (echipamentele periferice descrise anterior);
-serial asigur o fiabilitate mare transferului (n special la distan) dar are
dezavantajul c necesit interfee mai complexe i limiteaz viteza de transfer.

Norme de transmisie serial a informaiei


ntre dou dispozitive cuplate printro legtur serial asincron care lucreaz n "full
duplex" (recepioneaz i transmite date simultan) ar fi suficiente trei linii i anume:
linie de transmisie date;
linie de recepie date;
linie de referin (mas electric).
Pentru dialog (transmiterea de comenzi i stri) mai sunt necesare i alte linii de
interconectare.
Principalele semnale ale interfeei EIA i CCITT V.24 sunt prezentate n tabelul:

Nr. pin Semnale


EIA
RS232-C
1
AA
7
AB
2
BA
3
BB
4
CA
5
CB
6
CC
20
CD
22
CE
8
CF
21
CG
23
CH
25
CI
24
DA
15
DB
17
DD
14
SBA
16
SBB
19
SCA
13
SCB
12
SCF

Semnale
CCITT
V.24
101
102
103
104
105
106
107
108
125
109
110
111
112
113
114
115
118
119
120
121
122

Descriere
GND-Nul (mpmntare)
GND-Semnal referin/Retur comun (mas electric)
TxD(Transmiter Data)-Transmisie date
RxD(Receiver Data)-Recepionare date
RTS(Request To Send) - Cerere pentru emisie
CTS(Clear To Send) - Gata de emisie
DSR(Data Set Ready) - Conectat la linie
DTR(Data Terminal Ready) -Conecteaz la alinie
RI(Ring Indicator)
RLSD(Receive Line Signal Detector)
SQD(Signal Quality Detector)
DSRS-DTE(Data Signal Rate Selector)
DSRS-DCE(Data Signal Rate Selector)
DTE transmiterea semnalului de timing (DTE)
DTE transmiterea semnalului de timing (DCE)
DTE recepionarea semnalului de timing (DTE)
STD Secondary Transmitted Data
SRD Secondary Received Data
RTSS (pe calea secundar)
CTSS
RLSDS

Semnalele ce se transmit pe liniile de date sunt sub forma unor nivele de


tensiune n logic negativ.
Astfel:
"1" logic este considerat ntre 6V i 12V
"0" logic este considerat ntre +6V i +12V.
Avantajele unei astfel de alegeri a tensiunilor fa de logic TTL sunt:
tensiunea de referin este 0V;
un defect de alimentare diferit de oricare din cele dou nivele de tensiune pentru
"0" i "1;
asigur imunitatea la zgomot .

GND(101,102) 1,7
TxD(103) 2
RxD(104) 3

1,7 GND(101,102)
3 RxD(104)
2 TxD(103)

RTS(105) 4
CTS(106) 5

5 CTS(106)
4 RTS(105)

DSR(107) 6
DTR(108) 20

20 DTR(108)
6 DSR(107)

DISP 1

DISP 2

Semnale
transmisie/receptie
date
Semnale de
comanda/stare

Semnalele de comand/stare servesc numai pentru stabilirea legturii ntre dispozitive.


Transmiterea datelor se face serial, bit cu bit, ncepnd cu bitul cel mai puin
semnificativ. Un bit de date, din cuvntul ce se transmite, se conecteaz la linia de transmisie
TxD pentru un timp determinat de rata de transfer. Rata de transfer se msoar n bii/secund sau
bauds. Sau standardizat urmtoarele rate de transfer: 75; 110; 150; 300; 600; 1200; 2400; 4800;
9600; 19200; 38400 bauds, .
Datele se transfer serial asincron => pentru sincronizare este necesar ca informaia de date s fie
precedat de un bit de start = "0" i urmat de un bit, sau doi, de stop = "1".
Structura logic a unui cuvnt ce se transmite ntre dou dispozitive seriale :

START

BIT1 BIT2 BIT3 BIT4 BIT5 BIT6 BIT7 BIT8 BITP STOP STOP
5 biti
6 biti
7 biti
8 biti

+12V
MC1488

MC1489

RxD(TTL)

TxD(TTL)
linie de tansmisie

7404
-12V

START

BIT1

preluare bit start


preluare bit 1

7404

Proiectarea unei interfee seriale pentru calculatorul didactic


Caracteristicile interfeei seriale:
Transmisia/recepia cuvintelor prin intermediul interfeei seriale se face utiliznd modalitatea de
transfer programat;
Rata de transfer este funcie de semnalul de tact aplicat interfeei. Frecvena semnalului de tact
va fi de 16 ori mai mare dect frecvena de transfer, pentru a asigura o bun funcionare a
automatului de recepie;
Interfaa lucreaz n mod "full duplex" (poate primi i transmite cuvinte simultan);
Genereaz semnalele de dialog conform standardului de transmisie serial CCITT V.24;
Transfer cuvinte de lungime egal cu 5, 6, 7, 8 bii;
Analizeaz/genereaz unul sau doi bii de stop;
Analizeaz/genereaz paritate par sau impar;
Interfaa detecteaz erorile de paritate, depire de ritm i bii de stop incoreci .

DSR DTR CTS RTS


TxD

RxD
Unitate
Comanda

RRS

RTRS

SIN
RDT

RDR

CSSIN

AIE

MAG16

Primitivele funcionale ale interfeei seriale SIN sunt:


RRS
registrul de recepie serial. Are dimensiunea de 9 bii i este utilizat pentru
recepionarea serial a biilor de date bit1 bit8 i a bitului start .
RDR
registrul de date recepionate. Pstreaz ultimul cuvnt recepionat pn la formarea
unui nou cuvnt n registrul RRS.
RTRS
registrul de transmisie serial. Are dimensiunea 10 bii i este utilizat pentru
transmiterea serial a biilor de start, date i paritate.
RDT
registrul de date pentru transmisie. Primete informaia paralel de la unitatea central
de prelucrare i o transfer n registrul RTRS pentru transmisie. Este utilizat pentru a mri
disponibilitatea unitii centrale de prelucrare .
CSSIN

registrul de comenzi/stri al interfeei seriale SIN.

DTR

(Data terminal ready) conecteaz la linie : scris/citit de unitatea central de prelucrare


=0
deconecteaz echipamentul (interfaa) de la linia de transmsie
=1
conecteaz echipamentul de transmisie la linie, indiferent de strile celorlalte
semnale de legtur.
RTS (Request to send) cerere pentru emisie: scris/citit de unitatea central de prelucrare
=0
trece echipamentul de transmisie n stare de ne emisie
=1
comand echipamentul de transmisie date, i l menine, n stare de emisie
date.
L2,L1 lungimea cuvntului : scris/citit de unitatea central de prelucrare
= 00 lungimea cuvntului este de 5 bii
= 01 "
"
" de 6 bii
= 10 "
"
" de 7 bii
= 11 "
"
" de 8 bii.

____
actint activare / dezactivare ntrerupere: scris/citit de unitatea central de
prelucrare
=0
permite lansarea unei cereri ntreruperi spre unitatea central de prelucrare la
termirea recepionrii/transmiterii unui cuvnt sau schimbarea strii de operaional (conectat la
linie)
= 1
nu permite lansarea unei cereri de ntrerupere spre unitatea central de
prelucrare .
resintsin reset ntrerupere de la interfaa serial (ieire): scris de unitatea central de prelucrare
=0
nu terge, eventual cererea de ntrerupere de la sin
= 1
terge (se anuleaz) cererea de ntrerupere de la seciunea de transmisie a
interfeei seriale.
reseror reset eroare este scris de unitatea central de prelucrare
=0
nu are nici o aciune
= 1
sterge erorile aprute n procesul de recepie/transmisie datorate: paritii
(PE), depirii ritmului de recepie (OE) sau a bitului de stop (FE).

TxRDY transmitter ready transmisie gata este nscris de UCSI i citit de unitatea central de
prelucrare
= 0
interfaa are un cuvnt ce trebuie transmis i nu mai poate primi un nou
cuvnt de la unitatea central de prelucrare
=1
interfaa poate primi, pentru transmisie, un nou cuvnt de la unitatea central
de prelucrare .
RxRDY receiver ready recepie gata este nscris de UCSI de recepie al interfeei i citit de
unitatea central de prelucrare
=0
interfaa nu a recepionat un cuvnt, sau este n curs de receptionare, unitatea
central de prelucrare nu poate prelua un cuvnt de date de la interfa deoarece acesta nu este
disponibil.
=1
interfaa a recepionat un cuvnt de date i unitatea central de prelucrare
poate sl preia. Preluarea se face cu ajutorul unei instruciuni n port. Odat cu preluarea datelor
se dezactiveaz (terge), implicit, i indicatorul RxRDY.

EP

even/odd parity tip paritate scris/citit de unitatea central de prelucrare


=0
paritate impar
=1
paritate par.

PE
parity error eroare de paritate scris de interfa (paritatea de recepie) i citit de
unitatea central de prelucrare
=0
nu a existat eroare de paritate
=1
indic faptul c a fost detectat o eroare de paritate n procesul de recepie
date.
OE
overrun error eroare de ritm scris de interfaa (partea de recepie) i citit de unitatea
central de prelucrare
= 0
nu a existat o eroare de ritm ntre unitatea central de prelucrare i
dispozitivul de recepie
=1
a fost detectat o eroare de ritm. Unitatea central de prelucrre nu a preluat
cuvntul recepionat i ntre timp sa mai recepionat un nou cuvnt.
FE
Framing error eroare datorat bitului de stop nscris de interfa (partea de recepie) i
citit de unitatea central de prelucrare
=0
nu a fost o eroare de bit de stop
= 1
a fost detectat o eroare n cursul operaiei de recepie datorat absenei
bitului sau biilor de stop.

STP

bit de stop : scris/citit de unitatea central de prelucrare


=0
se lucreaz cu un singur bit de stop
=1
se lucreaz cu doi bii de stop.

DSR data set ready echipament conectat la linie, citit de unitatea central de prelucrare i
nscris de terminalul serial cu care este interconectat interfaa
= 0
indic faptul c echipamentul de transmisie/recepie cu care este
interconectat interfaa nu este gata de funcionare
= 1
echipamentul cu care este interconectat interfaa este gata de funcionare
(conectat la linie).

Structura cuvntului de date este prezentat n fig. 7.26.

15

Presupunnd c interfeei seriale i sunt asociate porturile de I/E:


0F6H
adresa porturilor de intrare/ieire date
0F7H
adresa porturilor de intrare/ieire stri respectiv comenzi se pot elabora rutinele CI
pentru recepionarea unui cuvnt i CO pentru transmisia unui cuvnt.

;Rutina de citire caracter de la consol cuplat pe interfa serial standard CI CONSOLE


INPUT
;Intrri: ;Ieiri:
n registrul RA cuvntul citit
;Afecteaz:
registrul RA i indicatorii de condiii
;Funcie: citete un cuvnt de la interfaa serial standard n modul transfer programat cu citirea
ciclic a strii.
CI:
IN
STSIN
;citete starea interfa
TEST
RA,8000H
;analizeaz DSR (data set ready)
JZ
ERRCI
;dispozitiv neconectat la linie eroare
TEST
RA,200H
;analizeaz RxRDY
JZ
CI
;nu a recepionat caracter ateapt
TEST
RA,3800H
;a recepionat caracter i se analizeaz
;dac este corect (FE,OE,PE=0?)
JNZ
ERRCI
IN
DATSIN ;preia caracterul
RET
ERRCI:
;trateaz eventuala eroare

;Rutina de transmisie cuvnt la interfaa serial standard


;COCONSOLE OUTPUT
;Intrri: registrul RB conine cuvntul ce trebuie transmis
;Ieiri:

;Afecteaz:
registrul RA i indicatorii de condiii
;Funcie: transmite cuvntul din registrul RB la interfa standard n modul de lucru transfer
programat cu citirea ciclic a strii
CO:
IN
STSIN
; citete starea
TEST
RA,8000H
; se analizeaz DSR (data set ready)
JZ
ERRCO
; dispozitiv neconectat la linie, eroare
TEST
RA,100H
; se analizeaz TxRDY
JZ
CO
; dac are cuvnt de transmis, ateapt
MOV
RA,RB
;
OUT
DATSIN
; transmite cuvntul spre interfa
RET
ERRCO: .
; trateaz eventuala eroare

__
cie
__
sie

Unitatea
central de
prelucrare a
calculatorului
didactic

GND 17

17 GND

____
cerint

TxD 2

3 RxD

MAG16

RxD 3

2 TxD

DTR 20

6 DSR

DSR 6

20 DTR

RTS 4

5 CTS

CTS 5

4 RTS

AIE8

Interfata
seriala
standard
SIN

Echipamentul
periferic

Programul AHPL de descriere a interfeei seriale:


MODULE:
UCSIN
MEMORY:
RDR[8];RRS[9];RDT[8];RTRS[10];NRM16[4];NTM16[4];
NRBIT[4];CSSIN[16]
INPUTS:
ADR[8]; sie ;cie; RxD; DSR; CTS; TxC; RxC
OUTPUTS:
cerint; TxD; DTR; RTS
COMBUS:
MAG[16]
1.
(2,5,17)
/* se activeaz cele trei secvene paralele ale UCSIN*/
/* la pas 2 se trateaz activitatea cu unitatea central de prelucrare */
/* la pas 5 se trateaz seciunea de recepie */
/* la pas 17 se trateaz activitatea de transmisie */

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