Está en la página 1de 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. 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-1

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-2

MEMORIE UCP

Interfata de intrare/iesire

Echipament periferic

Suport exterior

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-3

un singur cuvnt sau blocuri de lungime variabil. - 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 - La un terminal cu tub catodic, afiarea se poate face cuvnt cu cuvnt de lungime fix sau pagin cu pagin. Un singur cuvnt sau blocuri - Prelucrarea datelor de la un cititor de band perforat se poate realiza n de lungime variabil 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-4

Transferul unui singur cuvnt

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-5

Initializare t ransfer blo c d ate

A ct iveaza E P S istem o p erare R u t ina t ratare ero are


Nu

C itire stare E P

E P o p eratio nal
Da

C o m and a citire C itire stare E P


Nu

E ventu ale p relu crari

E P o p eratio nal
Da

D ate d isp o nibile?


Da Nu

Nu

T ransfer co rect?
Da

R u tin a p en tr u citir e cu va n t

P relu are d at e
Nu

T ransfer blo c term inat?


Da

D ezactiveaza E P

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

7-6

I n it ia liz a r e t r a n s fe r b lo c d a t e

A c t iv e a z a E P S is t e m o p erare R u t in a tratare ero are


Nu

C it ir e s t a r e E P

E P o p e r a t io n a l
Da

T r a n sfe r d a t e C o m a n d a sc r ie r e C it ir e s t a r e E P
Nu

P r e g a t ir e n o u c u v a n t d in b lo c

E v e n t u a le p r e lu c r a r i

EP o p e r a t io n a l?
Da Nu

O p e r a t ie t e r e m in a t a ?
Da Nu

R u tin a a p e n tr u s c r ie r e c u v a n t

T r a n sfe r co rect?
Da

T r a n sfe r b lo c t e r m in a t ?
Da

Nu

D e z a c t iv e a z a E P

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

7-7

In itializ ar e tran s fer b lo c d a te

A ctiv e aza EP S istem o p er ar e R u tin a tratare ero are


Nu

C itire star e EP

EP o p eratio n al
Da

O p er atie ter m in ata?


Da Nu

Nu

Pr eg atir e n o u cu v an t d in b lo c

T ra n sfer c o re ct?
Da

E v en tu ale p r elu crari

R ut in a p en tru scri ere cu v an t

T ran s f er d ate C o m an d a s cr iere


Nu

T ra n sfer b lo c term in at?


Da

D eza ctiv eaza E P

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

7-8

PROGRAM PRINCIPAL

Initializare transfer bloc Activeaza EP

Rutina de tratare intrerupere

Sistem operare Rutina tratare eroare


Nu

Citire stare EP EP operational?


Da

Sistem operare Rutina tratare eroare Salvare context

Comanda citire

Intrerupere de la EP

Citire stare EP EP operational?


Da Nu

Transfer corect?
Da

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

Refacere context

Figura 7.3 a) Succesiunea operaiilor pentru transferul unui bloc de date n ntreruperi; citirea unui bloc de date

7-9

PROGRAM PRINCIPAL

Initializare transfer bloc Activeaza EP

Rutina de tratare intrerupere

Sistem operare Rutina tratare eroare


Nu

Citire stare EP EP operational?


Da Transfer date Comanda scriere

Sistem operare Rutina tratare eroare Salvare context Citire stare EP EP operational?
Da Nu

Intrerupere de la EP

Transfer corect?
Da

Nu

Preluare date
Nu

Transfer bloc terminat?


Da

Pregatire nou cuvant din bloc


Transfer date Intrerupere de la EP Comanda scriere

Dezactivare EP

Refacere context

Figura 7.3 b) Succesiunea operaiilor pentru transferul unui bloc de date n ntreruperi; scrierea unui bloc de date 7.4 Modaliti de transfer al 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-10

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-11

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-12

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-13

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-14

registrele de I/E sunt conectate la magistrala MAG a unitii centrale de prelucrare; fiecare interfa i recunoate adresele asociate; datele sunt structurate pe cuvinte; ca modalitate de transfer se alege transferul programat (transferul prin modulul de acces direct la memorie se trateaz ulterior) ; 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. UCIi i respectiv UCIe 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 DIEe sau registrul de comenzi CIEi respectiv i CIEe; momentul cnd datele din registrul de date DIEi sau din registrul de stare SIEi 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).

4. 5. 6. 7.

7-15

EPi
stari comenzi comenzi

EPe
stari

UCIi
date Out com

UCIe
Out com Out date date

DIEi
IN stare

SIEi
IN data

CIEi AIE

CIEe
IN stare

SIEe

DIEe

RG

UAL

cie sie

Unitate comanda

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-16

RCMT RDATE

celulei n care unitatea central de prelucrare nscrie un nou caracter ; - 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 ; - registrul de date al memoriei tampon n care se citete caracterul ce se va transfera imprimantei.
MT RSMT RCMT Caractere ce trebuiesc transferate imprimantei

RDATE MAG

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.
__ cie __ sie ___ tipc _____ avansr

UCP calculator didactic

____ cerint MAG[16]

Interfata

_____ retcar _____ opterm

Imprimanta

AIE[8]

defal cdes hl hr
DATE[8]

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-17

liniile DATE. Este activ pe "0". _____ avansr _____ retcar _____ opterm defal cdes -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". - semnal ce comand ntoarcerea carului de tiprire la nceput de rnd. Acest semnal corespunde identificrii caracterului CR = 0DH . Este activ pe "0".

-rentoarcerea carului de tiprire

hl rl DATE

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

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

Figura 7.7 Structura cuvntului de comenzi / stri este prezentata n Fig.7.8.


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

operational hl rl defal cdes

actint resint edis

Figura 7.8

7-18

hl rl defal cdes TACT

operational D Q

CLK

Bit0

Bit1

Bit2

Bit3

Bit4

Bit7

Bit10

Bit11

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

= 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 OUT RA,30H RCSI ;se comand lucrul n transfer programat ;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-20

MODULE: INTERFATA IMPRIMANTA MEMORY: MT [256;8] ; RDATE [8] ; RSMT [8];RCMT [8]; MEMORY : ulcit; actint; cerint; edis; operaional INPUTS : cie; sie; opterm; defal; cdes; rl; hl; AIE[8] OUTPUTS : cerint; tipc; avansr; retcar; DATE [8] 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 */ 2. (cie FB, sie FB, cie sie FB)/(3,4,2)

3. MAG 0:4 , MAG 7 , MAG11 = operational, hl, rl, defal, cdes, edis, actint;
(cie, cie) / (3,2)

4. (actint , resint) MAG11 , MAG10 ;


4.1 (sie, sie) / (4.1,2)

/* urmeaz secvena de scriere n memoria tampon i citire din memoria tampon pentru imprimare date */
5. (sie FA) / (9)

/* 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) MAG8: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 */
9. (opterm ulcit ( /RCMT RSMT)) /(5)

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

7-21

10. RDATE BUSFN (MT; DCD(RCMT)) ; RCMT INC(RCMT) ;


cerint * (edis actint) 0 ulcit 1

edis 0 (retcar ! avansr ! tipc ) * ( /(RDATE 0DH), /(RDATE 0AH), ( /(RDATE 0DH)) ( /(RDATE 0AH))) 0; (5)
END SEQUENCE cerint * (actint (operational (hl rl defal cdes))) 0;
operational hl rl defal cdes;

END

7-22

1 5 da 6 MT*DCD(RSMT) < MAG RSMT<-- INC(RSMT) ulcit <-- 0 9 7 sie nu 8 nu RCMT=RSMT 8 da ___ edis <-- 1 10 da nu 9 opterm nu da 0 9 ulcit 1 da RCMT=RSMT nu nu 4 sie FA nu

secventa paralela

nu

cie FB

da

sie FB da 3 MAG = RCS stare da sie da cie nu

RCS comanda <-- MAG

RDATE < --BUSFN(MT,DCD(RCMT)) RCMT<-- INC(RCMT) ulcit <-- 1 ____ ___

cerint*(actintedis)<--0 ____ edis<---0 10 RDATE caracter 10 10 _____ avansr <-- 0 10 CR CR

____ tipc <-- 0

____ retcar <-- 0

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-23

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 CSEP0 Registrul de comenzi/stri pentru EP 0 Baza +1 CSEP1 Registrul de comenzi/stri pentru EP 1 Baza +2 CSEP2 Registrul de comenzi/stri pentru EP 2 Baza +3 CSEP3 Registrul de comenzi/stri pentru EP 3 Baza +4 CSDMA Registrul de comenzi/stri pentru modulul de acces direct la memorie Baza +5 AMDMA Registrul adresare memorie pentru modulul de acces direct la memorie Baza +6 RCDMA Registrul contor (lungime bloc) pentru modulul de acces direct la memorie Baza +7 ITDMA Registrul comenzi pentru iniializarea modulului de acces direct la memorie - Registrele CSEP0: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-24

- 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.
EP cu interfata
c om enz i stari

UCDMA
c om enzi stari

CSDMA AIE

RCDMA

AMDMA

MUX

DC M[16 ]

DsM [16 ]

UAL RG AM MUX M
VC M

MUX

MAG[ 16 ]

Unitate comanda

Figura 7.12 Schema bloc a calculatorului didactic cu modul de acces direct la memorie (DMA)

7-25

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

SEP0 SEP1 SEP2

activare/dezactivare transfer sens transfer mod transfer activare/dezactivare intrerupere

SEP3 intrerupere programabila DMA liber intrerupere externa terminare transfer bloc

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. Bit0:3 SEP 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 CSDMA0:3 pot primi alt semnificaie. DMA liber - 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.
Terminare transfer bloc - 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 .
7-26

Bit6

Bit7

=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. - este asociat echipamentului periferic i citit de unitatea

Bit9

intrerupere externa 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 Bit10
intrerupere programabila - este scris/citit de unitatea central de prelucrare =0 - se lanseaz o cerere de ntrerupere prin program, cerere ce va fi efectiv dac Bit6 = 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. activare / dezactivare intrerupere - 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, Bit0:3 sau s-a iniiat o ntrerupere programabil. =1 - inhib generarea unor ntreruperi spre unitatea central de prelucrare

Bit11

Bit13

- mod transfer - este scris/citit de unitatea central de prelucrare =0 - transfer n mod rafal =1 - transfer n mod " furt de ciclu " - 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
activare /dezactivare transfer -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 .

Bit14

Bit15

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:
7-27

Bit 6 ( DMA liber ) 0 Bit 7 (terminare transfer bloc) 1 Bit10 (intrerupere programabila) 1

(pregateste DMA pentru un nou transfer; anuleaza o eventual cerere de intrerupere lansata de unitatea central de prelucrare). Echipamentul periferic poate trece n "1" semnalul de ntrerupere extern ca urmare a execuiei acestei instruciuni. 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 CSEP1. Adresa acestui registru este BAZA+1. Registrele CSEP0 i CSEP2: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 BIT1 BIT6 BIT7 CCDMA EQU EQU EQU EQU 0D0H 4000H 200H 100H 0234H ;adresa de baz a registrelor modulului de acces direct la memorie ;SEP1 ;modulul de acces direct la memorie liber ;Terminare transfer ;modulul de acces direct la memorie ocupat, dezactivare ntreruperi, ;ntrerupere programabil inactiv ;transfer prin furt de ciclu ;sens transfer=scriere, activare transfer ;se definete n funcie de echipamentul periferic conectat ;lungimea blocului de transferat ;zona de memorie implicat n transfer

CCEP LNG ADR

EQU EQU DW

--H --H --H

;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 CSDMA1 JNZ ERR ;Echipamentul periferic neoperaional, eroare TEST RA,BIT6 ;modulul de acces direct la memorie ocupat, ateapt JNZ AST

7-28

;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 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 CSEP1 i start transfer ;Operaia 6 - transferul propriu-zis al blocului de date are loc ;far intervenia unitii centrale de prelucrare pe baza unui dialog ntre echipamentul periferic, modulul de acces direct la memorie-Memorie prin furt ;de ciclu Operaiile 7 i 8 -test terminare transfer TERMT: IN BAZA+4 TEST JZ TEST JZ ERR: GATA: . . IN BAZA+1 RA,BIT7 GATA RA,BIT1 TERMT ;citete cuvntul de stare al modulului de acces direct la memorie ;transfer bloc terminat? ;da, gata transfer ;test echipament periferic operaional ? ;da, ateapt terminare transfer ;rutina de tratare a erorilor ;citete starea EP1, 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 CSEP1 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-29

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.
c ie s ie c e r in t cm dm a

ccie
c s ie

[4 ] [4 ]

in t e x M o d u lu l d e acces d ire c t la m e m o rie (D M A )

U n ita te a c e n tra la de p re lu c ra re a c a lc u la to ru lu i d id a c tic

e p o p e r a t [4 ]
in it c tie a tie
sen s

sm d m a a tm d m a
m o d tm A M D M A [1 6 ]

E c h ip a m e n t p e rife r ic

rczero
M A G [1 6 ]

D C M [1 6 ] D S M [1 6 ]

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-30

Semnificaia semnalelor din figur 7.14 este urmtoarea: cmdma - 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; smdma - 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;

atmdma - 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 (modtm = CSDMA13 intex ( / RCDMA))
= 0 dac CSDMA13 = 0, ( / RCDMA) = 0 i intex = 0 specific transfer n mod rafal = 1 dac CSDMA13 = 1 sau ( / RCDMA) = 1 sau intex = 1 specific transfer n mod " furt de ciclu"

) )

ccie

- 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)

csie intex

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

init ctie

- 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.
7-31

atie

sens rezero

- 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).
___

ctie
_______ _______

cmdma [smdma]
________

atmdma
___

atie Terminarea unui ciclu de transfer Memoria sau EP preia datele

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-32

DCM[16]

MAG[16] actM

AMDMA 0 AM 1 MPX ADR D C D M UCM 65536 x 16

______ cmdma ______ smdma ______ atmdma modtm __ cm __ sm ___ atm actAM DATI MPX DSM[16] MAG [16] seldi UCP UCDMA

Figura 7.16 Schema bloc a subsistemului de memorie

Semnalele care apar n plus fa de fig 7.16 au urmtoarea semnificaie: actAM ____ actM - selecie adres, semnal de selecie pentru multiplexorul de adrese =0 selecteaz AMDMA =1 selecteaz AM - activare date de ieire =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;
7-33

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: MEMORY:
INPUTS : OUTPUTS : COMBUS:

Memorie pentru calculatorul didactic M [65536;16]


AMDMA [16]; AM [16]; cm; sm; cmdma; smdma; modtm; DSM[16] DCM[16]; atm; atdma MAG [16]

1. (cmdma,smdma, cmdma smdma cm,cmdma smdma sm, cmdma smdma cm sm)/ (2,3,6,7,1) /* 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. DCM = BUSFN(M;DCD(AMDMA));
atmdma = 0; (cmdma, cmdma) /(2,5);

/* 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) DSM 4. atmdma = 0 (smdma)/(4) /* se nscriu n memorie datele de la modulul de acces direct la memorie 5. (modtm, modtm c mdma , modtm smdma, modtm cmdma smdma)/ (1,2,3,5) /* 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 */
7-34

6. MAG = BUSFN (M;DCD(AM)); atm = 0; (cm, cm)/(6,1) /* se rezolv accesul de citire de la unitatea central de prelucrare */ 7. M * DCD(AM) MAG 8. atm = 0; (sm, sm)/(8,1) /* 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] INPUTS : DCM [16]; AIE [8]; cie; sie; atmdma; epoperat[4]; intex , ctie;
OUTPUTS : DSM [16]; cmdma; s mdma; cerint; modtm; ccie[4]; csie[4]; atie; init; sens, rczero;

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)
7-35

2. ((cie sie) baza ( /DCD 0:3 (AIE 5:7 )), cie baza ( /DCD 4:6 (AIE 5:7 )), sie baza ( /DCD 4:7 (AIE 5:7 )), (cie sie baza ) (cie baza DCD 7 (AIE 5:7 ))) /(3,4,5,2) /* 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) = DCD0:3(AIE5:7) ; MAG * cie = DSM ; (cie sie, cie sie)/(3,2)

/* 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) * DCD4:6(AIE5:7);
(cie, cie)/(4,2)

/* 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) * DCD4:6(AIE5:7) MAG ; init = DCD7(AIE5:7) ; CSDMA6:7,10 * DCD7(AIE5:7) 0,1,1 ;
5.1 (sie, sie)/(5.1,2)

/* 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 */ 6. (ctie, ctie (CSDMA 7 CSDMA15 ), ctie (CSDMA 7 CSDMA15 )) /(6,8,7) /* 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).

7-36

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) */
7. atie = 0; (ctie, ctie)/(7,6)

/* se achit transferul de I/E i se menine att timp ct comanda de citire este activ */
8. smdma = sens ; cmdma = sens; atie = atmdma; (atmdma)/(8)

/* 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 */
9. atie = 0;

(ctie ) / (9) /* se achit cererea de transfer I/E */ 10. AMDMA *( /RCDMA) INC (AMDMA) ; RCDMA * ( /RCDMA) DEC(RCDMA) ;
rezero = /RCDMA; CSDMA 7 * (CSDMA 6 ( /RCDMA)) 0;

(6) /* dac contorul de cuvinte nu a ajuns la zero, se actualizeaz adresa i contorul. n caz contrar se indic terminarea transferului */ END SEQUENCE modtm = CSDMA13 ( /RCDMA) intex;
cerint * (((intex (CSDMA10 CSDMA 6 ) (CSDMA 6 rczero) ( /SEP0:3 + epoperat 0:3 )) CSDMA11 ) 0;

sens = CSDMA14; CSDMA0:3 = epoperat0:3


7-37

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 CSDMA13=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 (CSDMA11=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 (CSDMA10 =0 i CSDMA6=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-38

1. 2.

da

cmdma

nu

smdma da 3. M*DCD( AMDMA ) <--DSM 4. ______ atmdma=0

nu

cm da

nu 7. 8.

sm da M*DCD(AM)<--MAG ___ atm=0

nu 6.

DCM=BUSFN (M; DCD ( AMDMA ) ______ atmdma=0 da cmdma nu mod 1 furt de ciclu modtm da

6. MAG=BUSFN(M;DCD(AM)) ___ atm=0 da

da smdma nu

cm nu

da

sm nu

mod rafala nu cmdma

nu smdma da

Figura 7.17 Organigrama de funcionare a UCM

7-41

1. dialog cu EP 7. 0

secventa paralela dialog cu UCP 3. 2.

ctie
da _______ CSMA7CSDMA15 8.

nu

nu 2. 2. nu

(cie sie) BAZA+0:3 cie BAZA+4:6

(ccie ! csie) * (cie,sie) = DCD 0:3(AIE5:7) MAG * cie = DSM


da

sie BAZA+4:7
5.

nu

___ atie = 0
da

ctie
nu 9.

_____ smdma = sens _____ ___ cmdma = sens atie = atmdama


nu

cie sie
nu

4.

(CSDMA ! AMDMA ! RCDMA) * (DCD 4:6 (AIE5:7) <-- MAG MAG = (CSDMA ! AMDMA ! RCDMA) * DCD 4:6 (AIE5:7) INIT = DCD 7(AIE5 :7) CSDMA6,7, 10 * DCD7(AIE 5:7) <-- 0,1,1
da

atmdma
da

10.

___ atie = 0
da

ctie
nu 1 / RCDMA 0 _____ rczero = 0 CSDMA7*CSDMA6=0 nu

cie
nu

sie

AMDMA<--INC(AMDMA) RCDMA<-DCR(RCDMA)

__________________ CSDMA 7 = terminare transfer bloc _______ CSDMA 15 = activare / dezactivare transfer _______ CSDMA 6 = DMA liber

Figura 7.2

7-42

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-43

Tabelul 7.2 Principalele semnale ale interfeei EIA RS-232-C/CCITT V.24 Nr. Semnale Semnale Descriere pin EIA RS- CCITT 232-C V.24 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

GND(101,102) 1,7 TxD(103) 2 RxD(104) 3 RTS(105) 4 CTS(106) 5 DSR(107) 6 DTR(108) 20 DISP 1

1,7 GND(101,102) 3 RxD(104) 2 TxD(103) 5 CTS(106) 4 RTS(105) 20 DTR(108) 6 DSR(107) DISP 2

Semnale transmisie/receptie date Semnale de comanda/stare

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.
7-44

START

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

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.
+12V MC1488 MC1489

TxD(TTL)
7404 -12V linie de tansmisie 7404

RxD(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 start preluare bit 1

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-45

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.


DSR DTR CTS RTS RxD RRS Unitate Comanda SIN RDR RDT RTRS TxD

CSSIN

AIE

MAG[16]

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

= 10 - " = 11 - "

" "

" de 7 bii " de 8 bii.

____ actint - activare / dezactivare ntrerupere: scris/citit de unitatea central de prelucrare = 0 permite lansarea unei cereri ntreruperi spre unitatea central de prelucrare la termirea recepionrii/transmiterii unui cuvnt sau schimbarea strii de operaional (conectat la linie) = 1 nu permite lansarea unei cereri de ntrerupere spre unitatea central de prelucrare . resintsin - reset ntrerupere de la interfaa serial (ieire): scris de unitatea central de prelucrare =0 nu terge, eventual cererea de ntrerupere de la sin =1 terge (se anuleaz) cererea de ntrerupere de la seciunea de transmisie a interfeei seriale.

reseror - reset eroare este scris de unitatea central de prelucrare =0 nu are nici o aciune =1 sterge erorile aprute n procesul de recepie/transmisie datorate: paritii (PE), depirii ritmului de recepie (OE) sau a bitului de stop (FE). TxRDY transmitter ready - transmisie gata este nscris de UCSI i citit de unitatea central de prelucrare =0 interfaa are un cuvnt ce trebuie transmis i nu mai poate primi un nou cuvnt de la unitatea central de prelucrare =1 interfaa poate primi, pentru transmisie, un nou cuvnt de la unitatea central de prelucrare . 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. even/odd parity - tip paritate scris/citit de unitatea central de prelucrare =0 paritate impar =1 paritate par. 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. 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
7-47

RxRDY -

EP -

PE -

OE -

=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. 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. 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).
0 CSSIN DSR STP FL OE PE EP DTR RTS L2 L1 actint resint reser TxRDY RxRDY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

STP -

DSR -

Figura 7.7

Structura cuvntului de date este prezentat n fig. 7.26.


0 7 8 15

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 STSIN COMSIN CDINIT

EQU EQU EQU EQU

0F6H 0F7H 0F7H 447FH

; adresa porturilor de I/E date ; adresa porturilor de intrare stri ; adresa portului de ieire comenzi ; comand de iniializare interfa ; DTR-Bit15=1 - conecteaz la linie ; RTS-Bit14=1 - cerere pentru emisie
7-48

; L2,L1-Bit12:13=11 _____ ; actint-Bit11=1 ; reseror-Bit9=1 ; ; EP-Bit5=1 ; STP-Bit1=1

- lungime cuvnt 8 biti - dezactivare ntrerupere -terge eventualele erori PE,OE,FE -paritate par -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) JZ ERRCI ;dispozitiv neconectat la linie eroare TEST RA,200H ;analizeaz RxRDY JZ CI ;nu a recepionat caracter ateapt TEST RA,3800H ;a recepionat caracter i se analizeaz ;dac este corect (FE,OE,PE=0?) JNZ ERRCI IN DATSIN ;preia caracterul RET ERRCI: ;trateaz eventuala eroare ;Rutina de transmisie cuvnt la interfaa serial standard ;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) JZ ERRCO ; dispozitiv neconectat la linie, eroare TEST RA,100H ; se analizeaz TxRDY JZ CO ; dac are cuvnt de transmis, ateapt MOV RA,RB ; OUT DATSIN ; transmite cuvntul spre interfa RET ERRCO: . ; trateaz eventuala eroare Schimbul de informaii ntre unitatea central de prelucrare, interfaa serial i echipamentul periferic este prezentat n Fig 7.27.
7-49

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.
__ cie __ sie GND 17 TxD 2 RxD 3 DTR 20 AIE[8] 17 GND 3 RxD 2 TxD

Unitatea central de prelucrare a calculatorului didactic

____ cerint MAG[16]

Echipamentul periferic

6 DSR
20 DTR

DSR 6 RTS 4 CTS 5

5 CTS 4 RTS

Interfata seriala standard SIN

Figura 7.9 Semnalele de dialog ntre unitatea central de prelucrare, interfaa serial i echipamentul periferic
1.

5. receptie

17. transmisie

3. 1(date) RDTMAG TxRDY0

__ sie(F6F7) da

nu

2. 4.

__ cie(F6F7) da

nu

0(comenzi) F6 CSSINMAG

1(date) MAG= RDR RxRDY0

0(stare) F6 MAG=CSSIN

da

__ sie nu

da

__ cie nu

Figura 7.10 Organigrama de descriere a funcionrii interfeei seriale


7-50

receptie 5. 6. RxRDY0 NRM164T0 ____ RRS9T0 1

RxD 7. 0 NRM16=7 Da RxD 0 8. 9. NRM16=7 Da


bit 5 sau 6 sau 7 sau 8 =0

Nu

deplaseaza RRS 0 Nu

0 10. 11. NRM16=7 Da 12. ____ FERxD __ STPFE 13. NRM16=7 Da 14. ____ FERxD RDR RRS 15. OE RxRDY Nu 16. RxRDY 1 1 (2 biti stop) stabileste indicator PE Nu

Figura 7.11 continuare Organigrama de descriere a funcionrii interfeei seriale

(17. TxRDY 1)

7-51

transmisie 17. TxRDY0 RTRS91 NRM164T0 NRBIT4T0 ___ TxRDYCTS 1

18.

19.

0 transfera RDT in RTS atasand bit start si bit paritate TxRDY1

20.

0 NRM16=15 Nu

21. deplaseaza RTRS 9. NRBITINC(NRBIT) Da


NRBIT= 8,9,10.11

Nu

Da 22. STP Nu 1

NRM16=15 Da

Figura 7.12 continuare Organigrama de descriere a funcionrii interfeei seriale

7-52

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 */
2. (sie (F6 F7), cie (F6 F7), sie cie (F6 F7)/(3,4,2)

/*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. 3.1
(sie, sie)/(3.1,2) /* 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 */

(RDT ! CSSIN) * (F6,F7) MAG; TxRDY * F6 0

4.

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


(cie, cie)/(4,2)

/* 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 */ NRM16 4T0;
RRS 9T0;
7-53

6.

(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) */
7. ( /(NRM16 4T7), /(NRM16 4T7) (RxD), /(NRM16 4T7) (RxD)/(7,6,8)

/* se ateapt mijlocul bitului de start i se face o verificare dac nu a fost un bit de start fals */ 8. RRS RxD,RRS0:7 /* se preia bitul curent de pe linia de recepie */ 9. ( /(NRM16 4T7), /(NRM16 4T7) (RRS5 ! RRS6 ! RRS 7 ! RRS8 )) * DCD(L2, L1)/(9,8) /* 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,((RRS0:4 ! RRS0:5 ! RRS0:6 ! RRS0: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 */ FE RxD
(STP FE)/(15)

12.

/* 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 */ 14 FE RxD /* se poziioneaz bitul de FE n mod corespunztor */ 15. OE RxRDY;
7-54

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 ; RTRS9 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
(TxRDY CTS)/(18)

/* 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. ! (1,1,EP(/RDT0:5),RDT0:5) RTRS ((1,1,1,EP( /RDT0:4),RDT0:4) (1,EP(/RDT0:6),RDT0:6) ! (EP(/RDT0:7),RDT0: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 */ RTRS 1, RTRS0: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 */
7-55

21.

22. (STP, /(NTM16 4T15) STP, /(NRM16 4T15) STP)/(18,22,18)

/* se transmite i al doilea bit de stop dup care se revine la nceputul seciunii de transmisie */ END SEQUENCE cerint * actint ((DSR D DSR CCSIN ) TxRDY RxRDY) 0 END

7-56

7-43

También podría gustarte