Sunteți pe pagina 1din 56

CUPRINS

7. SUBSISTEMUL DE INTRRI / IEIRI AL CALCULATORULUI DIDACTIC .............................................. 7-1


7.1 GENERALITI ........................................................................................................................................................... 7-2
7.2 STRUCTURA INFORMAIILOR N OPERAIILE DE I/E ................................................................................................... 7-3
7.3 OPERAIILE DE BAZ N TRANSFERUL DE DATE ......................................................................................................... 7-4
7.4 MODALITI DE TRANSFER ALE DATELOR DE I/E .................................................................................................... 7-10
7.4.1 Transfer programat ....................................................................................................................................... 7-11
7.4.2 Transferul prin acces direct la memorie (DMA) .......................................................................................... 7-11
7.4.3 Transfer prin canal de intrare / ieire ........................................................................................................... 7-12
7.4.4 Transfer prin calculator de I/E ..................................................................................................................... 7-13
7.5 INTERACIUNEA I SINCRONIZAREA UNITII CENTRALE DE PRELUCRARE CU ECHIPAMENTELE DE I/E ................. 7-13
7.6 MANIPULAREA ECHIPAMENTELOR DE I/E N CALCULATORUL DIDACTIC................................................................. 7-14
7.7 EXEMPLE DE PROIECTARE A UNEI INTERFEE DE I/E ............................................................................................... 7-16
7.7.1 Interfaarea imprimantei ............................................................................................................................... 7-16
7.8 PROIECTAREA MODULULUI DE ACCES DIRECT LA MEMORIE (DMA) PENTRU CALCULATORUL DIDACTIC .............. 7-23
7.8.1 Structura modulului de acces direct la memorie .......................................................................................... 7-24
7.8.2 Arhitectura modulului de acces direct la memorie (DMA) .......................................................................... 7-30
7.8.3 Proiectarea unitii de comand a calculatorului didactic n modul transfer al datelor prin acces direct la
memorie (DMA) ........................................................................................................................................................... 7-32
7.8.4 Proiectarea unitii de comand a memoriei (UCM) ................................................................................... 7-33
7.8.5 Proiectarea unitii de comand a modulului de acces direct la memorie (UCDMA) ................................ 7-35
7.9 INTERFAA SERIAL STANDARD .............................................................................................................................. 7-43
7.9.1 Norme de transmisie serial a informaiei ................................................................................................... 7-43
7.9.2 Proiectarea unei interfee seriale pentru calculatorul didactic .................................................................... 7-45

7-1

7. SUBSISTEMUL DE INTRRI / IEIRI AL CALCULATORULUI DIDACTIC





OBIECTIVE






Capitolul 7 este dedicat dezvoltrii subsistemului de I/E al calculatorului didactic. Dup o
prezentare a unor aspecte comune privind funcionarea i programarea interfeelor de I/E se abordeaz
la nivel de detalii proiectarea unei interfee de intrare, a uneia de ieire i a unei interfee standard
RS232 de I/E. Se parcurg toate etapele ncepnd cu specificarea, programarea i terminnd cu
proiectarea detaliat a interfeelor considerate.




7-2
7.1 Generaliti
Funcionarea unitii centrale de prelucrare a calculatorului didactic a fost examinat n cadrul
unor operaii n care interveneau instruciuni i date stocate n memorie. Instruciunile erau citite,
interpretate i executate, avnd ca efect final prelucrarea aritmetic i logic a unor operanzi sau luarea
unor decizii care afectau execuia programului. Rezultatele prelucrrilor aritmetice i logice puteau fi
plasate n registrele generale sau returnate n memorie.
Fluxul de instruciuni era orientat de la memorie spre unitatea de comand, n timp ce fluxul
datelor era orientat de la memorie spre unitatea aritmetic i invers.
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 converti informaia ce caracterizeaz mediul extern ntr-un format acceptat de ctre unitatea
central i respectiv pentru a converti rezultatele prelucrrilor n formatul specific mediului extern.
n aplicaiile de conducere a proceselor industriale, de exemplu, informaia la intrarea
sistemului de calcul se poate prezenta sub form analogic (tensiuni, cureni) sau discret (niveluri
logice, trenuri de impulsuri). Aceast informaie trebuie convertit pentru a se prezenta fizic sub forma
unor niveluri logice, ntr-un format corespunztor reprezentrii interne a informaiei.
Pentru a transmite ctre proces informaia prelucrat este necesar o operaie invers.
n aplicaiile de gestiune economic informaia primar se prezint sub forma unor iruri de
caractere alfanumerice cu o structur standardizat pentru diveri purttori de informaie. n asemenea
aplicaii rezultatele sunt furnizate sub form alfanumeric, grafic, etc.
Avnd n vedere fluxul informaiilor ntre UC i mediul extern, pe de o parte, i modul de
reprezentare a informaiilor n diverse etape ale transferului, pe de alt parte, se poate schia o structur
ierarhic hardware-software a sistemului de calcul, care arat cum este el vzut de utilizatorul de
operaii de I/E (Fig.7.1):
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;
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.
Pentru a proiecta un subsistem de I/E trebuie examinate aspecte privind:
structura informaiilor de I/E;
operaiile de baz implicate ntr-un transfer de I/E;
modaliti de transfer a datelor de I/E;
interaciunea i sincronizarea unitii centrale de prelucrare cu echipamentele
periferice.
7-3
M E M O R I E
Echipament periferic
Suport exterior
Interfata
de
intrare/iesire
U C P

Figura 7.1
7.2 Structura informaiilor n operaiile de I/E
n operaiile de I/E datele manipulate sunt structurate fizic i logic.
Structur fizic depinde de caracteristicile echipamentului periferic, de fenomenul fizic care st
la baza nregistrrii informaiilor pe suportul extern. Astfel, datele de la un cititor de cartele constau din
nregistrari de cel mult 80 caractere, cu 12 bii pe fiecare caracter (cod Hollerith). n cazul unei
imprimante, datele sunt transmise de la calculator sub forma unui ir de cel mult 132 caractere
alfanumerice pe linie, fiecare caracter avnd 6, 7 sau 8 bii. Folosirea unui nregistrator X,Y pentru
trasarea de curbe impune structurarea datelor sub forma unor perechi de numere (x,y) reprezentnd
coordonatele diverselor puncte ale graficului.
n cadrul unitii centrale de prelucrare datele de I/E pot primi o structur logic diferit de
structura fizic, diferena fiind determinat de considerente multiple:
eficiena prelucrrii;
eficiena utilizrii resurselor;
specificul aplicaiei;
alte caracteristici din sistem, etc.
Astfel, n cadrul unei aplicaii de eviden a populaiei datele de la discul flexibil pot fi
structurate n nregistrri logice constnd din cte trei nregistrri fizice (trei sectoare), cuprinznd
datele despre o persoan.
Pentru transferul cu discul magnetic nregistrrile logice, pot consta din patru nregistrri fizice
a cte 256 cuvinte fiecare, pentru a facilita transferul cu banda magnetic unde nregistrarile fizice i
logice au 1024 de cuvinte.
Se va considera drept informaie de baz cuvntul, care se transfer pe liniile de interconexiune
ntre unitatea central i echipamentul periferic. Lungimea unui cuvnt poate fi de 8, 16 biti, etc.
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;
7-4
un singur cuvnt sau blocuri de lungime variabil.

Transferul unui singur cuvnt - Acest mod este adecvat echipamentelor care funcioneaz n mod
caracter: consola operatorului, imprimanta serial, perforatorul de band,
etc. Acest mod face imposibil utilizarea eficient a echipamentelor
orientate pe transferul blocurilor de cuvinte: disc, banda magnetic,
caseta magnetic, etc. Aceste echipamente au un timp de poziionare
mare, n comparaie cu timpul necesar pentru transferul unui cuvnt.
Blocuri de lungime fix - Eficiena unor echipamente periferice ca: discul magnetic, cititorul de
cartele, etc. este asigurat numai prin transferul datelor n blocuri de
lungime fix, impus de nregistrarea fizic. De altfel, nici structura
fizic a acestor echipamente nu permite citirea la nivel de caracter ci
numai la nivel de bloc de date.
Blocuri de lungime variabil - Un bloc de lungime variabil poate fi o succesiune de coordonate ale
unei curbe date prin puncte. Numrul de puncte, implicit lungimea
blocului, poate s difere de la o curb la alta. n cazul utilizrii unui astfel
de echipament periferic este necesar organizarea informaiei n blocuri
de lungime variabil.
Un singur cuvnt sau blocuri
de lungime fix
- La un terminal cu tub catodic, afiarea se poate face cuvnt cu cuvnt
sau pagin cu pagin.
Un singur cuvnt sau blocuri
de lungime variabil
- Prelucrarea datelor de la un cititor de band perforat se poate realiza n
regim de start-stop (caracter cu caracter) sau n regim de blocuri de
lungime variabil, viteza de citire fiind n acest caz mai mare deoarece
banda are o micare continu, eliminndu-se timpii de oprire-pornire ai
motorului de antrenare a benzii.
7.3 Operaiile de baz n transferul de date
n funcie de structura informaiei care se transfer, de complexitatea i gradul de independen
ale echipamentului periferic folosit, operaia de transfer implic, n general, urmatoarele aciuni:
analiza strii echipamentului periferic;
activarea acestuia, dac este operaional;
transferul propriu-zis de date;
dezactivarea echipamentului periferic.
nainte de lansarea unui nou transfer unitatea central de prelucrare trebuie s verifice dac
echipamentul implicat este pregtit s efectueze aceast operaie. Unitatea central de prelucrare poate
s obin informaiile despre starea echipamentului periferic n dou moduri :
n primul caz se citete, de ctre unitatea central de prelucrare, un cuvnt de stare din
interfa cu o structur cunoscut. Analiza acestui cuvnt permite obinerea
informaiilor necesare.
n cazul al doilea, n memoria UC se pstreaz o variabil asociat cu starea curent a
echipamentului periferic. Fiecare schimbare a strii este sesizat printr-o cerere de
ntrerupere generat de echipament i actualizat de memorie.
Dac echipamentul este operaional (conectat la reeaua de alimentare i la calculator) i
disponibil (s-a terminat un eventual transfer precedent) se iniiaz un nou transfer, dup care se face
transferul propriu-zis.
Dupa terminarea transferului unui cuvnt sau al unei nregistrari fizice, se comand, n funcie
de particularitile echipamentului, dezactivarea acestuia, pentru a fi pregatit pentru un nou transfer (de
ex: oprirea motorului de antrenare a benzii la cititorul de band perforat, ridicarea i trecerea n stare
de repaus a capetelor de citire/scriere la discul magnetic, etc.). Terminarea transferului se stabilete de
catre unitatea central de prelucrare prin sesizarea schimbrii corespunztoare a strii echipamentului.
Aceast schimbare de stare este sesizat fie prin citire ciclic a registrului de stare a echipamentului fie
7-5
prin ntrerupere de sfrit transfer. De asemenea, la terminarea transferului, prin citirea cuvntului de
stare trebuie analizate condiiile de terminare a transferului (corect, eroare de paritate, eroare de ritm,
deteriorarea suportului, etc.).
Unele echipamente necesit numai o parte din operaiile amintite mai nainte. Astfel, un cititor
de cartele se dezactiveaz automat dup trecerea unei cartele prin staia de citire. Un echipament de
afiare pe tub catodic (display ) cuplat printr-o interfa paralel la unitatea central de prelucrare preia
caracterele n ritmul n care acestea sunt furnizate de ctre unitatea central de prelucrare, far a mai fi
necesar activarea/dezactivarea i testarea terminrii operaiei anterioare. La unele echipamente
activarea se face n mod implicit. De exemplu, la preluarea unui caracter de la cititorul de band se
comand automat avansul benzii pentru citirea urmtorului caracter. Frecvena cu care se execut
operaiile auxiliare n raport cu operaia de transfer propriu-zis depinde de modul de structurare a
informaiilor transferate, de caracteristicile echipamentelor de I/E, de aplicaie, etc.
Succesiunea operaiilor prezentate depinde de sensul transferului intrare sau ieire. n
continuare se prezint organigramele pentru operaiile de intrare/ieire prin testarea strii i prin
ntreruperi. Se consider operaiile pentru transferul unui bloc de cuvinte, n modul cuvnt cu cuvnt
(Fig 7.2).
Variabila "transfer terminat " este asociat cu numrul de cuvinte transmise, marcnd
terminarea transferului ntregului bloc. Programul de I/E va modifica la fiecare cuvnt valoarea acestei
variabile. Celelalte variabile testate n organigram fac parte din cuvntul de stare citit de la
echipamentul periferic.
Se observ c pentru interaciunea unitatea central de prelucrare cu echipamentul periferic n
cadrul operaiei de ieire, care se realizeaz prin citirea strii, exist dou soluii pentru verificarea
terminrii transferului precedent. Soluia a doua n care testul se face naintea transmiterii datelor este
mai avantajoas deoarece asigur o suprapunere a execuiei programelor din unitatea central de
prelucrare pentru pregtirea unui nou cuvnt cu preluarea efectiv a caracterului curent de ctre
echipamentul periferic.
n cazul transferului folosind metoda ntreruperilor (Fig 7.3) aceast suprapunere se realizeaz
n mod implicit, att pentru intrare ct i pentru ieire.
7-6
Sist em
operare
Preluare dat e
Dezact iveaza EP
Cit ire st are EP
Comanda cit ire
Cit ire st are EP
Act iveaza EP
Init ializare t ransfer bloc dat e
Rut ina
t rat are
eroare
EP operat ional
EP operat ional
Dat e
disponibile?
Transfer
corect ?
Transfer
bloc t erminat ?
Nu
Nu
Nu
Nu
Nu
Da
Da
Da
Da
Da
Event uale
prelucrari
Rutina pentr u citir e cuvant

Figura 7.2 a)Succesiunea operaiilor pentru transferul unui bloc de date prin citirea ciclic a strii,
operaia de citire cuvnt
7-7
Ru t i n a a p en t r u scr i er e cu va n t
S ist em
o per ar e
Co manda scr ier e
T r ansfer dat e
Dezact iveaza E P
Cit ir e st ar e E P
Cit ir e st ar e E P
Act iveaza E P
I nit ializar e t r ansfer blo c dat e
Rut ina
t r at ar e
er o ar e
E P o per at io nal
E P
o per at io nal?
Oper at ie
t er eminat a?
T r ansfer
co r ect ?
Nu
Nu
Nu
Nu
Nu
Da
Da
Da
Da
E vent uale
pr elucr ar i
P r egat ir e no u
cuvant din
blo c
T r ansfer blo c
t er minat ?
Da

Figura 7.2 b1) Succesiunea operaiilor pentru transferul unui bloc de date prin citirea ciclic a strii,
operaia de scriere cuvnt
7-8
Rutin apentr u scr ier e civant
Sist em
operare
Comanda scriere
Transfer dat e
Dezact iveaza EP
Cit ire st are EP
Act iveaza EP
Init ializare t ransfer bloc dat e
Rut ina
t rat are
eroare
EP operat ional
Operat ie
t erminat a?
Transfer
corect ?
Transfer
bloc t erminat ?
Nu
Nu
Nu
Nu
Da
Da
Da
Da
Event uale
prelucrari
Pregat ire nou
cuvant din
bloc

Figura 7.2 b2) Succesiunea operaiilor pentru transferul unui bloc de date prin citirea ciclic a strii,
operaia de scriere cuvnt



7-9
Transfer
corect?
Comanda citire
Sistem
operare
Citire stare EP
Activeaza EP
Rutina
tratare
eroare
Initializare transfer
bloc
Preluare date
Dezactivare EP
actualizare date
Comanda citire
Citire stare EP
Salvare context
EP
operational?
EP
operational?
Transfer
bloc terminat?
Refacere context
Sistem
operare
Rutina
tratare
eroare
Da
Nu
Da
Nu
Da
Intrerupere de la EP
Intrerupere de la EP
Rutina de tratare
intrerupere
PROGRAM
PRINCIPAL

Figura 7.3 a) Succesiunea operaiilor pentru transferul unui bloc de date n ntreruperi;
citirea unui bloc de date
7-10
Transfer
corect?
Comanda scriere
Transfer date
Sistem
operare
Citire stare EP
Activeaza EP
Rutina
tratare
eroare
Initializare transfer
bloc
Preluare date
Dezactivare EP
Citire stare EP
Salvare context
EP
operational?
EP
operational?
Transfer
bloc terminat?
Refacere context
Sistem
operare
Rutina
tratare
eroare
Da
Da
Nu
Nu
Nu
Da
Nu
Da
Intrerupere de la EP
Intrerupere de la EP
Rutina de tratare
intrerupere
PROGRAM
PRINCIPAL
Pregatire
nou cuvant
din bloc
Comanda scriere
Transfer date

Figura 7.3 b) Succesiunea operaiilor pentru transferul unui bloc de date n ntreruperi;
scrierea unui bloc de date
7.4 Modaliti de transfer ale datelor de I/E
Interfeele de I/E realizeaz adaptrile necesare ntre unitatea central de prelucrare i
echipamentele periferice asigurnd i o oarecare independen funcional a echipamentelor periferice
prin degrevarea unitii centrale de prelucrare de anumite funcii aferente controlului acestora.
7-11
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;
calculator specializat pentru intrare / ieire.
7.4.1 Transfer programat
Acest mod de transfer este caracterizat de faptul c fiecare cuvnt transferat implic
participarea unitii centrale de prelucrare, prin executarea unei secvene de instruciuni reprezentnd
programul de I/E specific.
ntre memorie i echipamentele periferice, datele, sunt transferate prin intermediul unitii
centrale de prelucrare. Prin intermediul interfeelor de I/E, unitatea central de prelucrare i
echipamentele periferice, interacioneaz la fiecare cuvnt transferat.
Interaciunea se realizeaz prin intermediul unui cuvnt de stare citit n mod ciclic sau prin
ntreruperi.
Transferul programat este uor de implementat att n ceea ce privete realizarea interfeei ct i
n realizarea programului ce controleaz transferul de date, ns este ineficient din punctul de vedere al
utilizrii unitii centrale de prelucrare.
Acest mod de transfer este adecvat echipamentelor cu debitul de transfer i cantitatea de
informaii transferate relativ sczute.
7.4.2 Transferul prin acces direct la memorie (DMA)
n cazul transferului prin modulul de acces direct la memorie cuvintele de transferat nu mai trec
prin unitatea central de prelucrare ci sunt transferate direct ntre memorie i echipamentele periferice.
Acest mod de transfer implic un cost mai ridicat pentru implementare dar este adecvat pentru
echipamentele periferice cu un volum mare de date structurate n blocuri (benzi magnetice etc.) i n
aplicaii n care se cere o disponibilitate ridicat a unitii centrale de prelucrare. Pentru fiecare bloc,
unitatea central de prelucrare trebuie s fac iniierea transferului i analiza condiiilor de terminare.
Pentru iniierea unui transfer prin modulul de acces direct la memorie, unitatea central de
prelucrare transmite spre modulul de acces direct la memorie urmtoarele informaii, necesare
efecturii transferului:
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 unitii centrale de prelucrare. Pentru aceasta,
modulul de acces direct la memorie 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 unitatea central de prelucrare i modulul
de acces direct la memorie conduce la dou moduri de transfer prin DMA i anume :
transfer prin furt de ciclu;
transfer n mod rafal.
n cazul transferului prin furt de ciclu concurena la memorie se rezolv la nivel de ciclu
elementar de acces la memorie. Pentru fiecare cuvnt transferat modulul de acces direct la memorie i
disput cu unitatea central de prelucrare accesul la memorie. n cazul unor cereri simultane de acces la
memorie, modulul de acces direct la memorie are prioritate i n felul acesta "fur" de la unitatea
central de prelucrare un ciclu de acces.
7-12
Cu excepia operaiei de acces efectiv la memorie, activitatea modulului de acces direct la
memorie i a unitii centrale de prelucrare se desfoar n paralel, mrind astfel productivitatea
sistemului.
n cazul transferului cu echipamentele periferice critice, care necesit servirea imediat a unei
cereri de acces la memorie, pentru o funcionare corect se utilizeaz transferul n mod rafal.
Acest mod de transfer const n faptul c dup iniierea unei operaii de transfer, activitatea
unitii centrale de prelucrare este suspendat pn la terminarea ntregului tranfer de date.
Productivitatea sistemului n acest caz este mai mic, n special n cazul transferului de blocuri cu
lungimi mari. O astfel de soluie este utilizat n cazurile n care transferul nu ar putea avea loc sub
controlul unitii centrale de prelucrare i nici prin modulul de acces direct la memorie dac accesul la
memorie s-ar disputa la fiecare cuvnt.
Iniierea explicit a tuturor parametrilor transferului i intervenia unitii centrale de prelucrare
la apariia unor evenimente aprute n timpul sau la terminarea transferului menin un grad destul de
mare de interaciune ntre unitatea central de prelucrare i modulul de acces direct la memorie.
O posibil succesiune a operaiilor de transfer date prin modulul de acces direct la memorie ar
putea fi:
1. Citete starea modulului de acces direct la memorie i a echipamentului periferic implicat n transfer
pentru a determina dac acestea sunt disponibile;
2. Transmite un cuvnt de comand ctre modulul de acces direct la memorie pentru pregtirea
acesteia n vederea unui nou transfer;
3. Trimite spre modulul de acces direct la memorie adresa zonei de memorie implicat n transfer i
numrul de cuvinte care trebuie transferate;
4. Transmite spre echipamentul periferic un cuvnt de comand pentru pregtirea acestuia n vederea
transferului i eventual "start transfer ";
5. Trimite spre periferic un cuvnt de comand "start transfer " (poate lipsi dac operaia a fost iniiat
la pasul precedent);
6. Pentru transferul propriu-zis al blocului specificat, fiecare cuvnt este transferat ntre periferic i
memorie printr-un dialog controlat de modulul de acces direct la memorie. Operaia de transfer se
termin cnd contorul de cuvinte transferate ajunge la zero sau cnd apare o eroare n transmisie ;
7. Cnd contorul ajunge la zero (sau apare un eveniment ce nu poate fi tratat de modulul de acces
direct la memorie) se actualizeaz cuvntul de stare al modulului de acces direct la memorie i
eventual se genereaz o ntrerupere ctre unitatea central de prelucrare ;
8. unitatea central de prelucrare sesizeaz schimbarea strii, o analizeaz, i dac totul a decurs
normal trece modulul de acces direct la memorie n starea iniial pregtind un nou transfer.
7.4.3 Transfer prin canal de intrare / ieire
Prin canal de I/E vom nelege un procesor specializat capabil s execute "programe de canal"
scrise ntr-un 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.)
Programele de canal sunt generate de ctre programele de asisten ce se execut n unitatea
central de prelucrare (sistemele de operare) i sunt plasate n memoria intern pentru a fi accesibile
canalului de I/E.
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;
7-13
operaiile care trebuie controlate de canal.
Prin comenzi de canal, unitatea central de prelucrare transmite canalului de I/E adresa
programului de canal i lansarea n execuie a acestuia.
n continuare unitatea central de prelucrare continu execuia n paralel cu canalul. Concurena
la memorie se rezolv n aceeai manier ca i n cazul transferului prin modulul de acces direct la
memorie.
Prin nlnuirea comenzilor i programelor de canal se pot transfera mai multe blocuri de date
far intervenia unitii centrale de prelucrare.
Canalul este capabil s acioneze n mod "inteligent" 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 unitii centrale de prelucrare aceste situaii.
La terminarea execuiei tuturor programelor de canal sau la apariia unor erori fatale
(iremediabile) se invoc intervenia unitii centrale de prelucrare.
n general, din motive de eficien, un canal controleaz transferul cu mai multe echipamente
periferice i dup modul n care se asigur cile de acces direct la memorie a acestora se disting 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.
Formatul unui program de canal pentru canalul de I/E de tip selector n vederea cuplrii a patru
uniti de discuri flexibile poate fi de forma:
- octet 1 - cuvnt de comand canal;
- octet 2 - instruciuni pentru echipamentul de I/E (cod operaie);
- octet 3 - numrul de nregistrari de transferat;
- octet 4 - adres pist;
- octet 5 - adres sector (primul sector din bloc);
- octeii 6,7 - adresa zonei de memorie implicat n transfer;
- octet 8 - numr program de canal curent;
- octeii 9,10 - adresa urmtorului program de canal, dac este cazul.
7.4.4 Transfer prin calculator de I/E
Pentru aplicaii complexe care necesit o mare putere de calcul i un trafic intens de transferuri
de date cu echipamentele de I/E este adecvat o structur de sistem de calcul format din dou
calculatoare interconectate printr-o legatur de mare vitez. Un calculator realizeaz prelucrrile, iar
celalalt este specializat n operaii de I/E (calculator frontal).
Calculatorul de I/E efectueaz o serie de operaii specifice manipulrii informaiilor de I/E,
culegerea i validarea datelor, gestiunea datelor pe suporturi magnetice, cutri n fiiere de date, etc.,
asigurnd astfel ntregului sistem o productivitate ridicat. Comunicaia ntre cele dou calculatoare se
realizeaz conform cu un protocol special proiectat pentru scopul propus, printr-o legatur de mare
vitez.
Tot n aceast categorie pot fi introduse i sistemele biprocesor cu uniti de prelucrare
specializate, una pentru prelucrri de date, iar cealalt pentru operaii de I/E, celelalte resurse ale
sistemului fiind comune.
7.5 Interaciunea i sincronizarea unitii centrale de prelucrare cu echipamentele de I/E
Pentru a realiza transferul spaial al datelor ntre memorie i suportul de reprezentare n mediul
extern, prin intermediul echipamentelor de I/E, orice adaptor (interfaa de I /E) trebuie s efectueze
urmtoarele funcii strict necesare:
adaptarea caracteristicilor electrice ale unitii centrale de prelucrare cu cele ale
echipamentelor periferice i eventual transformri adecvate privind structurarea logic a
informaiilor;
7-14
asigurarea unei compaibiliti ntre modul de dialog cu exteriorul al unitii centrale de
prelucrare i modul de dialog al echipamentelor periferice pentru a asigura o interaciune
corect a unitii centrale de prelucrare i echipamentul periferic care coopereaz la realizarea
operaiilor de I/E;
sincronizarea unitii centrale de prelucrare cu echipamentul periferic pentru a asigura
efectuarea, ntr-o manier determinist, a transferurilor ntre subansamble asincrone, cu viteze
de execuie ce difer prin mai multe ordine de mrime. n acest sens, pe lng liniile de date ce
conecteaz echipamentul periferic (EP) la unitatea central de prelucrare se mai folosesc i
linii de comand/stare ce asigur interaciunea i sincronizarea unitii centrale de prelucrare
cu echipamentul periferic conform cu protocolul de dialog proiectat. Sincronizarea unitii
centrale de prelucrare cu echipamentul periferic se poate realiza n dou moduri :
utilizarea unor variabile globale, care pot fi modificate de echipamentul periferic
i examinate de unitatea central de prelucrare. Aceste variabile sunt
implementate sub forma unor registre de comand/stare care sunt citite ciclic
pentru a sesiza imediat orice modificare a strii n vederea interpretrii i tratrii
acestor modificri.
generarea de ctre echipamentul periferic a unor semnale de ntrerupere spre
unitatea central de prelucrare ori de cte ori apare un eveniment ce trebuie tratat
de unitatea central de prelucrare. n aceast caz unitatea central de prelucrare
execut secvene de prelucrare care se suspend temporar pe durata operaiilor
specifice rutinelor de tratare a ntreruperilor. Operaiile rutinelor de tratare a
ntreruperilor constau n:
salvarea strii programului ntrerupt ;
execuia secvenei de tratare a evenimentului aprut ;
restaurarea strii programului ntrerupt;
transferul controlului programului ntrerupt.
Trebuie notat faptul c interaciunea i sincronizarea se realizeaz n unul sau ambele moduri
prezentate mai sus indiferent de structura datelor de I/E sau de modalitatea de transfer aleas.
Necesitatea acestor operaii apare datorit funcionrii asincrone a unitii centrale de prelucrare i a
echipamentului periferic.
7.6 Manipularea echipamentelor de I/E n calculatorul didactic
Reamintim c instruciunile IN, respectiv 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
ntr-un 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. Plecnd de la aceste premize se poate
dezvolta un model simplu de subsistem de I/E bazat pe urmtoarele consideraii :
1. vom considera echipamentele periferice fie de intrare fie de ieire ;
2. fiecarui echipament periferic i se asociaz un registru de date (din cele 256) n care unitatea central
de prelucrare nscrie datele ce trebuie transmise ctre echipamentul periferic de ieire sau din care
unitatea central de prelucrare preia datele nscrise de un echipament periferic de intrare;
3. fiecrui echipament periferic i se asociaz un registru de comenzi n care unitatea central de
prelucrare nscrie comenzile transmise spre echipamentul periferic i un registru de stri n care
echipamentul periferic nscrie starea ce va fi preluat de unitatea central de prelucrare. 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;
7-15
4. registrele de I/E sunt conectate la magistrala MAG a unitii centrale de prelucrare;
5. fiecare interfa i recunoate adresele asociate;
6. datele sunt structurate pe cuvinte;
7. ca modalitate de transfer se alege transferul programat (transferul prin modulul de acces direct la
memorie se trateaz ulterior) ;
8. 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);
9. 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;
10.pentru echipamentele periferice complexe se pot prevedea mai multe registre de I/E.
Schema bloc a subsistemului de I/E bazat pe consideraiile prezentate anterior este aratat n
Fig.7.4.
UCI
i
i respectiv UCI
e
reprezint de fapt uniti de comand elementare ale interfeelor
respective care interpreteaz liniile de adrese i semnalele de comand primite de la unitatea central
de prelucrare i genereaz semnalele de tip nivel pentru activarea pe magistrala MAG a registrului
selectat n cazul operaiilor de citire (IN) sau genereaz semnalele de tip impuls pentru nscrierea
datelor de pe magistrala MAG n registrul selectat n cazul operaiilor de scriere (OUT). Complexitatea
acestor uniti de comand depinde de tipul echipamentului periferic interfaat i de complexitatea
unitii de comand proprii a echipamentului periferic, precum i de modul de dialog cu exteriorul al
unitii centrale de prelucrare i a echipamentului periferic.
Liniile de comand generate de unitatea central de prelucrare trebuie s specifice :
dac se execut o instruciune de IN sau OUT;
momentul cnd datele sunt stabile pe magistrala MAG pentru a putea fi preluate n
registrul de date DIE
e
sau registrul de comenzi CIE
i
respectiv i CIE
e
;
momentul cnd datele din registrul de date DIE
i
sau din registrul de stare SIE
i
pot fi
activate pe magistrala MAG. Analiznd structura subsistemului de I/E prezentat se
observ c registrele de I/E ar putea fi plasate n acelai spaiu de adresare cu memoria.
n acest caz, din cele 65536 de cuvinte de memorie, o parte (de exemplu 256) trebuie
rezervate pentru registrele de I/E. Aceast soluie are avantajul posibilitii de utilizare a
tuturor instruciunilor de acces la memorie pentru accesul la echipamentele periferice,
dar are dezavantajul unei implementri mai costisitoare a subsistemului de I/E
(decodificatorul de adrese este mult mai complex).
7-16
UAL
AIE
CIEi
M
Unitate comanda
RG
SIEi DIEi
IN
stare
cie
sie
IN
data
date Out
com
comenzi stari
UCIe UCIi
EPi
CIEe SIEe DIEe
IN
stare
date Out
date
Out
com
comenzi stari
EPe

Figura 7.4 Schema bloc a subsistemului de I/E
Separarea spaiului de adresare a echipamentului periferic de cel al memoriei ofer un plus de
claritate programelor de I/E care controleaz transferul la nivel fizic.
7.7 Exemple de proiectare a unei interfee de I/E
Pentru exemplificarea modului n care se proiecteaz o interfa de I/E s-a ales ca echipament
periferic de intrare cititorul de band perforat i ca echipament de ieire imprimanta. S-au ales aceste
echipamente deoarece sunt uor de interfaat i necesit un numr foarte redus de comenzi i stri.
7.7.1 Interfaarea imprimantei
Imprimanta este un echipament periferic de ieire utilizat pentru tiprirea unor caractere ASCII
pe hrtie. 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
7-17
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
RCMT
MAG
RDATE
Caractere ce trebuiesc transferate
imprimantei
RSMT

Figura 7.5 Organizarea memoriei tampon
Unitatea de control a memoriei tampon este prevazut cu mecanismul de detectare a situaiilor:
memorie plin - nu se mai poate nscrie un nou caracter de la unitatea central de
prelucrare
memorie goala (vid) - toate caracterele au fost preluate din memoria tampon i
transmise imprimantei.
Unitatea central de prelucrare transfer caractere de 8 bii plasate n pozitia 8-15 n cadrul registrului
de date.
Schimbul de informaii ntre unitatea central de prelucrare, interfaa imprimantei i
imprimant, este prezentat n Fig 7.6.

MAG[16]
AIE[8]
Imprimanta Interfata UCP
calculator
didactic
hr
hl
cdes
defal
DATE[8]
_____
opterm
_____
retcar
_____
avansr
___
tipc
____
cerint
__
sie
__
cie

Figur 7.6 Semnalele de legatur ntre unitatea central de prelucrare, interfa imprimant i
imprimant
unde :
___
tipc

- tiprete caracter

- semnal ce comand tiprirea caracterului al carui cod se afl pe
7-18
liniile DATE. Este activ pe "0".
_____
avansr

-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".
_____
retcar

-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".
_____
opterm

-operaie terminat

- semnal ce specific terminarea unei operaii de avans rnd,
ntoarcere cap tiprire, tiprire caracter. Este activ pe "0".
defal -defect alimentare - semnal asociat cu un defect de alimentare (siguran alimentare
general defect ; sigurane cap scriere). Este activ pe "1".
cdes -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.
Hl -hrtie lips - semnal ce indic faptul c imprimanta nu are hrtie pe care s
tipareasc caracterele. Este activ pe "1".
rl -ribon lips - semnal ce indic faptul c ribonul nu este bine poziionat sau
lipsete. Este activ pe "1 ".
DATE -liniile de date - semnal prin care se transmite caracterul curent spre imprimant

Structura cuvntului de date este aratat n Fig. 7.7 i este transmis cu OUT 0FAH.

DATE
0 8 7 15

Figura 7.7
Structura cuvntului de comenzi / stri este prezentata n Fig.7.8.
0 10 8 9 1 2 3 4 5 6 7 11 12 13 14 15
defal
rl
hl
cdes
operational
edis
resint
actint

Figura 7.8
7-19
TACT
operational
cdes
rl
defal
hl
D Q
CLK

Figura 7.9

Bit
0

_________
- imprimant operaional (operaional)
- este nscris de imprimant i citit de unitatea central de prelucrare. Este constituit din suma
cauzelor de oprire a funcionrii imprimantei, Fig. 7.9.
= 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
Bit
1
- 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
Bit
2
- 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
Bit
3
- 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.
Bit
4
- 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

Bit
7

____
- 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
Bit
10
- 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
Bit
11
- 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
7-20
= 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 ntre unitatea central de prelucrare i imprimant,
0FBH - port de intrare pentru citirea registrului de stare al imprimantei,
se poate utiliza urmtoarea rutin de tiprire a unui caracter la imprimant.
Caracterul se presupune n registrul RB.

;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 RDATEI ;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, se poate rezuma
la urmtoarele caracteristici:
interfaa ateapt comenzi, date de la unitatea central de prelucrare sau citirea strii de
ctre unitatea central de prelucrare ;
dac nu este activ nici o operaie cu unitatea central de prelucrare , 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 unitatea central de
prelucrare 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 s-a umplut memoria tampon.
Organigrama de descriere a funcionrii este prezentat n Fig. 7.10.
Programul AHPL ce reprezint algoritmul de funcionare a interfeei imprimantei, conform cu
organigrama din Fig.7.10, este prezentat n continuare :


7-21
MODULE: INTERFATA IMPRIMANTA
MEMORY: MT [256;8] ; RDATE [8] ; RSMT [8];RCMT [8];
MEMORY : ulcit; actint; cerint; edis; operaional
COMBUS : MAG [16]

1. (2,5)
/* secvene paralele pentru citire stri, scriere comenzi respectiv pentru scrierea datelor n memoria
tampon i citirea lor ulterioar pentru imprimare */

/* urmeaz secvena de scriere n memoria tampon i citire din memoria tampon pentru imprimare
date */

/* Unitatea central de prelucrare nu cere o scriere de date n memoria tampon se merge la pas 9, altfel
se continu */

6. MT * DCD (RSMT) MAG
8:15
;
/* se acord prioritate prelurii datelor de la unitatea central de prelucrare pentru nscrierea n
memoria tampon */
/* s-a utilizat un indicator "ulcit" care indic faptul c ultima operaie cu memoria tampon a fost citire
(ulcit=1) sau scriere (ulcit=0) */
RSMT INC(RSMT) ;
ulcit 0 ;

7. (sie) / (7)

8. edis /(RCMT RSMT);
-> /(RCMT RSMT)/(5)
/* memoria tampon nu este plin, se ateapt date de la unitatea central de prelucrare */

/* memoria tampon vid sau imprimant ocupat, se merge la pas 5., altfel se continu */






AIE[8] hl; rl; cdes; defal; ; opterm ; sie ; cie : INPUTS
[8] DATE ; retcar ; avansr ; tipc ; cerint : OUTPUTS
)/(3,4,2) FB sie cie FB, sie FB, (cie . 2
; actint , edis cdes, defal, rl, hl, , l operationa MAG , MAG , MAG 3.
11 7 4 : 0
=
(3,2) / ) cie (cie,
; MAG , MAG resint) , actint ( 4.
10 11

(4,2) / ) sie (sie,


(9) / ) FA sie ( . 5
/(5) ) RSMT) /RCMT ( ulcit opterm ( 9.
7-22
10. RDATE BUSFN (MT; DCD(RCMT)) ;
RCMT INC(RCMT) ;
ulcit 1
(5)

END SEQUENCE

END

0 actint) edis ( * cerint
0 edis
0; 0AH))) /(RDATE ( 0DH)) /(RDATE (
, 0AH) /(RDATE , 0DH) /(RDATE ( * ) tipc ! avansr ! retcar (


0; cdes))) defal rl (hl l operationa ( (actint * cerint
cdes; defal rl hl l operationa
7-23
RDATE < --BUSFN(MT,DCD(RCMT))
RCMT<-- INC(RCMT)
ulcit <-- 1
____ ___
cerint*(actintedis)<--0
____
edis<---0
MT*DCD(RSMT) < MAG
RSMT<-- INC(RSMT)
ulcit <-- 0
RCMT=RSMT
___
edis <-- 1
8
7
8
nu
nu
nu
nu
10
9
9
9
3
4
2
1
5
6
da
da
da
nu
da
da
0
1
da
nu
nu
da
sie
opterm
ulcit
sie FA
MAG = RCS stare RCS comanda <-- MAG
RCMT=RSMT
10 10 10
10
caracter CR
CR
RDATE
____
tipc <-- 0
____
retcar <-- 0
_____
avansr <-- 0
cie FB
sie FB
sie
da
da
nu
nu
cie
secventa paralela

Figura 7.10 Organigrama de funcionare a interfeei de imprimant
7.8 Proiectarea modulului de acces direct la memorie (DMA) pentru calculatorul didactic
n paragraful 7.4 s-au analizat modalitile de transfer al datelor cu echipamentele periferice.
Pentru interfaaarea unor echipamente periferice cu un volum mare de date structurate n blocuri (n
general de lungime variabil), se va proiecta un modul cu acces direct la memorie, capabil s
controleze direct transferul ntre echipamentul periferic i memorie, far intervenia unitii centrale de
prelucrare pe durata transferului unui bloc de date. Pentru proiectarea modulului de acces direct la
memorie exista dou soluii :
o soluie evolutiv - care const n completarea unitii de execuie a CALCULATORULUI
DIDACTIC, cu resursele hardware adiionale necesare, i a unitii de comand cu noile funcii
necesare multiplexrii accesului la memorie.
o soluie revolutiv - care const n proiectarea unui modul de sine stttor, independent de unitatea
central de prelucrare i a unui mecanism de acces la resurse (la memorie i la echipamentul
7-24
periferic) separat, care rezolv concurena la memorie i controleaz accesul la memorie i la
echipamentul periferic. Prima soluie este mai accesibil i va fi adoptat n continuare.
7.8.1 Structura modulului de acces direct la memorie
Schema bloc a calculatorului didactic cu posibiliti de acces direct la memorie este prezentat
n Fig. 7.12.
Modulului de acces direct la memorie i se asociaz 8 registre (porturi) de I/E conform cu
tabelul Tab. 7.1, prezentat n cele ce urmeaz. Adresa de baz a grupului de 8 adrese asociate
modulului de acces direct la memorie poate fi selectat oriunde n spaiul de 256 de adrese.
Tabelul 7.1
ADRESA DENUMIRE FUNCIE
Baza +0 CSEP
0
Registrul de comenzi/stri pentru EP 0
Baza +1 CSEP
1
Registrul de comenzi/stri pentru EP 1
Baza +2 CSEP
2
Registrul de comenzi/stri pentru EP 2
Baza +3 CSEP
3
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
- Registrele CSEP
0:3
- sunt scrise/citite de unitatea central de prelucrare i unitatea de comand a
modulului de acces direct la memorie i au un format nespecificat la proiectarea modulului de acces
direct la memorie. Aceste registre se asociaz echipamentelor periferice interfaate prin modulul de
acces direct la memorie, structura lor fiind determinat n funcie de caracteristicile echipamentului
periferic. Modulul de acces direct la memorie face doar decodificarea adreselor acestor registre i
genereaz semnalele corespunztoare de citire/scriere a coninutului acestora, ele fiind localizate n
interfaa cu echipamentul periferic. Comenzile transmise de ctre unitatea central de prelucrare spre
aceste registre sunt preluate de echipamentul periferic de pe magistrala MAG[16] . Strile actualizate
de echipamentul periferic sunt citite de unitatea central de prelucrare prin activarea acestora pe
MAG[16], iar datele de ieire din echipamentul periferic sunt scrise n memorie direct prin
intermediul magistralei MAG[16]. Astfel, operaiile de acces la memorie, controlate de modulul de
acces direct la memorie, se pot efectua n paralel cu oricare alte operaii, exceptnd operaiile de acces
efectiv la memorie a unitii centrale de prelucrare . Concurena la memorie este rezolvat prin
funciile de control asociate modulului de memorie, UCM, ceea ce implic modificarea
corespunztoare a secvenelor de citire, interpretare i execuie a instruciunilor calculatorului
didactic.
- Registrul AMDMA - este scris/citit de unitatea central de prelucrare i conine adresa de memorie la
care se face acces n ciclul curent. Ieirile acestui registru, multiplexate cu ieirile registrului AM,
formeaz adresa locaiei de memorie implicat ntr-un transfer cu acces direct la memorie. AMDMA
este incrementat de ctre unitatea de comand a modulului de acces direct la memorie dup fiecare
operaie de acces la memorie efectuat de modulul de acces direct la memorie.
- Registrul contor al modulului de acces direct la memorie (RCDMA) - este scris/citit de unitatea
central de prelucrare i conine numrul de cuvinte ce mai trebuie transferate n cadrul blocului
curent. Dup fiecare cuvnt transferat, RCDMA este decrementat de unitatea de comand a
modulului de acces direct la memorie, iar n momentul n care coninutul su devine egal cu zero se
consider terminarea transferului ntregului bloc. Terminarea transferului va fi semnalat unitii
centrale de prelucrare prin modificarea corespunztoare a strii sau prin generarea unei ntreruperi.
7-25
- Registrul CSDMA - este scris/citit de unitatea central de prelucrare i constituie registrul de
comenzi i stri pentru modulul de acces direct la memorie.
Semnificaia fiecrui bit din acest registru este prezentat n cele ce urmeaz. Formatul registrului
CSDMA este prezentat n Fig. 7.13.

UAL
AIE
VCM
M
Unitate comanda
AM
MUX
MUX
RG
CSDMA
AIE
MAG[16]
DCM[16]
DsM[16]
UCDMA
comenzi
comenzi stari
EP cu interfata
stari
CSDMA AMDMA

Figura 7.12 Schema bloc a calculatorului didactic cu modul de acces direct la memorie (DMA)
7-26
3 : 0 SEP
bloc transfer Terminare
extern e ntreruper
liber DMA
0 10 8 9 1 2 3 4 5 6 7 11 12 13 14 15
SEP
3
SEP
2
SEP
1
DMA liber
SEP
0
intrerupere programabila
sens transfer
activare/dezactivare transfer
terminare transfer bloc
mod transfer
activare/dezactivare intrerupere
intrerupere externa

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

Dac fiecare echipament periferic, ce se conecteaz prin modulul de acces direct la memorie,
necesit doar un registru de comenzi/stri atunci se pot conecta patru echipamente periferice la
modulul de acces direct la memorie ce va funciona n regim de canal selector.

Bit
0:3
- bii de stare echipament periferic - sunt scrii de echipamentul periferic i
citii de unitatea central de prelucrare i reprezint starea echipamentelor periferice
cuplate prin modulul de acces direct la memorie.
= 0 - echipament periferic operaional
= 1 - echipament periferic neoperaional
Dac echipamentul periferic necesit mai multe registre de comenzi/stri, se vor cupla
la modulul de acces direct la memorie mai puin de patru echipamente periferice, biii
CSDMA
0:3
pot primi alt semnificaie.

Bit
6
- este scris/citit de unitatea central de prelucrare
= 0 - indic faptul c modulul de acces direct la memorie este liber i poate fi iniiat
pentru un nou transfer.
= 1 - indic faptul c modulul de acces direct la memorie este n curs de pregtire
sau efectuare a transferului unui bloc de date (modulul de acces direct la memorie
este ocupat).
Acest bit este trecut n "0" (activat), automat, prin trimiterea cuvntului de comand
ITDMA, la adresa BAZA+7.

Bit
7
- este scris de modulul de acces direct la memorie i citit de unitatea central de prelucrare .
= 0 - indic terminarea transferului blocului curent.
Trecerea n zero se face n urmtoarele cazuri:
- Bit 6 = 1 (modulul de acces direct la memorie este ocupat) i RCDMA
trece n 0;
- exist cerere de ntrerupere de la echipamentul periferic .
= 1 - indic faptul c nu a avut loc terminarea transferului iniiat sau nu s-a iniiat un
transfer. Acest bit trece n 1 (dezactivat) prin trimiterea cuvntului de comand
ITDMA la adresa Baza+7.

7-27
l programabi e ntreruper
e ntreruper re /dezactiva activare
transfer re /dezactiva activare
Bit
9
- este asociat echipamentului periferic i citit de unitatea central de prelucrare
= 0 - indic faptul c exist o cerere de ntrerupere de la echipamentul periferic
conectat la modulul de acces direct la memorie
= 1 - indic faptul c echipamentul periferic nu a lansat o cerere de ntrerupere

Bit
10
- este scris/citit de unitatea central de prelucrare
= 0 - se lanseaz o cerere de ntrerupere prin program,
cerere ce va fi efectiv dac Bit
6
= 0 (DMA liber activ) i dac Bit 11= 0 (activare
ntrerupere)
= 1 - inactiv
Acest bit este trecut n "1" (inactiv) prin trimiterea cuvntului de comand ITDMA la
portul Baza + 7. n general aceast facilitate este utilizat pentru operaiile de testare.

Bit
11
- este scris/citit de unitatea central de prelucrare
= 0 - permite generarea unor ntreruperi dac bitul 7 (terminare transfer bloc) a fost
poziionat n zero sau dac apar tranziii ale biilor de stare echipament periferic,
Bit
0:3
sau s-a iniiat o ntrerupere programabil.
= 1 - inhib generarea unor ntreruperi spre unitatea central de prelucrare

Bit
13
- mod transfer - este scris/citit de unitatea central de prelucrare
= 0 - transfer n mod rafal
= 1 - transfer n mod " furt de ciclu "

Bit
14
- sens transfer este scris/citit de unitatea central de prelucrare
= 0 - se execut citire de la echipamentul periferic i scriere n memorie
= 1 - se execut citire din memorie i scriere la echipamentul periferic

Bit
15
-este scris/citit de unitatea central de prelucrare
= 0 - permite efectuarea transferului de date prin modulul de acces direct la
memorie
= 1 - inhib transferarea efectiv a datelor .

Fiecare ciclu de transfer este executat normal din punctul de vedere al dialogului ntre unitatea
central de prelucrare, modulul de acces direct la memorie i echipamentul periferic, dar far s se
execute operaiile de scriere/citire n memorie.
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. Aceast este o modalitate de a efectua dezactivarea
unora din bistabilii de comenzi/stri prin instruciunea OUT Baza+7, far precauii privind ceilali bii
din registru. Prin executarea unei instruciuni OUT Baza+7 (coninutul registrului RA fiind indiferent),
au loc urmtoarele aciuni:


Echipamentul periferic poate trece n "1" semnalul de ntrerupere extern ca urmare a execuiei acestei
instruciuni.
0 liber) (DMA Bit
6

er nou transf un pentru DMA pregatere 1, bloc) transfer a (terminare Bit
7

7-28

n continuare se va dezvolta programul de I/E ce asigur iniierea i controlul transferului unui
bloc de date. Operaiile de baz ce trebuie efectuate de unitatea central de prelucrare pentru un
transfer de date prin modulul de acces direct la memorie au fost prezentate n paragraful 7.4. 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 CSEP
1
.
Adresa acestui registru este BAZA+1. Registrele CSEP
0
i CSEP
2:3
sunt neutilizate
deocamdat, deoarece nu se specific explicit echipamentul periferic care se conectez prin modulul de
acces direct la memorie.
Exemplu de rutin pentru transferul unui bloc de date prin modulul de acces direct la memorie

;Vom preciza modul n care se desfoar succesiunea operaiilor de transfer prin modulul de acces
direct la memorie bazndu-ne pe prezentarea din paragraful 7.4

;Definirea constantelor
BAZA EQU 0D0H ;adresa de baz a registrelor modulului de acces direct la
memorie
BIT1 EQU 4000H ;SEP
1

BIT6 EQU 200H ;modulul de acces direct la memorie liber
BIT7 EQU 100H ;Terminare transfer
CCDMA EQU 0234H ;modulul de acces direct la memorie ocupat, dezactivare
ntreruperi,
;ntrerupere programabil inactiv
;transfer prin furt de ciclu
;sens transfer=scriere, activare transfer
CCEP EQU --H ;se definete n funcie de echipamentul periferic
conectat
LNG EQU --H ;lungimea blocului de transferat
ADR DW --H ;zona de memorie implicat n transfer

;Operaia 1 - test dac transferul poate fi iniiat
RDMA:
AST: IN BAZA+4 ;citete cuvntul de stare al modulului de acces direct la
memorie
TEST RA,BIT1 ;testeaz CSDMA
1

JNZ ERR ;Echipamentul periferic neoperaional, eroare
TEST RA,BIT6 ;modulul de acces direct la memorie 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 modulul de acces
direct la memorie
OUT BAZA+4 ;se transmite n registrul CSDMA
( )
. prelucrare de central unitatea
de lansat e ntreruper de cerere eventual o anuleaz 1, l programabi e ntreruper Bit
7

7-29
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 pentru echipamentul periferic
i STT:
OUT BAZA+1 ;transfer n CSEP
1
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 echipamentul periferic,
modulul de acces direct la memorie-Memorie prin furt
;de ciclu

Operaiile 7 i 8 -test terminare transfer
TERMT: IN BAZA+4 ;citete cuvntul de stare al modulului de acces direct la
memorie
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 EP
1
, analizeaz
. ;condiiile de terminare transfer

;Dac transferul a avut loc corect, se iniializeaz modulul de acces direct la memorie i echipamentul
periferic
;pentru un nou transfer, dac este cazul

OUT BAZA+7 ;comand de iniializare

;Echipamentul periferic poate fi iniializat prin registrul ITDMA sau prin CSEP
1

De subliniat faptul c transferul propriu-zis se desfoar sub controlul modulului de acces
direct la memorie prin utilizarea resurselor proprii de acces la memorie.

7-30
7.8.2 Arhitectura modulului de acces direct la memorie (DMA)

Dup efectuarea instruciunii cu eticheta STT (start transfer) efectuarea transferului poate fi
rezumat astfel:
Echipamentul periferic 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;
Modulul de acces direct la memorie preia cererea din partea echipamentulului periferic 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 modulul de acces direct la
memorie (atmdma);
Modulul de acces direct la memorie primete acest rspuns i-l transmite mai departe la
echipamentul periferic (atie), dac este cazul, i actualizeaz AMDMA i RCDMA
Echipamentul periferic primete acest rspuns i lanseaz o nou cerere de transfer
la terminarea transferului ntregului bloc, echipamentul periferic este dezactivat prin executarea
instruciunii OUT Baza+7 sau prin trimiterea unei comenzi la adresa Baza+1
Pentru realizarea acestui dialog s-a prevazut un schimb de semnale de date, comenzi i stri
prezentat n Fig 7.14.
a t md ma
sm d m a
cm d m a
cer i n t
s i e
ci e
M o d u lu l
d e acces
d irect la
memo rie
( D M A)
Ech ip amen t
p erifer ic
U n itatea
cen trala
d e
p relu crare
a
calcu lato ru lu i
d id actic
[4]
m o d tm
[4]
[4]
D SM [16]
D C M [16]
MA G [16]
A MD MA [16]
r cz er o
a t i e
ct i e
in i t
epoper at
i n t ex
cs ie
ccie
s en s

Figura 7.14 Schimbul de semnale de date, comenzi i stri ntre unitatea central de prelucrare,
modulul de acces direct la memorie i echipamentul periferic







7-31
cmdma
smdma
atmdma
ccie
csie
intex
epoperat
init
ctie
atie

Semnificaia semnalelor din figur 7.14 este urmtoarea:

- citire memorie de ctre modulul de acces direct la memorie - este activ pe 0 i specific o
cerere de citire a memoriei lansat de modulul de acces direct la memorie;

- scriere memorie de ctre modulul de acces direct la memorie - este activ pe 0 i specific
cerere de scriere n memorie lansat de modulul de acces direct la memorie;

- achitare operaie de transfer cu memoria iniiat de modulul de acces direct la memorie;
Este activ pe 0 i specific terminarea transferului cu memoria cerut de modulul de acces
direct la memorie prin activarea lui cmdma sau smdma; Dup activarea lui atmdma, modulul
de acces direct la memorie va dezactiva cmdma, respectiv smdma. Dup dezactivarea
semnalelor cmdma sau smdma unitatea de comand a memoriei (UCM) va dezactiva pe
atmdma. Semnalele cmdma, respectiv smdma, sunt meninute active pn la activarea
semnalului atmdma (dialog ntrebare rspuns cu interblocare complet);

modtm - mod transfer specific modul de rezolvare a interferenei la memorie


- comand de citire intrare/ieire, reprezint semnale, active pe 0, asociate execuiei
instruciunii IN de la portul (Baza, Baza+1, ..., Baza+3)

- comand de scriere intrare/ieire, reprezint semnale active pe 0, asociate execuiei
instruciunii OUT la portul corespunztor (Baza, Baza+1,..., Baza+3)

- cerere de ntrerupere extern, este activ pe 0 i specific o cerere de ntrerupere primit de
la echipamentul periferic (de exemplu dac transferul nu mai poate continua)

- echipament periferic operaional, activ pe 0 i arat dac echipamentul periferic este
operaional sau nu


- iniializare, este activ pe 0 la execuia instruciunii OUT Baza+7


- cerere transfer intrare/ieire, este activ pe 0 i specific lansarea de ctre echipamentul
periferic a unei cereri de transfer a unui cuvnt. Este meninut activ pn la primirea
rspunsului de achitare atie

- achitare transfer intrare/ieire, este activ pe 0 i specific terminarea operaiei de transfer
cerut de echipamentul periferic prin activarea lui ctie. Dezactivarea lui atie marcheaz
sfritul unui ciclu elementar de transfer nceput prin activarea lui ctie.
)) RCDMA / ( intex CSDMA (modtm
13
=
( )
rafal mod n transfer specific
0 intex i 0 ) RCDMA / ( CSDMA dac 0 = = 0, = =
13
( )
ciclu" de furt " mod n transfer specific
1 intex sau 1 ) RCDMA / ( sau 1 CSDMA dac 1
13
= = = =
7-32
rezero

sens - sens transfer, este identic cu Bit 14 din registrul CSDMA

- registru numrtor egal cu zero, este un impuls de o perioad de tact, activ pe 0 i
specific trecerea n 0 a numrtorului de cuvinte transferate.

DCM[16] - linii de date prin care modulul de acces direct la memorie transmite spre echipamentul
periferic datele citite din memorie;
DSM[16] - linii de date prin care modulul de acces direct la memorie primete datele de la
echipamentul periferic pentru a le scrie n memorie.

n Fig 7.15 se arat diagrama de timp ce ilustreaz intercondiionarea semnalelor de dialog
ntr-un ciclu elementar de transfer (evideniindu-se dialogul de tip ntrebare rspuns cu interblocare
complet).
_______ _______
cmdma [smdma]
________
atmdma
___
atie
___
ctie
Memoria sau EP preia datele
Terminarea unui ciclu de transfer

Figura 7.15 Intercondiionarea semnalelor de dialog ntr-un 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.
7.8.3 Proiectarea unitii de comand a calculatorului didactic n modul transfer al datelor
prin acces direct la memorie (DMA)

Pentru a permite transferul datelor direct ntre memorie i echipamentul periferic, att structura
ct i arhitectura modului de memorie trebuie adaptate noilor cerine.
Schema bloc a modulului de memorie nzestrat cu aceste funcii este prezentat n Fig 7.16.

7-33
______
cmdma
AMDMA
seldi
actAM
DATI
actM
MAG[16] DCM[16]
AM
MPX
UCP
UCDMA
UCM
M
65536 x 16
0
MPX
1
D
C
D
ADR
___
atm
modtm
______
smdma
__
cm
__
sm
______
atmdma
MAG[16] DCM[16]

Figura 7.16 Schema bloc a subsistemului de memorie

Semnalele care apar n plus fa de fig 7.16 au urmtoarea semnificaie:

actAM - selecie adres, semnal de selecie pentru multiplexorul de adrese
= 0 selecteaz AMDMA
= 1 selecteaz AM
= 0 activeaz datele pe MAG
= 1 nu activeaz datele pe MAG

7.8.4 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 modulul de acces direct la memorie i unitatea central de prelucrare ;
rezolvarea concurenei la memorie acordnd prioritate cererilor modulului de acces
direct la memorie;
asigurarea transferului n modurile "furt de ciclu " sau "rafal" cerut de modulul de
acces direct la memorie;
____
actM - activare date de ieire
7-34
realizarea dialogului cu unitatea central de prelucrare i modulul de acces direct la
memorie conform cu diagrama de timp din Fig 7.15;
executarea operaiilor efective de citire/scriere a memoriei.

Algoritmul de funcionare a UCM este prezentat n organigrama din Fig 7.17.
Programul AHPL care descrie modulul de memorie completat cu funciile necesare accesului
direct este prezentat n continuare:

MODULE: Memorie pentru calculatorul didactic
MEMORY: M [65536;16]
COMBUS: MAG [16]


/* se separ citire de la modulul de acces direct la memorie (pas 2), scriere de la modulul de acces
direct la memorie (pas 3), citire de la unitatea central de prelucrare (pas 6), i scriere de la unitatea
central de prelucrare (pas 7), iar dac nu este nici o operaie cu memoria se ateapt */

2. MAG = BUSFN(M;DCD(AMDMA));


/* se citete de la adresa specificat de modulul de acces direct la memorie, se achit accesul din partea
modulului de acces direct la memorie i se menin datele i semnalul de achitare att timp ct comanda
de citire de la modulul de acces direct la memorie este nc activ, dup care se merge la pas 5 */

3. M * DCD(AMDMA) MAG

/* se nscriu n memorie datele de la modulul de acces direct la memorie

/* se achit accesul de la modulul de acces direct la memorie pentru operaia de scriere i se mentine
achitarea att timp ct comanda de scriere mai este nc activ */

/* dac modul de transfer este "furt de ciclu ", se merge la pas 1 unde se aloc un nou acces sau unitii
centrale de prelucrare , iar dac transferul este n mod "rafal" se merge la (pas 2) dac este o nou
operaie de citire sau la (pas 3) dac este o nou operaie de scriere sau se ateapt dac nu este nici o
operaie din partea modulului de acces direct la memorie */
DSM[16] ; modtm ; smdma ; cmdma ; sm ; cm [16]; AM [16]; AMDMA : INPUTS
atdma ; atm DCM[16]; : OUTPUTS
) (2,3,6,7,1
)/ sm cm smdma cmdma sm, smdma cmdma cm, smdma cmdma smdma, (cmdma, 1.
0; atmdma =
/(2,5); cmdma) , cmdma (
) (smdma)/(4
0 atmdma . 4

=
(1,2,3,5)
)/ smdma cmdma modtm smdma, modtm , dma m c modtm (modtm, 5.
7-35


6. MAG = BUSFN (M;DCD(AM));

/* se rezolv accesul de citire de la unitatea central de prelucrare */

7. M * DCD(AM) MAG

/* se rezolv accesul de scriere de la unitatea central de prelucrare */

END SEQUENCE

END
7.8.5 Proiectarea unitii de comand a modulului de acces direct la memorie (UCDMA)
Schimbul de semnale ntre unitatea central de prelucrare, modulul de acces direct la memorie
i echipamentul periferic a fost descris anterior. Pentru a dezvolta algoritmul de funcionare, trebuie
inut seama de principalele funcii pe care trebuie s le execute unitatea de comand a modulului de
acces direct la memorie, dintre care se amintesc:
citirea/scrierea n orice moment a registrelor de I/E asociate modulului de acces direct la
memorie;
generarea semnalelor de comand pentru citirea/scrierea registrelor de I/E asociate
echipamentulului periferic;
actualizarea permanent a strii modulului de acces direct la memorie;
controlul dialogului ntre echipamentul periferic i memorie ;
efectuarea transferului unui bloc de date, independent de unitatea central de prelucrare
;
interaciunea cu unitatea central de prelucrare la iniierea/terminarea transferului unui
bloc de date .
Organigrama de funcionare a unitatii de comand a modulului de acces direct la memorie
este prezentat n Fig 7.17.
Programul AHPL ce descrie funcionarea unitatii de comand a modulului de acces direct la
memorie este prezentat n cele ce urmeaz:

MODULE: UCDMA -Unitate de comand pentru modulul de acces direct la memorie
MEMORY: AMDMA[16]; RCDMA[16]; CSDMA [16]

1. (2,6)

/* se separ aciunile ce trebuie efectuate n paralel, dialogul cu unitatea central de prelucrare (pas 2)
i dialogul cu echipamentul periferic (pas 6)

cm)/(6,1) , cm (
0; atm

=
; ctie , intex [4]; epoperat ; atmdma ; sie ; cie [8]; AIE [16]; DCM : INPUTS
; rczero sens, ; init ; atie [4]; csie [4]; ccie modtm; ; cerint ; mdma s ; cmdma [16]; DSM : OUTPUTS
sm)/(8,1) , sm (
0; atm . 8

=
7-36

/* se separ aciunile de:
-citire/scriere stri/comenzi echipament periferic (pas 3);
-citirea resurselor modulului de acces direct la memorie (AMDMA; RCDMA; CSDMA) (pas 4) ;
-scrierea n resursele modulului de acces direct la memorie (AMDMA; RCDMA; CSDMA) sau
operaie de iniializare (pas 5)
iar dac nu este nici una dintre ele se ateapt la (pas 2) */

3. (ccie ! csie) * (cie, sie) = DCD
0:3
(AIE
5:7
) ;
MAG * cie = DSM ;


/* n funcie de adresa portului i tipul de operaie (citire/scriere) se lanseaz spre echipamentul
periferic o comand de citire (ccie) sau o comand de scriere (csie), iar dac a fost o operaie de citire
de la un port de intrare se conecteaz datele DSM (date de echipamentul periferic) la magistrala MAG
*/

4. MAG = (CSDMA ! AMDMA ! RCDMA) * DCD
4:6
(AIE
5:7
);


/* se conecteaz, pentru citire, pe magistrala MAG coninutul resurselor modulului de acces direct la
memorie ( CSDMA; AMDMA; RCDMA) n funcie de adresa portului de intrare.

5. (CSDMA ! AMDMA ! RCDMA) * DCD
4
(AIE
5:7
) MAG ;
init = DCD
7
(AIE
5:7
) ;
CSDMA
6:7,10
* DCD
7
(AIE
5:7
) 0,1,1 ;

/* se ncarc resursa modulului de acces direct la memorie specificat de adresa din AIE cu coninutul
magistralei MAG sau se iniializeaz registrul de comenzi stri */


/* dac nu a fost lansat o cerere de transfer de I/E din partea echipamentulului periferic se ateapt, iar
dac s-a cerut un transfer, se analizeaz dac transferul de date este dezactivat sau este n curs de
efectuare.

n cazul n care transferul de date este dezactivat sau operaia cu modulul de acces direct la
memorie s-a terminat (transferul blocului de date s-a terminat i a mai venit o cerere din partea
echipamentulului periferic), cererea de transfer se rezolv conform dialogului stabilit, far a transfera
date (pas 7).

) 2 , 5 , 4 , 3 /( ))) (AIE DCD baza (cie ) baza sie cie ( )), (AIE /DCD ( baza sie
)), (AIE /DCD ( baza cie )), (AIE /DCD ( baza sie) ((cie 2.
7 : 5 7 7 : 5 7 : 4
7 : 5 6 : 4 7 : 5 3 : 0


)/(3,2) sie cie sie, (cie
)/(4,2) cie (cie,
)/(5,2) sie (sie,
) 7 , 8 , 6 /( )) CSDMA (CSDMA ctie ), CSDMA (CSDMA ctie , ctie ( . 6 15
7
15
7

7-37
n cazul n care transferul de date este activat i operaia cu modulul de acces direct la memorie
este n curs de rezolvare se efectueaz transferul efectiv de date (pas 8) */

/* se achit transferul de I/E i se menine att timp ct comanda de citire este activ */

cmdma = sens;
atie = atmdma;

/* se activeaz comanda de lucru cu memoria n funcie de sensul transferului. Pentru a nu aprea o
decalare (de maxim o perioada de tact) ntre achitarea cererii de acces de la memorie i achitarea cererii
de transfer ctre echipamentul periferic, ceea ce ar putea duce la un transfer eronat, se face conexiunea
atie = atmdma */


(ctie ) / (9)

/* se achit cererea de transfer I/E */

10. AMDMA *( /RCDMA) INC (AMDMA) ;

RCDMA * ( /RCDMA) DEC(RCDMA) ;

(6)

/* dac contorul de cuvinte nu a ajuns la zero, se actualizeaz adresa i contorul. n caz contrar se
indic terminarea transferului */

END SEQUENCE


sens = CSDMA
14
;

CSDMA
0:3
= epoperat
0:3


)/(7,6) ctie (ctie,
0; atie . 7

=
; sens smdma 8. =
)/(8) atmdma (
0; atie 9. =
0; )) /RCDMA ( (CSDMA * CSDMA
/RCDMA; rezero
6 7

=
index; ) /RCDMA ( CSDMA modtm
13
=
; 0 ) CSDMA )) epoperat /SEP (
rczero) (CSDMA ) CSDMA CSDMA ( (((intex * cerint
11
3 : 0 3 : 0
6
6
10
+

7-38
END

/* modul de transfer cu memoria este poziionat n "mod rafal" (modtm=0) dac n cuvntul de
comand al modulului de acces direct la memorie s-a specificat CSDMA
13
=0. Rmne n acest mod,
att timp ct mai sunt cuvinte de transferat i nu s-a facut o cerere de ntrerupere extern de la
echipamentul periferic (intex=0).

Indiferent de modul de transfer programat, modul de lucru va fi trecut n "mod furt de ciclu" la
sfritul transferului de bloc s-au dac s-a cerut o ntrerupere extern.
Cererea de ntrerupere cerint este activat dac:
s-a specificat lucrul n ntreruperi (CSDMA
11
=0) i a venit o cerere de ntrerupere
extern intex, sau
modulul de acces direct la memorie nu este ocupat cu un transfer de date i s-a cerut o
ntrerupere programabil (CSDMA
10
=0 i CSDMA
6
=0), sau
modulul de acces direct la memorie este n curs de transfer bloc i contorul de cuvinte
transferate a ajuns la zero, sau
unul dintre echipamente periferice conectate prin modulul de acces direct la memorie
i-a schimbat starea din operaional n neoperaional */


7-41
cmdma
______
atmdma=0
DCM=BUSFN (M; DCD ( AMDMA )
cmdma
nu
nu
nu
da da
da
nu nu nu da
smdma
___
atm=0
______
atmdma=0
MAG=BUSFN(M;DCD(AM))
M*DCD( AMDMA ) <--DSM
smdma
nu
da
da
modtm
cmdma smdma
mod 1
furt de ciclu
mod rafala
3.
7. 6.
8.
4.
2.
1.
da
da
cm
cm
nu
nu
___
atm=0
M*DCD(AM)<--MAG
6.
da
da
sm
sm

Figura 7.17
Organigrama de funcionare a UCM



7-42
da
da
da
da
nu
nu
1
1
0
0
nu
nu
_______
CSMA
7
CSDMA
15
ctie
ctie
___
atie = 0
___
atie = 0
_____
smdma = sens
_____ ___
cmdma = sens
atie = atmdama
atmdma
ctie
/ RCDMA
_____
rczero = 0
CSDMA
7
*CSDMA
6
=0
AMDMA<--INC(AMDMA)
RCDMA<-DCR(RCDMA)
dialog cu UCP
secventa paralela
dialog cu EP
MAG = (CSDMA ! AMDMA ! RCDMA)
* DCD
4:6
(AIE
5:7
)
(CSDMA ! AMDMA ! RCDMA) *
(DCD
4:6
(AIE
5:7
) <-- MAG
INIT = DCD
7
(AIE
5:7
)
CSDMA
6,7,10
* DCD
7
(AIE
5:7
)
<-- 0,1,1
(ccie ! csie) * (cie,sie) = DCD
0:3
(AIE
5:7
)
MAG * cie = DSM
__________________
CSDMA
7
= terminare transfer bloc
_______
CSDMA
15
= activare / dezactivare transfer
_______
CSDMA
6
= DMA liber
(cie sie) BAZA+0:3
nu
nu
nu
nu
nu
da
da
cie sie
cie
BAZA+4:6
cie
BAZA+4:6
cie
nu
sie
2.
10.
9.
8.
2.
2.
7.
5.
4.
3.
1.

Figura 7.2

7-43

7.9 Interfaa serial standard

La sistemele de calcul se cupleaz o mare varietate de echipamente periferice. Aceste
echipamente, fiind produse de diverse firme, nu sunt complet compatibile ntre ele ca mod de dialog i
transfer informaie, dei din punct de vedere logic realizeaz aceleai funciuni. Avnd n vedere
incompatibilitatea existent a aprut necesitatea unei standardizri i unificri a echipamentelor de
transmisie a datelor. Au fost create organizaii internaionale c de exemplu: CCITT (Comitetul
Consultativ Internaional pentru Telefonie i Telegrafie), ISO (Organizaia Internaional de
Standardizare), etc... , care fac recomandri referitoare la unificarea echipamentelor. Transferul de date
ntre echipamentul periferic i calculator se poate face fie paralel (echipamentele periferice descrise
anterior), fie serial. Transferul serial asigur o fiabilitate mare transferului (n special la distan) dar
are dezavantajul c necesit interfee mai complexe i limiteaz viteza de transfer. n cele ce urmeaz
se va prezenta proiectarea unei interfee seriale standard.
7.9.1 Norme de transmisie serial a informaiei
ntre dou dispozitive cuplate printr-o 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 a asigura ns un dialog privind comunicaia n ceea ce privete transmiterea de comenzi
i stri mai sunt necesare i alte linii de interconectare. Dialogul pentru realizarea transmisiei seriale
asincrone s-a impus pn la nivel de conector (conector de 25 pini) fiind adoptat de standardele
ISO2110, EIA RS-232-C, CCITT V.24. Principalele semnale ale interfeei EIA i CCITT V.24 sunt
prezentate n tabelul 7.2.
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, iar
"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 se deosebete de oricare din cele dou nivele de tensiune
pentru "0" i "1"
asigur imunitatea la zgomot
Transmiterea datelor poate avea loc i sub form de nivele de curent continuu, aceast opiune
fiind cunoscut sub numele de transmisie cu "bucl de curent".
Modul de interconectare a dou dispozitive prevzute cu interfaa serial este prezentat n Fig 7.20.


7-44


DISP 2 DISP 1
DSR(107) 6
6 DSR(107)
20 DTR(108)
DTR(108) 20
4 RTS(105)
5 CTS(106)
CTS(106) 5
RTS(105) 4
2 TxD(103)
3 RxD(104)
RxD(104) 3
TxD(103) 2
1,7 GND(101,102) GND(101,102) 1,7
Semnale de
comanda/stare
Semnale
transmisie/receptie
date

Figura 7.20
Interconectarea a dou dispozitive seriale asincrone

De notat faptul c 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. S-au standardizat
urmtoarele rate de transfer: 75; 110; 150; 300; 600; 1200; 2400; 4800; 9600; 19200; 38400 bauds, .
Datorit faptului c 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 este prezentat n Fig 7.21.

Tabelul 7.2 Principalele semnale ale interfeei EIA RS-232-C/CCITT V.24
Nr.
pin
Semnale
EIA RS-
232-C
Semnale
CCITT
V.24
Descriere
1 AA 101 GND-Nul (mpmntare)
7 AB 102 GND-Semnal referin/Retur comun (mas electric)
2 BA 103 TxD(Transmiter Data)-Transmisie date
3 BB 104 RxD(Receiver Data)-Recepionare date
4 CA 105 RTS(Request To Send) - Cerere pentru emisie
5 CB 106 CTS(Clear To Send) - Gata de emisie
6 CC 107 DSR(Data Set Ready) - Conectat la linie
20 CD 108 DTR(Data Terminal Ready) -Conecteaz la alinie
22 CE 125 RI(Ring Indicator)
8 CF 109 RLSD(Receive Line Signal Detector)
21 CG 110 SQD(Signal Quality Detector)
23 CH 111 DSRS-DTE(Data Signal Rate Selector)
25 CI 112 DSRS-DCE(Data Signal Rate Selector)
24 DA 113 DTE transmiterea semnalului de timing (DTE)
15 DB 114 DTE transmiterea semnalului de timing (DCE)
17 DD 115 DTE recepionarea semnalului de timing (DTE)
14 SBA 118 STD Secondary Transmitted Data
16 SBB 119 SRD Secondary Received Data
19 SCA 120 RTSS (pe calea secundar)
13 SCB 121 CTSS
12 SCF 122 RLSDS

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

Figura 7.3
Structur logic a unui cuvnt de date

Lungimea cuvntului poate fi de 5, 6, 7 sau 8 bii.
Adaptarea nivelelor de la semnal TTL - semnal CCITT V.24 se poate realiza prin utilizarea unor
circuite integrate MC1488, respectiv MC1489 ca n Fig 7.22.

linie de tansmisie
MC1488
-12V
+12V
7404
7404
MC1489
RxD(TTL) TxD(TTL)

Figura 7.4
Adaptarea de nivel TTL -standard CCITT V.24

Pentru a asigura o funcionare fiabil a automatului de recepie n cadrul interfeei seriale, biii de
informaie se vor prelua la un moment de timp ct mai aproape de mijlocul bitului, Fig 7.23.

START BIT1
preluare bit 1
preluare bit start

Figura 7.5
Momentele de preluare a biilor

Pentru a stabili momentul de timp cnd se vor prelua biii se va aplica, pentru automatul de recepie, o
frecven de 16 ori mai mare. Prin contorizarea perioadelor de tact se poate ajunge aproape de mijlocul
biilor.
7.9.2 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);

7-46
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;

Bazndu-ne pe caracteristicile prezentate se poate stabili o schem bloc, ca n Fig 7.24.

RDT
RTRS
CSSIN
AIE
Unitate
Comanda
SIN
RDR
RRS
MAG[16]
TxD
RTS CTS DTR DSR
RxD

Figura 7.6 Schema bloc a interfeei seriale

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.

Structura cuvntului de comand/stare este prezentat n Fig 7.25.

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

7-47
= 10 - " " " de 7 bii
= 11 - " " " de 8 bii.

= 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
s-l 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
____
actint - activare / dezactivare ntrerupere: scris/citit de unitatea central de prelucrare

7-48
= 1 a fost detectat o eroare de ritm. Unitatea central de prelucrre nu a preluat
cuvntul recepionat i ntre timp s-a 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).
EP
PE
OE
FL
STP
DSR
CSSIN
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
resint
actint
L1
L2
RTS
DTR
RxRDY
TxRDY
reser

Figura 7.7

Structura cuvntului de date este prezentat n fig. 7.26.
7 8 15 0

Figura 7.8
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.

DATSIN EQU 0F6H ; adresa porturilor de I/E date
STSIN EQU 0F7H ; adresa porturilor de intrare stri
COMSIN EQU 0F7H ; adresa portului de ieire comenzi
CDINIT EQU 447FH ; comand de iniializare interfa
; DTR-Bit
15
=1 - conecteaz la linie
; RTS-Bit
14
=1 - cerere pentru emisie

7-49
; L2,L1-Bit
12:13
=11 - lungime cuvnt 8 biti

; reseror-Bit
9
=1 -terge eventualele erori
; PE,OE,FE
; EP-Bit
5
=1 -paritate par
; STP-Bit
1
=1 -se lucreaz cu 2 bii de SMP

MOV RA,CDINIT ; se iniializeaz interfaa
OUT COMSIN ;
Obs: Comanda de iniializare se execut o singur dat n programul utilizatorului i este plasat n
afara rutinelor de recepie/transmisie.
;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)
JE ERRCI ;dispozitiv neconectat la linie eroare
TEST RA,200H ;analizeaz RxRDY
JE CI ;nu a recepionat caracter ateapt
TEST RA,3800H ;a recepionat caracter i se analizeaz
;dac este corect (FE,OE,PE=0?)
JNE ERRCI
IN DATSIN ;preia caracterul
RET
ERRCI: ;trateaz eventuala eroare

;Rutina de transmisie cuvnt la interfaa serial standard
;CO-CONSOLE 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)
JE ERRCO ; dispozitiv neconectat la linie, eroare
TEST RA,100H ; se analizeaz TxRDY
JE CO ; dac are cuvnt de transmis, ateapt
MOV RA,RB ;
OUT DATSIN ; transmite cuvntul spre interfa
RET
ERRCO: . ; trateaz eventuala eroare
Schimbul de informaii ntre unitatea central de prelucrare, interfaa serial i echipamentul periferic
este prezentat n Fig 7.27.
_____
; actint-Bit
11
=1 - dezactivare ntrerupere

7-50
Pe baza caracteristicilor interfeei seriale, a cuvntului de comenzi/stri precum i schimbului
de informaie ntre unitatea central de prelucrare, interfaa imprimentei i echipamentul periferic se
poate descrie funcionarea interfeei seriale. Organigrama general se prezint n Fig 7.28.
Unitatea
central de
prelucrare a
calculatorului
didactic
MAG[16]
AIE[8]
Echipamentul
periferic
Interfata
seriala
standard
SIN
CTS 5
RTS 4
DSR 6
DTR 20
RxD 3
TxD 2
GND 17
____
cerint
__
sie
__
cie
5 CTS
4 RTS
6 DSR
20 DTR
3 RxD
2 TxD
17 GND

Figura 7.9 Semnalele de dialog ntre unitatea central de prelucrare, interfaa serial i
echipamentul periferic
17. 5.
4. 3.
2.
1.
__
sie(F6F7)
da
nu
da
nu
TxRDY0
CSSINMAG RDTMAG
1(date)
transmisie receptie
0(comenzi)
F6
__
sie
__
cie(F6F7)
da
nu
da
nu
RxRDY0
MAG=CSSIN MAG= RDR
1(date)
0(stare)
F6
__
sie

Figura 7.10
Organigrama de descriere a funcionrii interfeei seriale

7-51
7.
6.
5.
0
1
receptie
____
RRS9T0
____
FERxD
____
FERxD
stabileste indicator PE
deplaseaza RRS
NRM164T0
OE RxRDY
RxRDY 1
RDR RRS
RxRDY0
RxD
0
Da
Nu
NRM16=7
1
RxD
16.
15.
14.
13.
12.
11.
10.
9.
8.
0
0
Da
Nu
NRM16=7
1 bit 5 sau 6
sau 7 sau 8 =0
Da
Nu
NRM16=7
(2 biti stop) 1
__
STPFE
Da
Nu
NRM16=7

Figura 7.11 continuare
Organigrama de descriere a funcionrii interfeei seriale
(17. TxRDY 1)

7-52
19.
18.
17.
0
1
transmisie
transfera RDT in RTS
atasand
bit start si bit paritate
NRBITINC(NRBIT)
deplaseaza RTRS
NRM164T0
NRBIT4T0
TxRDY1
TxRDY0
RTRS
9
1
___
TxRDYCTS
22.
9.
21.
20.
0
Da
Da
Nu
NRM16=15
Nu NRBIT=
8,9,10.11
1
__
STPFE
Da
Nu
NRM16=7

Figura 7.12 continuare
Organigrama de descriere a funcionrii interfeei seriale

7-53

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 */


/*se ateapt o aciune din partea unitii centrale de prelucrare (pas 2) sau */
/*se rezolv cererea de scriere date/comenzi din partea unitii centrale de prelucrare (pas 3)*/
/*sau se trateaz cererea de citire date/stri din partea unitii centrale de prelucrare (pas 4) */

3. (RDT ! CSSIN) * (F6,F7) MAG;
TxRDY * F6 0
3.1
/* se ncarc RDT sau CSSIN cu coninutul magistralei MAG n funcie de adresa portului de
ieire. Dac a fost transfer de date se poziioneaz indicatorul TxRDY = 0 specificnd astfel
ncrcarea registrului RDT i se ateapt terminarea comenzii de scriere */

4. MAG=(RDR ! CSSIN) * (F6,F7);
RxRDY*F6 0;

/* se conecteaz la magistrala MAG datele din registrul RDR i cuvntul de stare n funcie de
adresa portului de intrare. Dac a fost citire date se indic preluarea datelor din RDR prin
poziionarea indicatorului RxRDY=0 */
/* se ateapt terminarea comenzii de citire */
/* Seciunea de recepie cuvnt */
/* De menionat c seciunea de recepie pas5 - pas17 lucreaz cu generatorul de tact RxC care
este de 16 ori mai rapid dect rata de transfer a datelor */

5. RxRDY 0
/* se iniializeaz indicatorul gata recepie.
; de notat faptul c prin acest pas se trece o singur dat la punere sub tensiune sau la reset
general */

6. NRM16 4T0;
)/(3,4,2) F7 F6 ( cie sie F7), (F6 cie F7), (F6 sie ( 2.
2) sie)/(3.1, , sie (
cie)/(4,2) , cie (
; 9T0 RRS

7-54
(RxD) / (6)

/* se iniializeaz numrtorul modulo 16 utilizat la poziionarea pe mijlocul biilor n
momentul prelurii bitului curent.
Pentru a evita utilizarea unui registru contor de bii se utilizeaz un artificiu ce const n
ncrcarea n registrul RRS a valorii 111...111B. Terminarea recepionrii cuvntului se
realizeaz prin analiza propagrii bitului de start n poziia 6,7,8,9 corespunztor lungimii
cuvntului de date de 5,6,7,8 bii.
Se ateapt bitul de start (RxD = 0) */


/* se ateapt mijlocul bitului de start i se face o verificare dac nu a fost un bit de start fals */

8. RRS RxD,RRS
0:7


/* se preia bitul curent de pe linia de recepie */


/* se ateapt poziionarea pe mijlocul bitului urmtor i se verific dac este ultimul bit de
date. Dac da, se continu iar dac nu se merge la pas 8 pentru preluare bit curent */

10. PE EP ( /(RxD,((RRS
0:4
! RRS
0:5
! RRS
0:6
! RRS
0:7
)*DCD(L2,L1))))

/* se poziioneaz indicatorul de eroare paritate n funcie de :
-paritatea biilor din RRS
-bitul de paritate recepionat
-tipul de paritate cu care se lucreaz */

11. (/(NRM16 4T7))/(11)
/* se ateapt mijlocul bitului de stop */


/* dac bitul de stop nu este prezent pe linia de recepie se indic eroare de bit de stop (framing
error FE) i se analizeaz cu ci bii de stop se lucreaz (STP=0 cu 1 bit iar STP=1 cu 2 bii )*/

13. (v / (NRM16 4T7)) / (13)

/* se ateapt mijlocul celui de al doilea bit de stop */


/* se poziioneaz bitul de FE n mod corespunztor */

15. OE RxRDY;
)/(7,6,8) RxD ( 4T7) /(NRM16 (RxD), 4T7) /(NRM16 4T7), /(NRM16 ( . 7
L1)/(9,8) DCD(L2, * )) RRS ! RRS ! RRS ! (RRS 4T7) /(NRM16 4T7), /(NRM16 ( . 9
8 7 6 5

RxD FE 12.
FE)/(15) STP (
RxD FE 14

7-55
RDR RRS

/* dac nu s-a preluat de ctre unitatea central de prelucrare cuvntul anterior se indic eroare
de ritm (OE ); */
/* se transfer registrul recepionat n registrul de date de recepie */

16. RxRDY 1;
(6)

/* se indic recepionarea unui cuvnt prin poziionarea indicatorului gata recepie i se merge
la ateptarea unui nou bit de start */
/* Seciunea de transmisie
/* Seciunea de transmisie date pas 17- pas 22 lucreaz cu generatorul de tact TxC , care este de
16 ori mai rapid dect rata de transfer date */

17. TxRDY 1 ;
RTRS
9
1

/* se face iniializarea seciunii de transmisie i anume: indicatorul de transmisie gata TxRDY
i ultimul bit din RTRS pentru a indica "linie n ateptare " */

18. NTM16 4T0;
NRBIT 4T0

/* dac unitatea central de prelucrare nu a iniiat o transmisie sau dispozitivul cu care este
cuplat nu e gata de emisie se ateapt; de asemenea se iniializeaz NTM16 i NRBIT */

19. RTRS ((1,1,1,EP( /RDT
0:4
),RDT
0:4
) ! (1,1,EP(/RDT
0:5
),RDT
0:5
) !
(1,EP(/RDT
0:6
),RDT
0:6
) ! (EP(/RDT
0:7
),RDT
0:7
)*DCD(L2,L1)),0;
TxRDY 1

/* se transfer RDT n registrul RTRS , atand bitul de start, biii de date (5, 6, 7, 8), bitul de
paritate */
/* se face o aliniere la dreapta cu introducere de " 1 " n biii neutilizai */
/* se indic eliberarea registrului RDT ( TxRDY <- 1 ), ceea ce nseamn c unitatea central
de prelucrare poate trimite un nou caracter */

20. ( / (NTM16 4T15 ) / (20)

/* se ateapt terminarea cuantei de timp ct bitul curent este conectat la linia de transmisie */

21. RTRS 1, RTRS
0:8

NRBIT INC(NRBIT);
((v/(NRBIT4T8)!/(NRBIT4T9)!/(NRBIT4T10)!/(NRBIT4T11))*DCD(L1,L2))/ (20)

/* se conecteaz la linie urmtorul bit, se incrementeaz contorul de bii i se analizeaz dac
s-a terminat transmisia */
/* dac da, se analizeaz dac trebuie s se transmit i al doilea bit de stop */

)/(18) CTS (TxRDY

7-56


/* se transmite i al doilea bit de stop dup care se revine la nceputul seciunii de transmisie */

END SEQUENCE

END
2,18) STP)/(18,2 4T15) /(NRM16 STP, 4T15) /(NTM16 , STP ( . 22
0 RxRDY) TxRDY ) DSR ((DSR actint * cerint
CCSIN D


7-43

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