diplomski rad - emp.etf.rsemp.etf.rs/radovi/diplomski/stevan_mehandic.pdf · elektrotehni^ki...

47
ELEKTROTEHNI^KI FAKULTET UNIVERZITETA U BEOGRADU KATEDRA ZA ENERGETSKE PRETVARA^E I POGONE DIPLOMSKI RAD TEMA DIPLOMSKOG RADA : Implementacija algoritma za regularnu impulsno {irinsku modulaciju u sprezi sa digitalno upravljanim pogonom asihronog motora Rukovodilac izrade rada : student : Doc. dr. Slobodan N. Vukosavi} Mehand`i} M. Stevan EPP 068 / 88 BEOGRAD, JUN 1995

Upload: hoangkien

Post on 05-Feb-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

ELEKTROTEHNI^KI FAKULTET UNIVERZITETA U BEOGRADU

KATEDRA ZA ENERGETSKE PRETVARA^E I POGONE

DIPLOMSKI RAD

TEMA DIPLOMSKOG RADA :

Implementacija algoritma za regularnu impulsno {irinsku modulaciju u sprezi sa digitalno upravljanim pogonom asihronog motora

Rukovodilac izrade rada : student : Doc. dr. Slobodan N. Vukosavi} Mehand`i} M. Stevan EPP 068 / 88

BEOGRAD, JUN 1995

Page 2: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

SADR@AJ

1. Uvod ........................................................................................................................1

1.1. Regulacija fluksa asihronog motora ..................................................................1 2. Trofazni tranzistorski invertor...................................................................................3 3. Mikrokontroler 80535...............................................................................................5

3.1. Osnovne karakteristike......................................................................................5 3.2. Organizacija memorije ......................................................................................7

3.2.1. Pristup spoljnjoj memoriji ............................................................................8 3.3. Opis najva`nijih registara posebne namene ......................................................9 3.4. Progamibilni tajmer/broja~i 0 i 1 (TIMER0 I TIMER1) .......................................9 3.5. Programibilni tajmer/broja~ 2 (TIMER 2).........................................................11

3.5.1. Ponovno punjenje (Reload) ......................................................................13 3.5.2. Pore|enje ( Compare ) ..............................................................................13 3.5.3. Zadr`avanje sadr`aja broja~a ( Capture ) .................................................14

3.6. Serijska komunikacija......................................................................................16 3.6.1. Brzina prenosa .........................................................................................17

3.7. A /D konverzija..............................................................................................19 3.8. Prekidi ( Interrupt ) ..........................................................................................22 3.9. Na~ini adresiranja ...........................................................................................24 3.10. Sadr`aj registara specijalne namene nakon reseta .......................................25 3.11. [ema razvojne plo~e mikrokontrolera 80535 .................................................25

4. Simulator mikrokontrolera......................................................................................27 5. Geneza programa za implementaciju PWM signala ..............................................29

5.1. Primena programibilnih tajmera ......................................................................29 5.2. Algoritam za odre|ivanje vremena vo|enja ......................................................30 5.3. Prevo|enje programa.......................................................................................34 5.4. Program za genezu PWM signala...................................................................34

6. Rezultati na izlazu sa kartice .................................................................................42 7. Zaklju~ak ...............................................................................................................44 8. Literatura ...............................................................................................................45

Page 3: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

1

1. Uvod

Asinhroni motor (AM) je naj~e{}e kori{}eni motor zbog svojih prednosti u odnosu na ostale motore. Iako motori jednosmerne struje imaju mogu}nost odvojenog upravljanja momentom i fluksom, zbog drugih negativnih osobina te`i se upotrebi motora naizmeni~ne struje. Asihroni motor je mnogo jeftiniji u odnosu na motore jednosmerne struje, ima jednostavniju konstrukciju i za istu snagu manje dimenzije. Izvor brojnih problema kod jednosmernih motora je kolektor, jer usled napona izme|u ~etkica dolazi do varni~enja. Zato napon izme|u dve susedne kolektorske kri{ke treba da bude manji od 1.5 V, {to zna~i da motori za ve}i napon moraju imati ve}i broj kri{ki. Da bi se imala zadovoljavaju}a gustina struje, armaturna struja motora odre|uje dimenzije ~etkica i kri{ki. Za ve}e armaturne struje moraju se pove}ati i preseci kri{ki . Kako je snaga P∼ U I , pove}anjem snage pove}ava se i pre~nik kolektora. Me|utim, ne mo`e se napraviti kolektor prevelikog pre~nika jer }e se usled centrifugalnih sila razleteti kri{ke. Zato se motori jednosmerne struje mogu praviti za snage do najvi{e nekoliko MW , a maksimalna radna brzina je oko 1500 o/min, dok AM mo`e biti konstruisan i za znatno ve}e nominalne brzine, {to pri istoj nominalnoj snazi uslovljava manje dimenzije ma{ine. Asihroni motori mogu biti konstruisani za brzine i do 40 000 - 50 000 o/min. Problem kod sinhronih motora napajanih naponom konstantne amplitude i u~estanosti je {to se stabilan rad ima samo pri sinhronoj brzini. Ako se koristi sinhroni motor sa permanentnim magnetima, napajan iz invertora, ima se ograni~ena mogu}nost rada u oblasti slabljenja polja, dok je to kod AM znatno jednostavnije to realizovati. Ograni~avaju}i faktor {to se asihroni motori do sada nisu masovno koristili je potreba za odgovaraju}im naponom sa mogu}no{}u pode{avanja u~estanosti. Danas je taj problem re{en upotrebom energetske elektronike. Primena energetske elektronime za predhodno navedene potrebe podrazumeva konstruisanje invertora, pomo}u kojeg se dobija napon odgovaraju}e efektivne vrednosti i u~estanosti. Ve} danas, zbog izlo`enih prednosti AM, postoji te`nja da se elektromotorni pogoni izra|uju kori{}enjem AM.

1.1. Regulacija fluksa asihronog motora Za regulisanje brzine AM , potrebno je obezbediti promenu snage (P) i momenta (M) od brzine (ω) kao na slici, radi {to racionalnijeg iskori{}enja motora.

P,M Pn Mn

ωn ω

Page 4: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

2

Po{to je moment proporcionalan fluksu, zna~i da i fluks treba da ima istu karakteristiku kao i moment, odnosno,pri brzinama ve}im od ωn treba slabiti polje proporcionalno brzini. Fluks u me|ugvo`|u AM dat je relacijom :

Ψ= ∫[us(t) - Rs . is(t) - ωs . Lγs . is(t) ] . dt

Napon statora us(t) i struja statora is(t) su prostoperiodi~ne veli~ine u~estanosti fs. Pad napona na statorskoj otpornosti Rs

. is(t) i usled rasipnog fluksa statora ωs

. Lγs. is(t) se mo`e zanemarini u odnosu na napon statora, pa se fluks u

me|ugvo`|u mo`e pribli`no predstaviti kao :

Ψ ≈ Us / ωs . Da bi obezbedili tra`enu zavisnost fluksa, maksimalna vrednost napona statora treba linearno da raste do ωn , gde dosti`e nominalnu vrednost, a zatim pri pove}anju brzine napon ostaje nominalan. U~estanost napona se pove}ava proporcionalno sa brzinom na celom opsegu promene brzine.Ovakva zavinost U,f od ω predstavlja U/f=const. regulaciju brzine. Kontinualnom promenom fluksa obezbe|uje se i kontinualna promena brzine. Za kontinualnu regulaciju fluksa kod pogona promenljive u~estanosti neophodna je i kontinualna promena napona. Da bi to postigli, pogonski sistem se napaja jednosmernim izvorom napona preko invertora koji treba da konvertuje jednosmerni napon u naizmeni~ni. Njime mo`emo da reguli{emo i amplitudu i u~estanost napona. Kako se AM napaja trofaznim prostoperiodi~nim sistemom napona (TPPSN), za regulaciju fluksa je potreban trofazni invertor.

U Un

ωn ω

Page 5: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

3

2. Trofazni tranzistorski invertor

[ema trofaznog tranzistorskog invertora data je na slede}oj slici :

E

E

A B C

0

Invertor je jednim svojim krajem priklju~en na pozitnivan jednosmerni napon E, a drugim krajem na negativni jednosmerni napon -E. Izlazi iz invertora su naizmeni~ni naponi, koje dobijamo na priklju~nim krajevima A, B, C. Na ove krajeve se priklju~uje upravljani elektromotorni pogon. Invertor se sastoji od {est tranzistora, u svakoj fazi po dva. Gornji i donji tranzistori svake od faza se naizmeni~no uklju~uju i isklju~uju, nezavisno od druge dve faze, ~ime se obezbe|uje naizmeni~no priklju~enje faza na pozitivan ili negativan jednosmerni napon. Kao izlaz iz invertora se, dakle, mogu dobiti trofazni naizmeni~ni naponi. Diode se nalaze u svakoj fazi i slu`e za prihvatanje struje motora kada nije uklju~en nijedan od tranzistora te faze. Tranzistori se ne mogu trenutno uklju~iti niti isklju~iti, zbog postojanja vremena uspona i vremena pada. Me|utim, u daljoj analizi zanemari}emo ove efekte. Tako|e }emo zanemariti i padove napona na tranzistorima i diodama, jer su oni mnogo manji od napona jednosmernog me|ukola. To zna~i da }emo tranzistore posmatrati kao idealne prekida~e. Da bi uklju~enjem i isklju~enjem prekida~a trofaznog invertora obezbedili TPPSN na izlazu, javlja se potreba za algoritmom impulsno-{irinske modulacije (PWM) koja }e obezbediti U/f regulaciju. Kod PWM-a moduli{u}i signal je testerastog oblika sa maksimalnom vredno{}u koja je jednaka amplitudi referentnog signala. On se upore|uje sa referentnim prostoperidi~nim signalom i kada se izjedna~e daje se impuls za uklju~enje odgovaraju}eg tranzistora, to daje naizmeni~ni signal u vidu ~e{lja, koji predstavlja napon na izlazu iz invertora. U~estanost referentnog nosioca odre|uje u~estanost izlaznog napona. Da bi se na izlazu dobio zadovoljavaju}i oblik napona, u~estanost testerastog nosioca trebalo bi da bude bar 10 do 15 puta ve}a od u~estanosti refarence. Ali, ona ne mora da bude celobrojni umno`ak referentne

Page 6: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

4

u~estanosti, jer se koristi nosilac iz jednog izvora za sve frekvencije referentnog signala ( u primeru koji }e kasnije biti dat frekvencija nose}eg signala bi}e 1 kHz ). Po{to je potrebno da fPWM≥(10÷15) fout , nije mogu}e raditi PWM za velike izlazne u~estanosti (500Hz do 1kHz), jer je za takve u~estanosti referentnog signala neophodna fPWM=(10kHz do 15kHz), a te{ko je napraviti pretvara~e za visoke u~estanosti. Ova metoda se, ipak, naj~e{}e upotrebljava u industrijskim primenama, po{to je relativno lako konstruisati kontrolnu logiku koja daje dobre rezultate. Ako je u periodi TPWM gornji tranzistor uklju~en tokom vremena tON , a ostatak vremena donji tranzistor iste invertorske grane, srednja vrednost izlaznog faznog napona u toj periodi bi}e:

Usr=(ton/TPWM) E.

Ako se `eli da se ostvari sinusna promena srednje vrednosti izlaznog napona, potrebno je da se tON menja po sinusnom zakonu. Za sve tri faze ta vremena su data slede}im izrazima :

tA ON(i)=0.5TPWM+0.5ATPWMsin(ω i TPWM)

tB ON(i)=0.5TPWM+0.5ATPWMsin(ω i TPWM-120o)

tC ON(i)=0.5TPWM+0.5ATPWMsin(ω i TPWM+120o)

gde i ozna~ava da se radi o i-toj periodi PWM-a. Ovo daje slede}u srednju vrednost linijskog napona :

Usrl(i) = 0.5 Aecos(ω i TPWM-30o) . Zavisno od `eljene amplitude srednje vrednosti izlaznog napona, parametar A, se menja od 0 do 1. Za realizaciju upravljanja invertorom primenjuju se mikrokontroleri. U narednom poglavlju bi}e opisan jedan od danas veoma ~esto kori{}enih kontrolera SAB 80535. Tako|e, bi}e dato pore|enje ovog kontrolera sa kontrolerima 8051, 80515, 8096.

Page 7: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

5

3. Mikrokontroler 80535

U digitalnim sistemima upravljanja sre}u se pojmovi mikroprocesor i mikrokontroler, pa je stoga nephodno objasniti sli~nosti i razlike ovih komponenti. Pod mikroprocesorom se podrazumeva samo centralna procesorska jedinica (CPU), koju poseduje svaki digitalni ra~unar. Dakle to je deo ra~unara bez memorije, ulazno/izlaznih jedinica i drugih periferija, potrebnih u ra~unaru koji treba da komunicira sa korisnikom i da obavlja zadate funkcije. Na primer, INTEL 80386 i 80486 su tipi~ni mikroprocesori, gde prefiks ″mikro″ nagla{ava da su ove komponente fizi~ki izvedene u okviru jednog ~ipa. Da bi se realizovao mikrora~unar, na primer tipa IBM PC, mikoroprocesoru je neophodno pridru`iti vi{e drugih ~ipova razli~itih funkcija i karakteristika, zavisno od namene projektovanog mikrora~unara. U stvari, mikrora~unar se dobija sprezanjem mikroprocesora sa spoljnom memorijom, ulazno/izlaznim jedinicama, i drugim periferijama. Stoga u nazivima mikroprocesora i mikrora~unara prefiks ″mikro″ nema isto zna~enje, jer se mikrora~unar, u op{tem slu~aju, ne izvodi u vidu jednog ~ipa. Ako je mikrora~unar fizi~ki izveden u jednom ~ipu strogo namenjenom za projektovanje digitalnih sistema upravljanja u procesnoj industriji, elektromotornim pogonima i sli~no, tada se takva komponenta naziva mikrokontroler. Jedan tipi~ni predstavnik je mikrokontroler SAB80535.

3.1. Osnovne karakteristike Unutar ~ipa se nalaze CPU, RAM memorija, progamabilni tajmeri, paralelni i serijski ulazi/izlazi, A/D konvertor. 80535 nema interni ROM, za razliku od 80515 koji ima 8 Kbyte ROM-a unutar samog ~ipa. Osnovne karakteristike su : - 8-mo bitni CPU kao kod kontrolera 8051 - instrukcije za operacije nad samim bitima - instrukcijski ciklus traje 1μs pri u~estanosti oscilatora od 12 MHz - operacije mno`enja i deljenja se izvr{avaju za 4μs pri fosc=12 MHz - 64 Kbyte spolja{njeg ROM-a - 64 Kbyte spolja{nje memorije podataka (RAM) - 256 byte unutra{njeg RAM-a - dubina steka je maksimalno 256 byte - 16 bit-adresabilnih memorijskih lokacija, tj. 128 direktno adresibilnih bitova - 12 izvora prekida, od ~ega su 7 spolja{nji - 4 nivoa prioriteta prekida - 56 ulazno/izlaznih linija

Page 8: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

6

- 6 x 8 kvazi-bidirekcionih portova - dvosmerni serijski interfejs, kompatibilan sa 8051 - A/D konvertor sa 8-bitnom rezolucijom, 8 multipleksiranih analognih ulaza i referentnim naponima programabilnih u 16 nivoa - tri 16-bitna tajmera/broja~a, tajmeri 0 i 1 kao kod 8051 - odvojeni ulazi za RESET i VPD - temperaturni opseg od -40o do 85o C. Na slede}oj slici dat je blok-dijagram arhitekture kontrolera 80535:

U narednim poglavljima bi}e dat detaljan opis prikazanih komponenti mikrokontrolera.

OSC RAM256 x 8

ROM8K x 8

(80515)

CP

U P0

P1

P2

P3

P4

P5

WATCHDOG

TIMER 0

TIMER 1

TIMER 2

SERIAL PORT

AN MU

X S&H A/D

PROGRAMABILNI REF.NAPONIVAREF

VAGND

AN0-AN7

XTAL1 XTAL2

Page 9: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

7

3.2. Organizacija memorije Memorijski adresni prostor mikrokontrolera 80535 (SAB 80535) je podeljen u dva osnovna dela: - adresni prostor rezervisan za programe (Code Address Space ) i - adresni prostor rezervisan za podatke (Data Address Space) . Programski adresni prostor SAB 80535 je veli~ine 64 Kbyte i predvi|en je kao spolja{nji.Ovaj mikrokontroler nema rezervisan memorijski prostor unutar samog ~ipa za sme{tanje programa. Zbog toga pin EA (pin 51) mora biti stalno na niskom potencijalu, odnosno mora biti vezan direktno na masu. Programska memorija je tipa ROM, a obzirom da se u ovom slu~aju koristi kao spolja{nja, ona je ura|ena u vidu EPROM-a.^itanje programa iz EPROM-a se obavlja pomo}u 16-bitnog programskog broja~a (PC).Neophodno je naglasiti da se nakon resetovanja PC pozicinira na adresu 00 H.Tako|e je potebno voditi ra~una, prilikom pisanja programa, da su memorijske programske lokacije od adrese 00 H do 6B H, lokacije na koje se pozicionira PC prilikom izvr{avanja nekog od 12 mogu}ih prekida. Mikorokontroleri 8031,8051 i 80515 poseduju programsku memoriju unutar samog ~ipa.Unutra{nji ROM je veli~ine 4 K kod 8031 i 8051, a kod 80515 je veli~ine 8 K. Preostalih 60 K (56 K) je prdvi|eno kao i kod SAB 80535 kao spolja{nja memorija.Ukoliko se koriste programi iz unutra{nje memorije pin EA mora biti setovan (EA=1). Memorijski adresni prostor podataka se sastoji od unutra{njeg i spolja{njeg memorijskog prostora tipa RAM. Unutra{nja memorija podataka je podeljena u tri fizi~ki odvojena bloka : - 128 ni`ih bajtova RAM-a - 128 vi{ih bajtova RAM-a - 128 bajtova za registre specijalne namene Poslednja dva bloka dele isti adresni prostor,ali se njima pristupa kroz razli~ite adresne modove. Ni`ih 128 bajtova internog RAM-a je podeljeno tako da prva 32 registra predstavljaju ~etiri registarske banke od po 8 registara R0 - R7.Kojoj banci registara se pristupa defini{e se pomo}u dva bita u programskoj statusnoj re~i (PSW). Slede}ih 16 registara od lokacije 32 - 47 su direktno bit adresibilni registri, tj. postoji 128 direktno bit adresibilnih lokacija. Preostali prostor od lokacije 48 ~ija je adresa 30H do lokacije 127 sa adresom 7F H se uobi~ajeno koristi za magacinsku memoriju takozvani Stack, koja je organizovana tako da se poslednji upisani podatak prvi ~ita (Last Input Frist Output). Ovaj na~in organizovanja Stack-a je poznat kao LIFO princip.Po~etnu adresu steka sadr`i pokaziva~ vrha steka Stack Pointer (SP). Tu adresu zadaje sam korisnik i preporu~uje se adresa 7F H. U koliko se uka`e potreba Stack se mo`e organizovati na svih 256 bajtova unutra{njeg RAM-a. Spolja{nja memorija podataka je veli~ine 64 Kbyte. Sa spoljanja{njim podacima se upravlja naredbom MOVX. Lokacijama spolja{nje memorije mo`e se pristupiti samo indirektno pomo}u 16-to bitnog DPTR (Data Pointer) registra. Ako se `eli prebaciti sadr`aj proizvoljne memorijske lokacije u akumulator, onda se jednom

Page 10: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

8

naredbom adresa te lokacije mora smestiti u DPTR a tek slede}om se dobija `eljeni podatak. O~igledno se mora puno manipulisati DPTR registrom ukoliko se koristi spoljnja memorija, pa se ova ~injenica mo`e uzeti kao nedostatak mikrokontrolera 80535. Na slede}oj slici je dat izgled adresnog prostora rezervisanog za podatke :

3.2.1. Pristup spoljnjoj memoriji Postoje dva tipa pristupa spoljnjoj memoriji : - pristup programskoj memoriji - pristup memoriji podataka Programska memorija se mo`e samo ~itati. ^itanje iz EPROM-a omogu}ava upravlja~ki pin PSEN (Program Store Enable), koji je aktivan dva puta tokom svakog ciklusa kada se CPU obra}a EPROM-u. Memoriji podataka se mo`e pristupati sa `eljom da se pro~ita neka njena lokacija, ili da se ne{to upi{e na odre|enu lokaciju. Pinovi preko kojih se CPU obra}a spolja{njem RAM-u, sa `eljom da u njega ne{to upi{e ili pro~ita, su respektivno WR (Write) i RD (Read). CPU komunikaciju sa spolja{njom memorijom obavlja preko portova P0 i P1. Kada se koristi 16-to bitna adresa vi{i bajt te adrese ide na port P2 i ostaje u njemu za sve vreme ~itanja ili upisa. Ni`i bajt adrese ide na port P0 i vremenski je uskla|en sa bajtom podatka. Sinhronizaciju omogu}uje pin ALE (Address Latch Enable), koji mora blagovremeno da obezbedi signal le~u da prihvati ni`i bajt adrese sa P0, i time omogu}uje portu P0 da prihvati ili po{alje podatak.

visi

h 12

8ba

jtova

unut

rasn

jeg

RAM

regi

sri

pose

bne

nam

ene

nizi

h12

8 ba

jtova

unut

rasn

jeg

RAM

spol

jasn

jam

emor

ijapo

data

ka

7F

80

FF FF

80

FFFF

000000memorija podataka

direktnobit

adresibilno

registarkiindirektnoadresibilno

Page 11: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

9

3.3. Opis najva`nijih registara posebne namene Mikrokontroler 80535 ima 41 registar posebne namene. Upisivanjem odre|enih vrednosti u ove registre vr{i se izbor rada tajmera/broja~a, prekida, serijske komunikacije, itd. Mnogi od ovih registara }e biti obja{njeni u daljem tekstu, a sada }emo navesti uslovno najva`nije registre. To su : - akumulator ACC - B registar, koristi se pri mno`enju i deljenju tako {to se jedan od ~inilaca sme{ta u njega, a drugi u akumulator. Nakon izvr{ene operacije vi{i bajt rezultata se sme{ta u registar B. - DPTR (Data Pointer) je 16-to bitni registar, sastoji se od dva 8-mo bitna registra DPH i DPL. Koristi se kao pokaziva~ podataka. - SP (Stack Pointer), ukaziva~ adrese steka - PSW (Program Status Word), programska statusna re~. To je registar koji sadr`i informacije o statusu programa. Njegovi biti su prikazani na slede}oj slici: PSW (0D0 H )

CY AC FO RS1 RSO OV F1 P 0D7 H 0D6 H 0D5 H 0D4 H 0D3 H 0D2 H 0D1 H 0D0 H - CY (Carry Flag) bit prenosa - AC pomo}ni prenos (za BCD operacije) - FO korisni~ki definisan bit - RSO i RS1 su sekektori jedne od ~etiri registarske banke, postavljaju se softverski da defini{u teku}u registarsku banku RS1 RS0 0 0 banka 0 0 1 banka 1 1 0 banka 2

1 0 banka 3 - OV prekora~enje - F1 korisni~ki definisan bit - P bit parnosti, postavlja se hardverski nakon svakog ciklusa da poka`e

parnost / neparnost bitova u akomulatoru

3.4. Progamibilni tajmer/broja~i 0 i 1 (TIMER0 I TIMER1) TIMER0 i TIMER1 se sastoje od dva 8-mo bitna registra i kao celina predstavljaju 16-to bitne tajmer/broja~e. Ono mogu da rade kao tajmeri ili kao broja~i. Ukoliko rade u tajmerskom re`imu sadr`aj njihovih registara se uve}ava svakog ma{inskog ciklusa. Kako taj ciklus traje 12 perioda spoljnjeg oscilatora to }e se pri kristalu od 12 MHz sadr`aj registara uve}avati svake μs.Kada rade u broja~kom re`imu sadr`aj njihovih registara se uve}ava pri negativnoj tranziciji ulaznog binarnog signala sa 1 sa 0, na odgovaraju}em spolja{njem pinu T0 (P3.4) ili T1 (P3.5). Najbr`e brojanje spolja{njih doga|aja je 1/24 fOSC. Ako se koristi kristal od 12 MHz maksimalna frekvencija brojanja je 500 KHz. Ova dva tajmera/broja~a omogucavaju merenje vremenskih intervala, merenje {irine impulsa, brojanje doga|aja, generisanje preciznih periodi~nih zahteva

Page 12: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

10

i sli~no.Startovanje i zaustavljane se vr{i softverski. Upravljanje TIMER-om 0 i 1 se vr{i preko dva registra posebne namene TCON i TMOD koji su dati na slede}im slikama: Timer Control Register TCON (088 H )

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 08F H 08E H 08D H 08C H 08B H 08A H 089 H 088 H - IT0 odre|uje na~in spolja{njeg prekida 0, postavlja se na 1 kada spolja{nji prekid izaziva negativna tranzicija na ulaznom pinu INT0 - IE0 marker spolja{njeg prekida 0, kada se detektuje spolja{nji prekid setuje se hardverski bit IE0, a kada se prekid obradi mora se brisati softverski - IT1 odre|uje na~in spolja{njeg prekida 1, postavlja se na 1 kada spolja{nji prekid izaziva negativna tranzicija na ulaznom pinu INT1 - IE1 marker spolja{njeg prekida 1 -TR0 start bit za TIMER 0, setovanjem ili brisanjem ovog bita TIMER 0 se uklju~uje ili isklju~uje -TF0 marker prekora~enja, setuje se hardverski kada do prelaska sa FFFF H na 0000 H, bri{e se kada se obradi prekidana runita -TR1 start bit za TIMER 1 -TR0 marker prekora~enja Timer/Counter Mode Control Registar TMOD(089 H )

GATE

C/T M1 M0 GATE

C/T M1 M0

Timer 1 Timer 0 Napomena : ukoliko ispod prikazanih bita nije napisana njihova adresa to zana~i da taj registar nije bit adresibilan. - GATE kontrolni propusni bit, kada je selektovan (GATE=1), da bi TIMERx

(x=0 ilii x=1) mogao da radi na ulazne odgovaraju}e pinove INT0 (P3.2) i INT1(P3.3) mora biti postavljena 1. Kontrolnim bitima TRx je sada mogu}e uklju~ivati i isklju~ivati tajmere/broja~e. GATE=0 radom upravljaju samo biti TR0 i TR1.

- C/T selektor tajmerskog ili broja~kog ra`ima, kada ja CT=1 TIMER radi kao broja~, a kada je CT=0 radi kao tajmer

-M1, M0 su bitovi za definisanje na~ina rada, tj. defini{u jedan od 4 mogu}a radna MOD-a :

M1 M0 0 0 MOD 0 0 1 MOD 1 1 0 MOD 2 1 1 MOD 3

Page 13: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

11

MOD 0 - 8-mo bitni tajmer/broja~ sa 5-to bitnim preskalerom. U ovom MOD-u se THx uve}ava kada 5-to bitni TLx do`ivi prekora~enje. Ako se radi u tajmerskom re`imu pri kristalu od 12 MHz THx se uve}ava svakih 32 μs MOD 1 - 16-to bitni tajmer/broja~ MOD 2 - 8-mo bitni tajmer/broja~ sa samopunja~em, TLx je tajmer/broja~ a THx ~uva softverski zadanu vrednost kojom se vr{i ponovno punjenje TLx MOD 3 - TIMER 0 se konfiguri{e kao 8-mo bitni tajmer TH0 sa markerima TR1 i TF1 (″pozajmljenim″ od TIMER-a 1) i 8-mo bitni tajmer broja~ sa markerima TR0 i TF0. U ovom modu TIMER 1 je blokiran. Kori{}enje TIMER 0 i TIMER 1 je prikazano slede}im programom napisanim u asembleru. U ovom programu TIMER0 radi u MOD 0, kao tajmer sa 32:1 preskalerom, a TIMER 1 u MOD 2 ,kao tajmer sa samopunja~em i to sa vredno{}u 0AA H. Kako se ovaj program kompajlira i pokre}e na simulatoru mikrokontrolera 80535 bi}e opisano u poglavlju ~etiri. NAME TAJMER0/1 DSEG AT 048H ; definisanje po~etne adrese unutra{nje memorije ; podataka PROM: DS 1 ; definisana je promenjljiva pod nazivom PROM CSEG AT 000H ; po~etna adresa programske memorije POCETAK : ; pogramska labela MOV SP, #07FH ;inicijalizacija vrha steka MOV TMOD,#00000010B ; TIMER1 radi u MOD0 a TIMERO u MOD2 MOV TH0,#0AAH ; punjenje registra THO sa vredno{}u za ponovno ; punjenje registra TL0 SETB TCON.6 ; bit TR1 se setuje i pokre}e se TIMER1 SETB TCON.4 ; bit TRO se setuje i pokre}e se TIMER0 KRAJ: LJMP KRAJ END

3.5. Programibilni tajmer/broja~ 2 (TIMER 2) TIMER 2 je kompleksni 16-to bitmi tajmersko/broja~ki registar sa funkcijama pore|enja, ponovnog punjenja i zadr`avanja sadr`aja broja~a. U okviru TIMER-a 2 postoje ~etiri uporedi/zadr`i registra. Jedan od njih se mo`e koristiti za ponovno punjenje tajmerskoh broja~a pri prekora~enju ili pri nekom unapred definisanom spolja{njem doga|aju. TIMER 2 svoje specijalne ulazno/izlazne funkcije obavlja preko {est pinova porta 1, a to su : - P1.0 / INT3 / CC0 izlaz pore|enja / ulaz zadr`avanja za registar CRC - P1.1 / INT4 / CC1 izlaz pore|enja / ulaz zadr`avanja za registar CC1 - P1.2 / INT5 / CC2 izlaz pore|enja / ulaz zadr`avanja za registar CC2 - P1.3 / INT6 / CC3 izlaz pore|enja / ulaz zadr`avanja za registar CC3 - P1.5 / T2EX spolja{nji okidni signal za ponovno punjenje - P1.7 / T2 ulaz za broja~ spolja{njih digitalnih signala i merenje {irine impulsa

Page 14: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

12

Upro{}ena blok {ema ovog tajmera/broja~a data je slede}oj slici :

Upravljane TIMER-om 2 se vr{i preko registara specijalne namene T2CON i CCEN. Slede}a slika prikazuje registar T2CON : Timer 2 Control Register T2CON (0C8 H)

T2PS I3FR I2FR T2R1 T2R0 T2CM T2I1 T2I0 0CF H 0CE H 0CD H 0CC H 0CB H 0CA H 0C9 H 0C8 H - T2I1 i T2I0 defini{u radni re`im tajmera 0 0 tajmer je blokiran 0 1 radi kao tajmer 1 0 broja~ spolja{njih signala sa pina T2 / P1.7 1 1 meri {irinu impulsa dovedenu na pin T2 / P1.7 - T2CM defini{e MOD pore|enja - T2R0 i T2R1 defini{u MOD ponovnog punjenja - I2FR odre|uje na~in spolja{njeg prekida dva, kada je setovan (I2FR=1) pozitivna tranzicija ulaznog digitalnog signala na pinu INT2 / P1.4 izaziva prekidnu rutinu, ukoliko je dozvoljena. I2FR=0 negativna tranzicija izaziva prekid - I3FR odre|uje na~in spolja{njeg prekida tri, kada je setovan pozitivna tranzicija ulaznog signala na pinu INT3 / CCO / P1.0 izaziva prekidnu rutinu, ukoliko je dozvoljena. I3FR=0 negativna tranzicija izaziva prekid -T2PS preskaler bit, kada je selektovan tajmer/broja~ se uve}ava sa 1/24fOSC za kristal od 12 MHz svake 2 μs. T2PS=0 uve}avanje se vr{i sa 1/12 fOSC , odnosno pri navedenom kristalu svake μs

TL 2 TH 2 CCEN

COMPARE

T2CON

CRCL

CCL1

CCL2

CCL3

CRCH

CCH1

CCH2

CCH3

TIMER 2

Page 15: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

13

3.5.1. Ponovno punjenje (Reload) Funkcija ponovnog punjenja kod TIMER-a 2 je 16-to bitna, a to zna~i da se na odre|eni signal u registre TL2 i TH2 upisuje, softverski zadat, sadr`aj registara CRCL i CRCH. Ponovno punjenje se izvr{ava u dva moda koje odre|uju biti T2R1 i T2R0 , to su biti registra T2CON, na slede}i na~in : T2R1 T2R0 0 X ponovno punjenje blokirano 1 0 MOD0 : ponovno punjenje se de{ava pri prekora~enju TIMER-a 2 1 1 MOD1 : ponovno punjenje se de{ava pri negativnoj tranziciji ulaznog signala na pinu T2EX / P1.5 Slede}a slika prikazuje TIMER2 u funkciji ponovnog punjenja :

Pri polo`aju prekida~a: 0 TIMER 2 radi u Reload MOD0 1 TIMER 2 radi u Reload MOD1

3.5.2. Pore|enje ( Compare ) U modu pore|enja 16-to bintne vrednosti koje se nalaze u registrima za pore|enje,registrima CRC, CC1,CC2 i CC3, se porede sa vredno{}u tajmerskih registara TH2 i TL2. Kada odbrojana vrednost u registrima TIMER-a 2 dostigne neku od zadatih vrednosti u navedenim registrima generi{e se odgovaraju}i izlazni signal na pinovima porta 1 i to od P1.0 do P1.3. Postoje dva MOD-a za pore|enje koji se biraju pomo}u bita T2CM u registru T2CON :

T2CM=0 MOD 0 T2CM=1 MOD 1

MOD 0 u ovom modu stanje na pripadaju}im pinovima porta 1 se menja sa 0 na 1 (sa 0V na 5V) kada tajmerski broja~ dostigne zadatu vrednost u odgovaraju}em regisatru za pore|enje, a vra}a na 0 kada tajmerski broja~ do`ivi

TL2 TH2

CRCL CRCH TF2

EXF2

Reload

EXEN2

0

1

>1

InputClock

T2EXP1.5

Page 16: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

14

prekora~enje, tj. prelazak sa FFFF H na 0000 H. Kako su biti porta 1 dodeljeni registrima TIMER-a 2 pokazuje slede}a tabela :

CRC P1.0 CC1 P1.1 CC2 P1.2 CC3 P1.3

MOD 1 tranzicija izlaznog signala na pinovima porta 1 se mo`e softverski programirati, a prekora~enje tajmerskog registra neizaziva promenu izlaznog signala

3.5.3. Zadr`avanje sadr`aja broja~a ( Capture ) Registri CC1,CC2, CC3 i CRC mogu da zadr`e trenutni sadr`aj tajmerskog broja~a. Pam}enje sadr`aja je mogu}no u dva moda, u kom }e se modu raditi odre|uju biti registra CCEN koji se postavljaju softverski. Svaki od navedenih registara mo`e nezavisno od drugih da radi u jednom ili drugom modu. MOD 0 zadr`avanje u registrima CC0-CC3 se de{ava nakon pozitivne tranzicije spolja{njeg digitalnog signala dovedenog na ulazne pinove porta 1 (P1.1-P1.3). Upisivanje trnutnog sadr`aja tajmera u registar CRC se de{ava nakon pozitivne ili negativne tranzicije na pinu CC0 / P1.0 zavisno od bita I3FR u T2CON. Kada je I3FR=0 nakon negativne tranzicije, a I3FR=1 nakon pozitivne tranzicije. MOD 1 operacija upisivanja u ni`i bajt odgovaraju}eg registra (CC1-CC3 ili CRC) dovodi do automatskog upisivanja trenutnog sadr`aja tajmerskog broja~a u taj registar. Da li }e i u kom od re`ima zadr`avanja ili pore|enja raditi registri TIMER-a 2 defini{e se pomo}u odgovaraju}ih bita registra CCEN prikazanog na slici : Compare/Capture Enable Register CCEN (0C1 H)

7 6 5 4 3 2 1 0

biti odgovaraju}i registar 1 i 0 CRC 2 i 3 CC1 4 i 5 CC2 6 i 7 CC3

Vrednosti para bita za svaki registar imaju sle}e zn~enje : 0 0 pore|enje i zadr`avanje onemogu}eno 0 1 zadr`avanje sadr`aja tajmerskog broja~a u MOD 0 1 0 pore|enje dozvoljeno 1 1 zadr`avanje sadr`aja tajmerskog broja~a u MOD 1 Naredni program predvi|a rad TIMER-a 2 u tajmerskom re`imu bez preskalera, tj uve}avanje tajmerskog broja~a svake μs, ponovno punjenje nakon prekora~enja ( MOD 0 ) i pore|enje u MOD-u 0 .

Page 17: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

15

Na po~etku programa navedene su adrese registara specijalne namene koje poseduje mikrokontroler 80535 a ne poseduje 8051. To se moralo uraditi, jer pri izradi ovog diplomskog rada nije se posedovao kompajler za 80535, ve} se prevo|enje programa u binarni kod vr{ilo pomo}u kompajlera za 8051. NAME TAJMER2 P4 EQU 0E8H; IEN0 EQU 0A8H; T2CON EQU 0C8H; CCEN EQU 0C1H; CRCL EQU 0CAH; CRCH EQU 0CBH; CCL1 EQU 0C2H; CCH1 EQU 0C3H; CCL2 EQU 0C4H; CCH2 EQU 0C5H; CCL3 EQU 0C6H; CCH3 EQU 0C7H; TL2 EQU 0CCH; TH2 EQU 0CDH; DSEG AT 30H PROM DS 1 ; varijabla u ramu CSEG AT 0000H ;pocetna adresa programske memorije MOV IEN0,#00H ;blokiranje svih prekida MOV SP,#07FH ; inicijalizacija vrha steka MOV P1,#00H ; postavljanje svih bitova P1 na 0 CLR T2CON.1 ; T2 radi kao timer SETB T2CON.0 ; T2 radi kao timer SETB T2CON.4 ; MOD 0 za ponovno punjenje CLR T2CON.7 ; f=1/12 frekvencije kristala CLR T2CON.2 ;MOD 0 za poredjenje MOV CCEN,#10101000B ;napunjen MOD registra za poredjenje MOV CRCL,#0FFH ;puni se CRC MOV CRCH,#0FBH MOV CCL1,#010H ;puni se CC1 MOV CCH1,#0FCH MOV CCL2,#030H ;puni se CC2 MOV CCH2,#0FDH MOV CCL3,#050H ;puni se CC3 MOV CCH3,#0FFH MOV TL2,#0FFH ;puni se reg tajm T2 sa FBFF H MOV TH2,#0FBH KRAJ: LJMP KRAJ

Page 18: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

16

END Ovaj program se izvr{ava u beskona~noj petlji, broja~ TIMER-a 2 se uve}ava svake μs od vrednosti FBFF H do FFFF H, pri ~emu kada dostigene neku od vrednosti upisanu u registre CC1-CC3 setuje se odgovaraju}i pin porta 1. Kad broja~ do`ivi prekora~enje vrednosti ovih bita padaju sa 1 na 0 i sve iz po~etka.

3.6. Serijska komunikacija Mikrokontroler 80535 koristi standardnu serijsku komunikaciju preko RS 232. Serijski port je ″full - duplex″ {to za~i da je mogu}no istovremano slanje i primanje podataka. Tako|e postoji i jedan prihvatni bafer koji omogu}uje da se pihvati drugi bajt pre nego {to prvi prispeli bajt bude pro~itan. Prihvatini i predajnji registar serijskog porta se pune i prazne preko registra specijalne namene SBUF-a. Upisom u SBUF pokre}e se slanje podatka, a ~itanjem SBUF-a zavr{ava se prijem podatka. Upravljanjem serijskom komunikacijom se vr{i preko registra posebne namene SCON prikazanom na slici : Serijal Port Control Register SCON (098 H)

SM0 SM1 SM2 REN TB8 RB8 TI RI 09F H 09E H 09D H 09C H 09B H 09A H 099 H 098 H - SMO i SM1 odre|uju MOD rada serijskog interfejsa 0 0 MOD 0 0 1 MOD 1 1 0 MOD 2 1 1 MOD3 - SM2 kontroler STOP bita - REN dozvola rada prijemnika, postavlja se na 1 za prijem, a mora biti 0 da bi se onemogu}io prijem - TB8 stanje 9-tog koji se predaje u MOD2 i MOD3 - RB8 u MOD2 i MOD3 to je deveti bit koji se prima. U MOD1 to je STOP bit ukoliko je SM2=0, a u MOD0 ovaj bit se ne koristi - TI prekidni marker (flag) predajnika. Setuje se hardverski TI=1 kada pro|e 8-mi bit u MOD0, za ostale modove setuje se kada pro|e STOP bit. Mora se softverski brisati - RI prekidni marker prijemnika. Setuje se hardverski RI=1 kada pro|e 8-mi bit (MOD0) ili STOP bit ostali modovi. Mora se brisati softverski Modovi rada serijskog interfejsa: MOD 0 - osam bitova se {alje/prima preko TXD (P3.1) / RXD (P3.0) fiksnom brzinom koja iznosi 1/12 frekvencije oscilatora MOD 1 - deset bita se {alje/prima preko TXD / RXD. Prvi je START bit, 8 bita podatka i STOP bit. Brzina prenosa je promenjljiva i defini{e se softverski MOD 2 - jedanaest bitova se {alje/prima preko TXD / RXD. Prvi START bit, 8 bita podataka, 1 ″ korisni~i ″ bit, (naj~e{}e bit parnosti iz PSW regi-

Page 19: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

17

star) i STOP bit. Brzina prenosa 1/32 ili 1/64 fOSC MOD 3 - isti kao MOD 2 samo je brzina prenosa promenjljiva U sva ~etiri moda predaja podatka se inicijalizuje instrukcijom u kojoj je registar SBUF odredi{ni registar. Prijem podatka se inicijalizuje u MOD-u 0 kada je RI=0 i REN=1 (biti registra SCON), u ostalim modovima prijem se inicijalizuje dolaze}im START bitom ukoliko postoji dozvola za prijem, tj. RI=1. Provera ispravnosti primljnog podatka je mogu}a proverom STOP bita, ovim se upravlja pomo}u bita SM2 (SCON.5).Ovaj bit nema efekta na MOD0, a pri prijemu u MOD 1 ako je SM2=1, prijemni prekid ne}e biti aktiviran ako nije primljen ispravan STOP bit.

3.6.1. Brzina prenosa Brzina prenosa (Baud Rates) je razli~ita za pojedine MOD-ove: - MOD 0 brzina fiksna i iznosi 1/12 fOSC

- MOD 2 brzina je 1/32 ili 1/64 fOSC zavisno od bita SMOD=1 ili SMOD=0. Bit SMOD se nalazi u registru PCON (087 H) i on je bit najve}e te`ine (PCON.7). Registar PCON nije bit adresibilan i postavljanje bita SMOD=1 mora se raditi nekom od logi~kih operacija nad celim registrom PCON - MOD 1 i MOD 3 brzina prenosa se odre|uje kori{}enjem TIMER-a 1i zavisno od SMOD-a po formuli :

v=2SMOD/32 x fOSC / [12x(256-(TH1))]

Ova formula se naj~e{}e koristi tako {to se TIMER 1 postavi za rad u tajmerskom re`imu sa samopunja~em. Ovaj radni mod se posti~e tako {to se u vi{a ~etiri bita registra TMOD (biti koji pripadaju TIMER-u 1) upi{e 0010 B. Mikrokontroler 80535 poseduje interni generator brzine prenosa, on se koristi u MOD 1i MOD 3. Da bi se koristio ovaj interni Baud Rate generator bit BD (bit 7 u registru specijalne namene ADCON ) mora biti setovan BD=1. U ovom re`imu brzina prenosa se dobija po formuli :

v=2SMOD/2500 x fOSC

Ova brzina za kristal od 12 MHz je slede}a :

SMOD=0 v=4800 SMOD=1 v=9600

Predstoje}i program obezbe|uje serijsku komunikaciju i to slanje podataka preko pina TX. Prijem podataka je onemogu}en a brzina prenosa je pode{ena na 9600, pomo}u internog Baud Rate generatora. [alje se u svakom ciklusu sadr`aj akumulatora koji se prednodno uve}ava za 1, a po~etni podatak koji se {alje je 00H. Slanje se zavr{ava kada sadr`aj akumulatota pre|e sa FF H na OO H.

NAME SERKOM P4 EQU 0E8H;

Page 20: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

18

IEN0 EQU 0A8H; IP0 EQU 0A9H; IP1 EQU 0B9H; T2CON EQU 0C8H; CCEN EQU 0C1H; CRCL EQU 0CAH; CRCH EQU 0CBH; CCL1 EQU 0C2H; CCH1 EQU 0C3H; CCL2 EQU 0C4H; CCH2 EQU 0C5H; CCL3 EQU 0C6H; CCH3 EQU 0C7H; TL2 EQU 0CCH; TH2 EQU 0CDH; PCON EQU 087H; ADCON EQU 0D8H; DSEG AT 30H Bajt_tmt: DS 1 ; varijabla u ramu CSEG AT 0000H CLR SCON.7 ;definise MOD 1 SETB SCON.6 ;definise MOD 1 MOV A,PCON ;potrebno je da je SMOD(PCON.7)=1 ORL A,#10000000B ;radi podesavanja brzine prenosa MOV PCON,A ;PCON nije bit adresibilan pa se morala ;koristiti funkcija ORL za postavljanje ;bita SMOD na 1 SETB ADCON.7 ;setovan bit BD i omoguceno koriscene ;internog generatora brzine ;BD=1 i SMOD=1 => v=9600 CLR SCON.4 ; REN=0 onemogucen prijem SETB SCON.1 ; TI=1 omoguceno slanje u prvom prolazu ; kroz programsku celinu PETLJA MOV A,#00H ; ACC sadrzi prvi podatak za slanje PETLJA: JNB SCON.1, PETLJA ;ceka se zavrsetak slanja CLR SCON.1 ; TI=0 serijski port spreman da ;posalje sledeci podatak MOV SBUF,A ;pokratanjae slanja INC A ;ACC=ACC+1 JZ KRAJ ;ispituje se da li je doslo ;do prekoracenja ACC JMP PETLJA ;ako nije bilo prekoracenja vraca se na novo slanje KRAJ: JMP KRAJ

Page 21: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

19

END

3.7. A /D konverzija Mikorokontroler 80535 poseduje 8-mo bitni A/D konvertor sa osam multipleksiranih analognih ulaza. Analogni signali se dovode na pinove AN0 do AN7, vrednost ulaznog analognog napona mora biti u granicama od 0 V - 5 V. Napon doveden u ovim granicama bi}e konvertovan u odgovaraju}u 8-mo bitnu digitalnu vrednost (od 00H do FF H). Uzimanje analognog uzorka (semplovanje) traje 5 ma{inskih ciklusa, to je 5μs pri kristalu od 12 MHz. Ukupna konverzija traje 15 ma{inskih ciklusa, odnosno 15 μs. Konverzija mo`e biti programirana kao kontinualna ili kao pojedina~na. Tako|e postoji mogu}nost programiranja, u 16 koraka, nivoa unutra{njih referentnih napona IVAREF i IVAGND. Ovim je mogu}no posti}i ve}u ta~nost pri konverziji nekog analognog signala za koga unapred znamo da se kre}e u nekom u`em opsegu od opsega 0 - 5 V. Korisniku su pristupna tri registra specijalne namene kojima se upravlja A/D konverzijom. To su : ADCON, ADDAT I DAPR. Slede}a slika prikazuje ADCON : A/D Converter Control Register ADCON (0D8 H)

BD CLK / BSY ADM MX2 MX1 MX0 0DF H 0DE H 0DD H 0DC H 0DB H ODA H OD9 H 0D8 H - MX2 , MX1 , MX0 odre|uju sa koji se analogni ulaz ~ita 0 0 0 analogni ulaz 0 AN0 0 0 1 analogni ulaz 1 AN1 0 1 0 analogni ulaz 2 AN2 0 1 1 analogni ulaz 3 AN3 MX2 MX1 MX0 1 0 0 analogni ulaz 4 AN4 1 0 1 analogni ulaz 5 AN5 1 1 0 analogni ulaz 6 AN6 1 1 1 analogni ulaz 7 AN7 - ADM marker koji odre|uje da li je konverzija kontinualna ili pojedina~na ADM=1 kontinualna konverzija ADM=0 pojedina~na konverzija - BSY fleg, pokazuje da li je konverzija u toku(BSY=1) ili je zavr{ena(BSY=0).Kad se konverzija zapo~ne BSY se hardverski postavlja na 1, a kada se zavr{i hardverski se postavlja na 0. - ADCON.5 mora uvek biti nula - CLK marker za uprvljanje CLKOUT. CLK=1 na pinu P1.6 se ima CLKOUT u~estanosti 1/12 fOSC, CLK=0 izlazni clock je blokiran - BD marker za upravljanje unutra{njim generatorom brzine prenosa kod serijske komunikacije

Page 22: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

20

Registar ADDAT (0D9 H) sadr`i konvertovani 8-mo bitni rezultat, podatak u njemu ostaje sve dok se ne upi{e nova vrednost konverzije. Nova vrednost se upisuje nakon 15 ma{inskih ciklusa, pa je stoga neophodno u toku nove konverzije pro~itati sadr`aj registra ADDAT. O ovome je naravno neophodno voditi ra~una ukoliko se radi sa kontinualnom konverzijom. Ukoliko se A/D ne koristi registar ADDAT se mo`e koristiti kao regisrat op{te namene. Slede}a slika prikazuje blok dijagram A/D konvertora :

Registar DAPR (0DA H) se koristi za programiranje internih raferentnih napona IVAREF i IVAGND. Za ovu namenu interni referentni naponi mogu biti programirani u koracima od 1/16 od spolja{njeg referentnog napona (VAREF - VAGND).Pomo}u 4 donja bita DAPR odre|uje se IVAGND, a pomo}u 4 gornja bita oder|uje se IVAREF. Zahteva se da najmanja razlika izme|u ova dva napona bude 1 V. Nivoi ovih unutra{njih referentnih napona se mogu ra~unati po formuli :

IVAGND=VAGND+DAPR(0-3)/16 . (VAREF-VAGND)

Predhodana formula va`i uz uslov DAPR(0-3)≠0 i DAPR(0-3)<13

IVAREF=VAGND+DAPR(4-7)/16 . (VAREF-VAGND) Poslednja formula va`i uz uslov DAPR(4-7)>3 Ako je VAINPUT (ulazni analogni napon )ve}i od IVAREF rezultat konverzije bi}e FF H, ukoliko je ulazni analogni napon manji od IVAGND rezultat konverzije bi}e 00 H. Konverzija zapo~inje naredbom u kojoj je registar DAPR odredi{ni, tada zapo~inje nova konverzija bez obzira da li je u toku izvr{enje predhodne konverzije.

MUX S&H A/D

D/A

7 6 5 4 3 2 1 0

BD7

CLK6 5

BSY4

ADM3

MX22

MX11

MX00

ADCON

DAPR

ADDAT

ProgramiranjeIVAGND

ProgramiranjeIVAREF

Inte

rnal

Bus

SA

B 8

0535

ANO-AN7

VBB

VAGND

VAREF

IVAGNDIVAREF

A/D Konvertor

Page 23: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

21

Upisivanje nekog sadr`aja u DAPR automatski postavlja BSY fleg na 1. Ako se u DAPR upi{e 00 H to zna~i da nema pode{avanja unutra{njih referentnih napona, ve} su oni na 0 i 5 V i konverzija traje 15 ma{inskih ciklusa. Za svako pode{avanje internih referentnih napona potrebno je jo{ 7 ma{inskih ciklusa. Slede}a tabela pokazuje vrednosti IVAGND i IVAREF u zavisnosti od sadr`aja registra DAPR :

korak DAPR (0-3) DAPR(4-7)

IVAGND ( V )

IVAREF ( V )

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0.0 0.3125 0.625 0.9375 1.25 1.5625 1.875 2.1875 2.5 2.8125 3.125 3.4375 3.75 / / /

5.0 / / / 1.25 1.562 1.875 2.1875 2.5 2.8125 3.125 3.4375 3.75 4.0625 4.375 4.6875

Va`no je napomenuti da registar DAPR nije bit adresibilan i da se u njega uvek mora upisivati ceo bajt. To zna~i da se unutra{nji referentni naponi IVAREF i IVAGND moraju pode{avati istovremeno. Podseti}emo jo{ jednom da A/D konverzija traje 15 μs, zato vreme rezultat se upisuje u registar ADDAT, BSY se postavlja na nulu (u 15-toj μs), a fleg zahteva za prekid usled A/D konverzije IADC (IRCON.0) postavlja se na 1. Slede}i program obezbe|uje A/D konverziju ulaznog signala sa pina AN1. Konverzija je pojedina~na i predvi|eno je da se izvr{i samo jedanput u granicama od 1.25 - 3.75 V.

NAME KONVERZIJA IEN0 EQU 0A8H; IEN1 EQU 0B8H; IP0 EQU 0A9H; IP1 EQU 0B9H; ADCON EQU 0D8H; DAPR EQU 0DAH; ADDAT EQU 0D9H; DSEG AT 30H PROMENJLIVA: DS 1 ; varijabla u ramu

Page 24: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

22

CSEG AT 0000H MOV SP,#7FH ; inicijalizacija vrha steka SETB ADCON.0 ;analogni ulaz sa pina AN1 CLR ADCON.3 ;pojedinacna konverzija CLR ADCON.4 ;BSY fleg postavljen na 0 MOV DAPR,#01001100B ;start konverzije u granicama 1.25-3.375 V PETLJA: JB ADCON.4,PETLJA ;cekam kraj konverzije MOV A,ADDAT ; ACC < konvertovana velicina KRAJ : LJMP KRAJ END

3.8. Prekidi ( Interrupt ) U okviru mikrokontrolera 80535 realizovano je 12 izvora prekida 7 spolja{njih i 5 unutra{njih, sa 4 nivoa prioriteta, grupisanih u {est parova:

spolja{nji prekid 0 - A/D konvertor TIMER 0 - spolja{nji prekid 2 spolja{nji prekid 1 - spolja{nji prekid 3 TIMER 1 - spolja{nj prekid 4 serijski port - spolja{nji prekid 5 TIMER 2 - spolja{nji prekid 6

Spolja{nji prkidi se se realizuju redom preko linija INT0 (P3.2), INT1 (P3.3), INT2 (P1.4), INT3 (P1.0), INT4 (P1.1), INT5 (P1.2), INT6 (P1.3). Unutra{nji prekidi mogu nastati usled prekora~enja jednog od tri tajmera, zavr{etkom A/D konverzije, a prekid izaziva i logika za serijsku komunikaciju. Kad god se desi neki prekid, poziva se odgovaraju}i potprogram. Odnosno, iza svakog prekida izvr{ava se odgovaraju}i program za obradu prekida. Ovi potprogrami su posebnog karaktera i zavr{avaju se naredbom RETI. Kada se izvr{i potprogram prouzrokovan prekidnom rutinom procesor se vra}a na mesto u programu odakle je pre{ao na izvr{enje prekida. Svaki od pomenutih prekida ima svoju startnu adresu sa kojom se puni PC, kada se desi prekid.Na ovim adresama mogu da se nalaze kra}e programske celine za obradu prekida ili skokovi na nove lokacije za obradu prekida. Slede}a tabela sadr`i te adrese:

izvor prekida adresa prve

naredbe spolja{nji 0 TIMER 0 spolja{nji 1 TIMER 1 serijski port

0003 H 000B H 0013 H 001B H 0023 H

Page 25: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

23

TIMER 2 A/D konvertor spolja{nji 2 spolja{nji 3 spolja{nji 4 spolja{nji 5 spolja{nji 6

002B H 0043 H 004B H 0053 H 005B H 0063 H 006B H

Maskiranje prekida se vr{i upisivanjem odgovaraju}eg bita u registre za kontrolu prekida IEN0 i IEN1. Struktura ovih registara data je na slede}oj slici : Interrupt Enable Register IEN0 (0A8 H )

EAL WDT ET2 ES ET1 EX1 ET0 EX0 0AF H 0AE H 0AD H 0AC H 0AB H 0AA H 0A9 H 0A8 H Da bi prekid bio dozvoljen neophodno je da odgovaraju}i bit bude setovan : - EAL globalna dozvola prekida, kada je EAL=0 tada su blokirani svi prekidi, ukoliko je EAL=1 tada je mogu}no pojedina~no maskiranje prekida - WDT Watchdog Timer Reset Flag - ET2 dozvola prekida za TIMER 2, pri prekora~enju i spoja{njem ponovnom punjenju - ES dozvola prekida za serijski port - ET1 dozvola prekida za TIMER1, pri prekora~enju - EX1 dozvola prekida za INT1 - ET0 dozvola prekida za TIMER 0, pri prekora~enju - EX0 dozvola prekida za INT0 Interrupt Enable Register IEN1 (0B8 H)

EXEN2

SWDT

EX6 EX5 EX4 EX3 EX2 EADC

0BF H 0BE H 0BD H 0BC H 0BB H 0BA H 0B9 H 0B8 H - EADC dozvola prekida A/D konvertora - EX2 dozvola prekida za INT2 - EX3 dozvola prekida za INT3 - EX4 dozvola prekida za INT4 - EX5 dozvola prekida za INT5 - EX6 dozvola prekida za INT6 - SWDT Watscdog Timer Start/Reset Bit - EXEN2 dozvola prekida za TIMER2 za spolja{nje ponovno punjenje U registru IRCON se nalaze biti koji se setuju kada se ispuni uslov za izvr{enje odre|enog prekida, nezavisno od toga da li je taj prekid dozvoljen ili nedozvoljen. Izgled registra IRCON je dat na slici : Interupt Request Control Register IRCON (0C0 H)

EXF2 TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC 0C7 H 0C6 H 0C5 H 0C4 H 0C3 H 0C2 H 0C1 H 0C0 H - IADC setuje se kada se zavr{i A/D konverzija. Bri{e se softverski

Page 26: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

24

- IEX2 - IEX6 setuju se hardverski kada stigne zahtev za prekid na odgovaraju}e ulazne pinove. Bri{u se hardverski kada se prekid obradi - TF2 setuje se kada TIMER2 do`ivi prekora~enje. Bri{e se softverski - EXF2 Timer2 External Reload. Setuje se pri spolja{njem ponovnom punjenju, tj. kada se pojavi negativna tranzicija na ulaznom pinu T2EX . Bri{e se softverski. Svi prekidi mikrokontrolera 80535 mogu se postaviti u 4 nivoa prioriteta, koji se zadaju bitovima registara za odre|ivanje nivoa prioriteta IP0 i IP1. Struktura ova dva registra data je na slici : Interrupt Priority Registers IP0(0A9 H ) and IP1(089 H)

/ WDT IP0.5 IP0.4 IP0.3 IP0.2 IP0.1 IP0.0

/ / IP1.5 IP1.4 IP1.3 IP1.2 IP1.1 IP1.0 Oder|eni nivo prioriteta dodeljuje se jednom od 6 parova prekida. U narednoj tabeli je prikazano koji su biti iz registara IP0 i IP1 dodeljeni parovima prekida :

biti odgovaraju}i par prekida IP1.0 IP0.0 IP1.1 IP0.1 IP1.2 IP0.2 IP1.3 IP0.3 IP1.4 IP0.4 IP1.5 IP0.5

IE0/IADC TF0/IEX2 IE1/IEX3 TF1/IEX4 RI+TI/IEX5 TF2+EXF2/IEX6

Sa dva bita je mogu}no definisati 4 nivoa (00-najni`i a 11-najvi{i). Razume se, prekidi koji su na ovaj na~in odlikovani vi{im prioritetom mogu prekinuti obradu svakog prekida ni`eg prioriteta. Kada se potprogram prekida vi{eg prioriteta izvr{i, mikrokontroler se var}a na obradu privremeno prekinutog potprograma prekida ni`eg prioriteta.

3.9. Na~ini adresiranja Mikrokontroler 80535 podr`ava slede}e na~ine adresiranja : - registarsko adresiranje - direktno adresiranje - indirektno registarsko adresiranje - neposredno adresiranje - indeksno adresiranje Registarsko adresiranje omogu}ava pristup jednom od 8 registara(R0-R7), unutar jedne od 4 banke, akumulatoru ACC, B registru i DPTR. ( ADD A,R1) Direktno adresiranje omogu}uje direktni pristup memoriji podataka. Samo 128 ni`ih bajtova internog RAM-a i registri specijalne namene mogu biti direktno adresirani. (ADD A,7FH) Indireknto registarsko adresiranje koristi samo registre R0 i R1, odre|ene registarske banke, za sme{taj adrese operanda ili DPTR u slu~aju 16-to binte adrese operanda.(ADD A,@R1) Neposredno adresiranje omogu}uje da jedan neposredan podatak bude u sastavu instrukcije. (ADD A,#10H)

Page 27: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

25

Indeksno adresiranje omogu}ava pristup podacima programske memorije i mogu}e je samo ~itanje podataka. Ovaj na~in adresiranja namenjen je ~itanju tabela iz programske memorije. Kao bazni registar se koristi DPTR ili PC (kao pokaziva~ na vrh tabele), dok se u akumulatoru nalazi pokaziva~ na elemente u tabeli. Adresa elementa u tabeli se formira sabiranjem podatka u akumulatoru sa baznom adresom iz DPTR ili PC. (MOVC A,@A+DPTR)

3.10. Sadr`aj registara specijalne namene nakon reseta Za korisnika je veoma va`no da zna koje vrednosti se upisuje u specijalne funkcijske registre nakon reseta ili prvog uklju~enja mikrokontrolera 80535, jer sadr`aj ovih registara defini{e radno stanje mikrokontrolera. Vrednosti koje se upisuju u registre date su u tabeli:

registar sadr`aj registar sadr`aj P0-P5 0FF H DPTR,TCON 0000 H TL0,TH0 00 H TL2,TH2 00 H IEN0,IEN1 00 H IRCON,ADCON 00 H CCL1,CCH1 00 H CCL3,CCH3 00 H T2CON,DAPR 00 H

SP 07 H PCON ( 0XXXXXXX) TMOD,TL1,TH1 00 H SCON,CCEN 00 H SBUF nedefinisan IP0,IP1,PSW 00 H CCL2,CCH2 00 H CRCL,CRCH 00 H ADDAT,ACC,B 00 H

3.11. [ema razvojne plo~e mikrokontrolera 80535 Na slici na slede}oj strani data je {ema razvojne plo~e organizovane sa jednim mikrokontrolerom 80535. Na kartici se pored mikorokontrolera nalaze nophodne komponente za njegovo funkcionisanje, kao {to su : - EPROM (M27C128) kapaciteta 16 KB, on slu`i za sme{tanje programa u INTEL-ovom HEX formatu - RAM (U6216DC) za sme`tanje rezultata u toku rada - oktalni ″le~″ (74HC373) koji povezuje mikrokontroler sa EPROM-om i slu`i za razdvajanje ni`eg dela adrese ( A0 - A7 ) od podatka ( D0 - D7 ). Za ″le~ovanje″ adresa A0-A7 koristi se signal iz mikrokontrolera ALE - MAX 232 linijski drajver za RS-232 komunikaciju. Omogu}ava naponsko prilago|enje nivoa izme|u PC ra~unara i mikrokontrolera - kolo oscilatora je sa~injeno od kristala (12 MHz) i kondezatora C3 i C5. Izborom kristala je unapred definisano vreme izvr{enja ma{inskog ciklusa od 1μs [tampana plo~a je standardnog EURO formata i ura|ena je u dvoslojnoj tehnici. [tampu je izradio Institut ″Nikola Tesla ″ iz Beograda pod nazivom LAR 535. Na prostoru za dogradnju su postavljena 3 operaciona poja~ava~a (MCI741), stabilizator napona (7805) i jedan trimer( 72xR20K) koji omogu}uje zadavanje napona na ulaznom pinu AN0 u granicama od 0-5 V.

Page 28: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

26

Page 29: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

27

4. Simulator mikrokontrolera

Jedan od korisnih softverskih alata pri razvoju programa je simulator mikrokontrolera. To je program koji omogu}uje testiranje programa napisanih u asembleru ili nekom drugom programskom jeziku. Naravno neophodno je posedovati adekvatan kompajler koji }e napisane programe prevesti u, za INTEL-ove mikrokontrolere, prepoznatljiv HEX format. Simulator koji je bio na raspolaganju pri izradi ovog dipolomskog rada je SIMIS. SIMIS omogu}uje simuliranje slede}ih mikrokontrolera : 80535, 80515, 8032, 8052, 8031 i 8051. Startovanjem SIMIS-a pojavljuje nam se na ekranu maska koja nas obave{tava koje sve kontrolere mo`emo simulirati. Tako|e postoji obave{tenje da je ovo demo verzija i najve}e ograni~enje ove demo verzije je {to ne mo`e da u~ita program ve}i od jednog kilobajta. Pokretanje SIMIS-a vr{i se pritiskom na SPACE bar. Nakon toga se u dnu ekrana pojavljuju 4 mogu}e opcije :

Configuration Access Files Devloppement Dos Izbor odgovaraju}e opcije podrazumeva slede}e : - Configuration opcija za izbor mikrokontrolera - Access Files opcija za u~itavanje testiranog programa kao i za izbor formata programa. Za simulaciju programa navedenih u poglavlju 3 neophodno je izabrati HEX format - Developpement nakon startovanja ove opcije pojavljuje se glavni ekran simulatora podeljen u tri dela. U osnovi se nalazi prikaz u~itanog programa. U donjem delu ekrana se nalaze najva`niji registri specijalne namene : ACC, B, PSW, SP, THL0 (vi{i i ni`i bajt tajmerskog broja~a TIMER-a 0) ,THL1, P1 (registar porta 1), P3, C (Carry flag), EAL (bit globalne dozvole prekida) i registri R0-R7 selektovane registarske banke. U tre}em delu, na desnoj strani ekrana, nalazi se 5 prozora sa oznakama XDAT, DATA, BIT, REG i SEL. Na gornjoj desnoj ivici svakog prozora je upisana adresa bajta ili bita ~iji se sadr`aj trenutno prikazuje. U svakom prozoru ima po 8 lokacija, a lokacija ~ija je adresa navedena je posebno ozna~ena. U prozorima se predstavljaju slede}i registri : XDAT prikazuje registre spolja{nje memorije podataka od adrese 0000 H do adrese FFFF H DATA prikazuje registre unutra{nje memorije podataka od 00 H do FF H BIT prikazuje bite registara specijalne namene koji su bit adresibilni, u okviru prozora se mo`e prikazati 8 bita, koji su adresirani jedan za drugim REG prikazuje registre specijalne namene U okviru prozora XDAT, DATA, REG se jednovremeno mo`e prikazati sadr`aj 8 registara u heksadekadnom zapisu, a u prozoru BIT se prikazuje sadr`aj 8 susednih bita. - Dos ulaskom u ovu opciju omogu}en je izlaz iz SIMIS-a i povratak u polazni meni.

Page 30: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

28

Izbor neke od ove ~etiri opcije se vr{i pomo}u strelica na tastaturi. Izlaz iz bilo koje opcjie ili podopcije se vr{i pritiskom na taster Esc. Simulator je tako osmi{ljen da je mogu}e izvr{avanje instrukcija korak po korak uz istovremeno pra}enje svih registara, portova kao i memorijskih lokacija koji su izabrani u odgovaraju}im prozorima. Tako|e je mogu}no i ″normalno″ izvr{avanje programa. U kom }e se re`imu raditi odre|uje se pozicioniranjem na program i pritiskom na taster Enter otvara se prozor ″Execution″, u okviru tog prozora odabere se Step by step ili Execute. Iz prozora ″Execution″ se izlazi kao iz svakog prozora sa Esc. Pokretanje programa u zadatom re`imu se obavlja pritiskom na taster F4, a zaustavljanje se vr{i Space barom. Kretanje od prozora do prozora se vr{i tasterima PgUp i PgDn. Pozicioniranjem na prozor REG, i pritiskom na F10 otvara nam se prozor u kome mo`emo da zadamo ulazni anlogni napon na bilo koji od ulaza AN0-AN7. Tako|e se ima mogu}nost zadavanja ulaznih veli~ina za serijski port ili posmatranje izlaznih veli~ina sa serijskog porta. Sa istog mesta, iz prozora REG, pritiskom na F8 pru`a nam se mogu}nost da vidimo trenuti hardverski izgled TIMER-a 0, 1 i 2, serijskog porta, interapt strukture i A/D konvertora, sa svim njihovim registrima. Najpre nam se na ekranu pojave tajmeri, a ostale ″ure|aje″ mo`emo videti pritiskom na taster PgUp ili PgDn. Sve pogodnosti koje ima simulator su ura|ene sa ciljem br`eg testiranja programa i lak{eg otklanjanja gre{ki. Tako|e ovaj simulator daje mogu}nost da se napi{u i isprobaju delovi programa i bez postojanja hardvera. Ovo bi bilo jedno kratko upustvo za kori{}enje SIMIS-a, a ~itaocu se preporu~uje da sam poku{a da prokrene prilo`ene programe uz ovaj diplomski rad, kao i prilo`eni programski paket SIMIS na disketi ″Diplomski rad″.

Page 31: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

29

5. Geneza programa za implementaciju PWM signala

5.1. Primena programibilnih tajmera Implementacija PWM signala je mogu}na primenom programibilnih tajmera koje poseduje mikrokontroler 80535. TIMER 2 je veoma pogdan za pravljenje moduli{u}eg signala koji ima izgled kao na slici :

Pravljenje ovakvog signala odre|ene u~estanosti je mogu}e izvesti ako se ponovno punjenje TIMER-a 2 vr{i u MOD-u 0, tj. nakon prekora~enja tajmera. U ovom radu je ra|eno sa modul{u}im signalom u~estanosti 1 KHz, odnosno TPWM=1000 μs, pa je stoga u registar za ponovno punjenje CRC upisana veli~ina koja je za 1000 μs manja od vrednosti tajmerskog broja~a pri kojoj on do`ivljava prekora~enje. Na ovaj na~in se dobija povorka signala kao na predhodnoj slici. Potrebno je napraviti algoritam koji }e kao ulazne veli~ine imati `eljeni napon i u~estanost a na izlazu daje trnutke uklju~enja tranzistora u granama invertora.

Ukoliko se TIMER 2 iskoristi za pravljenje moduli{u}ih signala potrebno je jo{ u algoritmu iskoristiti formule, koje su date i poglavlju 2, za ore|ivanje vremena vo|enja tranzistora u pojedinim granama. Izra~unata vremena je potrebno upisivati u registre za pore|enje CC1, CC2 i CC3. Kada broja~ tajmera dostigne veli~inu u nekom od registara dolazi do setovanja odgovaraju}eg pina porta 1. Ovo dostizanje zadate vrednosti je adekvatno presecanju moduli{u}eg, testerastog signala, i

Tpwm TpwmTpwm

ALGORITAMUs

Ws

tON A

tON B

tON C

Page 32: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

30

referentnog sinusnog. Ovakvim na~inom oder|ivanja vremena vo|enja gornjih tranzistora invertorske grane posti`e se sinusna PWM modulacija.

5.2. Algoritam za odre|ivanje vremena vo|enja Formule za potrebno vreme vo|enja date su na kraju drugog poglavlja. Vreme vo|enja gornjeg tranzistora faze A mo`e se predstaviti kao :

tON A =TPWM / 2 + TPWM / 2 . A sin (ω k TPWM ) Ova jedna~ina se mo`e predstaviti u slede}em obliku:

tON A = TPWM / 2 + TPWM / 2 A f(x) gde je A ∈ (0,1), a f(x) ∈ (-1,1). Da bi se jedna ovakva formula mogala da realizuje sa operacijama koje mo`e da izvede SAB 80535 moraju se iskristiti mali matemati~ki ″trikovi″, jer mikrokontroler mo`e da operi{e samo sa celobrojnim vrednostima, a sinusnu funkciju i ne poseduje.Zbog toga se mora praviti tabela sinusne funkcije. Tabela se pravi tako {to se perioda funkcije od 0 do 2π podeli na 256 delova i za svaki deo se izra~una vrednost sinusne funkcije. Sinusoida se deli na ba{ 256 delova iz razloga {to je tada celu sinosoidu mogu}no adresirati jednim bajtom, odnosno celu sinusoidu mo`emo pro~itati kori{}enjem samo jednog registra. Dodavanjem i oduzimanjem od izraza TPWM /2 . A dobija se :

tON A = TPWM / 2 + TPWM / 2 A ( 1+ f(x) ) - TPWM / 2

Ovim dodavanjem i oduzimanje dobili smo umesto funkcije f(x),koja se menja od -1 do 1, funkciju f1(x)=1+f(x) koja se menja od 0 do 1, a time je izbegnut rad sa negativnim brojevima. Ako sada A koje se menja od 0 do 1 zamenimo sa A1 koje se menja od 0-255, i podelimo sa 256 dobijamo skoro isto kao da je u jedna~ini ostalo A. Ovo je ura|eno da bi promenu parametra A od 0 - 1, kojom se vr{i promena izaznog napona od 0 - 1, mogli da predstavimo jednim bajtom. Deljene A1 sa 256, a ne sa 255, je ura|eno da bi se olak{alo deljenje, jer deljenje sa 256 u binarnom ra~unu,koji SAB 80535 sprovodi, je adekvatno pomeranju za 8 mesta ulevo. Pomeranje ulevo je daleko br`e i pouzdanije od deljenja. Jednu sli~nu operaciju uradi}emo i sa f1, tako da njenu promenu od 0 do 1 svedemo na promenu od 0-255. To }emo dobiti ako uradimo slede}e:

f1 = 1/128 . (128 + 127 f(x) ) Sada jedna~ina za vreme vo|enja ima oblik :

tON A =TPWM /2 + TPWM /2 . A1/256 . 1/128 ( 128 + 127 f(x) ) - TPWM /2 .A1/256

Page 33: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

31

Izraz [128 + 127 f(x)] predstavi}emo tabelom du`ine 256 bajtova koju je mogu}e adresirati sa jednim bajtom. Ova tabela je napravljena koriste}i program napisan u QBASIC-u. Program je prikazan sledecim listingom : DIM m(256) pi = 3.1415926

OPEN "TAB.SIN" FOR OUTPUT AS #1 FOR i = 1 TO 256 teta = 2 * pi * i / 256 m(i) = (128 +127 SIN(teta)) NEXT i PRINT #1, "TAB_SIN :" FOR i = 1 TO 256 PRINT #1, " DB ", x = m(i) a$ = HEX$(x) PRINT #1, "0"; a$; "H;" NEXT i CLOSE #1 END

Pogodnim izborom periode komutacije mo`emo mnogo da olak{amo ra~un, a da se na PWM signal to uop{te ne odrazi. Ako uzmemo da nam perioda TPWM umesto 1000 μs bude 1024 μs ra~un }e se znatno pojednostaviti. Izraz }e sada imati oblik :

tON A = 512 +4 .A1

. TAB_SIN /256 - 2A1 gde je TAB_SIN = 128 + 127 f(x). Kako sinusna PWM modulacija treba da obezbedi U/ f =const, ali ne u celom opsegu u~estanosti f<fn . Pri niskim u~estanostima f< 10 Hz potrebno je da je ovaj napon ve}i. Ovaj program je ura|en za promenu napona kao na slede}oj slici : Po{to program koji ura|en predvi|a da se zadaje samo referentna u~estanost preko A/D

U

f10 Hz 50 Hz 100 Hz

Un

Page 34: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

32

konvertora, to je zbog ubrzanja i olak{anaja procesa izra~unavanja, napravljena i tabela napona. Tabela napona je tako|e du`ine 256 bajtova i zadavanjem bilo kog napona na A/D konvertoru u granicama od 0-5 V, {to predstavlja u~estanost od 5-100 Hz, pozicionira se na jednu od 256 lokacija tabele i ~ita odgovaraju}a vrednost za napon. Program za izradu tabele napona dat je listingom :

DIM niz2(256) n = 95 / 255 OPEN "napon.tab" FOR OUTPUT AS #1 FOR i = 0 TO 255 IF (5+i . n ) < 10 THEN niz2(i) = (255 / 50) * 10 ELSE IF (5+i . n ) <50 THEN niz2(i) = (255 / 50) * (5 + i * n) ELSE niz2(i) = 255 NEXT i PRINT #1, "TABELA_NAP:"

FOR i = 0 TO 255 PRINT #1, "DB", x = niz2(i) a$ = HEX$(x) PRINT #1, "0"; a$; "H" NEXT i CLOSE #1 END

Ostaje nam jo{ da re{imo problem koju od vrednosti iz tabele TAB_SIN treba da ~itamo u odre|enoj periodi PWM-a. Kako u~estanost referentnog signala, u~estanost referentne sinusoide, odre|uje izlaznu u~estanost napona na invertoru to zna~i da korak o~itavanja sinusoide odre|uje izlaznu u~estanost napona. Na primer ako je korak o~itavanja 1, da bi pro{li kroz celu sinusoidu potrebno je da je ~itamo 256 puta, pa je perioda takve sinusoide :

T=256 x 1024 μs = 0.262 s dakle izlazna u~estanost bi bila fIZ=1 / 0.262 = 3.8 Hz ,{to je ujedno i najni`a u~estanost koja se mo`e posti}i pri ovoj u~estanosti PWM-a. Ako korak o~itavanja nazovemo FAZA onda }e izraz za FAZU u zavisnosti od `eljene u~estanisti biti:

FAZA= 256 . TPWM / TIZLAZ

Ura|ena je i tabela FAZA du`ine 256, tako da se zadavanjem napona na ulazu A/D konvertora u granicama od 0-5 V, pozicionira na jednu od lokacija tabele FAZA_TAB i o~itava odgovaraju}i korak ~itanja sinusne tabele. Program za formiranje ove tabele je tako|e ura|en u QBASIC-u i prilo`en je listingom :

DIM niz1(256) n = 95 / 255

Page 35: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

33

OPEN "tab.faza" FOR OUTPUT AS #1 FOR i = 0 TO 256 niz1(i) = 256 * .001024 * (5 + n * i) NEXT i PRINT #1, "FAZA_TAB:" FOR i = 0 TO 255 PRINT #1, "DB", x = niz1(i) a$ = HEX$(x) PRINT #1, "0"; a$; "H;" NEXT i CLOSE #1 END

Neophodno je naglasiti da ~itanje sinusne tabele za pojedine faze ne po~inje sa istog mesta. Ona su me|usobno pomerana za 256/3 (55 H), to je adekvatno pomeraju 2π/3.Ovim se na izlazu dobijaju signali za paljenje tranzistora, odgovarju}ih grana invertora, pomereni za 2π/3. Periodu PWM-a od 1024 μs posti`emo tako {to u registar za ponovno punjenje, CRC, TIMER-a 2 upi{emo vrednost koja je ba{ za toliko manja od vrednosti pri kojoj TIMER 2 do`ivljava prekora~enje (FFFF H ), vrednost koju treba da upi{emo u ovaj registar je FBFF H. Formula za tON A do koje smo do{li na predhodnoj strani predstavlja vreme vo|enja gornjeg tranzistora u grani A mosta. Nama je potreban trenutak uklju~enja tog tranzistota, do toga }emo do}i kada od vrednosti FFFF H oduzmemo vreme vo|enja. Izraz za tON po kome se u programu izra~unava vrednost koja se upisuje u ragistre za pore|enje je:

tON A = 65023 +2 A1 - 4A1. TAB_SIN / 256

Prvi deo izraza ( 65023 +2 A1 ) je isti za sve tri faze i mo`e se izra~unati na samomo po~etku programa, ~im se pro~ita A/D konvertor. Drugi deo izraza se mora ra~unati za svaku fazu posebno i to se radi u prekidnoj rutini u koju se ulazi kada TIMER 2 do`ivi prekora~enje. Prekidna rutina traje oko 150 μs, a u prvih 12 μs se napune registri za pore|enje sa vrednostima za trenutke uklju~enja tranzistora teku}e periode PWM-a. Preostalo vreme se tro{i na ra~unanje trenutaka uklju~enja za narednu periodu i na kraju prekidne rutine se o~itava A/D konvertor i proverava da li je bilo promene referentne u~estanosti. Ovaj softver daje samo vreme uklju~enja gornjih tranzistora u granama invertora, mrtvo vreme je re{eno hardverski, kao i trenutci uklju~enja donjih tranzistora mosta. Listing programa koji }e biti prilo`en na kraju ovog poglavlja u sebi ne}e imati gore pomenute tabele iz razloga {to bi zauzele mnogo prostora, a iz njih se ne bi moglo ni{ta posebno saznati. Naravno te tabele se moraju uneti u program koji se bube prebacivao u EPROM. Tabele se mogu pridodati programu jednostavnom naredbom DOS-a :

Page 36: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

34

COPY PROGRAM.535+TABELA.TAB PROGRAM.535 Ovom instrukcijom se programskoj celini PROGRAM.535 dodaje programska celina TABELA.TAB.

5.3. Prevo|enje programa Program koji je pisan u asembleru se mora prilagoditi formatu za ubacivanje u EPROM, odnosno formatu koji mikrokontroler mo`e da pro~ita. INTEL-ovi mikrokontroleri podrazumevaju format HEX i do tog formata dolazimo uz pomo} asemblerskog kompajlera ASM51. Ovo je kompajler za 8051, ali kao {to je ve} re~eno navo|enjem adresa, onih registara specijalne namene, koje ne poseduje 8051 mogu}e je kompajlirati i programe pisane za 80535 pomo}u ASM51. Kompajliranjem se dobija program sa ekstenziom OBJ. Ovako kompajlirani program je potrebno jo{ i linkovati da bi se do{lo do ekstenzije HEX . Linkovanje programa sa ekstenziom OBJ se obavlja pokretanjem linkera OH. Da se ne bi posebno vr{ilo kompajliranje i linkovanje preporu~uje se da se formira datoteka GO.BAT slede}eg izgleda :

ASM51 PROGRAM.535 OH PROGRAM.OBJ TO PROGRAM.HEX

Ovako preveden program je jo{ samo neophodno prebaciti u EPROM. To se radi pomo}u EPROM programatora koji se koristi vrlo jednostavno i postoji na Fakultatu.

5.4. Program za genezu PWM signala Listing slede}eg programa predstavlja softver pomo}u kojeg se na izlazima kartice, pinovima 18,20 i 22 konektora, dobijaju PWM signali koji se vode na upalj~e tranzistora naponskog invertora. Ovaj program ,kao i svi pomenuti inavedeni programi, se nalazi na disketi koja ide uz iplomski rad pod nazivom PWM.535

Page 37: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

35

NAME PWM ;******************************************************************** ;* U slede}oj programskoj celini se vr{i postavljanje ekvivalenci. Odnosno * ;* dodeljuju se adrese onim registrima posebne namene koje poseduje * ;* 80535 a ne poseduje 8051, jer se koristi kompajler za 8051. * ;******************************************************************** P4 EQU 0E8H; IEN0 EQU 0A8H; IEN1 EQU 0B8H; IP0 EQU 0A9H; IP1 EQU 0B9H; T2CON EQU 0C8H; CCEN EQU 0C1H; CRCL EQU 0CAH; CRCH EQU 0CBH; CCL1 EQU 0C2H; CCH1 EQU 0C3H; CCL2 EQU 0C4H; CCH2 EQU 0C5H; CCL3 EQU 0C6H; CCH3 EQU 0C7H; TL2 EQU 0CCH; TH2 EQU 0CDH; ADCON EQU 0D8H; DAPR EQU 0DAH; ADDAT EQU 0D9H; IRCON EQU 0C0H; ;******************************************************************** ;* Postavljanje varijabli u internom RAM-u * ;* * ;******************************************************************** DSEG AT 48H ;tabela napona pocinje od adrese 420H ;tabela faznog pomeraja pocinje od adrese 200H ;tabela sinusne funkcije pocinje od adrese 310H ; varijable u ramu TON1_H: DS 1 ;trenutak ukljucenja faze A visi bajt TON1_L: DS 1 ;trenutak ukljucenja faze A nizi bajt TON2_H: DS 1 ;trenutak ukljucenja faze B visi bajt TON2_L: DS 1 ;trenutak ukljucenja faze B nizi bajt TON3_H: DS 1 ;trenutak ukljucenja faze C nizi bajt TON3_L: DS 1 ;trenutak ukljucenja faze C visi bajt CONST_L: DS 1 ;nizi bajt konstante 65535-512 CONST_H: DS 1 ;visi bajt konstante 65535-512 PROM_H: DS 1 ;nizi bajt rezultata 2*A1 PROM_L: DS 1 ;visi bajt rezultata 2*A1 NAPON: DS 1 ;promenjljiva u koju se smesta vrednost iz tabele napon FAZA: DS 1 ;promenjljiva u koju se smesta vrednost iz tabele faza

Page 38: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

36

UGAO1: DS 1;vrednost za trenutni polozaj za ocitavanje SIN_TAB faze A UGAO2: DS 1;vrednost za trenutni polozaj za ocitavanje SIN_TAB faze B UGAO3: DS 1;vrednost za trenutni polozaj za ocitavanje SIN_TAB faze C SIN_FUN: DS 1 ;vrednost sinusne funkcije POM_H: DS 1 ;visi bajt vrednosti 4*U POM_L: DS 1 ;nizi bajt vrednosti 4*U PROMREF: DS 1 ;promenjljiva koja daje informaciju o promeni ;referentne ucestanosti ;******************************************************************** ;* Po~etak glavnog programa koji izvr{ava upis odgovaraju}eg sadr`aja u * ;* registre specijalne namene tako da mikrokontroler radi u `eljenom re`imu* ;******************************************************************** CSEG AT 000H LJMP POCETAK ;skok na pocetak glavnog programa CSEG AT 02BH ;adresa interrupt-a usled prekoracenja ;TIMER-a 2 LJMP PREKID ;kada se desi perkid ide se na labelu ;PREKID CSEG AT 030H ;labela pocetak je smestana iza pocetnih ;adresa svih izvora prekida POCETAK: MOV SP,#07FH ; inicijalizacija vrha steka MOV P1,#00H ; upisivanje nula na pinove porta P1 MOV ADCON,00H ; anlogni ulaz sa pina AN0 ; pojedinacna konverzja CLR T2CON.1 ; T2 radi kao timer SETB T2CON.0 ; T2 radi kao timer SETB T2CON.4 ; Reload se desava pri prekoracenju TIMER-a 2 CLR T2CON.7 ; f=1/12 frekvencije kristala CLR T2CON.2 ; MOD 0 za poredjenje MOV CCEN,#10101000B ;napunjen MOD registra za poredjenje MOV CRCH,#0FBH ;punjenje CRC-a sa vrednoscu MOV CRCL,#0FFH ; za ponovno punjenje TIMER-a 2 MOV IEN0,#10100000B ;omogucen interapt TIMER-a 2 MOV DAPR,#00H ; start A/D konverzije u granicama (0 - 5) ;****************************************************************** ;* Izra~unavanje dela izraza za tON koji je isti za sve tri faze * ;****************************************************************** CEKAM: JB ADCON.4,CEKAM ; ceka se izvrsavanje A/D konverzije ; tj setovanje BSY flega MOV R0,ADDAT ;prebacivanje zadate ucestanosti u reg. R0 START:

Page 39: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

37

MOV PROMREF,#00H ;promenjljiva koja pokazuje da li dolazi ;do promene zeljene ucestanosti MOV DPH,#04H ;punjenje"data pointer"-a sa pocetnom MOV DPL,#020H ;adresom tabele napona MOV A,R0 ;prebacivanje zadate f u ACC MOVC A,@A+DPTR ;citanje vrednosti napona za zadato f MOV NAPON,A ;NAPON < ACC MOV DPH,#02H ;punjenje "data pointer"-a sa pocetnom adresom MOV DPL,#00H ;tabele faznog pomeraja za citanje SIN_TAB MOV A,R0 ;prebacivanje zadate f u ACC MOVC A,@A+DPTR ;citanje vrednosti FAZA za zadato f MOV FAZA,A ;FAZA < ACC MOV CONST_H,#0FDH ;postavlanje const na vrednost MOV CONST_L,#0FFH ;65535-512=0FDFFH MOV A,NAPON ;ACC<U MOV B,#02H ;B< 2 MUL AB ;U*2 MOV PROM_L,A ;PROM_L< (U*2)_L u reg. B ostaje (U*2)_H MOV A,CONST_L ;ACC< PROM_L ADD A,PROM_L ;ACC<CONST_L +( 2*U)_L MOV R2,A ;R2<CONST_L+(2*U)_L MOV A,CONST_H ;ACC<CONST_H ADDC A,B ;ACC<CONST_H +( 2*U)_H + CY(carry flag) ;dodaje se CY jer je moguce da je bilo preko- ; ra~enja pri sabiranju nizih bajtova CONST MOV R3,A ;R3<CONST_H+(2*U)_H + CY MOV B,#04H ;B<4 MOV A,NAPON ;ACC< U MUL AB ;4*U MOV PROM_H,B ;u PROM_H smesten visi bajt 4*U MOV PROM_L,A ;u PROM_L smesten nizi bajt 4*U MOV UGAO1,#00H ;pocetna vrednost za ocitavanje SIN_FUN faza A MOV UGAO2,#055H ;pocetna vrednost za ocitavanje SIN_FUN faze B MOV UGAO3,#0AAH ;pocetna vrednost za ocitavanje SIN_FUN faze C MOV DPH,#03H ;punjenje DPTR sa pocetnom MOV DPL,#010H ;adresom SIN_TABELE MOV TON1_L,#0FFH ;do ove programske linije je zavrseno izracu- MOV TON1_H,#0FFH ;navanje svih potrebnih velicina koje se ne me- MOV TON2_L,#0FFH ;njaju ukoliko se ne menja promena referentne ; ucestanosti,pa je MOV TON2_H,#0FFH ;neophodno otici u prekidnu rutinu odmah MOV TON3_L,#0FFH ; de se ne bi dva puta pisale jednacine za MOV TON3_L,#0FFH ; izracunavanje T_ON.Zbog toga je za prvu ; periodu PWM-a postavljeno da napon na ; izlazu bude 0,tj trenutci ukljucenja su ;na kraju periode PWM-a tj u FFFF H. MOV TH2,#0FFH ;izazivanje prvog interapta od koga pocinje MOV TL2,#0FAH ; izvrsavanje zadatog PWM-a

Page 40: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

38

;T2 nije napujn sa FFFF H da bi se omogucio ;prelazak u petlju KRAJ iz koje se odlazi u ; prekid i u koju se praca nakon prekidne rutine KRAJ: MOV A,PROMREF ;ACC < PROMREF CJNE A,#00H,START ;proverava se da li je bilo promene reference ;i ako je bilo skace se na labelu START LJMP KRAJ ;skok na labeli KRAJ ;u petlji KRAJ program se "vrti" dok se ne desi ;prekoracenje TIMER-a 2 i ide se u prekidnu ;rutinu ;******************************************************************* ;* Po~etak prekidne rutine , unjoj se izra~unava trenutak uklju~enja za sve * ;* tri faze, ali za slede}u periodu PWM-a. Na po~etku se vr{i punjenje * ;*registara za pore|enje sa u predhodnom interaptu izra~unatim vredno - * ;*stima. Prekidna rutina traje oko 150μs * ;******************************************************************** PREKID: MOV CCL1,TON1_L ; punjenje registra za poredjenje sa MOV CCH1,TON1_H ; vrednoscu za trenutak setovanja bita P1.1 MOV CCL2,TON2_L ; --- II --- MOV CCH2,TON2_H ; --- II --- P1.2 MOV CCL3,TON3_L ; --- II --- MOV CCH3,TON3_H ; --- II --- P1.3 ;racunanje vremena vodjenja za fazu A MOV A,UGAO1 ; ACC< ugao za citanje SIN_TAB za fazu A MOVC A,@A+DPTR ; citanje SIN_TABELE MOV SIN_FUN,A ; SIN_FUN< vrednost sin iz tabele MOV B,PROM_H ; B< visi bajt 4*U MUL AB ; (4*U)_H*SIN MOV POM_H,B ; POM_H < visi bajt ( 4*U)_H*SIN MOV R1,A ; u R1 se stavlja nizi bajt (4*U)_H*SIN MOV A,SIN_FUN ; ACC< SIN_FUN MOV B,PROM_L ; B< nizi bajt 4*U MUL AB ; (4*U)_L*SIN ;nizi bajt ovog proizvoda se odbacuje i time ;se vrsi deljenje ;izraza 4*U *SIN sa brojem 256 MOV A,R1 ;u ACC se vraca nizi bajt ( 4*U)_H*SIN ADD A,B ;ACC< nizi bajt (4*U)_H*SIN+visi bajt(4*U)_L*SIN MOV POM_L,A ;POM_L<nizi bajt (4*U)*SIN)/256 JNB PSW.7,SKOK ;ispitivanje carry flega INC POM_H ;ukoliko je bilo prekoracenje inkremetira se POM_H SKOK: MOV A,R2 ; ACC< ( CONST+2U)_L

Page 41: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

39

SUBB A,POM_L ; ACC< (CONST+2U)_L-(4U*SIN/256)_L MOV TON1_L,A ;u TON1_L se nalazi vrednost kojom se puni CCL1 MOV A,R3 ; ACC < (CONST+2U)_H SUBB A,POM_H ; ACC< (CONST+2U)_H-(4U*SIN/256)_H MOV TON1_H,A ;u TON1_H se nalazi vrednost kojom se puni CCH1 MOV A,UGAO1 ; ACC< ugao za citanje TAB_SIN faze A ADD A,FAZA ; ACC<UGAO1+FAZA MOV UGAO1,A ; u UGAO1 se nalazi vrednost za sledece ; citanje TAB_SIN ;racunanje vremena vodjenja za fazu B MOV A,UGAO2 ; ACC< ugao za citanje TAB_SIN za fazu B MOVC A,@A+DPTR ; citanje SIN_TAB MOV SIN_FUN,A ; SIN_FUN < vrednost sin iz tabele MOV B,PROM_H ; B< visi bajt 4*U MUL AB ; 4U_H*SIN MOV POM_H,B ; POM_H< visi bajt (4*U)_H*SIN a to je visi ; bajt izraza (4*U)*SIN/256 MOV R1,A ; R1< nizi bajt (4*U)_H*SIN MOV A,SIN_FUN ; ACC < SIN_FUN MOV B,PROM_L ; B < nizi bajt 4U MUL AB ; (4*U)_L*SIN ; deljenje sa 256 se vrsi odbacivanjem nizeg bajta MOV A,R1 ; u ACC se vraca nizi bajt (4*U)_H*SIN ADD A,B ;ACC<nizi bajt (4*U)_H*SIN + visi bajt (4*U)_L*SIN MOV POM_L,A ; POM_L<nizi bajt (4*U)*SIN/256 JNB PSW.7,SKOK1 ; ispitivanje carry flega INC POM_H ;ukoliko je bilo prekoracenje inkrementira se POM_H SKOK1: MOV A,R2 ; ACC < (CONST+2U)_L SUBB A,POM_L ; ACC < (CONST+2U)_L - (4U*SIN/256)_L MOV TON2_L,A ;u TON2_L se nalazi vrednost kojom se puni CCL2 MOV A,R3 ; ACC< (CONST+2U)_H SUBB A,POM_H ; ACC< (CONST+2U)_H - (4U*SIN/256)_H MOV TON2_H,A ;u TON2_H se nalazi vrednost kojom se puni CCH2 MOV A,UGAO2 ; ACC< ugao za citanje TAB_SIN za fazu B ADD A,FAZA ; ACC< UGAO2 + FAZA MOV UGAO2,A ; u UGAO2 se nalazi vrednost za sledece ;citanje TAB_SIN ;racunanje vremena vodjenja za fazu C MOV A,UGAO3 ; ACC< ugao za citanje SIN_TAB za fazu C MOVC A,@A+DPTR ; citanje sinusne tabele MOV SIN_FUN,A ; SIN_FUN <vradnost iz tabele MOV B,PROM_H ; B< visi bajt 4*U MUL AB ; (4*U)_H*SIN

Page 42: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

40

MOV POM_H,B ; POM_H < visi bajt (4*U)_H*SIN a to je visi ;bajt izraza (4*U)*SIN/256 MOV R1,A ; u R1 se stavlja nizi bajt (4*U)_H*SIN MOV A,SIN_FUN ; ACC < SIN_FUN MOV B,PROM_L ; B < nizi bajt 4*U MUL AB ; (4*U)_L*SIN ;nizi bajt ovog proizvoda se odbacuje a time se ;vrsi deljenje 4*U*SIN sa 256 MOV A,R1 ; u ACC se vraca nizi bajt (4*U)_H*SIN ADD A,B ;ACC<nizi bajt (4*U)_H*SIN + visi bajt (4*U)_L*SIN MOV POM_L,A ;POM_L < nizi bajt (4*U)*SIN/256 JNB PSW.7,SKOK2 ; ispitivanje carry flega INC POM_H ; ukoliko je bilo prekoracenja inkrementira POM_H SKOK2: MOV A,R2 ; ACC < (CONST+2U)_L SUBB A,POM_L ; ACC < (CONST+2U)_L-(4U*SIN/256)_L MOV TON3_L,A ;u TON3_L se nalazi vrednost kojom se puni CCL3 MOV A,R3 ; ACC < (CONST+2U)_H SUBB A,POM_H ; ACC < (CONST+2U)_H-(4U*SIN/256)_H MOV TON3_H,A ;u TON3_H se nalazi vrednost kojom se puni CCH3 MOV A,UGAO3 ; ACC < ugao za citanje TAB_SIN faze C ADD A,FAZA ; ACC < UGAO3 + FAZA MOV UGAO3,A ; u UGAO3 se nalazi vrednost za sledece ; citanje TAB_SIN MOV DAPR,00H ;pokretanje A/D konverzije CEKAM1: JB ADCON.4,CEKAM1 ;ceka se izvrsenje A/D konverzije MOV A,R0 ;u ACC se nalazi ucestanost koja se izvrsava CJNE A,ADDAT,PROMENA ;poredjenje izvrsavane ucestanosti i novo ;zadate reference na A/D ulazu LJMP IZLAZ ;ako su reference iste skace se na IZLAZ PROMENA: MOV R0,ADDAT ;u R0 novo zadata referentna ucestanost MOV PROMREF,#0FFH ;u PROMREF < FF ,signalizira se da je ;doslo do promene referentne ucestanosti IZLAZ: CLR IRCON.6 ;brisanje flega interapta RETI ;povratak iz prekidne rutine CSEG AT 0200H ;pocetna adresa FAZA_TAB TABELA_FAZ:

(mesto za smestanje tabele koraka za citanjeSIN_TAB) CSEG AT 0310H ;pocetna adresa SIN_TAB TABELA_SIN:

Page 43: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

41

(mesto za smestanje tabele sinusne funkcije) CSEG AT 0420H ;pocetna adresa TAB_NAP TABELA_NAP: (mesto za smestanje tabele referentnog napona) END

Page 44: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

42

6. Rezultati na izlazu sa kartice

Rezultati se izlaznih pinova konektora 18, 20 i 22 su sinimljeni pomo}u osciloskopa i praba~eni u ra~unar, tako da se mogu prikazati u ovom dokumentu. Kako se referentana u~estanost zadaje pomo}u trimera to je u ovoj fazi razvoja kartice prili~no te{ko ta~no odrediti kolika je zadata referenca. Stoga su snimljeni rezultati za tri razli~ita polo`aja potenciometra: - zadati napon 0 V ⇒ zadata u~estanost 5 Hz - zadati napon na polovini opsega ⇒ zadata u~estanost oko 50 Hz - zadati napon 5 V ⇒ zadata u~estanost 100 Hz Slede}e tri slika predstavljau ova tri slu~aja :

Slu~aj kada je referentni napon 0 V ⇒ u~estanost 5 Hz. Vidi se da se vreme vo|enja malo izme|u dve susedne periode PWM-a, {to zna~i da }e izlazni signal imati malu u~estanost.

Page 45: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

43

Zadati napon oko 2.5 V ⇒ f ≈ 50 Hz. U odnosu na prvu sliku se vidi da se vreme vo|enja izme|u dve susedne periode PWM-a znatno razlikuje.

Zadati napon 5 V ⇒ u~estanost 100 Hz

Page 46: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

44

7. Zaklju~ak

Posmatraju}i slike iz poglavlja 6 vidi se da se u zavisnosti od promene referantnog napona i perioda ponavljanja istog vremena vo|enja menja, odnosno da je jednaka u~estanosti izlaznog napona. Ovim je potvr|ena teorijska predpostavka da u~estanost referentnog sinusnog signala odre|uje izlaznu u~estanost napona. Ovako proizvedenim signalima je mogu}no obezbeiti potrebni odnos U/f za napajanje asihronih motora. Dakle posedovanjem jedne ovakve kartice, naravno uz posedovanje invertora, je mogu}e vrlo lako upravljanje asihronim motorima. Ovakav na~in upravljanja AM }e sigurno u skorije vreme potisnuti pogone sa motorima jednosmerne struje. Neophodno je naglasiti da je se pomo}u samo jednog ~ipa uspela napraviti prostorno {irinska modulacija zadovoljavaju}eg kvaliteta. Implementacija PWM signala u okviru samo jednog ~ipa mnogo smanjuje uticaj spolja{njh smetnji u odnosu na slu~aj kada se moraju koristiti periferni tajmeri. Pedstavljeni softver je dao o~ekivane rezultate na izlazu, ali za jo{ lagodnije upravljanje AM, neophodno je razviti softver koji }e omogu}iti komunokaciju kartice sa nadre}enim ra~unarom tako da se u svakom trenutku mo`e znati ta~no koliki je izlazni napon i izlazna u~estanost sa invertorskog mosta. Tako|e je neophono razvit softver koji }e omogu}iti povratnu spregu po brzini, za to je ova kartica vrlo pogodana jer ima dovoljan broj ulaza na koje je mogu}no dovesti informaciju o brzini. Kada se ova kartica bude dopunila predlo`enim softverima i uz ve} ura|eni softver za implementaciju PWM signala mo}i }e da zadovolji sve zahteve regulisanig motornog pogona.

Page 47: DIPLOMSKI RAD - emp.etf.rsemp.etf.rs/radovi/Diplomski/stevan_mehandic.pdf · elektrotehni^ki fakultet univerziteta u beogradu katedra za energetske pretvara^e i pogone diplomski rad

45

8. Literatura

1. Dr. Mili} R. Stoji} : Digitalni sistemi upravljanja, Nau~na knjiga, 1989 god. 2. Simens, SAB 80515/80535, 8-Bit Single-Chip Microcontroller