univerzitet u beogradu elektotehni~ki fakultetemp.etf.rs/radovi/diplomski/nenad_nedeljkovic.pdf ·...

43
UNIVERZITET U BEOGRADU Elektotehni~ki fakultet NEDELJKOVI] NENAD PROJEKTOVANJE MIKRORA^UNARSKOG SISTEMA ZA RAZVOJ ALGORITAMA UPRAVLJANJA ELEKTROMOTORNIM POGONIMA I ENERGETSKIM PRETVARA^IMA - diplomski rad - Beograd 1996.

Upload: others

Post on 14-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

UNIVERZITET U BEOGRADU

Elektotehni~ki fakultet

NEDELJKOVI] NENAD

PROJEKTOVANJE MIKRORA^UNARSKOG SISTEMA ZA RAZVOJ ALGORITAMA UPRAVLJANJA ELEKTROMOTORNIM POGONIMA I

ENERGETSKIM PRETVARA^IMA

- diplomski rad -

Beograd 1996.

Page 2: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

2

SADR@AJ I Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 II Realizacija po~etnih zahteva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 III Mikroprocesor 8031 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 III.1 Opis funkcija pinova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 III.2 Hardverska struktura portova . . . . . . . . . . . . . . . . . . . . . . . . 11 III.3 Interni RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 III.4 Registri op{te namene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 III.5 Broja~i i tajmeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 III.6 Seriski interfejs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 III.7 Prekidi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 IV Opis podsistema mikrora~unara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 IV.1 PAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 IV.2 Memorijski deo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 IV.3 Enkoderski deo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 IV.4 Displej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 IV.5 Deo sa A/D i D/A konvertorima . . . . . . . . . . . . . . . . . . . . . . 33 IV.6 Deo sa konektorima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 V Memorijska mapa mikrora~unara . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Page 3: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

3

VI Zaklju~ak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 VII Prilog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

I UVOD

Page 4: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

4

Diplomski rad bavi se projektovanjem ({eme i {tampe) mikrora~unarskog sistema za razvoj i ispitivanje algoritama (programa) upravljanja elektromotornim pogonima i energetskim pretvara~ima, prema specifikaciji datoj na slici 1.

sl.1

Tako|e, mikrora~unarski sistem mora imati mogu}nost prijema programa za upravljanje sa personalnog ra}unara i njegovo sme{tanje u RAM, startovanja i izmene tog programa. Prema tome, mikrora~unarski sistem mora biti povezan serijskom vezom (RS-232 standardom) sa personalnim ra~unarom. Ovim se izbegava stalno skidanje i reprogramiranje EPROM-a.

II REALIZACIJA PO^ETNIH ZAHTEVA

Page 5: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

5

Za osnovu mikrora~unarskog sistema usvojio sam INTEL-ov 8-bitni mikroprocesor 8031. U delu III bi}e vi{e re~i o μP 8031.

Mikroprocesor 8031 ima dvosmerni serijski port, koji omogu}ava serijsku komunikaciju tako da nije potreban serijski interfejs. Potrebno je kolo koje }e RS-232 ulaz i izlaz prilagoditi TTL standardu (komponentama). Za tu svrhu upotrebio sam kolo MAX 232. RS-232 ulaz i izlaz su preko termalnih otpornika vezani na kolo MAX 232. Mikrora~unar je serijskom vezom povezan sa personalnim ra~unarom.

Kako 8031 ne sadr`i A/D konvertor, mora postojati spoljni konvertor. Upotrebio sam A/D konvertor AD571 sa rezolucijom od 10 bita. Analogni izlaz zadaje se preko 8-bitnog D/A konvertora AM1408L8. Naponski nivo analognog ulaza i izlaza se kre}e od 0V do +10V. Analogni ulaz i izlaz se ne dovode direkno na konvertore, ve} preko jedini~nih poja~ava~a, o ovome }e biti vi{e re~i u delu IV.5.

Sa postoje}eg enkodera u laboratoriji, dolaze ~etiri faze impulsa, me|usobno pomerene za ±90° u zavisnosti od smera obrtanja. Da bismo znali o kom smeru obrtanja se radi, moramo izvr{iti dekodovanje ovih signala. Realizacija dela za dekodovanje data je na slici 8. Tako|e, dekodovane impulse terba brojati i u `eljenom trenutku upamtiti, da bi μP mogao odrediti brzinu (polo`aj). Obja{njenje i realizacija delova za dekodovanja, brojanja i pam}enja broja impulsa dato je u delu IV.3.

Displej ~ine ~etiri osmosegmentna displeja. Uz svaki displej potreban je spoljni registar (74373) u kojem se upisuje vrednost koja se `eli prikazati na displeju. Realizacija displeja prikazana je na slici 9, a obja{njenje je dato u delu IV.4.

Za interfejse usvojio sam INTEL-ov spoljni programabilni paralelni interfejs 8255. Ovaj interfejs ima kontrolni registar i tri data registra u kojima se mo`e upisivati i ~itati. Ova tri registra su povezana na spoljne no`ice (pinove) tako da ~ine tri porta A,B i C. Portovi A,B,C i kontrolni registar moraju imati svoje zasebne adrese. Port C slu`i za programiranje logike rukovanja, ako nema rukovanja port C slu`i kao obi~an ulazno/izlazni port. U relizaciji nije potrebna logika rukovanja, tako da je nije potrebno objasniti. Za povezivanje postoje}ih perifernih ure|aja patrebna su dva interfejsa 8255. Na jednom su vezani A/D i D/A kovertori (PIA0), a na drugom dispjej i enkoderski deo (PIA1). Na~in

Page 6: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

6

povezivanja, ovih periferiskih ure|aja sa 8255 i μP sa 8255, dat je na slici 7. Obja{njenje za svaki ure|aj je dato u delovima koji govore o tim ure|ajima.

Mikroprocesor 8031 ima dva pina na kojima daje signale za ~itanje iz programske memorije (PSEN#) i ~itanje iz RAM-a (RD#). To zna~i da postoje dva nezavisna adresna prostora, jedan za program, a drugi za podatke. Kako adresa ovog μP ima 16 bita, memorijski prostor je du`ine 64KB. Mikroprocesor se perifernim ure|ajima obra}a kao memoriji, preko paralelnih interfejsa, tj. svaki ure|aj ima svoju adresu. Prema tome, ceo adresni prostor za podatke ne mo`emo popuniti sa RAM-om ve} jedan deo prostora treba ostaviti za periferne ure|aje. Spoljni RAM ~ine ~etri ~ipa 6264 od po 8KB, {to ukupno ~ini 32KB. Preostali deo ovog prostora namenjen je za adresiranje periferije, preko paralelnih interfejsa 8255. Programska memorija je, tako|e, maksimalne du`ine 64KB, me|utim sasvim je dovoljno 32KB, tako da sam upotrebio EPROM 27256 od 32KB. Vi{e o memorijama bi}e re~i u delu IV.2.

Memorijski prostor za podatke sastoji se od ~etiri ~ipa RAM-a i dva ~ipa paralelnih interfejsa. Ovi ~ipovi }e biti aktivni (mo`e se upisivati ili ~itati iz njih) samo kada su selektovani, tj. kada je na njihovim odgovaraju}im pinovima za selekciju ~ipa aktivan nivo (nizak nivo). Treba izvr{iti raspodelu ovog prostora, tako da svaki ~ip obuhvati po jedan deo ovog prostora, bez preklapanja. Kada se izbaci adresa na adresnu magistralu mora biti aktivan samo jedan ~ip i to onaj u ~ijem prostoru se nalazi ova adresa. Da bi ovo postigli moramo izvr{iti dekodovanje adrese. Za dekodovanje adrese koristim kolo PAL, o kome }e biti vi{e re~i u delu IV.1. Raspored u prostoru za podatke, tj. memorijska mapa mikrora~unara data je u odeljku V.

Osnovna ideja je mogu}nost eksternog (spoljnjog) prijema programa za regulaciju, serijskom vezom (RS-232 standardom) sa personalnog ra~unara, njegovo sme{tanje u spoljni RAM, start tog programa (iz RAM-a), a samim tim i start regulisanog pogona. Problem kod ove ideje je start i ~itanje programa iz RAM-a. Moramo na neki na~in dovesti signal za ~itanje iz programske memorije (PSEN#) na RAM u `eljenom trenutku, tj. kada `elimo da o~itamo une{eni program. Ovo se re{ava logi~kom funkcijom (1) datom u odeljku IV.2. Ova logi~ka funkcija realizovana je PAL kolom.

Za napajanje upotrebljenih integralnih kola potreban je stabilisani napon od +5V. Za dva postoje}a operaciona poja~ava~a (slu`e za relizaciju jedini~nih poja~ava~a kod analognog ulaza i izlaza) potrebni su naponi od +15V i -15V. Predvi|eno napajanje mikrora~unara je +8V koje se dovodi na ugra|eni stabilizator napona (7805) koji daje stabilan napon od+5V. Ovo je predvi|eno da bi se, preko mikrora~unara, mogle napajati druge kartice u sistemu. Naponi od

Page 7: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

7

+15V i -15V se dovode stabilisani. Tako|e, na sva napajanja (integralnih kola) uz samo kolo stavlja se raspre`ni kondezator od 100nF.

Digitalni izlazi/ulazi su preostali neiskori{}eni pinovi mikroprocesora (8031) a to su: prvih {est pinova porta P1 i pinovi 2,3,4,5 porta P3. Ovi izlazi/ulazi nisu galvanski izolovani i preko R-C filtera vezani su za konektore.

Svi ulazi i izlazi vezani su na devetopinske konektore. Potrebno je pet devetopinskih konektora da bi se svi ulazi i izlazi sa mikrora~unara realizovali. Vi{e o konektorima bi}e re~i u odeljku IV.6.

U izradi {eme i {tampe koristio sam programske pakete ORCAD i TANGO. U ovom radu bi}e prikazana {ema i fizi~ki raspored komponenti na {tampanoj plo~i zbog komplikovanosti veza. Na sl.7 u odeljku VII data je {ema celog mikrora~unara, a na slikama 8 i 9 date su {eme displeja i dela za dekodovanje impulsa sa enkodera. Na slici 10 dat je fizi~ki raspored komponenti na {tampanoj plo~i. Sve potrebne komponente treba smestiti na karticu (plo~u) dimenzija 200x160mm (dvostruki euro format).

U daljem tekstu na~in funkcionisanja pojedinih delova bi}e obja{njen na primeru regulisanog pogona jednsmerne struje, radi lak{eg razumevanja.

III MIKROPROCESOR 8031

Page 8: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

8

Na sl. 3 prikazan je raspored no`ica (pinova) mikroprocesora 8031. Postoje dve no`ice na kojima μP daje signale, za ~itanje iz programske memorije (PSEN#) i za ~itanje iz RAM-a (RD#). To zna~i da postoje dva nezavisna adresna prostora, jedan za program, a drugi za podatke. Tre}i nezavisni adresni prostor je interni RAM.

sl.2

Ako su signali, na {emama, slikama i u tekstu, nadvu~eni (imaju crtu iznad oznake) ili imaju znak #, iza oznake to zna~i da je aktivan nivo signala nizak, a pasivan visok.

Mo`da je ispravnije za μP 8031 koristiti termin mikrokontroler umesto mikroprocesor, jer 8031 na istom ~ipu osim mikroprocesora sadr`i i niz perifernih jedinica, ali u daljem tekstu zadr`a}u termin mikroprocesor.

Mikroprocesor 8031 sadr`i slede}e komponente:

Page 9: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

9

• 8-bitni procesor (CPU)

• 128 (256) bajta internog RAM-a

• Oscilator i generator takta

• 16 ulazno/izlaznih linija (portovi P3 i P1)

• 16 linija namenjenih za adresiranje memorije (portovi P0 i P2), i za prihvat ili slanje podataka (port P0)

• Dva 16-bitna tajmera (broja~a)

• Pet odvojenih izvora interapta (prekida) sa dva nivoa prioriteta

• Dvosmerni serijski port za asinhronu komunikaciju

III.1 Opis funkcija pinova

Sa sl.1 se vidi da μP 8031 ima 40 pinova (no`ica).

• 1 do 8 (Port 1): svaki od ovih pinova mo`e se koristiti kao ulazni ili kao izlazni, prema potrebi.

• 9 (Reset): visok logi~ki nivo na ovom ulazu resetuje sve interne registre (dovodi ih u stanje 00000000), sa slede}im izuzecima: P0,P1,P2,P3 se dovode u stanje 11111111; SBUF se ne menja; SP se dovodi u stanje 00000111 (07h); interni RAM se ne menja.

Najva`nija posledica aktiviranja RESET ulaza je da se PC (programski broja~) resetuje, tako da }e zapo~eti izvr{avanje programa od adrese 0000h. Hardverski je re{eno da se ovaj ulaz automatski aktivira jednom po uklju~enju ure|aja na napajanje i posle toga je stalno nizak.

• 10 do 17 (Port 3): ako se koristi kao univerzalni ulaz ili izlaz, po svemu je sli~an portu 1, ali na svakom pinu ima specifi~nu funkciju:

Page 10: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

10

• 10 (P3.0) RXD - serijski ulaz za asinhronu komunikaciju (mod 1,2 i 3) ili serijski izlaz za sinhronu komunikaciju (mod 0)

• 11 (P3.1) TXD-serijski izlaz za asinhronu komunikaciju (mod 1,2 i 3) ili taktni (clock) izlaz za sinhronu komunikaciju (mod 0)

• 12 (P3.2) INT0-ulaz za interapt (prekid) 0

• 13 (P3.3) INT1-ulaz za prekid 1

• 14 (P3.4) T0-ulaz spoljnog takta za broja~ 0

• 15 (P3.5) T1-ulaz spoljnog takta za broja~ 1

• 16 (P3.6) WR#-signal za upis u spoljnu memoriju (RAM)

• 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM)

• 18 i 19 (X1 i X2): ulaz i izlaz internog oscilatora. Ako se koristi kvarc-kristal za stabilizaciju u~estanosti, on se vezuje za ova dva pina, s tim {to treba ugraditi jo{ po jedan kondenzator od 20-40 pF sa svakog od ovih pinova prema masi. Opseg u~estalosti je od 1 do 12 MHz, a izra|uju se μP koji rade i sa ve}om u~estano{}u.

• 20 (masa)

• 21 do 28 (Port 2 ili adrese A8 do A15): port 2 je adresni izlaz i to za vi{i bajt adrese.

• 29 (PSEN#): normalno se ovaj izlaz spaja sa CS# ili OE# ulazom na spoljnom EPROM-u, jer ga μP aktivira (dovodi na nizak nivo) svaki put kad ~ita bajt iz programske memorije

• 30 (ALE): kako port P0 ima dve funkcije izlaza adresa A0-A7 i ulaz / izlaz podataka D0-D7, pre svakog o~itavanja programa iz spoljne memorije ili obra}anja RAM-u μP }e na P0 proslediti ni`i bajt adresnog registra i aktivirati izlaz ALE. Spoljni registar (74373 ili 74573) }e na visok nivo ALE memorisati stanje P0 i izlaze ovog registra koristiti kao adrese A0-A7. U drugom delu ma{inskog ciklusa P0 }e se koristiti ili kao ulaz ili izlaz za podatke.

Page 11: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

11

• 31 (EA#): ako je ovaj ulaz nizak, μP }e sve instrukcije ~itati iz spoljneg EPROM-a

• 32 do 39 (Port 0): sli~no portu 2 i port 0 mo`e se koristiti za univerzalni ulaz i izlaz samo ako nema spoljne memorije. Ako postoji spoljna memorija onda je P0 adresni izlaz za ni`i bajt adrese (A0-A7) kada je ALE visok, a kada je ALE nizak kao ulaz /izlaz podataka.

• 40: napajanje +5V

III.2 Hardverska struktura portova.

Videli smo da postoje ~etiri 8-bitna porta i da portovi P0 i P2 slu`e za adresiranje i pristup podacima u memoriji, a P1 i P3 su univerzalni. Svi ulazi i izlazi su kompatibilni sa TTL standardom, a to prakti~no zna~i da mo`emo direktno da ih spajamo sa TTL ili kompatibilnim kolima.

III.3 Interni RAM

U adresni prostor internog RAM-a sme{teni su svi registri (osim programskog broja~a), hardverski broja~i i tajmeri, stek pointer, ulazno-izlazni portovi, bafer za serijsku komunikaciju i akumulator. Internom RAM-u se pristupa sa 8-bitnom adresom. Na sl. 3 prikazana je struktura internog RAM-a. Na po~etku adresnog prostora nalaze se ~etiri grupe (banke) od po osam registara op{te namene, od R0 do R7. S kojom grupom trenutno radimo zapisano je (isprogramirano) u delu statusnog registra (PSW). Od 20h do 7Fh je prostor op{te namene (mo`emo upisivati i ~itati) kojem se pristupa direktnim adresiranjem. Od adrese 80h do FFh nalaze se svi registri posebne namene (SFR) kojim se direktno pristupa. Posebna pogodnost ovog μP su instrukcije kojima se adresira samo jedan bit u internom RAM-u. Ove operacije su izvodljive neposredno samo na jednom delu RAM-a (na adresama od 20h do 2Fh) i sa nekim registrima koji su na sl.3 ozna~eni zvezdicama.

Page 12: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

12

sl.3

III.4 Registri op{te namene

Akumulator. Akumulator u svim μP ima istu funkciju ali ovde ima i svoju adresu u memoriji. Mada je to jedan isti registar, on ima ~ak i razli~ito

Page 13: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

13

ime ako mu se obra}amo kao univerzalnom registru (A) ili memorijskoj lokaciji (ACC).

B registar. Instrukcije za mno`enje (MUL) i deljenje (DIV) dozvoljavaju da se obe operacije obavljaju samo izme|u A i B registara. U svim drugim slu~ajevima B se koristi kao registar op{te namene, uglavnom za sme{taj me|urezultata.

Stack Pointer (SP). Za razliku od drugih procesora kod ovog SP registar sadr`i samo 8 bita, jer interni RAM nije du`i od 256 bajtova. Posle reseta vrednost SP je 07h , ali se mo`e promeniti na neku drugu vrednost.

Data Pointer (DPTR). Sastoji se od dva 8-bitna registra: DPH (vi{i bajt) i DPL (ni`i bajt) . Koristi se za adresiranje eksternog RAM-a ili za ~itanje tabela u EPROM-u.

Ulazno/izlazni portovi (P0,P1,P2,P3). Ako upisujemo u ove registre, mi zapravo upisujemo u latch registre za izlazne portove a ako ~itamo iz njih , onda ~itamo stanje sa no`ica portova ili stanje izlaznih registara.

Programska statusna re~ (PSW). Ovaj registar je od najve}e va`nosti za rad μP. Nije bitna vrednost ovog registra ve} je bitan sadr`aj pojedinih bitova.

7 6 5 4 3 2 1 0

PSW C AC FO RS1 RS0 OV - P

C (PSW.7) Carry Flag. Ovo je bit prenosa za sve aritmeti~ke operacije i instrukcije pomeranja ({iftovanja), a tako|e i glavni bit za 1-bitne operacije.

•AC (PSW.6) Auxillary Carry Flag. Ovo je pomo}ni bit prenosa samo za BCD operacije. U principu ga ne koristi sam programer nego slu`i za interno stvaranje aritmeti~ke jedinica kod instrukcije DA A.

•FO (PSW.5) Flag O. Ovaj bit stoji programeru na raspolaganju kao bit za univerzalnu upotrebu.

Page 14: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

14

•RS1 i RS2 (PSW.4 i PSW.3). Register Select 1 i 0. Slu`e za izbor dela internog RAM-a u kome }e biti sme{tena grupa registra R0 - R7, u skladu sa slede}om tabelom:

RS1 RS0 mesto u RAM-u

0 0 Grupa 0 00h-07h

0 1 Grupa 1 08h-0Fh

1 0 Grupa 2 10h-17h

1 1 Grupa 3 18h-1Fh

Programer ima slobodu da u svom programu menja navedene grupe registra i da na taj na~in svoj program u~ini br`im i efikasnijim.

•OV (PSW.2) Overflow flag. Ovo je bit prekora~enja. Setuje se (postavlja na 1) ako je rezultat aritmeti~ke operacije sa predznakom takav da ne mo`e da se prika`e u jednom bajtu. Ako nema prekora~enja on je 0.

•P (PSW.0) Parity flag. Ovo je bit parnosti. Ako je broj setovanih (1) bitova u A paran, onda je ovaj fleg 0,a ako je neparan on je na 1. Naj~e{}e se koristi za generisanje bita parnosti kod serijske komunikacije, pri slanju bajta i pri testiranju parnosti primljenog bajta.

III.5 Broja~i i tajmeri

Postoje dva tajmera koji se veoma ~esto koriste. Naj~e{~e se koriste za uniformno generisanje interapta (prekida) i generisanje takta za serijski port. Oba tajmera su me|usobno nezavisna i imaju skoro jednake funkcije.

Page 15: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

15

Registar TMOD. Odre|uje mod u kome }e svaki od njih raditi. Prvih ~etiri bita se odnose na tajmer 0 a preostali na tajmer 1:

7 6 5 4 3 2 1 0

TMOD GATE C T/ M1 M0 GATE C T/ M1 M0

•GATE Ako je ovaj bit setovan tajmer 0 (tajmer 1) }e biti aktivan (dobija}e inpulse za brojanje) samo ako je INT0# (INT1#) na visokom nivou i ako je TR0 (TR1) setovan. Ako je GATE resetovan (na 0), stanje na ulazu INT0# (INT1#) se ignori{e i jedini uslov da tajmer 0 (tajmer 1) bude aktivan je da je TR0 (TR1) setovan (na 1).

• C/T# Ako je setovan, tajmeri }e brojati impulse koji im se dovode na no`ice T0 i T1, a ako je resetovan, dobija}e uniformne impulse iz internog izvora, ~ija }e frekvencija biti jednaka u~estanosti oscilatora podeljenoj sa 12. Kako je usvojeno da oscilator radi na 12MHz, broja~ }e dobijati impuls svake mikro-sekunde.

• M1,M0 Ova dva bita odre|uju u kom modu }e raditi tajmeri

M1 M0 mod

0

0

1

1

0

1

0

1

0

1

2

3

Registar TCON. TCON je kontrolni registar. Me|utim, prva ~etiri bita nisu namenjena tajmerima, ve} slu`e za upravljanje spoljnim prekidima.

7 6 5 4 3 2 1 0

TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT1

Page 16: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

16

• TF1,TF0 Ovi bitovi se automatski setuju svaki put kad se stanje na tajmerima menja sa FFh na 0h (FFFFh na 0h). Tako|e se automatski resetuju kad procesor zapo~ne izvr{enje prekida, a mogu i poslu`iti programu kao signal da trenutno onemogu}en prekid ~eka da bude opslu`en.

• TR1,TR0 Mogu da se setuju ili resetuju iz programa ~ime }e pokrenuti ili zaustaviti broja~.

• E1,IE0 Setuje se automatski kada je na no`icama INT1# i INT0# detektovana ivica signala koja izaziva prekid, a setuje se kad se zapo~ne prekid.

•IT1,IT0 Ako su ovi bitovi setovani, prekid }e nastupiti kada se detektuje opadaju}a ivica signala na pinovima INT1# i INT0#, a ako ga resetujemo, prekid }e biti iniciran dok je na istim pinovima nizak nivo. To zna~i da pri opadanju signala na ovim pinovima, u prvom slu~aju biti generisan samo jedan prekid, a u drugom slu~aju prekidi }e se neprekidno generisati sve dok nivo na pinovima INT1# i INT0#, ponovo ne bude visok.

Mod 0. Ovaj mod se retko koristi, a ina~e je uveden da bi simulirao mod u kome je radila starija familija mikroprocesora 8048. TL0 (TL1) radi kao 5-bitni preskaler (deli broja~ku u~estanost sa 32), a glavni broja~ je TH0 (TH1). Kada se njegovo stanje promeni sa FFh na 00h nastupa prekid (interapt), naravno ako je omogu}en u registru IE.

Mod 1. Tajmeri TL0 i TH0 (TL1 i TH1) su kaskadno nadovezani jedan na drugi, tako da rade kao 16-bitni broja~. Prekid se generi{e kada se stanje promeni sa FFFFh na 0000h.

Mod 2. U modu 2 aktivni su TL0 i TL1 i na prvi impuls posle stanja FFh generi{e se prekid, ali onda broja~i ne kre}u od stanja 00h nego se stanje TH0 i TH1 kopira u broja~e. Tako }e se prekid generisati svakih 256-TH0, odnosno 256-TH1 impulsa.

Mod 3. Tajmer 1 je u modu 3 zaustavljen (ne menja stanje), a TL0 i TH0 rade kao dva nezavisna 8-binarna broja~a. TL0 radi kao u modu 0 (osim {to nema preskaler), a TH0 broji u~estanost oscilatora podeljenu sa 12 i pri promeni stanja sa FFh na 00h generi{e interapt koji je ina~e namenjen za tajmer 1. On od tajmera 1 pozajmljuje i upravlja~ki signal, jer bit TR1 odlu~uje da li }e TH0 biti aktivan (da li }e dobijati impulse za brojanje).

Page 17: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

17

Generisanje takta za serijski port pomo}u tajmera 1. Ako tajmer 1 koristimo za generisanje ovog takta treba isklju~iti interapt na tajmeru 1 i programirati tajmer da radi u modu koji nam odgovara da bi smo dobili `eljenu u~estanost. Ako je bit SMOD u registru PCON setovan, na izlazu iz tajmera 1 nam treba baud rate ∗16, a ako je resetovan baud rate ∗32. Naj~e{}e se tajmer 1 za ovu svrhu konfiguri{e da radi u modu 2 (TMOD=0010xxxx). U tom slu~aju baud rate (bit brzina) odre|ujemo po formuli:

Baud rate frekvencija oscilatoraTH

SMOD

= ×× −

232 12 256 1

1( ( ))

( )

Ovo va`i samo ako je serijski interfejs konfigurisan za mod1 ili mod 3 jer u modu 0 i modu 2 je bit brzina fiksna.

Mo`da nam za neke brzine serijskog prenosa ne}e odgovarati u~estanost oscilatora od 12MHz jer }e se javiti mala gre{ka u dobijanju `eljene brzine. U velikom broju slu~ajeva asinhroni serijski prenos dozvoljava ~ak i ve}e neta~nosti u brzini. Ako se tra`i potpuna preciznost, treba staviti kvarc od 11,059MHz (koji je standardan) i onda mo`emo da njime postignemo sve standardne brzine serijskog prenosa. U tom slu~aju ima}emo ne{to sporiji rad mikroprocesora.

III.6 Serijski interfejs

Serijski port je dupleksni. To zna~i da mo`e da predaje i prima istovremeno. Prijemni deo serijskog porta je dopunjen jo{ jednim paralelnim registrom, u koji se iz prijemnog pomera~kog registra automatski upisuje bajt koji je preko RXD pina upravo pristigao na port. To omogu}ava da se odmah nastavi prijem slede}eg bajta, jer program ne mo`e da garantuje da }e ba{ u istom trenutku biti spreman da prihvati novoprido{li bajt. Po{to postoji samo jedan paralelni registar, ako se bajt ne pro~ita do kraja prijema slede}eg, onda }e se on nepovratno izgubiti. Zato treba voditi ra~una o organizaciji programa tako da se ni u najnepovoljnijem trenutku ne dogodi ova gre{ka. Da bi se ova gre{ka

Page 18: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

18

izbegla najbolje je serijski prijem organizovati tako da se posle svakog prijema generi{e prekid u kome }e se paralelni registar o~itati.

Registar SBUF. Ovo su zapravo dva zasebna registra. U jednom se nalazi bajt koji je upravo stigao na serijski port, a drugi slu`i za upis bajta koji se {alje sa porta. Ako ~itamo iz serijskog bafera, onda smo adresirali prijemni registar, a ako upisujemo u SBUF onda smo adresirali predajni registar. Upisom u predajni registar automatski se inicira slanje sa serijskog porta. Upis i ~itanje iz SBUF sinhronizuje se sa serijskom predajom i prijemom pomo}u dva bita TI i RI. TI se automatski setuje kada je prijemni bafer prazan i ako ima jo{ bajtova za slanje treba ga napuniti tim bajtom. RI se automatski setuje kada je prijemni registar pun i treba ga o~itati. Bez obzira da li se serijski interfejs programira tako da generi{e prekid kada je neki od ova dva bita setovan, posle obavljene serijske komunikacije treba odgovaraju}e bitove resetovati, jer mikroprocesor to ne}e automatski u~initi.

Registar SCON. Ovo je kontrolni registar serijskog interfejsa.

7 6 5 4 3 2 1 0

SCON SM0 SM1 SM2 REN TB8 RB8 TI RI

• SM0,SM1,SM2 Odre|uju mod u kome radi serijski port.

SM0 SM1 mod baud rate

0

0

1

1

0

1

0

1

0

1

2

3

f.osc/12

promenljiva

f.osc/64(32)

promenljiva

• SM2 Kada je setovan, u modu 1 bit RI ne}e biti setovan ako nije primljen ispravan stop bit, a u modovima 2 i 3 omogu}ava multiprocesorsku komunikaciju

• REN Kada je setovan omogu}ava prijem.

Page 19: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

19

• TB8 Ovde se upisuje deveti bit koji }e biti poslat preko serijskog porta u modovima 2 i 3. Ako se koristi serijski mod sa bitom parnosti P onda treba softverski prebacivati bit parnosti iz PSW.

• RB8 U modovima 2 i 3, RB8 prihvata deseti bit koji je primljen. U modu 1 ako je SM2=0 onda RB8 sadr`i stop bit koji je primljen.

• TI (Transmit Interrupt flag) Hardverski }e se setovati na kraju slanja osmog bita u modu 0 ili na kraju slanja stop bita u ostalim modovima. Treba ga resetovati softverski.

• RI (Receive Interrupt flag) Sli~no TI bitu, setuje se automatski na kraju slanja osmog bita u modu 0 ili na sredini stop bita u svim ostalim modovima.

Mod 0. Ovaj mod nije namenjen za standardnu asinhronu komunikaciju, ve} za pro{irenje ulaznih i izlaznih portova pomo}u pomera~kih (shift) registara.

Mod 1. Deset bitova se {alje preko TXD ili prima preko RXD. Prvo ide start bit (koji je uvek 0), zatim idu osam bita podataka (prvi je najni`i bit, pa redom nadalje), na kraju ide stop bit (koji je uvek 1). Stop bit se automatski upisuje u RB8 prilikom prijema. Ovo je pravi mod za serijsku komunikaciju po standardu RS-232. Bit brzina odre|uje se konfigurisanjem tajmera 1.

Mod 2 i 3. Jedanaest bita se {alje preko TXD ili prima preko RXD. Prvo ide start bit (uvek 0), pa osam bitova podataka, pa deseti bit (koji se pri slanju uzima iz TB8, odnosno upisuje u TB8 pri prijemu). Mod 2 je pogodan za brzu komunikaciju na malim rastojanjima, mod 3 za standardnu RS-232 komunikaciju sa bitom parnosti. Bit brzine su fiksne i iznose 1/32 (SMOD=1) za mod 2 i 1/64 u~estanosti oscilatora za mod 3.

PCON registar. U njemu se nalazi bit SMOD za upravljanje modovima serijske komunikacije, ali i bitovi kojima se defini{u modovi rada celog mikroprocesora pri napajanju iz baterija.

7 6 5 4 3 2 1 0

PCON SMOD - - - GF1 GF0 PD IDL

Page 20: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

20

• SMOD Ako je setovan, udvostru~uje bit brzinu kad serijski interfejs radi u modovima 1,2 i 3.

• GF1, GF0 Ovo su bitovi op{te namene i programer mo`e da ih koristi prema potrebi.

• PD Kada je setovan dovodi μP u Power Down mod (smanjene potro{nje). U ovom modu strujom se napaja samo interni RAM, oscilator je isklju~en. Iz ovog moda se izlazi samo hardverskim resetom, ~ime se ovaj bit resetuje.

• IDL Setovanjem ovog bita μP ulazi u Idle mod , u kome se ceo μP napaja strujom, ali postaje neaktivan. Program se ne izvr{ava, tajmeri ne rade, serijski port ne radi. Iz moda se izlazi hardverskim resetom ili prvim spoljnim prekidom, koji }e pokrenuti procesor. Kad obradi prekid, procesor nastavlja da radi od prve slede}e instrukcije iz one koja ga je dovela u ovaj mod. PD ima vi{i prioritet od IDL-a.

III.7 Prekidi

Mikroprocesor 8031 ima pet izvora prekida. To su dva tajmerska, dva spoljna i jedan serijske komunikacije.

Spoljni prekidi se doga|aju opadaju}om ivicom ili niskim nivoom na pinovima INT0# i INT1#, u zavisnosti kako su programirani bitovi IT0 i IT1 u registru TCON. Flegovi koji generi{u spoljne prekide su IE1 i IE1 u registru TCON.

Tajmerski prekidi su direktno upravljani bitovima TF0 i TF1 registra TCON. Ako su prekidi omogu}eni, onda }e svako prekora~enje broja~a (prvi impuls posle stanja FFh kod 8-bitnih broja~a ili FFFFh kod 16-bitnih) setovati ove bitove.

Kod prekida serijskog porta, bitovi TI i RI registra SCON ravnopravno uti~u na generisanje prekida. Stvar je softvera da testira koji je od ova dva stanja nastupilo. Po{to se po zavr{etku prekidne rutine ovi bitovi ne resetuju, moraju se softverski resetovati.

Page 21: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

21

Registar IE. Ovo je glavni registar kojim se zabranjuju i dozvoljavaju prekidi. Kada je njegov sedmi bit 0, svi prekidi su zabranjeni, bez obzira na njihovu pojedina~nu dozvolu.

7 6 5 4 3 2 1 0

IE EA - - ES ET1 EX1 ET0 EX0

•EA Ovaj bit je globalni prekida~ za sve prekide. Kad je setovan, svi prekidi su mogu}i u zavisnosti od pojedina~nih dozvola.

• ES Ako je setovan, omogu}uje izvr{enje prekida i obrnuto.

•ET1 Ako je 1, dozvoljen je prekid tajmera 1

•EX1 Ako je 1, dozvoljen je spoljni prekid 1

•ET0 Ako je 1, dozvoljen je prekid tajmera 0

•EX0 Ako je 1, dozvoljen je spoljni prekid 0

Pioriteti prekida. Prekidi su asinhrone pojave, pa se mo`e desiti da prilikom izvr{avanja neke prekidne rutine do|e zahtev za neki drugi prekid. Mikroprocesor mora odlu~iti da li da prekine teku}u rutinu i u|e u novu ili da zavr{i teku}u, pa tek onda da u|e u novu. U nekim situacijama ovo je veoma bitno. Zato se unapred μP saop{timo koji prekid mo`e da sa~eka svoje izvr{avanje, a koji mora da se odmah obradi. U registru IP se nalazi upisan nivo prioriteta.

7 6 5 4 3 2 1 0

IP - - - PS PT1 PX1 PT0 PX0

Jedinica u ovim bitovima zna~i da taj prekid ima vi{i prioritet, a nula da ima ni`i, i da mo`e da sa~eka svoju obradu. Izvr{enje prekida ni`eg prioriteta }e biti prekinuto ako nai|e zahtev za prekid vi{eg prioriteta. Prekid sa vi{im prioritetom se ne mo`e prekinuti osim hardverskim resetom. Ako istovremeno do|e zahtev za dva prekida istog pioriteta, onda va`i pomo}na lista pioriteta, koja je fiksna (softverski se ne mo`e menjati) hardverski definisana. Sledi pomo}na lista prioriteta data po opadaju}em prioritetu:

Page 22: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

22

1.IEO (spoljni prekid 0) - najvi{i prioritet

2.TF0 (prekid tajmera 0)

3.IE0 (spoljni prekid 1)

4.TF1 (prekid tajmera 1)

5.RI i TI (prekid serijskog porta) - najni`i

Po nastanku prekida, ako je dozvoljen, doga|a se slede}e. Prvo se zavr{ava teku}a instrukcija u programu, zatim se adresa slede}e instrukcije stavlja na stek. U programski broja~ se upisuje odgovaraju}i vektor prekida (jedan od pet). Onda se ska~e na prekidnu rutinu i ona se izvr{ava. Kada se nai|e u rutini na naredbu RETI koja ozna~ava kraj rutine, adresa se uzima sa steka i upisuje u programski broja~ i nastavlja se tamo gde je procesor bio prekinut.

IV OPIS PODSISTEMA MIKRORA^UNARA

Ovaj mikrora~unarski sistem se mo`e podeliti na vi{e podsistema (delova). Ceo sistem sam podelio na slede}e delove: PAL kolo, memorijski deo, enkoderski deo, deo sa displejom, deo sa A/D i D/A konvetorima, deo sa konektorima. O na~inu povezivanja i funkcionisanja ovih podsistema bi}e vi{e re~i u daljem tekstu.

IV.1 PAL

PAL spada u programabilne logi~ke mre`e. Zbog sve raznovrsnijih logi~kih funkcija do{lo se na ideju da se proizvede nedovr{ena komponenta, koju }e krajnji korisnik na licu mesta uz pomo} odgovaraju}ih programa i programatora dovr{iti prema svojim potrebama. Krajnji korisnik formira `eljenu funkciju (funkcije). Ove komponente imaju matri~nu strukturu , odnosno dve

Page 23: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

23

redno vezane mre`e, jednu sa I kolima, a drugu sa ILI kolima. U neprogramiranom stanju u preseku horizontalnih i vertikalnih vodova nalaze se spojne diode. Prilikom programiranja suvi{ne diode se uklanjaju. Kod PAL kola mogu}e je samo programirati I kola, dok su ILI kola izvedena fiksno. Zbog toga postoji ograni~enje logi~kih proizvoda koji se mogu posti}i.

Upotrebio sam PAL 22V10. On ima deset izlaza, tj. mogu se realizovati deset logi~kih funkcija. Svih deset izlaza su istovremeno i ulazi, tako da sa jo{ dvanaest postoje}ih ulaza, ovo kolo ima dvadeset dva ulaza. Na ovoj kartici funkcija PAL-a je da generi{e signale za selekciju odgovaraju}ih ~ipova i signale za upis i ~itanje RAM-a. PAL selektuje slede}e ~ipove: EPROM (U6), RAM 1(U2), RAM 2 (U3), RAM 3 (U4), RAM 4 (U5) i dva paralelna interfejsa 8255 (U12,U13). Ovi signali su izlazi iz PAL-a, a ulazi su: buferovana adresa od BA9 do BA15, kao i signali sa μP WR RD PSEN R E SW O signa a za i je i upis u RAM8031 , , , _ _ . lim ~ tan(R_READ, R_WRITE) bi}e vi{e re~i u memorijskom delu.

Funkcije koje treba relizovati sa PAL-om su

01 02

03

04 05 2

06 07

08 09

4 5 4 5 3

6 7 8 9 10 4 2 4 2

6 7 8 6 7 8

6 7 8 6 7 8

6 7 8 6 7 8

= ∗ = ∗ +

= ∗ ∗ ∗ ∗ ∗ ∗ + ∗

= ∗ ∗ = ∗ ∗

= ∗ ∗ = ∗ ∗

= ∗ ∗ = ∗ ∗

I I I I I

I I I I I I I I I

I I I I I I

I I I I I I

I I I I I I

( )

Gde su 01, 02,. . ., 09 ulazi, a I1, I2,. . ., I12 izlazi PAL-a.

Page 24: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

24

I I WR WR CS EPROM CS EPROM

I RD RD I R E SW R READ R READ

I PSEN PSEN I BA R WRITE R WRITE

I BA I BA CS RAM CS RAM

I BA I BA CS RAM CS RAM

I BA I BA CS RAM CS RAM

CS RAM CS RAM

CS PIA CS PIA

CS PIA CS PIA

1 2

3 4

5 6 15

7 14 8 13

9 12 10 11

11 10 12 9

0 01

02

03

04 1 1

05 2 2

06 3 3

07 4 4

08 0 0

09 1 1

= = = = =

= = = = =

= = = = =

= = = =

= = = =

= = = =

= =

= =

= =

# # #

# _ _ # #

# # #

# #

# #

# #

# #

# #

# #

Buferovane adrese (BA0 do BA15) dovode se sa komponente 74244 (buffer memory address registers) i 74373 (spoljni registar, slu`i za pam}enje ni`eg bajta adrese), koji su povezani na portove P2 i P0 μP 8031. Spoljni registar je nephodan jer port P0 ima dvojaku funkciju, slu`i za prijem ili slanje podataka. Mikroprocesor ovim spoljnim registrom upravlja preko signala ALE#, tj. saop{tava mu kada da upamti ni`i bajt adrese. Signali WR#, RD#, PSEN# su sa μP, a signal R_E_SW se dovodi tako|e sa μP, odnosno sa pina P3.7 (sedmi pin porta P3).

IV.2 Memorijski deo

Memorijski deo ~ine EPROM (27256) od 32KB i ~etiri RAM-a (6264) od po 8 KB (ukupno 32KB). Po{to 8031 ima dva signala, PSEN# za ~itanje iz programske memorije i RD# za ~itanje RAM-a, a to zna~i da postoje dva nezavisna adresna prostora za program i za podatke od po 64KB (16-bitna adresa).

Me|utim, kako `elimo da prvo primimo program za regulaciju sa personalnalnog ra~unara i smestimo ga u RAM, a onda da ga startujemo iz RAM-a, moramo na neki na~in da zavaramo procesor. Start programa iz RAM-a posti`emo softverski (samim tim startujemo regulisani pogon), a hardverski se re{ava problem ~itanja programa iz RAM-a uz pomo} PAL-a, tj. dovo|enje signala PSEN# na RAM. Signal koji slu`i za prebacivanje na RAM je R_E_SW dovodi se sa pina P3.7 mikroprocesora. Kada je on na 1 program se ~ita iz EPROM-a. Kada softverski oborimo njegovu vrednost na 0 prebacujemo se na RAM tj. iz RAM-a o~itavamo program. Mo`emo ~itati program iz RAM-a, jer

Page 25: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

25

signal PSEN# preko signala R_READ sa PAL-a dovodimo na RAM, odnosno na njegov pin 22 (OE#) na slede}i na~in:

R READ PESN R E SW RD_ # _ _ # ( )= ∗ + 3

U narednoj tabeli se vidi da kad je R_E_SW jednak 1 signal R_READ je jednak RD#, a kada je 0 signal R_E_SW mo`e biti i PSEN# i RD#. Na ovaj na~in smo re{ili problem dovo|enja signala PSEN# na RAM u `eljenom trenutku.

R_E_SW R_READ

0

1

PSEN#∨RD#

RD#

Na slede}oj slici se vidi struktura programa u EPROM-u i RAM-u.

sl.4

Page 26: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

26

(∗) je deo glavnog programa, koji obra|uje serijsku komunikaciju sa ra~unarom, dobijeni program (u vidu binarnog koda) sme{ta u spoljni RAM. Po uklju~enju kartice (reseta) startuje se ovaj deo glavnog programa Kada se zav{i serijska komunikacija prelazi se na deo (∗∗).

(∗∗) je deo glavnog programa koji kopira deo (∗∗∗) u RAM po~ev od iste adrese 7800h. Po zavr{etku ovog dela ska~e se (zadnja naredba je naredba dugog skoka) na deo (∗∗∗). Sledi ovaj program:

MOV DPH,#78h MOV DPL,#00h MOV R0,#Nh

skok: CLR A MOVC A,@(A+DPRT) MOVX @DPRT,A INC DPRT

Page 27: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

27

DJNZ R0,skok LJMP #7000h

N je 9, jer je program (∗∗∗) du`ine devet bajta.

(∗∗∗) je deo glavnog programa koji se po zavr{etku prethodnog dela nalazi na istoj adresi i u EPROM-u i u RAM-u (prikazan je u okviru sl.4). Zadatak mu je da izvr{i prebacivanje na RAM (odnosno da omogu}i o~itavanje programa iz RAM-a) i start u~itanog programa za regulaciju. Ovo se posti`e obaranjem vrednosti pina P3.7 (R_E_SW) na 0 ~ime uz pomo} PAL-a omogu}ujemo da se signal PSEN# (signal koji generi{e μP svaki put kad o~itava kod operacije) sa μP dovede na RAΜ, odnosno na njegov pin OE#. Naredbom CLR P3.7 vr{imo obaranje vrednosti pinaP3.7 na 0. Izvr{avanjem ove naredbe (ili neke druge za promenu stanja na pinu nekog porta) nova vrednost sti`e na pin tek na kraju ma{inskog ciklusa, odnosno u toku druge faze zadnjeg stanja ma{inskog ciklusa (S6P2). Za to vreme μP je izbacio adresu naredne instrukcije na portove P0 i P2, oborio signal PSEN# na 0, ~ime je prakti~no otpo~eo o~itavanje koda naredne instrukcije iz EPROM-a.Kako se radi o trobajtnoj naredbi (LJMP# 0000h), druga dva bajta }e se o~itati iz RAM-a, zbog toga je va`no istovremeno postojanje (∗∗∗) i u EPROM-u i u RAM-u. Na slici 5 se vidi trenutak prebacivanja. Zadnjom naredbom ska~emo na adresu 0000h u RAM-a na kojoj se nalazi u~itan program za regulaciju. Ovim startujemo taj program ((∗∗∗∗)) a samim tim startujemo i regulisani pogon.

(∗∗∗∗) je program koji je u~itan sa personalnog ra~unara. U ovom programu postoji problem sa naredbom za upis u spoljni RAM (MOVX @DPTR,A). Postojanje ove naredbe u ovom programu, bilo gre{kom programera ili nepoznavanjem hardvera, mo`e do}i do izmene samog programa i samim tim do nekontrolisanog stanja. To nije po`eljno. Zato se mora dobro voditi ra~una o upotrebi ove naredbe prilikom pisanja ovog programa. Drugo re{enje je da se hardverski spre~i upis u RAM, odnosno dozvoli upis samo u najvi{a dva KB (kilobajta) RAM-a, ali samo kada o~itavamo program iz RAM-a. Uz pomo} PAL-a mo`emo ovo realizovati, formiranjem signala (funkcije) R_WRITE koji se dovodi na RAM, odnosno na njegov ~ita~ki ulaz (WE#), na slede}i na~in: (4)

R WRITE A A A A A R E SW WR R E SW WR_ _ _ # _ _ #= ∗ ∗ ∗ ∗ ∗ ∗ + ∗15 14 13 12 11

Page 28: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

28

R_E_SW R_WRITE

0 A A A A A WR15 14 13 12 11∗ ∗ ∗ ∗ ∗

1 WR#

Kada je R_E_SW na 0 u RAM mo`emo upisati samo po~ev od adrese F800h do 7FFFh ((&&&)), tj. kada su A15 do A11 jednaki 1. Kada je 1 tada mo`emo upisivati u ceo RAM.

(&&&) je deo RAM-a kojem program za regulaciju jedino mo`e pristupiti, tj. da upisuje `eljene podatke.

Na slici 5 u delu VII, su prikazani vremenski tokovi signala, pri o~itavanju programa iz EPROM-a, kao i trenutak prebacivanja sa EPROM-a na RAM.

Na slici 5, vidi se da maksimalni vremenski period, od trenutka kada signal PSEN# postaje aktivan do trenutka kada se na portu P0 uspostave ispravni signali, iznosi 125ns. Maksimalno ka{njenje EPROM-a je 70ns, a PAL kola 30ns, tako da imamo rezervu od 25ns. Za to vreme treba da se uspostave signali sa EPROM-a na port P0 μP. Po{to je EPROM postavljen blizu μP ova rezerva je sasvim dovoljna za uspe{no o~itavanje. Isto va`i i za RAM. Na istoj slici isprekidanom linijom (crta ta~ka crta) dat je slu~aj prebacivanja sa EPROM-a na RAM. Posledica ovog prebacivanja je blokiranje dejstva signala PSEN#, tj. skra}ivanje dejstva signala CS#EPROM. Ovo skra}ivanje nema uticaja na ve} zapo~eto o~itavanje iz EPROM-a jer se ispravni podaci na EPROM-u dovoljno dugo zadr`avaju posle prestanka dejstva signala CS#EPROM.

IV.3 Enkoderski deo

Enkoderski deo sastoji se od dela za dekodovanje signala sa enkodera, dela za brojanje impulsa i registra za pam}enje broja impulsa u `eljenom trenutku. Deo za dekodovanje signala slu`i za formiranje UP i DOWN impulsa za oba smera obrtanja. Deo za brojanje impulsa (UP i DOWN) ~ine dva redno vezana binarna broja~a 74193, sa po~etnim stanjem na nuli. Registar za pam}enje (74373) je vezan na port A paralelnog interfejsa 8255.

Page 29: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

29

Deo za dekodovanje signala. Sa enkodera dolaze tri faze, signali (povorke impulsa) pojedinih faza me|usobno su pomereni za ~etvrtinu periode. Tako|e se sa enkodera dovode invertovane faze.

Posmatramo faze A, B, B#. Pri kretanju napred (UP) faza A prednja~i fazi B, a kasni za fazom B#. Vidi se da se silazna ivica impulsa faze A poklapa sa impulsom faze B, a uzlazna sa B#. Ako formiramo impulse koji odgovaraju uzlaznoj odnosno silaznoj ivici impulsa faze A, mo`emo uz pomo} odgovaraju}ih logi~kih kola formirati UP impulse prema slede}oj logi~koj funkciji:

UP=AB∗B+AA∗B# (5)

Pri kretanju unazad faza A kasni za fazom B, a prednja~i B#, pa }e se silazna ivica poklapati sa impulsom B#, a uzlazna ivica sa B. Tako da mo`emo formirati DOWN impulse na slede}i na~in:

DOWN=AB∗B#+AA∗B (6)

Na sl.6 u delu VII su dati vremenski dijagrami impulsa za slu~aj kretanja unapred. Vidi se da pri kretanju napred postoje samo UP impulsi dok je DOWN na 0. Va`i i obrnuto, tj. pri kretanju unazad postoje DOWN impulsi a UP impulsi ne postoje, tj. UP je 0.

Uzlazna i silazna ivica se pretvaraju u impulse na slede}i na~in. Koriste se invertori sa histerezisom (okidnim kolom) 7414. Prvo se faza A dovede na invertor i dobije se A#, a zatim taj signal dovede na kolo za ka{njenje (R-C). Dobijeni signal se dovodi na invertor sa histerezisom, da bi se dobili pravilni impulsi, a na njegovom izlazu dobijamo Ad impulse (zakasnelu fazu A). Na osnovu ovih signala formiramo impulse ivica na slede}i na~in:

A A A A A Ad dA = + B = ∗ ( )7

AA signal }e biti 1 kada su i Ad i A# na 0. AB }e biti 1 kada su Ad i A# na 1.

Page 30: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

30

Ovaj deo realizovan je sa integralnim kolima: 7414 (iskori{}eno je svih {est invetora), 7408 (iskori{}ena su sva ~etiri I kola), 7400 (iskori{}eno je samo jedno NI kolo od postoje}a ~etiri) i 7432 (iskori{}ena su tri ILI kola od postoje}a ~etiri ). [ema ovog dela data je na slici 8 u delu VII.

Na slici 6 u delu VII dati su vremenski tokovi svih signala iz dela za dekodovanje impulsa sa enkodera i to za slu~aj kretanja unapred.

Deo za brojanje. Deo za brojanje UP i DOWN impulsa sastoji se od dva redno vezana binarna (4-bitna) broja~a sa po~etnim stanjem nula (broj od nule).Prvi broj od 0 do 15 kada do|e do prekora~enja (prelaz sa 15 na 0) {alje signal o prekora~enju (pin CD) drugom broja~u na njegov broja~ki ulaz. Ovakvim povezivanjem pove}avamo kapacitet brojanja na 256. Isto va`i i za brojanje unazad, s tim {to se {alje signal prekora~enja (pin BD) pri prelasku sa 0 na 15. Da bi znali da li je kretanje napred (UP) ili unazad (DOWN), pri o~itavanju sa broja~a, koristi se slede}a logika. Po{to se pri kretanju unapred, stanje broja~a menja napred 0,1,2,. . . , a pri kretanju unazad 0,255,254,. . ., to ako dovoljno ~esto o~itavamo stanje broja~a da ne prekora~imo 127, zna}emo smer obrtanja. Ako je vrednost na broja~u, recimo, 113 radi se o kretanju unapred ili ako je stanje 220 radi se o kretanju unazad.

Deo za pam}enje stanja broja~a. Stanje broja~a se upisuje u spoljni registar (74373) koji je vezan na port A paralelnog interfejsa (PIA1). Signal za pam}enje (ena) i signal za postavljanje broja~a na 0 (set) dovode se sa PIA1 i to sa pinova PC.7 i PC.6. Kada `elimo da o~itamo stanje, μP se obra}a PIA1 i preko porta C kontroli{e broja~ i spoljni registar. Prvo se zapamti vrednost broja~a u spoljniom registru, zatim se broja~ postavi na 0, a onda se o~ita spoljni registar preko porta A. Sledi deo programa kojim je sve ovo realizovano:

PIA1_BASE equ 0A000h; bazna adresa PIA1 PIA1_A equ (PIA1_BASE + 0); Adresa porta A. PIA1_B equ (PIA1_BASE + 1); Adresa porta B. PIA1_C equ (PIA1_BASE + 2); Adresa porta C PIA1_CONR equ (PIA1_BASE + 3); Adresa controlnog registra. PIA1_INIT equ 10010000b; Vrednost inicijalizacije. Portovi A i B rade u modu 0 (port A je izlazni, a ostali su ulazni).

MOV DPRT,#PIA1_CONT; U DPRT se upisuje adresa kont. MOV A,#PIAI_INIT; registra. U kontrolni registar upisujemo MOVX @DPRT,A;

Page 31: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

31

vrednost inicijalizacije, time smo definisali modove. rada PIA1. . . . MOV DPRT,PIA1_C; Upisujemo adresu porta C. MOV A,#10000000b; Cilj je da PC.7 postavi na 1, time upisujemo MOVX @DPRT,A; vrednost sa broja~a u spoljni registar. MOV A,#0100000b; Zatim obaramo PC.7 na 0, ~ime pamtimo MOVX @DPRT,A; vrednost u spoljnom registru. PC.6 postavljamo na MOV A,#0000000b; 1. Cilj je da kad ga oborimo na 0, postavimo MOV @DPRT,A; na 0. ; broja~. MOV DPRT,#PIA1_A; U DPRT upisujemo adresu porta A. MOVX A,@DPRT; U akumulator upisujemo vrednost broja~a, koja je . srazmerna sa brzinom. . . END

IV.4 Displej

Na kartici postoje ~etiri displeja. Oni su preko spoljnih registara (74373) vezani na istu magistralu koja ih povezuje sa portom B paralelnog interfejsa (8255) PIA1. Displeji su prikazani na slici 9. Tako|e signali za upis i pam}enje u registre (dis1,dis2,dis3,dis4) vode se sa porta C istog interfejsa i to sa pinova PC.0 do PC.3. Postavljanje neke vrednosti na displej vr{i se na slede}i na~in: npr. `elimo da upi{emo vrednost u displej 1, prvo signal dis1 treba da postavimo na 1. Time omogu}ujemo upis u registar. Zatim u port A upisujemo `eljenu vrednost, pa signal dis1 obaramo na 0, ~ime pamtimo vrednost i zadr`avamo je na displeju. Analogno se upisuje i u druge displeje. Na displejima mo`emo ispisivati vrednosti brzine ili struje. Sra~unatu brzinu (struju) u programu za regulaciju treba na neki na~in prevesti na ~etvorobajtni oblik pogodan za prikaz na postoje}a ~etiri displeja. Naravno ta nova ~etvorobajtna vrednost treba da je stvarna brzina u o/min. Ta nova brzina upisuje se u lokalni RAM po~ev od bazne adrese 7Ch do 7Fh (mo`e i druga lokacija).

Sledi program kojim je sve ovo realizovano:

PIA1_BASE equ 0A000h; bazna adresa PIA0 PIA1_A equ (PIA1_BASE + 0); adresa porta A

Page 32: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

32

PIA1_B equ (PIA1_BASE + 1); adresa porta B PIA1_C equ (PIA1_BASE + 2); adresa porta C PIA1_CONR equ (PIA1_BASE + 3); adresa controlnog registra PIA1_INIT equ 10010000b; vrednost inicijalizacij BRZ_BASE equ 07Ch; Bazna adresa brzine . . . MOV R1,#0h MOV R2,#BRZINA_BASE MOV R0,#N; N = 4 SET C; C=1

skok: MOV DPTR,#PIA1_C; U DPTR se upisuje adresa porta C. MOV A,R1; U prvom prolazu kroz petlju vrednost A je 1, u RLC A; slede}em je 2, pa 4, a na kraju 8. Time prvo MOV R1,A; upisujemo u displej 1, pa u displej 2, pa u displej 3 i na MOVX @DPTR,A; kraju u displej 4. Vrednost A upisujemo u MOV DPTR,#PIA1_B; portC, ~ime selektiramo pojedine displeje. MOV A,@R2; Vrednost jednog bajta ~etvorobajtne brzine se INC R2; upisuje u A. MOVX @DPTR,A; Upisuje se vrednost u selektovani displej. MOV DPTR,#PIA0_C; Zatim pamtimo vrednosti na displeju, time MOV A,#0h; {to signal za selekciju displeja (njegovog registra) MOVX @DPTR,A; obaramo sa 1 na 0. DJNZ R0,skok . . . END

IV.5 Deo sa A/D i D/A konvetorima

Upotrebio sam A/D konvertor sa rezolucijom od deset bita i osmobitni D/A konvertor. D/A konvertor je vezan na port A paralelnog interfejsa (8255) PIA0. A/D vezan je na port B (osam ni`ih bitova) i port C (preostala dva vi{a bita na pinove PC.5 i PC.4). Signali za upravljanje A/D konvertorom idu sa pinova PC.7 i PC.0. Preko PC.0 zadaje se signal za po~etak konverzije, a u PC.7 konvertor upisuje 1 kada je zavr{io konverziju.

Page 33: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

33

Analogni ulaz i izlaz vezani su na konvertore preko R-C filtera i jedini~nih poja~ava~a. Njihov naponski nivo je od 0V do +10V. Jedini~ni poja~ava~i realizovani su sa operacionim poja~ava~ima sa negativnom povratnom spregom. Osobina im je da imaju beskona~no veliku ulaznu otpornost i stoga predstavljaju idealne razdvojne stepene jer znatno smanjuju optere}enje D/A konvertora i analognog ulaza.

Analogni ulaz mo`e da poslu`i za zatvaranje strujne petlje regulisanog pogona jednosmerne struje tj. na A/D se dovodi napon sa LEM-a srazmeran struji indukta. Analogni izlaz mo`e poslu`iti za davanje signala, recimo, kojim se mo`e regulisati pobuda motora, ako se `eli regulacija brzine preko nominalne (slabljenje polja). Ako se mikrora~unar ne koristi za regulaciju pogona jednosmerne struje, analogni ulaz i izlaz mogu poslu`iti za primanje, odnosno slanje, nekih drugih signala (fizi~kih veli~ina) u zavisnosti od primene.

U pravilnim vremenskim intervalima vr{imo odre|ivanje brzine (o~itavanje broja~a sa enkodera) i vrednosti struje (preko A/D konvertora).Na osnovu njihovih referentnih vrednosti vr{imo ra~unanje novih referentnih vrednosti i vrednosti izlaza, koji je srazmeran sra~unatom naponu indukta (mo`e i neka druga veli~ina u zavisnosti od primene). Izlaz mo`e biti napon ,preko D/A konvertora, ili signali za paljenje tranzistora nekog ~opera (digitalni izlazi, neki od prvih {est pinova porta P1 μP). Kada `elimo da odredimo struju zadamo impuls za po~etak konverzije tako {to u port C PIA0 upisujemo vrednost 10000000b, tj. pin PC.7 postavljamo na 1. Moramo sa~ekati da se konverzija zavr{i i stalno o~itavati port C i kada se pojavi 1 na pinu PC.3 znamo da je konverzija zavr{ena. Zatim o~itavamo vrednost struje, prvih osam bitova sa porta B, a preostala dva bita sa porta C.

D/A konverzija je jednostavnija. Upisom u port A tj. u D/A konvertor, zadajemo `eljeni izlazni analogni signal (napon).

Sledi program kojim se ovo realizuje:

PIA0_BASE equ 08000h; bazna adresa PIA0 PIA0_A equ (PIA0_BASE + 0); adresa porta A PIA0_B equ (PIA0_BASE + 1); adresa porta B PIA0_C equ (PIA0_BASE + 2); adresa porta C PIA0_CONR equ (PIA0_BASE + 3); adresa controlnog registra PIA0_INIT equ #10000011b; vrednost inicijalizacij, ANALO_IZLAZ at 079h STRUJA_N at 07Ah STRUJA_V at 07Bh . . MOV

Page 34: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

34

DPTR,#PIA0_CONTR MOV A,#PIA0_INIT MOVX @DPTR,A . . MOV DPTR,#PIA0_A MOV A,ANALO_IZLAZ MOVX @DPTR,A ; Upisujemo u D/A konvertor. . .

MOV DPTR,#PIA0_C MOV A,10000000b; Zadajemo start A/D konverzije upisom 1 u MOVX @DPTR,A ; PC.7.

skok: MOVX A,@DPTR; Iz petlje se izlazi kad se na PC.3 pojavi 1. ANL A,#00001000b JZ skok MOVX A,@DPTR ANL A,#00000011b; Upisujemo samo najni`a dva bita sa porta C. MOV STRUJA_V,A; U interni RAM, na adresu rezervisanu za vi{i MOV DPTR,#PIA0_B;bajt struje, upisujemo vrednost. MOVX A,@DPTR MOV STRUJA_N,A; U interni RAM, na adresu rezervisanu za . ni`i bajt struje, upisujemo vrednost. . . END

IV.6 Deo sa konektorima

Na kartici postoji pet devetopinskih konektora. Preko prvog konektora dovodi se napajanje i masa. Na tri pina dovodi se napon od +8V (pinovi 7,3,6), na po jedan pin se dovodi naponi od -15V odnosno +15V (pinovi 9,4). Masa se dovodi na tri pina (pinove 1,5,7). Na ostala ~etiri konektora na pinove 1 i 5 se dovode, respektivno, stabilisani napon od +5V i masa. Razlog je mogu}nost napajanja drugih kartica u sistemu. Na drugom konektoru vezani su digitalni ulazi/izlazi. Na tre}em konektoru, vezani su analogni ulaz i izlaz (pinovi 6,2), kao i naponi od +15V i -15V (pinovi 7,3) i jo{ dve mase (pinovi 4,9). Razlog je mogu}nost postojanja elektronike koja zahteva ove napone na podsistemima sa kojih dolazi (ide) analogni ulaz (izlaz). Na ~etvrti konektor dovode se signali sa

Page 35: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

35

enkodera (pinovi 2,3,4,6,7,8). Preko petog konektora ide serijska komunikacija, preko pina 2 primaju se podaci, a preko pina 3 se {alju. Tako|e su dovedeni digitalni ulazi/izlazi sa μP, i to INT 1 na pin 6, INT 0 na pin 7, T0 na 8 i T1 na 4. Kao ulazi mogu da slu`e za brojanje spoljnih doga|aja (T0 i T1) i za spoljno generisanje prekida (INT 1 i INT0). Ako se ne koriste za brojanje doga|aja i generisanje prekida, mogu se koristiti kao univerzalni ulazi/izlazi.

V Memorijska mapa mikrora~unara

A15 A15 A15 A15 . . . A15 Adresa Naziv Signal sekcije

0 0 0 x . . . x

0 0 1 x . . . x

0 1 0 x . . . x

0 1 1 x . . . x

1 0 0 x . . . x

1 0 1 x . . . x

0000-1FFF

2000-3FFF

4000-5FFF

6000-7FFF

8000-9FFF

A000-BFFF

RAM 1

RAM 2

RAM 3

RAM 4

PIA 0

PIA 1

CS#RAM1

CS#RAM2

CS#RAM3

CS#RAM4

CS#PIA0

CS#PIA1

Page 36: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

36

VI ZAKLJU^AK

Kao {to je re~eno mikrora~unar se bazira na 8-bitnom INTEL-ovom

mikroprocesoru 8031 (μP) . Iako na tr`i{tu postoji veliki broj usavr{enih i pro{irenih mikroprocesora svi oni se baziraju na 8031, tako da se trud ulo`en u u~enje i savladavanje tehnologije projektovanja hardvera i softvera za μP 8031 vi{estruko isplati. Upoznavanje sa novim μP-ima zahteva samo upoznavanje sa novim registrima op{te namene (SFR).

Umesto μP 8031 mo`e se upotrebiti procesor 8032 bez izmene {eme. On ima dodatni tajmer 2. Tada se mora voditi ra~una o pinovima 0 i 1 porta P1 jer njih koristi tajmer 2. Po{to ovaj mikrora~unar treba stalno da komunicira preko serijske veze sa ra~unarom, ovaj dodatni tajmer se mo`e iskoristiti za generisanje takta za serijski port, tj. bit brzine (baud rate). Tako da se preostala dva tajmera mogu efikasnije iskoristiti. Prema tome bolje je upotrebiti mikroprocesor 8032.

Prilikom pisanja programa za upravljanje elektromotornim pogonom treba voditi ra~una o enkoderskom delu. Ideja je da se broja~ dovoljno ~esto o~itava (da se nepre|e 127) da bi se znao smer obrtanja. Zbog toga moramo broja~ vi{e puta o~itati u pravilnim vremenskim intervalima i o~itane vrednosti me|usobno sabrati. Sa tom vredno{}u treba i}i u glavnu petlju programa u kojoj se izra~unava brzina. Ovim posti`emo ve}u rezoluciju brzine, jer ako bi smo o~itavali samo jedamput rezolucija bi bila 127. To zna~i da ako je maksimalna brzina 1500 o/min, kvant brzine bi bio 11,811 o/min, {to je velika nepreciznost.

Page 37: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

37

VII PRILOG

sl.5

Page 38: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

38

sl.6

Page 39: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

39

sl.7

Date: May 10, 1996 Sheet of

Size Document Number REV

A2 1

CU2

100Fn

CU28

100nF

CU29

100nF

+5V

C5

100nF

0V

VCC

CU1

100nFba0ba1ba2ba3ba4ba5ba6ba7

1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9

R2

R-PACK

ad0ad1ad2ad3ad4ad5ad6ad7

D0 3

D1 4

D2 7

D3 8

D4 13

D5 14

D6 17

D7 18

OC 1

G 11

Q0 2

Q1 5

Q2 6

Q3 9

Q412

Q515

Q616

Q719

U7

74LS373

ad0ad1ad2ad3ad4ad5ad6ad7

EA/VP 31

X1 19

X2 18

RESET 9

INT0 12

INT1 13

T0 14

T1 15

P1.0 1

P1.1 2

P1.2 3

P1.3 4

P1.4 5

P1.5 6

P1.6 7

P1.7 8

P0.039

P0.138

P0.237

P0.336

P0.435

P0.534

P0.633

P0.732

P2.021

P2.122

P2.223

P2.324

P2.425

P2.526

P2.627

P2.728

RD17

WR16

PSEN29

ALE/P30

TXD11

RXD10

U1

8031

r - RAM

e - EPROM

sw - SIGNAL PREBACIVANJA

xtal

12MHzC4

20pF

C3

20pFVCC

C7

10nF

5 9 4 8 3 7 2 6 1

P1

CON 1

rxINT0

T0T1

VCC

INT1

tx

C8

10nF

5 9 4 8 3 7 2 6 1

P2

CON 2

AA#BB#C

tx

rx

VCC

txd

rxd

C12

10nF

C13

10nF

C1+ 1

C1- 3

C2+ 4

C2- 5

T1I11

T2I10

R1O12

R2O 9

R1I 13

R2I 8

T2O 7

T1O 14

V+ 2

V- 6

VCC

16

U22MAX232

res

P0P1P2P3P4P5P6

INT0INT1T0T1

a8a9a10a11a12a13a14a15

rd#wr#psen#

dir#

txdrxd

a8a9a10a11a12a13a14a15

a8a9a10a11a12a13a14a15

1A1 2

1A2 4

1A3 6

1A4 8

2A1 11

2A2 13

2A3 15

2A4 17

1G 1

2G 19

1Y118

1Y216

1Y314

1Y412

2Y1 9

2Y2 7

2Y3 5

2Y4 3

U8

74LS244

ba8ba9ba10ba11ba12ba13ba14ba15

1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9

R1

R-PACK

ba15ba14ba13ba12ba11ba10ba9

psen#

rd#r_e_sw

wr#cs#eprom

cs#ram1cs#ram2cs#ram3cs#ram4cs#pia1cs#pia2

r#readr#write

I1/CLK 1

I2 2

I3 3

I4 4

I5 5

I6 6

I7 7

I8 8

I9 9

I10 10

I11 11

I12 13

O123

O222

O321

O420

O519

O618

O717

O816

O915

O1014

U10

22V10

r - ram

VIGND

VO +5V

bd0bd1bd2bd3bd4bd5bd6bd7

+8V

100nF

A0 10

A1 9

A2 8

A3 7

A4 6

A5 5

A6 4

A7 3

A8 25

A9 24

A10 21

A11 23

A12 2

CS1 20

CS2 26

WE 27

OE 22

D011

D112

D213

D315

D416

D517

D618

D719

U?

6264

ba0ba1ba2ba3ba4ba5ba6ba7ba8ba9ba10ba11ba12

bd0bd1bd2bd3bd4bd5bd6bd7

ad0ad1ad2ad3ad4ad5ad6ad7

A1 2

A2 3

A3 4

A4 5

A5 6

A6 7

A7 8

A8 9

G 19

DIR 1

B118

B217

B316

B415

B514

B613

B712

B811

U9

74LS245

dir#

wr#

D034

D133

D232

D331

D430

D529

D628

D727

RD 5

WR36

A0 9

A1 8

RESET35

CS 6

PA0 4

PA1 3

PA2 2

PA3 1

PA4 40

PA5 39

PA6 38

PA7 37

PB0 18

PB1 19

PB2 20

PB3 21

PB4 22

PB5 23

PB6 24

PB7 25

PC0 14

PC1 15

PC2 16

PC3 17

PC4 13

PC5 12

PC6 11

PC7 10

U11

8255

r_e_sw

12

3

U13A

74LS08

in0in1in2in3in4in5in6in7in8in9

+15V

INPUT 13

ANA COM 14

BIPOL OFF 15

B & C 11

B1 9

B2 8

B3 7

B4 6

B5 5

B6 4

B7 3

B8 2

B9 1

B1018

DATA RDY17

U15

AD571

3

2 6

7 5

4 8 1

U20

LM607

C#

an.ulaz

C10 5 9 4 8 3 7 2 6 1

P5

CON 5

an.izlaz VCC

+15V-15V

an.ulazC6

-15V

+5V

-15V

in0in1

in2in3in4in5in6in7in8in9

12

13

3

16

1

2

15

14

41110 9 8 7 6 5

U16

AM1408L8

rd#

BD0BD1BD2BD3BD4

BA0BA1WR#

rstcs#pia2

ad0ad1ad2ad3ad4ad5ad6

cs#ram1

ba0ba1ba2ba3ba4ba5ba6

ba0ba1ba2ba3ba4ba5ba6

VCC

A010

A1 9

A2 8

A3 7

A4 6

A5 5

A6 4

A7 3

A825

A924

A1021

A1123

A12 2

A1326

A1427

CE20

OE22

VPP 1

D0 11

D1 12

D2 13

D3 15

D4 16

D5 17

D6 18

D7 19

U6

AM27C256

r#read

r#write

bd0bd1bd2bd3bd4bd5bd6

A0 10

A1 9

A2 8

A3 7

A4 6

A5 5

A6 4

A7 3

A8 25

A9 24

A10 21

A11 23

A12 2

CS1 20

CS2 26

WE 27

OE 22

D011

D112

D213

D315

D416

D517

D618

D719

U?

6264

+15V

0V

C15

100nF

+15V

-15V

0V

C16

100nF

-15V

bd7

bd0

VCC

A0 10

A1 9

A2 8

A3 7

A4 6

A5 5

A6 4

A7 3

A8 25

A9 24

A10 21

A11 23

A12 2

CS1 20

CS2 26

WE 27

OE 22

D011

D112

D213

D315

D416

D517

D618

D719

U?

6264

cs#eprom

ba7ba8ba9ba10ba11ba12ba13ba14

ba7ba8ba9ba10ba11ba12

ba0

r#read

r#write

cs#ram2

VCC

ad7

rd#dir#

4

5 6

U13B

74LS08

BD5BD6BD7

displej

DANEN.SCH

sd[0-11]

VCCVCC

VCC

-15V

+15V

3

2 6

75

481 U21

LM607

an.izlaz

5 9 4 8 3 7 2 6 1

P4

CON 4

0V0V0V

+8V+8V+8V

+15V-15V

ed0ed1ed2ed3

A

15

B

1

C

10

D

9

UP

5

DN

4

LOAD

11

CLR

14

QA

3

QB

2

QC

6

QD

7

CO

12

BO

13

U18193

enaset

D034

D133

D232

D331

D430

D529

D628

D727

RD 5

WR36

A0 9

A1 8

RESET35

CS 6

PA0 4

PA1 3

PA2 2

PA3 1

PA4 40

PA5 39

PA6 38

PA7 37

PB0 18

PB1 19

PB2 20

PB3 21

PB4 22

PB5 23

PB6 24

PB7 25

PC0 14

PC1 15

PC2 16

PC3 17

PC4 13

PC5 12

PC6 11

PC7 10

U12

8255

psen#

cs#ram3

ba1ba2ba3ba4ba5ba6ba7ba8ba9ba10ba11ba12

r#read

r#write

VCC

D1 R3

27k

bd1bd2bd3bd4bd5bd6bd7

T

1

2 3

U14A

74LS00

rst

C2

4

5 6

U14B

74LS00

9

10 8

U14C

74LS00

C1

4.7nF

bd0bd1bd2bd3bd4bd5bd6bd7

A0 10

A1 9

A2 8

A3 7

A4 6

A5 5

A6 4

A7 3

A8 25

A9 24

A10 21

A11 23

A12 2

CS1 20

CS2 26

WE 27

OE 22

D011

D112

D213

D315

D416

D517

D618

D719

U?

6264

VCCba0ba1ba2ba3ba4ba5ba6ba7ba8ba9ba10ba11ba12

wr#rd#

ba0ba1rst

cs#pia1

bd0bd1bd2bd3bd4

s0s1s2s3s4s5s6s7

dis1dis2dis3dis4

ed0ed1ed2ed3ed4

D0 3

D1 4

D2 7

D3 8

D4 13

D5 14

D6 17

D7 18

OC 1

G 11

Q0 2

Q1 5

Q2 6

Q3 9

Q412

Q515

Q616

Q719

U17

74LS373

set

rst

ed4ed5ed6ed7

A

15

B

1

C

10

D

9

UP

5

DN

4

LOAD

11

CLR

14

QA

3

QB

2

QC

6

QD

7

CO

12

BO

13

U19193

5 9 4 8 3 7 2 6 1

P3

CON 3

P0P1P2P3P4

VCC

P5P6

enkoder

ENKODER.SCH

up

downA

B#

A

B#

set

rst

ena

ed5ed6ed7

bd5bd6bd7

cs#ram4

VCC

r#readr#write

c

Page 40: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

40

Date: February 29, 1996 Sheet of 3

Size Document Number REV

A3 2

R33

R

1 2

U23A

74LS14

5 6

U23C

74LS14

1

2 3

U24A

74LS32

3 4

U23B

74LS14

9 8

U31D

74LS14

Ad

12

1311

U14D

74LS00

C21CAP NP

A#faza A

1

2 3

U25A

74LS08 4

5 6

U24B

74LS32

up

4

5 6

U25B

74LS08

9

10 8

U25C

74LS08

B# 11 10

U23E

74LS14

B 13 12

U23F

74LS14

faza B#

12

1311

U25D

74LS08

9

10 8

U24C

74LS32

down

sl.8

Page 41: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

41

Date: February 29, 1996 Sheet 2 of 3

Size Document Number REV

A3 3

Displej

7 6 4 2 1 9 10 5

3 8

D1

DISPLEJ

1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9

R1

R-PACK

D0 3

D1 4

D2 7

D3 8

D4 13

D5 14

D6 17

D7 18

OC 1

G 11

Q0 2

Q1 5

Q2 6

Q3 9

Q4 12

Q5 15

Q6 16

Q7 19

U26

74LS373

S0

DIS1

S1S2S3S4S5S6S7

VCC

7 6 4 2 1 9 10 5

3 8

D2

DISPLEJ

1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9

R2

R-PACK

D0 3

D1 4

D2 7

D3 8

D4 13

D5 14

D6 17

D7 18

OC 1

G 11

Q0 2

Q1 5

Q2 6

Q3 9

Q4 12

Q5 15

Q6 16

Q7 19

U27

74LS373

S0S1S2S3S4

DIS2

S5S6S7

VCC

7 6 4 2 1 9 10 5

3 8

D3

DISPLEJ

1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9

R3

R-PACK

D0 3

D1 4

D2 7

D3 8

D4 13

D5 14

D6 17

D7 18

OC 1

G 11

Q0 2

Q1 5

Q2 6

Q3 9

Q4 12

Q5 15

Q6 16

Q7 19

U28

74LS373

S0S1S2S3S4S5S6S7

DIS3

D0 3

D1 4

D2 7

D3 8

D4 13

D5 14

D6 17

D7 18

OC 1

G 11

Q0 2

Q1 5

Q2 6

Q3 9

Q4 12

Q5 15

Q6 16

Q7 19

U29

74LS373

VCC

1 16 2 15 3 14 4 13 5 12 6 11 7 10 8 9

R4

R-PACK

7 6 4 2 1 9 10 5

3 8

D4

DISPLEJ

VCC

S0S1S2S3S4S5S6S7

DIS4

sd[0-11]

sl.9

Page 42: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

42

sl.10

Page 43: UNIVERZITET U BEOGRADU Elektotehni~ki fakultetemp.etf.rs/radovi/Diplomski/nenad_nedeljkovic.pdf · • 17 (P3.7) RD#-signal za ~itanje iz spoljne memorije (RAM) • 18 i 19 (X1 i

43

LITERATURA

1. 8-BIT EMBEDDED CONTROLLER HANBOOK, INTEL 1989

2. S. Te{i} : ELEKTRONIKA IMPULSNA I DIGITALNA KOLA

3. M. Stoji} : DIGITALNI SISTEMI AUTOMATSKOG UPRAVNJANJA