![]() |
![]() |
---|
Kontroller LKZ180 baseerub mikroprotsessoril ZILOG Z80180. Eraldi integraalskeemidel on 10-bitine analoog-digitaalmuundur AD7579 (ADC), 8-bitine digitaal-analoogmuundur AD557 (DAC) ja rööpvärat Z80PIO (PIO). Muutmälu 62256 (RAM) on 32 kilobaiti, millest 4 kilobaiti on monitorprogrammi käsutuses. Püsimälus 27256 (ROM) on personaalarvutiga sidet pidav monitorprogramm.
Kuna kontrolleril pole spetsiaalseid lisaseadmeid andmete sisestamiseks protsessorisse, tulemuste inditseerimiseks ja kontrolleri töö juhtimiseks (s.t. puudub klaviatuur ja indikatsioonitabloo), siis on suhtlemine kontrolleriga teostatud personaalarvuti kaudu monitorprogrammi Z180 abil. Selle jaoks on üks ASCI kanalitest (ASCI1) ühendatud läbi MAX238 liidese personaalarvuti COM-porti.
Protsessori signaalide testimiseks on olemas spetsiaalsed kuplungid, kuhu saab ühendada loogikaanalüsaatori.
Eraldi sisend- ja väljundkuplungid on rööpvärati mõlemal pordil, ASCI kanalil 0, analoog-digitaal- ja digitaal-analoogmuunduritel. Katkestuste väliseks korraldamiseks on olemas vastavad sisendid.
Taktisignaali allikana kasutatakse kvartsostsillaatorit, mille sagedus on 12.288 MHz. Sellise sageduse korral on võimalik kasutada asünkroonsel jadaväratil maksimaalset saatmiskiirust 38400 boodi. Digitaalseadmete toitepinge on +5V, analoogseadmetel aga ±5V. Kontrollsignaalide väljundid on puhverdatud, signaalid on TTL-signaalid (0...5V). Puhvriteks on puhvervõimenditena tööle pandud registrid. Nende kasutamine väldib lühise korral kallimate seadmete riknemise. Puhvrid on ühesuunalised. Välised katkestussisendid on puhverdatud, sisendsignaal peab olema TTL-signaal. Analoog-digitaalmuunduri sisend on puhverdatud, signaal võib olenevalt reziimist olla unipolaarne standardselt 0...5V või bipolaarne standardselt -2.5V...+2.5V. Sisendpinge piirid sõltuvad tugipingest. Digitaal-analoogmuunduri väljund on puhverdatud, signaal on unipolaarne 0...2.5V. Rööpvärati port A on ühesuunalise puhvriga seatud jäigalt väljundpordiks, väljundsignaal on TTL-signaal. Port B on ühesuunalise puhvriga seatud jäigalt sisendpordiks, sisendsignaal peab olema TTL-signaal. Asünkroonse jadavärati ASCI mõlema kanali TTL-signaal muundatakse liidesega MAX238 personaalarvuti COM-pordi jaoks sobivaks signaaliks vahemikus -10V...+10V. Seejuures kasutatakse arvutiga suhtemiseks vaid ühte kanalit, teist kanalit saab kasutada andmevahetuseks teise seadmega, mis asub kaugemal kui mõni meeter ja mille sisendis-väljundis on samuti MAX-liides.
Protsessori taktsagedus on 6.144 MHz. Protsessor Z80180 [6] koosneb 5 põhiplokist: taktigeneraator, siinikontroller (hõlmab ka dünaamilise mälu värskendamist), katkestuste kontroller, mäluhaldusmoodul (MMU) ja tsentraalne töömoodul (CPU). Lisaks on integreeritud 4 sisend-väljundplokki: mällu otsepöördumine (DMA, 2 kanalit), asünkroonne jadakommunikatsiooniliides ehk asünkroonne jadavärat (ASCI, 2 kanalit), programmeeritav ja taaslaetav taimer (PRT, 2 kanalit) ja sünkroonne jadavärat (CSIO).
Taktigeneraator genereerib süsteemi taktisageduse kas väliskristalli või -takti sisendist. Väline takt jagatakse kahega, saades sageduseks 6.144 MHz. Saadud taktisignaal antakse nii sisemistele kui välistele seadmetele.
Siinikontroller juhib siinide kasutamist CPU ja mõnede kiibisiseste välisseadmete poolt. See hõlmab muu hulgas ootetaktide lisamist, dünaamilise mälu (DRAM) värskendamist ja DMA jaoks siinide loovutamist. Kuna kontrolleril dünaamilist mälu pole, siis võib mäluvärskenduse välja lülitada.
Katkestuste kontroller jälgib, et sisemistel ja välistel katkestustel oleks õige prioriteet, et CPU saaks neile korrektselt vastata. Ühilduvuse säilitamiseks protsessoriga Z80 on olemas 3 erinevat katkestusmoodi.
Mäluhaldusmoodul MMU võimaldab kasutajal jaotada CPU poolt kasutatavat mälu 1-megabaidises aadressiruumis (loogiliselt vaid 64-kilobaidine) osadeks jagada (mappida). MMU ei toeta ühilduvust Z80CPU-ga siis, kui pakutakse juurdepääsu laiendatud mäluruumile.
Tsentraalne töötlusmoodul CPU on protsessori tuum ja ühilduv Zilogi Z80CPU-ga. Kasutatakse täiendatud Z80-e käsustikku, mis hõlmab ka 8-bitise korrutamise ja jagamise.
Otsemälupöördumise e. DMA kontroller võimaldab kiiret andmevahetust mälu ja S/V-seadmete vahel. Ülekandeid saab teha mälude vahel, mälu ja S/V-seadme vahel ning S/V-seadmete vahel. Ülekandemoode on 3. DMA ülekannet saab teostada kogu 1-megabaidise aadressiruumi ulatuses 64-kilobaidiste plokkidena.
Asünkroonsel jadaväratil ASCI on 2 täisduplekskanalit, millest igaühel on programmeeritav saatmiskiiruse generaator ja juhtsignaalid. Ka toetavad ASCI kanalid multiprotsessorformaati.
Programmeeritav taaslaetav loendur PRT koosneb kahest kanalist, millest igal on oma 16-bitine loendur (taimer) ja loendi taaslaadimise register. Loendurid kasutavad süsteemi taktsagedust, mida jagatakse 20-ga. PRT kanalil 1 on lisaks erineva olekuga signaalide genereerimist võimaldav väljund. Kontrolleril seda väljundit kasutada ei saa.
Sünkroonset jadaväratit CSIO kontrolleril kasutada ei saa, kuna selle väljund- ja sisendsignaalid pole kuplungitega ühendatud.
Protsessori Z80180 kiibisisesel asünkroonsel jadaväratil ASCI on 2 täisduplekskanalit. ASCI1 kaudu peetakse sidet personaalarvutiga, ASCI0 on aga kasutaja käsutuses. Iga ASCI kanal on eraldi programmeeritav. ASCI0-l on 7 registrit.
Väljastatavad andmed kirjutatakse käsuga OUT0 (TDR0),g ASCI0-i saatmise andmeregistrisse TDR0, mille aadress on 06H. TDR0 on nii kirjutatav kui ka loetav register. Sealt kantakse andmed üle ASCI0-i saatmise nihkeregistrisse TSR0, mis on ühendatud TXA0-väljundviiguga. Viimase kaudu saadetakse andmed bitthaaval välja. TSR0 pole sisend-väljundkäskudega loetav ega kirjutatav register.
RXA0-sisendviigu kaudu loetakse sisestatavad andmed bitthaaval ASCI0-i vastuvõtu nihkeregistrisse RSR0, mis pole sisend-väljundkäskudega loetav ega kirjutatav register. Kui RSR0 on täis, kantakse andmed üle ASCI0-i vastuvõtu andmeregistrisse RDR0, kust neid saab käsuga IN0 g,(RDR0) lugeda. RDR0-i aadress on 08H.
ASCI0-i olekuregister STAT0 aadressiga 04H sisaldab mitut vealippu: ületäitumine, paarsusviga ja vale stopibitt. Ta võimaldab lubada ja keelata ASCI0-i poolt genereeritavaid katkestusi, peegeldab RDR0- ja TDR0-registrite ning /DCD0-sisendsignaali olekut.
ASCI0-i juhtimisregister CNTLA0 aadressiga 00H võimaldab konfigureerida andmeformaati, multiprotsessormoodi, lubada-keelata saatjat ja vastuvõtjat, seada /RTS0-väljundsignaali.
ASCI0-i juhtimisregister CNTLB0 võimaldab konfigureerida multiprotsessorformaati, valida saatmiskiirust ja paarsust. Registri aadress on 02H
Kuigi ASCI0-l on 3 modemi juhtimissignaali /RTS0, /CTS0 ja /DCD0, kasutatakse neist vaid kahte esimest. Sisendsignaal /CTS0 võimaldab välisseadmel juhtida ASCI0-i saatmismoodi. Kui /CTS0 on kõrge ehk mitteaktiivne, hoitakse TDRE-bitt (saatmise andmeregister tühi) nullituna hoolimata TDR0-i olekust. Kui /CTS0 läheb aktiivseks, peegeldab TDRE TDR0-i reaalset olekut. Seega saab selle signaaliga keelata andmete saatmise TDR0-i. Käimasolevat saatmist /CTS0-i mitteaktiivne olek ei peata. /RTS0 on väljundsignaal, mis ühendatuna välisseadme ASCI-kanali /CTS0-sisendiga võimaldab juhtida välisseadme ASCI-kanali saatmismoodi. /DCD0-sisendsignaali ASCI0-l ei kasutata.
Kontrolleri rööpväratil Z180PIO on 2 sõltumatut 8-bitist porti, mis võivad olla nii sisendiks kui ka väljundiks. Et port A on ühesuunalise puhvri tõttu määratud väljundpordiks ja port B samal põhjusel sisendpordiks ning PIO-l ei saa kasutada juhtsignaale ARDY, BRDY, /ASTB, /BSTB ega katkestusi, kasutatakse praktikumis rööpvärati porte lihtsate paralleelsisendite ja -väljunditena.
Rööpvärati viigud on järgmised [7]:
SIGNAAL | VALITUD REGISTER | ||
---|---|---|---|
/CE | B//A valik | C//D valik | |
0 | 0 | 0 | A-pordi andmeregister |
0 | 0 | 1 | A-pordi juhtimisregister |
0 | 1 | 0 | B-pordi andmeregister |
0 | 1 | 1 | B-pordi juhtimisregister |
1 | x | x | Seade pole valitud |
PIO signaalid on TTL-signaalid. PIO adresseerimiseks ja registrite valimiseks on B//A-viiguga ühendatud aadressiviik A0, C//D-viiguga - A1. /CE-viik on ühendatud dekoodriga, mille sisendis on signaalid A8, A9 ja A10. Neist formeerib dekooder kiibivalikusignaalid PIO-le, ADC-le ja DAC-le.
Rööpvärati initsialiseerimiseks tuleb portidesse kirjutada juhtimissõnad, mis määravad A-pordi väljundiks ja B-pordi sisendiks. A-pordi juhtimisregistri aadress on 302H ja sinna tuleb kirjutada käsuga
OUT (C),g sõna 0FH. B-pordi juhtimisregistri aadress on 303H ja sinna tuleb kirjutada sõna 10H. A-pordi andmeregistri aadress on 300H ja sinna saab saata väljastatavaid andmeid käsuga OUT (C),g . B-pordi aadress on 301H ja sealt saab lugeda sisestatud andmeid käsuga IN g,(C).
Signaal | Tähendus | ||
---|---|---|---|
/M1 | /IORQ | /RD | |
0 | 0 | 0 | Pole tähendust |
0 | 0 | 1 | Katkestuse tunnustamine (ei kasutata kontrolleril) |
0 | 1 | 0 | Katkestuse teenindamise lõpu kontroll (ei kasutata) |
0 | 1 | 1 | Reset |
1 | 0 | 0 | Andmete lugemine PIO-st protsessorisse |
1 | 0 | 1 | Andmete kirjutamine protsessorist PIO-sse |
1 | 1 | 0 | Pole tähendust |
1 | 1 | 1 | Pole tähendust |
2.5. Analoog-digitaalmuundur ADC
Analoog-digitaalmuundur AD7579 on 10-bitise andmesõnaga [8]. Toitepinge on 5 volti. Maksimaalne diskreetimissagedus on 50 kHz ja sisendi maksimaalne sagedusriba - 25 kHz. Sisendsignaal võib olla nii bipolaarne (standardselt ± 2.5 V) kui ka unipolaarne (standardselt 0..5 V). Reziimi on võimalik lüliti abil valida.
Analoogsisend (V) | Digitaalväljund | Analoogsisend (V) | Digitaalväljund |
---|---|---|---|
-2.500 | 00 0000 0000 | 0 | 00 0000 0000 |
-2.49512 | 00 0000 0001 | 0.00488 | 00 0000 0001 |
0.00 | 10 0000 0000 | 2.500 | 10 0000 0000 |
+2.49512 | 11 1111 1111 | 4.99512 | 11 1111 1111 |
Kuna ADC on protsessoriga ühendatud 8-bitise andmesiini abil, siis jaguneb tema väljundsõna kaheks: 8 madalamat + 2 kõrgemat bitti. ADC-st andmete lugemisel tuleb lugeda mõlemad baidid, muidu läheb osa infot kaduma. Seejuures pole oluline, kumb bait enne lugeda.
MADAL | DB7 | DB6 | DB5 | DB4 | DB3 | DB2 | DB1 | DB0 |
---|---|---|---|---|---|---|---|---|
KÕRGE | EOC* | 0 | 0 | 0 | 0 | 0 | DB9 | DB8 |
ADC tuleb igaks muundamiseks eraldi käivitada ja seejärel temast andmed lugeda. Käivitamiseks tuleb temasse sisestada väljundkäsuga OUT (C),g suvaline andmesõna, sest muundur käivitub /WR-signaali langusfrondil. Madalama andmebaidi lugemiseks sisendkäsuga IN g,(C) on aadress 200H, kõrgema lugemiseks aga 201H. Mõlema käsu korral peab aadress olema BC-registris.
/CS | /WR | /RD | /HBEN | Funktsioon |
---|---|---|---|---|
1 | X | X | X | Pole valitud |
0 | 1 | 1 | X | On valitud, ootab /WR- ja /RD-signaale |
0 | 0 | 1 | X | Alustada muundamist /WR-i langusfrondil |
0 | 1 | 0 | 0 | Lubada lugeda madalam andmebait |
0 | 1 | 0 | 1 | Lubada lugeda kõrgem andmebait |
/CS on kiibivaliku signaal, /WR on protsessori kirjutamissignaal, /RD on protsessori lugemissignaal, /HBEN on kõrgema andmebaidi lubamise sisendsignaal, et ADC-st saaks lugeda kõrgemat baiti.
Kontrolleril kasutatakse 8-bitist digitaal-analoogmuundurit AD557 [9]. Toitepinge on +5 V. Väljund on unipolaarne (0..+2.56 V). Andmete sisestamiseks DAC-i tuleb nad väljundkäsuga OUT (C),g saata aadressil 100H.
Digitaalsisend | Analoogäljund (V) | Digitaalsisend | Analoogäljund (V) |
---|---|---|---|
0000 0000 (00H) | 0 | 0111 1111 (7FH) | 1.270 |
0000 0001 (01H) | 0.010 | 1000 0000 (80H) | 1.280 |
0000 0010 (02H) | 0.020 | 1100 0000 (C0H) | 1.920 |
0000 1111 (0FH) | 0.150 | 1111 1110 (FEH) | 2.540 |
0001 0000 (10H) | 0.160 | 1111 1111 (FFH) | 2.550 |
Kontrolleril kasutatav püsimälu EPROM on 32-kilobaidine [10]. Püsimälu algusaadress on 0000H ja lõppaadress - 7FFFH. Püsimällu on salvestatud personaalarvutiga sidet pidada ja kontrollerit juhtida võimaldav monitorprogramm ning mõned alamprogramid, mida saab kasutada kasutajaprogrammide koosseisus. Monitorprogramm peab personaalarvutiga sidet ASCI kanali 1 ja arvuti COM-pordi kaudu. Monitorprogramm võimaldab registrite ja mälu sisu testimist ning muutmist, programmide käivitamist tervikuna ja sammhaaval silumist.
Staatiline muutmälu RAM on 32-kilobaidine. Muutmälu algusaadress on 8000H ja lõppaadress - FFFFH. Kasutaja käsutuses on RAM-i esimesed 28 kilobaiti alates aadressist 8000H kuni aadressini EFFFH. 4 kilobaiti alates F000H kuni FFFFH on monitorprogrammi käsutuses ja kasutaja EI TOHI sellesse mälupiirkonda midagi kirjutada. Iga kasutajaprogrammi alguses tuleb käsuga LD SP,pinuviit seada paika pinumälu algus. Pinumälu algusaadress peab olema väiksem kui F000H, ent tuleb jälgida, et mahukad andmemassiivid ja pikad programmid ei satuks pinumälu piirkonda.
![]() |
![]() |
![]() |
![]() |
---|