[Saidi indeks] [Sisukord]
 

 


2. LKZ180 kirjeldus ja suhtlemine süsteemi osadega

2.1. Üldkirjeldus

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.

[image - Joonis 2.1.1]
Joonis 2.1.1: Kontrolleri LKZ180 plokkskeem

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.

2.2. Protsessor ZILOG Z80180

 [Image - Joonis 2.2.1]
Joonis 2.2.1: Protsessori Z80180 plokkskeem

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.

2.3. Asünkroonne jadavärat ASCI

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.

 [Image - Joonis 2.3.1]
Joonis 2.3.1: ASCI plokk-skeem

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.

2.4. Rööpvärat PIO

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.

 [Image - Joonis 2.4.1]
Joonis 2.4.1: Rööpvärat Z80PIO

Rööpvärati viigud on järgmised [7]:

> > >
Tabel 2.4.1: Z80PIO loogika valimine
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).

> >
Tabel 2.4.2: Z80PIO juhtimissignaalid
Signaal Tähendus
/M1 /IORQ /RD
0 0 0 Pole tähendust
0 0 1 Katkestuse tunnustamine (ei kasutata kontrolleril)
010Katkestuse teenindamise lõpu kontroll (ei kasutata)
011Reset
100Andmete lugemine PIO-st protsessorisse
101Andmete kirjutamine protsessorist PIO-sse
110Pole tähendust
111Pole 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.

Tabel 2.5.1: ADC sisendi ja väljundi vaheline seos
Analoogsisend (V) Digitaalväljund Analoogsisend (V) Digitaalväljund
-2.50000 0000 0000000 0000 0000
-2.4951200 0000 00010.0048800 0000 0001
0.0010 0000 00002.50010 0000 0000
+2.4951211 1111 11114.9951211 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.

Tabel 2.5.2: AD7579 väljundandmete formaat
MADALDB7DB6DB5DB4DB3DB2DB1DB0
KÕRGEEOC*00000DB9DB8
*EOC - sisemine muundamise lõpetatuse lipp
**DB0..DB9 - andmebitid

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.

Tabel 2.5.3: AD7579 olekutabel
/CS/WR/RD/HBENFunktsioon
1XXXPole valitud
011X On valitud, ootab /WR- ja /RD-signaale
001XAlustada muundamist /WR-i langusfrondil
0100Lubada lugeda madalam andmebait
0101Lubada 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.

2.6. Digitaal-analoogmuundur DAC

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.

Tabel 2.6.1: AD557 sisendi ja väljundi vaheline seos
DigitaalsisendAnaloogäljund (V)DigitaalsisendAnaloogäljund (V)
0000 0000 (00H)00111 1111 (7FH)1.270
0000 0001 (01H)0.0101000 0000 (80H) 1.280
0000 0010 (02H)0.0201100 0000 (C0H) 1.920
0000 1111 (0FH)0.1501111 1110 (FEH) 2.540
0001 0000 (10H)0.1601111 1111 (FFH)2.550

2.7. Mälud

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.


Üles seatud Thu., 09.07.1998.
Viimati muudetud Sat., 06.11.1999 02:21 PM CEST
WWW-lehekülje kujundus, õigused, vastutus © Heiki Kasemägi, 1998-1999

[Tagasi eelmisele leheküljele (JavaScript)] [1. peatükk] [Sisukord] [3. peatükk]