Sunteți pe pagina 1din 12

SISTEME CU MICROPROCESOARE 2012

CURS 11 DMA SI DMA CONTROLLED-I/O. CIRCUIT SUPORT 8237. .l. dr. ing. Radu PIETRARU radup@aii.pub.ro

TRANSFER DMA
Transferul DMA este utilizat pentru scopuri diverse: ciclul de refresh DMA, afiare i refresh display, citirea i scrierea n memoria secundar. Tehnica DMA ofer acces direct la sistemul de memorie; pe parcursul unui ciclu DMA microprocesorul este disable. ntr-un ciclu DMA sunt implicate dou semnale de magistral: HOLD i HLDA.
2

CICLUL DMA
Semnalul HOLD solicit accesul DMA. Microprocesorul rspunde la o astfel de solicitare suspendnd programul curent i trecnd liniile de magistral ntr-o stare de impendan mare. Semnalul HOLD are prioritate mai mare dect INTR i NMI, doar pinul de RESET are prioritate mai mare

CICLUL DMA
Semnalul de HOLD ntrerupe execuia instruciunii curente. Semnalul de HLDA indic faptul c microprocesorul a efectuat toate operaiile necesare eliberrii magistralei sistem. Logica i semnalele necesare desf urrii ciclului i desfurrii DMA sunt asigurate de un controler DMA n cazul circuitelor 8086/8088 circuitul suport 8237, n cazul microprocesoarelor mai noi funcionalitatea a fost preluat de chipset-ul plcii de baz de exemplu 82357 Integrated Peripheral Controller ce include 2 circuite 8237 plus dou circuite 8259A.

CIRCUITUL 8237
Circuit cu patru canale DMA compatibil cu microprocesoarele 8086/8088. Permite transferuri de pn la 1.6MB/s. Fiecare canal permite adresarea unei plaje de 64K.
5

CIRCUITUL 8237

8237 - PINI
HRQ Hold request semnalul prin care se solicit ciclul DMA ctre microprocesor /CS permite programarea circuitului HDLA semnalul prin care se confer controlul magistralei /EOP End Of Process permite semnalizarea terminrii procesului de transfer DREQ3-0 DMA Request cte o linie de solicitare ciclul DMA pentru fiecare din cele patru canale DACK3-0 DMA channel Acknowledge

8237 REGISTRE INTERNE


CAR Current Address Register stocheaz adresa pe 16 bii necesar transferului DMA. Specific fiecrui canal n parte. Permite in(de)crementarea automat. CWCR Current Word Count Register indic dimensiunea blocului transferat (-1) BA BWC Base Address Base Word Count utilizai pentru auto-iniializare pentru regitrii precedeni. CR Command Register permite programarea efectiv a controlerului.
8

8237 REGISTRUL CR

8237 REGISTRE INTERNE


MR Mode Register seteaz modul de operare

10

8237 REGISTRE INTERNE


RR Request register este utilizat pentru a solicita un transfer DMA din program util pentru transferuri de tip memory-to-memory. MRSR Mask Register Set/Reset MSR Mask Register permite setarea concomitent pentru toate cele patru canale SR Status Register permite verificarea strii celor patru canale

11

EXEMPLU INTERFAAREA CU O IMPRIMANT

12

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