![]() |
![]() |
---|
Alates 1972.aastast, mil ilmus esimene 8-bitine mikroprotsessor Intel 8008, on aastast aastasse mikroprotsessortehnika tähtsus kasvanud. Mikroprotessorid on tunginud pea kõigisse eluvaldkondadesse alates Maa sisemuse uurimisest kuni kaugete Galaktikate uurimiseni. Varsti on peaaegu kõigis kodudes mõni seade, mille üheks (ja tihti tähtsaimaks) koostisosaks on mikroprotsessor.
Muutuv aeg, maailm ja tehnoloogia sundisid ka Tartu Ülikooli kaasajastama infotehnoloogia-alast koolitust, mis hõlmab ka mikroprotsessortehnikat. Seni anti vastavat õpetust kontrolleril KIT 8080, mis baseerus protsessoril Intel 8080. Intel 8080 ilmus 1973.aastal. Kontroller KIT 8080 lasti praktikumis käiku 1986.aastal. Vahepealsete aastatega vananes kontroller nii moraalselt kui ka füüsiliselt, mistõttu tekkis vajadus uue kontrolleri järele.
Kontrollerit LKZ180 asuti Eksperimentaalfüüsika ja tehnoloogia instituudis dotsent Ando Otsa juhendamisel välja töötama 1992.aastal. Seejuures tehti koostööd Joensuu Ülikooliga. Aluseks valiti Zilogi Z180. Valik lähtus asjaoludest, et antud ajahetkel polnud Eestis analoogsed 8-bitised universaalprotsessorid (nt. Inteli 51-seeria) kuigi laialt levinud, seevastu Zilogi protsessoreid oli aga saada ja suhteliselt odavalt. Võrreldes KIT 8080-ga lisandus kontrollerile kaasaegne suhtlemis- ja juhtimisvõimalus personaalarvuti vahendusel. Kontroller sai töökõlbulikuks 1996.aastal. Kohe aga tekkis vajadus õppeülesannete järele, et vahetada praktikumis vana kontroller uue vastu välja. See oligi käesoleva bakalaureusetöö teema põhjus.
Et Z80180 on CISC-protsessor (keerulise käsustikuga), siis on tema baasil võimalik tundma õppida klassikalise protsessori ehitust, signaale ja töötamist. Käske ja adresseerimisviise on palju, käsud on erineva mahu ja töötaktide arvuga, käskude operandid võivad olla mälus, enne eelmise käsu täitmise lõpetamist uut käsku ei loeta jne. Loogikaanalüsaator võimaldab eelpooltoodut tundma õppida protsessori andme-, aadressi- ja juhtimissignaalide testimisega, monitorprogramm aga registrite ja mälu sisu testimise ja muutmisega. Kuigi protsessori andmesiin ja registrid on vaid 8-bitised (paaridena 16-bitised), saab ka sellise universaalprotsessoriga teha keerulisi aritmeetikatehteid, kasutades vaid liitmist, lahutamist ja nihutamist, teostada andmevahetust ja signaalitöötlust.
Aritmeetikatehetest vaadeldakse korrutamist ja jagamist, sest protsessoril need puuduvad
(v.a. MLT ww). Nende ülesannete eesmärgiks on anda juhiseid ja algoritme, kuidas on võimalik teostada tehteid, mida protsessori käsustikus pole või on vähese bittide arvuga.
Assemblerkeeles programmeerija peab olema kodus erinevates arvusüsteemides. Seepärast on vaadeldud binaarkoodi teisendamist BCD- ja Gray koodi. Liiati omavad need koodid rakenduslikku külge indikaatortabloodes, analoog- digitaalmuundurites jne.
Mälu indekseerimine on vajalik andmetöötluses. Näiteks on mingit füüsikalist suurust mõõtev andur ühendatud mikroprotsessorsüsteemiga. Süsteemis tuleb andurilt saadud andmed teatud korrapära järgi edasiseks töötluseks mällu salvestada.
Kontrolleril saab tundma õppida kolme andmevahetusmoodust: asünkroonne jadaandmevahetus pika maa taha, rööpkoodis andmevahetus kviteerimismeetodil ja I2C-protokoll.
ASCI0-i baasil antakse võtted ja algoritmid kompaktse andmevahetusliidese initsialiseerimiseks ja andmevahetuse teostamiseks. MAX238 võimaldab pidada ühendust nt. teises ruumis asuva arvutiga. Rööpvärat PIO võimaldab õpetada kviteerimismeetodi programmilist teostamist ja I2C-protokolli põhialuseid.
Käesolevas töös on seatud järgmised eesmärgid:
Kontrolleri LKZ180 jaoks ülesannete koostamisel tuli alustada peaaegu nullist, sest eeskujusid on vähe ja nende kohta infot raske kätte saada. See on seotud asjaoluga, et õppekontrollereid koostatakse maailmas peamiselt kohalikeks vajadusteks piiratud koguses. Tööstuslikku tootmist käesolevat praktikumi rahuldavate kontrollerite osas pole, sellest ka info nappus. Toodetakse küll seadmeid, mis on kas puhtalt demonstratsiooniks ega võimalda aktiivselt kontrolleri töösse sekkuda, või nii spetsiifilised, keerulised ja kallid, et nende kasutamine ei tuleks kõne allagi.
Siiski on võrdluseks esitatud andmed kolme kontrolleri kohta: KIT 8080, ADSP2101 ja Nanocomputer.
Kontrolleri KIT 8080 konstrueeriti ning valmistati TÜ füüsikaosakonnas Enn Ütsi juhendamisel [1]. Süsteemse tarkvara kirjutas Toivo Vajakas.
KIT 8080 on mikroprotsessoril KR580IK80 baseeruv kontroller, mis koosneb kahel trükkplaadil koostatud lihtsast mikroarvutist ja toiteplokist.
Põhiplaadil paikneb tsentraalne osa, mis koosneb järgmistest komponenetidest:
Programmid sisestab kasutaja kontrolleri mällu 3*16 maatriksisse seatud klaviatuuri abil. Andmed inditseeritakse tablool, mis koosneb kolmest 4-elemendilisest rühmast - aadressiväli, koodiväli ja operandiväli. 4 keskmist elementi on 5´12-punktilised maatriksindikaatorid, ülejäänud aga 7-segmendilised.
Toiteplokk väljastab stabiliseeritud toitepingeid -5V, +5V ja +12V kontrolleri toiteks ning +15V ja -15V praktikumis kasutatavate lisaseadmete tarbeks. Muutmälul on akutoide, et info säiliks ka pärast välise toite väljalülitamist. See hoiab aega kokku pikkade programmide korduva sisestamise pealt.
Püsimälus on nelja kilobaidine monitorprogramm, mis korraldab kontrolleri tööd ja lihtsustab kasutajal oma programmide koostamist, kontrollerisse sisestamist ja silumist.
Monitorprogramm võimaldab kontrolleri kasutajal:
Monitorprogrammi alamprogrammid on kättesaadavad ka kasutajale. Sellisteks on inditseerimisprogrammid, alamprogrammid sümbolite sisetamiseks klaviatuurilt, viiteaegade ja helisignaali genereerimiseks, 32-bitise positiivse täisarvu jagamiseks 16-bitise positiivse täisarvuga.
Nagu eelpool mainitud, on õppekontrolleril KIT 8080 moraalselt vananenud. Peale selle on tal õpetamise seisukohast 3 puudust:
Firma "Analog Devices" protsessor ADSP2101 on 16-bitine digitaalset signaalitöötlust võimaldav mikroprotsessor [2]. Protsessor põhineb Harvardi arhitektuuril. Andmete jaoks on 2 siini ja aadresside jaoks 1 siin. Kiibis on programmi jaoks muut- või püsimälu, andmete jaoks muutmälu. Integreeritud on kaks jadaväratit ja taimer. Protsessoril on 3 sõltumatut arvutusüksust: ALU, korrutaja/aku ja nihutaja. Kasutada saab fikseeritud komaga arve ja ujuvkomaarve. Protsessori taktsagedus võib olla kuni 20 MHz. Ühe tsükli jooksul on ADSP2101 suuteline tegema järgmisi operatsioone:
Protsessor kasutab oma töös pipeline-meetodit. Iga käsukood on 24-bitine ja käsk täidetakse ühe taktiga. Andmete muutmälu on 1 kilobait, programmi muutmälu 2 kilobaiti. Jadaväratid on sünkroonsed, võimaldavad ka multiprotsessormoodi.
ADSP2101 on mõeldud digitaalseks signaalitöötluseks. Mikroprotsessoritest algteadmiste omandamiseks on ta liiga keerulise ehitusega ja liiga spetsiifiline. Pealegi on ta RISC-protsessor. Antud protsessor on füüsikaosakonnas olemas, kuid puudub tarkvara ja andmebaas tema rakendamiseks. Kui need puudused lähitulevikus korvatakse, leiab ta oma koha digitaalse signaalitöötluse praktikumis.
Joensuu Ülikoolis kasutatakse mikroprotsessortehnika praktikumis kontrollerit Nanocomputer [3]. Kontrolleri on valmistanud Itaalia firma SGS-ATES Componenti Elettronici Spa (SGS). Kontroller põhineb Zilogi protsessoril Z80. Protsessori taktsageduseks on valitud 2.4574 MHz. Süsteemi kuuluvad 4-kilobaidine muutmälu, 2-kilobaidine EPROM ja 2 rööpväratit Z80PIO. Muutmälu hõlmab mäluaadressivälja madalamad aadressid, püsimälu kõrgemad. Püsimälus on monitorprogramm. Üks rööpvärat on mõeldud suhtlemiseks klaviatuuri ja indikatsioonitablooga, teine on aga kasutaja käsutuses. Nihkeregistrite süsteemi abil on andmeid võimalik salvestada jadakoodis C-tüüpi helikassetile ja sealt andmeid lugeda. Sama registrite süsteemi abil saab ASCII-koodis infot väljastada jadasisendiga printerile.
Süsteem koosneb kolmest plaadist integraallülitustega. Plaatidel olevad 86 klemmi on ühendatud süsteemi koostisosade viikudega: signaalid CPU-lt, siinidelt, toitest jne. Kõik signaalid on puhverdatud ja protsessori kirjutamissignaal /WR ka hilistatud. Klaviatuur koosneb kümnest klahvist. Indikatsioonitablool on 8 valgusdioodi, mis inditseerivad ainult andmesiini bittide seisu. Rööpväratid on seatud katkestusahelasse. Toitepinged on +5V, -5V, +12V ja -12V.
Praktikumis vaadeldakse süsteemi ehitust ja töötamist, andmete inditseerimist ja sisestamist, katkestuste ja viiteaegade korraldamist, aritmeetika- ja loogikatehteid.
Antud kontrolleril on väga hea õpetada mikroprotsessorsüsteemi koostamist. Nimelt pole süsteemi osad omavahel ühendatud, vaid nende viigud on ühendatud plaatidel olevate klemmidega. Praktikumi sooritajal tuleb juhtmetega ühendada klemmid nii, et moodustuksid andme-, aadressi- ja juhtimissiin, katkestus- ja toiteahelad jne., ühesõnaga koostada mikroprotsessorsüsteem. Samas peavad süsteemi töö ja võimaluste tundmaõppimiseks antavad ülesanded olema suhteliselt lihtsad ja vähe aega nõudvad. Erinevus Nanocomputeri ja LKZ180-e vahel sisnebki selles, et Nanocomputeril saab asetada põhirõhu süsteemi koostamisele, LKZ180-l aga süsteemi koostisosade reaalsele rakendamisele mikroprotsessorsüsteemi töö tundmaõppimiseks, andmevahetuse ja signaalitöötluse teostamisele.
Turu Ülikoolis õpetavad mikroprotsessortehnikat Risto Punkkinen ja Tom Kuusela. Loengukursuse esimeses osas [4] antakse üldine ülevaade arvuti ajaloost, arvusüsteemidest, loogikalülitustest, MOP-transistoridest. Seejärel vaadeldakse mikroprotsessori üldist ehitust, põhisõlmi ja nende tööpõhimõtet, erinevaid mälusid, mälude ühendamist protsessoriga ja suhtlemist. Inteli 8085-e ja 8086-e baasil antakse ülevaade protsessori käskudest ja masintsüklitest. Vaadeldakse asünkroonset ja sünkroonset jadakoodis andmevahetust, katkestusi, taimerit ja muid süsteemi koostiosi. Kursuse teises osas [5] konkretiseeritakse esimese osa materjali Inteli 8086-e baasil. Lõpus antakse lühiülevaade protsessoritest 8087, 80286 ja 80386. Olemasolevatest loengukonspektidest võib teha järelduse, et vaadeldud kursusega praktikumi ei kaasne. See ei tähenda seda, et praktikumi üldse pole. Tõenäoliselt on praktikum omaette õppeaine. Temaatiliselt on vaadeldud loengukursus sarnane Matti Fischeri poolt loetava kursusega "Arvutite arhitektuur".
Signaalide, bittide ja viikude tähiste ees olev kaldkriips märgib seda, et antud signaal või bitt allub negatiivsele loogikale, s.t., et signaali aktiivne seisund on madal seisund. Nt.
![]() |
![]() |
![]() |
![]() |
---|