Tiesioginiams mainams valdyti mikroprocesorinėje sistemoje naudojamas DMA valdiklis arba kanalas, kuris perima iš procesoriaus kreipties į atmintinę adreso didinimo, bei ciklų skaitiklio parodymo mažinimo kiekviename cikle funkcijas. Be to, kas itin svarbu, jame realizuotas daugelio kanalų aptarnavimo vienu metu galimybės. Kai keitimasis duomenimis tarp operatyvinės atmintinės ir išorinio įrenginio realizuojama tiesioginių mainų principu, mikroprocesorius išduoda signalą HLDA. Jis perveda duomenų ir adreso linijas į trečią būseną, tuo būdu atsiribodamas nuo sisteminės magistralės. Vedančiuoju moduliu tampa tiesioginių mainų valdiklis, kuris ir organizuoja duomenų perdavimą viena ar kita kryptimi.
Belieka išsiaiškinti, kaip dirba tiesioginių mainų valdikliai.
Valdiklis turi 4 nepriklausomus kanalus, gali organizuoti tiesioginius mainus tarp pagrindinės atmintinės ir 4-ių periferinių įtaisų.
Tiesioginių mainų valdiklis bet kuriuo metu gali būti vienoje iš 3-jų būsenų:
Ø nedarbo būsena,
Ø programavimo būsena,
Ø mainų būsena.
Valdiklis yra nedarbo būsenoje, kai į CS siunčiamas aukšto poliarumo signalas. Tuomet jo duomenų išvadai yra "z" būsenoje. Jei valdikliui esant šioje būsenoje perduodamas pakankamos trukmės signalas RESET, tai pasibaigus CS signalo aukštam lygiui, valdiklis pervedamas į programavimo režimą.
Kai valdiklis yra programavimo būsenoje, komandomis OUT į jo valdančiojo žodžio registrą, adreso registrą bei ciklų skaitiklius įvedami pradiniai duomenys. Valdantysis žodis, apsprendžiantis darbo režimą ir duomenų mainų kryptį (rašymas/ skaitymas), o į adreso registrus (AR0-AR3) įvedami duomenų masyvų pradžios adresai operatyviojoje atmintinėje, į ciklų skaitiklius (CSR0-CSR3) - perduodamų duomenų masyvų baitų kiekis.
Jeigu programuojant į valdančio žodžio skiltį, D4-D7 įrašyti nuliai, tai valdiklis dirbs pagrindiniu mainų režimu. TM reikalavimo signalai aptarnaujami prioriteto tvarka. Aukščiausias prioritetas suteikiamas nuliniam kanalui, o žemiausias- trečiajam.
Aptarsime I8257 valdiklio funkcionavimą valdiklis turi 4 nepriklausomus kanalus, gali organizuoti tiesioginius mainus tarp pagrindinės atmintinės ir 4-ių periferinių įtaisų.
Valdiklio išvadai:
CS\ -kristalų išrinkimas,
Ø I/OR, I/OW - įvesties/išvesties valdymas,
Ø HLDA - iš mikroprocesoriaus pertraukties patvirtinimas,
Ø DRQ0-DRQ3 - tiesioginių mainų reikalavimo signalai, priimami iš atskirų kanalų,
Ø D0-D7 - duomenų magistralės 2-krypčiai išvadai turintys "z" būseną,
Ø HRQ - magistralės valdymo signalas siunčiamas mikroprocesoriui,
Ø DACK0-DACK3 - tiesioginių mainų patvirtinimo signalai.
Valdiklis gali aptarnauti 4 kanalus, tačiau konkrečiu laiko momentu vyksta pasikeitimas informacija tik tarp valdiklio ir vieno kanalo.
Gavus tiesioginių mainų pareikalavimo signalą iš kurio tai kanalo, jo adreso ir ciklų skaičiaus duomenys perkeliami į kanalo skaitiklius. Perdavus (priėmimus) vieną duomenų porciją kanalu į išorinį įrenginį, sumažinamas ciklų skaitiklio ir padidinamas adreso registro parodymas ir šių skaitiklių kodai grąžinami į atitinkamo kanalo registrus.
Po to aptarnaujami kiti kanalai. Prie aptariamo kanalo aptarnavimo grįžtama tik tuomet, kai gaunamas signalas iš įrenginio apie jo pakartotinį pasiruošimą duomenų mainams. Tuomet bus atstatomos to kanalo adreso skaitiklio ir ciklų skaitiklio reikšmės ir bus įvykdytas kitos duomenų porcijos perdavimas (priėmimas).
Komentarų nėra:
Rašyti komentarą