Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » referate » informatica
Comunicarea UC - controler DMA - periferic, Circuitul 82C37A, Cum sunt tratate cererile de intrerupere?

Comunicarea UC - controler DMA - periferic, Circuitul 82C37A, Cum sunt tratate cererile de intrerupere?




52.  Comunicarea UC - controler DMA - periferic

Perifericul cere transfer de tip DMA activand intrarea DREQ (DMA Request) a controlerului DMA;

Controlerul DMA activeaza iesirea sa HRQ spre intrarea HOLD a procesorului anuntandu-l ca are nevoie de magistrale;

Procesorul incheie ciclul masina inceput, isi trece magistralele si semnalele de comanda in a 3 - a stare, respectiv in starea inactiva, si activeaza iesirea HLDA anuntand controlerul DMA ca a cedat magistralele; cererea de pe intrarea HOLD trebuie sa ramina activa pe toata durata transferului DMA;



Controlerul DMA activeaza iesirea sa DACK comunicand perifericului ca cererea sa DREQ a fost acceptata si va incepe transferul;

Controlerul DMA executa transferurile:

i. Memorie - port: pune adresa primului octet (cuvant) pe magistrala de adrese, actveaza semnalul de comanda MEMR si apoi IOW,

ii. Port - memorie: activeaza semnalul de comanda IOR, pune adresa primului octet (cuvant) pe magistrala de adrese si apoi MEMW;

Dupa incheierea transferurilor controlerul DMA dezactiveaza iesirea HRQ anuntand procesorul ca nu mai are nevoie de magistrale.


53.  Circuitul 82C37A: rol, caracteristici

Dispune de 4 canale independente,

Poate fi cascadat pentru a obtine oricate canale,

Control individual (activare/ dezactivare si polaritate) asupra fiecarei cereri DREQ si fiecarui raspuns DACK,

Permite transfer memorie - memorie,

Rata de transfer ridicata:

i. Pana la 4 MO/ sec. cu tact de 8 MHz si

ii. Pana la 6.25 MO/ sec. cu tact de 12.5 MHz,

Asigura incrementarea sau decrementarea adresei,

Se foloseste cu un registru extern pentru jumatatea mai semnificativa a adresei,

Poate lucra in mai multe moduri,

Compatibil TTL/ CMOS.


54.  Descrieti 2 tipuri de cicluri active ce pot fi executate de circuitul 82C37A

Demand transfer mode:

Se tranfera date continuu pana cand:

i. TC este setat sau

ii. /EOP este activat sau

iii. Cererea DREQ devine inactiva.

Mod util atunci cand un periferic doreste sa-si goleasca tamponul de date, indiferent de capacitatea acestuia.

Cascade mode:

q    Permite extinderea numarului de canale prin legarea in cascada a mai multor circuite 82C37A;

q    Figura urmatoare arata o cascadare pe 2 nivele:

q    Pot fi atasate noi nivele la intrarile DREQ libere ale circuitelor de pe nivelul 2;

q    Programarea incepe cu circuitul cel mai aproape de procesor


55.  Enumerati citeva tipuri de informatii trimise circuitului 82C37A prin programare

In prealabil canalul a fost programat prin intermediul registrelor Command, Mode, Address si Word; de ex. pentru un transfer DMA - port:

Adresa de inceput este incarcata in Base si Current Address Registers, ale canalului implicat,

Lungimea blocului este incarcata in Word Count register corespunzator,

Mode Register corespunzator este programat pentru un transfer memorie - port,

Optiuni sunt selectate prin Command Register si Mode Register,

Bitul de mascare a canalului este pus la 0 pentru a valida o cerere DREQ; aceasta poate fi un semnal sau o comanda software.


56.  Intreruperile: ce inseamna, la ce folosesc si de cate tipuri sunt?

Permit abandonarea momentana de catre microprocesor a executiei unui program si inceperea executiei unui alt program situat oriunde in spatiul de memorie.

Se folosesc la:

Comunicarea UC - periferie,

In sisteme multiprocesor.

2 tipuri:

Externe si

Interne.


57.  Intreruperile interne

Se gasesc la microprocesoarele peste 8 biti si la toate microcontrolerele;

Se numesc si exceptii la unele microprocesoare;

O parte din ele se numesc si "traps" la unele microprocesoare;

Provocate de cauze interne procesorului;

La microcontrolere pot fi mascate, la microprocesoare nu;

2 tipuri de cauze (la microprocesoare):



Evenimente interne speciale sau

Instructiuni dedicate (se mai numesc si intreruperi software).

Intreruperi interne provocate de evenimente speciale:

Pot fi generate inainte de executia unei instructiuni: de ex.: o violare de privilegiu sau cod ilegal etc.;

Pot fi generate dupa executia unei instructiuni: de ex.: o divizare la 0, obtinerea unui rezultat in afara unui domeniu, pas cu pas etc.

n     Intreruperi interne datorate instructiunilor:

q    Exista instructiuni ale caror executie este echivalenta cu generarea unei cereri de intrerupere; de ex.:

n     INT nn la familia Intel,

n     TRAP #n la microprocesoarele Motorola.

q    Pot fi folosite pentru emularea a noi instructiuni.


n     Pe langa o eventuala prioritizare externa, exista si o prioritizare implicita a surselor de interupere; de ex. la 8086:

q    Eroare la divizare, INT nn - prioritate maxima,

q    INTO,

q    NMI,

q    INTR,

q    Pas cu pas - prioritate minima.



58.  Cum sunt tratate cererile de intrerupere?

Tratarea cererilor de intrerupere:

Programul principal este oprit;

Procesorul salveaza, in stiva, continutul PC si, in unele cazuri, si alte informatii - aceste informatii vor fi folosite la revenirea din rutina de tratare a cererii de intrerupere;

Procesorul incarca in PC adresa de inceput a ISR ("Interrupt Service Routine");

Adresa de inceput este:

i. Fixa,

ii. Obtinuta dintr - o tabela - vectorul de intrerupere este folosit ca deplasament pentru a ajunge la intrarea ce contine adresa de inceput.

Se executa ISR; trebuie evitata decalarea stivei;

La sfarsitul ISR se reactiveaza sistemul de intreruperi (daca s - a tratat o cerere externa mascabila);

Revenirea in programul principal se face cu o instructiune dedicata (de ex. IRET la familia Intel) care aduce din stiva continutul PC-ului.


59.  Circuitul 8259A: rol, caracteristici si schema interna

Poate gestiona si prioritiza 8 cereri de intrerupere

Poate fi legat in cascada cu alte 8 circuite similare asigurand astfel gestionarea si prioritizarea a 64 cereri de intrerupere;

Posibilitate de mascare individuala a cererilor;

Mai multe moduri de gestionare a intreruperilor:

Fully nested,

Rotating priority,

Special mask si

Poll.

Necesita 2 - 4 cuvinte de initializare (ICW1 - 4) si 4 cuvinte de operare (OCW1 - 4);

Genereaza vectorul de intrerupere asociat cererii luata in considerare de procesor.



60.  Schema sistemului de intreruperi a PC - ului


52.  Prezentati 2 solutii complete pentru comanda unui LED prin program



n     In solutia a s-a folosit un bistabil in tehnologie TTL, ca urmare comanda va fi in 0 (IOL = 16 mA, IOH = 0,8 mA);

n     Secventa ca LED - ul sa lumineze este:

MOV         AL,00H

OUT          00H,AL

n     Secventa ca LED - ul sa nu lumineze este:

MOV         AL,01H

OUT          00H,AL

n     In varianta b bistabilul este in tehnologie HCT, ca urmare comanda se poate face fie in 0 fie in 1;

n     Secventa ca LED - ul sa lumineze (comanda in 1):

MOV         AL,01H

OUT          00H,AL

n     Secventa ca LED - ul sa nu lumineze (comanda in 1):

MOV         AL,00H

OUT          00H,AL


n     Dimensionarea rezistentei (s-a considerat LED - ul rosu):

R = (5 - 1,6 - 0,2) V / 10 mA = 320 Ω, valoarea uzuala fiind 330 Ω


53.  Descrieti solutiile pentru comanda prin program a unui modul de afisare cu segmente cu mai multe ranguri

n     Comanda unui modul de afisare cu segmente cu mai multe ranguri:

q    Solutia nemultiplexata,

q    Solutia multiplexata.


n     Solutia nemultiplexata:

q    Cere un registru pentru fiecare rang,

q    Registrele vor fi comandate ca porturi de iesire si vor memora configuratiile care se vor afisa,

q    Comanda in 0 sau 1 in functie de tehnologia registrelor si de tipul de circuit afisaj (cu anod sau catod comun),

q    Componenta software simpla,

q    Avantaje: software simplu, usor de extins,

Dezavantaje: numar mare de circuite, numar mare de rezistente, consum mare.


n     Solutia multiplexata:

q    Se bazeaza pe inertia ochiului uman: imaginile care se succed cu o rata mai mare de 25 ori/ sec. dau impresia de miscare continua;

q    Exista un singur registru pentru memorarea configuratiei care se va afisa, indiferent de numarul de ranguri;

q    Este necesara comanda alimentarii circuitelor afisaj;

q    Va exista cate un bistabil pentru fiecare rang care va comanda un tranzistor plasat pe alimentare sau pe masa in functie de tipul circuitului afisaj (cu anod sau cu catod comun);

q    Componenta software va trebui sa asigure afisarea cu o rata mai mare ca 25 ori/ sec., succesiv si ciclic;

q    Componenta software va trebui sa asigure concordanta intre continutul registrului si afisajul care este alimentat;

q    Avantaje: minim de hardware, numar minim de rezistente, consum minim;

q    Dezavantaje: software complex, utilizarea intreruperilor.


54.  Prezentati solutiile complete pentru comanda prin program a unui comutator

n     Solutii pentru conectarea unui comutator


a b

n     Secventa pentru solutia a:

IN        AL,00H



AND   AL,80H

JZ        SUS ; ramura corespunzatoare pozitiei din figura

; ramura corespunzatoare pozitiei contrare


n     Secventa pentru solutia b:

IN        AL,00H

AND   AL,80H

JNZ     SUS ; ramura corespunzatoare pozitiei din figura

; ramura corespunzatoare pozitiei contrare




  1. Sa se conecteze la o UC cu microprocesorul 8086 in modul minim:

512 Kocteti memorie fixa in zona superioara a spatiului de adrese;

256 Kocteti memorie SRAM incepind cu adresa 80000H a spatiului de adrese.

Se vor folosi circuite AM27C2048 si A616316.

  1. Sa se conecteze la o UC cu 8086 16 blocuri de cate 64 ko, in zona 80000H - 8FFFFH
  2. Sa se proiecteze un modul digital, conectat la o UC cu 8086, pentru citirea a 32 intrari digitale si comanda a 32 iesiri digitale. Iesirile trebuiesc memorate.
  3. Sa se proiecteze o interfata seriala cu circuitul 8251, conectata la o UC cu 8086, transferul facandu - se prin program. Datele initiale ale transferului sunt: 7 biti de date, paritate para, 2 biti de STOP, factor de multiplicare 64, rata de transfer: 19200 bps. Circuitul 8251 va fi comandat de un circuit 8253.
  4. Sa se proiecteze un modul, bazat pe circuitul 8253, la care contorul 0 sa comande intrarile /RXC si /TXC ale unui circuit 8251, trebuind sa genereze un semnal cu frecventa de 4800 x 16 = 72800 Hz iar contorul 2 sa anunte microprocesorul aparitia de 500 ori a unui eveniment. Aparitiile  evenimentului sunt aduse la cunostinta circuitului de un traductor care genereaza 200 impulsuri cu caracteristici TTL si perioada de 400 ns pentru o aparitie.
  5. Sa se proiecteze o interfata paralela, conectata la o UC cu 8086, care sa lucreze in conformitate cu dialogul de tip CENTRONIX.
  6. Sa se proiecteze o interfata seriala pe 2 canale, cu 2 circuite 8251, la o unitate centrala cu microprocesorul 8086, cu urmatoarele date initiale: 7 biti de date, paritate para, 2 biti de stop, factor 64, viteza de transfer 4800 bps pentru canalul 1 si 8 biti de date, paritate impara, 2 biti de stop, factor 16, viteza de transfer 9600 bps pentru canalul 2. Circuitele 8251 vor fi comandate de un circuit 8253. Se va desena schema si se vor scrie rutinele de programare si rutinele de baza de transfer.
  7. Sa se proiecteze o interfata seriala cu circuitul 8251, la o unitate centrala cu microprocesorul 8086, cu urmatoarele date initiale: viteza perifericului 9600 bps, factor de multiplicare 16, 8 biti de date, fara paritate,2 biti de STOP. Interfata va lucra prin intreruperi si va fi comandata de un circuit 8253. Se vor prezenta: schema, rutinele de programare, rutinele de transfer, solutia prin care microprocesorul ajunge la rutinele de tratare.
  8. Sa se proiecteze un modul care anunta microprocesorul 8086 ca un eveniment extern a aparut de 100 ori. O aparitie este anuntata microprocesorului prin un tren de 4000 impulsuri cu caracteristici TTL. Se va utiliza un circuit 8253.
  9. Sa se comande 48 semnale de iesire de catre un microprocesor 8086. Se vor utiliza circuite 8255.
  10. Sa se proiecteze un modul care va genera vectorii: A2H, 86H, 2EH la activarea cererilor de intrerupere mascabile INT1, INT2, respectiv INT3. Cererile sunt active pe nivel logic 1, sunt disjuncte iar vectorii vor fi trimisi procesorului 8086 la cel de-al doilea impuls de acceptare.
  11. Sa se conecteze o minitastatura cu 16 contacte si un modul de afisare cu segmente cu 2 ranguri la o unitate centrala cu microprocesorul 8086. Daca se apasa tasta 0 se va afisa caracterul 0 pe cele 2 ranguri, daca se apasa tasta 1 se va afisa caracterul 1, s. a. m. d. Se vor prezenta schema si programele necesare.
  12. Sa se conecteze la o unitate centrala cu microprocesorul 8086, un modul de afisare cu segmente cu 32 ranguri. Se va scrie cate o rutina pentru afisarea cate unei cifre hexazecimale pe fiecare rang.
  13. Sa se conecteze 16 comutatoare distincte si un circuit de afisare cu segmente cu 4 ranguri la o unitate centrala cu microprocesorul 8086. Daca se apasa comutatorul 0 se afiseaza cifra 0 pe cele 4 ranguri, daca se apasa comutatorul 1 se afiseaza cifra 1 s. a. m. d.
  14. Sa se conecteze 4 minitastaturi cu cate 16 contacte la o unitate centrala cu microprocesorul 8086.
  15. Sa se conecteze 32 led - uri si 8 comutatoare la o unitate centrala cu microprocesorul 8086. Daca se apasa primul comutator se aprind led - urile 1, 9, 17 si 25, daca se apasa al 2 - lea comutator se aprind led - urile 2, 10, 18, 26 s. a. m. d.




Politica de confidentialitate







creeaza.com logo mic.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.