|
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Motorola MC6800Splošno:
Arhitektura:
Isto arhitekturo z dodatnimi lastnostmi ima tudi naš mikrokontroler MC6803, ki je le nadgradnja mikrokontrolerja MC6800.
MIKROKONTROLER MOTOROLA 6803 Zgradba MC6803 MC 6803 je integrirano vezje, ki ima 40 nogic. Vezje je narejeno na NMOS - tehnologiji. Deluje lahko na dva načina. Oba sta razširjena načina delovanja (expanded mode), zato moramo poleg mikrokontrolerju MC 6803 vedno dodati zunanji pomnilnik, kjer je shranjen program na katerem deluje. Pri razširjenem multipleksiranem načinu (expanden multiplexed mode), so podatkovni signali multipleksirani s spodnjimi 8 naslovnimi signali, medtem, ko imajo podatkovni in naslovni signali pri nemultipleksiranem načinu (expanded non-multiplexed mode) vsak svojo nožico. Sličica mikrokontrolerja:
Vsebina MC6803:
MC 6803 in osnovni računalniški model Urina perioda, strojna perioda in ukazna perioda Delovanje računalnika je zaporedno prevzemanje ukaza in izvajanje ukaza v ritmu, ki ga določa urina perioda. Ena ali več urinih period sestavljajo strojno periodo (pri MC 6803 je strojna perioda enaka urini periodi. Strojen cikle, v katerih pride do prenosov podatkov ločimo v 3 cikle: bralni cikel, pisalni cikel in ukazno-prevzemni cikel. Pri izvrševanju ukaza pa imamo še posebni cikel imenovan izvršilni cikel, pri katerem pa ne pride do prenosa podatkov med CPE in pomnilnikom Pod ukazno-prevzemni cikel štejemo samo branje operacijske kode določenega ukaza, ki traja pri MC 6803 natanko eno urino periodo. Bralni cikel in ukazno-prevzemni cikel sta popolnoma enaka. Pri obeh CPE prebere vsebino lokacije pomnilnika, katere naslov sporoči preko naslovnih signalov od A0 do A15 Pisalni cikel: pri pisalnem ciklu gre za vpis podatka v pomnilnik. Ta podatek mora CPE postaviti na nožice od AD0 do AD7 (D0 do D7), pomnilnik pa bo v tem času svoje signalne linije D0-D7 imel za vhodne in jih postavil v impendančno stanje. Dostop do pomnilnika s multipleksiranim vezjem Za demultipleksiranje zadostuje eno vezje (npr. 74LS573). Mikrokontroler preko izhodnega signala AS (adress strobe) pove, kdaj so na signalnih linijah od AD0 do AD7 naslovi. Vedno kadar je signal AS v stanju 1, so na nožicah naslovi. Prevzem prvega ukaza MC 6803 ima vhodni signal za inicializacijo označen z RESET. Potrebuje ga zato, da postavi CPE v točno določeno stanje, da začne z izvajanjem od prvega ukaza dalje. Signal RESET mora aktivirati neko zunanje vezje vsakič, ko želimo da sistem ponovno starta Ko se signal RESET aktivira CPE mikrokontolerja MC 6803 najprej prebere zgornji dve lokaciji pomnilnika ($FFFE in $FFFF) in njuno vsebino prepiše v PC. za prenos teh dveh lokacij potrebuje CPE 2 bralna cikla zato, ker lahko na enkrat prenese le 8 bitov. Vsebina pomnilniških lokacij, ki se prepiše v programski števec, mora biti naslov prvega ukaza programa, ker CPE v naslednjem trenutku že začne z prevzemanjem prvega ukaza. Logično je, da morata biti zgornji lokaciji shranjeni v neizbrisljivem pomnilniku. Lokacijama pomnilnika z naslovom $FFFE in $FFFE imenujemo reset vektor Pomnilniško kodiranje pri MC 6803 Lokacije, ki jih vidi MC 6803 imenujmo logične lokacije, tiste, ki pa se dejansko nahajajo v pomnilniku pa imenujemo fizične lokacije. Vsem fizičnim lokacijam moramo zagotoviti mesto v logičnem naslovnem prostoru CPE. Vezje, ki opravlja dodeljevanje fizičnih lokacij logičnim imenujemo pomnilniški dekoder. Priključimo EPROM 2764 na CPE. Naslovni izhodi CPE, A0 do A12, so povezani na pripadajoče vhode EPROM-a, prav tako so povezane podatkovne linije D0 do D7, vendar lahko CPE naslavlja 65.536 logičnih lokacij pomnilnika, fizičnih pa vsebuje EPROM le 8192, kar je za osemkrat manj, zato ostanejo nepriključene 3 naslovne linije. Sedaj lahko izberemo 2 načina naslovnega kodiranja. Prvi način je nepopolno kodiranje. Pri tem načinu dekoder vsako fizično lokacijo preslika v 8 logičnih lokacij (2*2*2 tri proste naslovne linije), tako da CPE vidi v eni fizični lokaciji osem logičnih lokacij. Drugi način je popolno kodiranje. Pri tem kodiranju pripada točno ena fizična lokacija eni logični lokaciji. Za popolno kodiranje bomo morali uporabiti tudi proste naslovne linije A13, A14 in A15, vendar se moramo odločiti na katerih naslovih naj CPE vidi fizične lokacije EPROM-a. Predpostavimo da želimo EPROM preslikati v zgornjih 8K naslovnega prostora. Prvo fizično lokacijo bo tako CPE našla na naslovu $E000 zadnjo pa na naslovu $FFFF. Pomnilniške naslove $E000 do $FFFF določajo naslednje vrednosti: A13=1, A14=1 in A15=1, zato moramo dodati dekoder, ki bo omogočal dostop do do EPROM-a samo takrat, ko bodo na naslovnih signalih A13, A14 in A15 vrednosti 1. |