87
1 Elektronski fakultet u Nišu Implementacija impulsno-širinske (PWM) i impulsno-amplitudske modulacije (PAM) korišćenjem mikrokontrolera PIC16F877 Mentor: Studenti: Prof. Dr. Mile Stojčev Bojan Milošević 10549 Dušan Tasić 10391

Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

1

Elektronski fakultet

u Nišu

Implementacija impulsno-širinske (PWM) i impulsno-amplitudske modulacije (PAM) korišćenjem mikrokontrolera PIC16F877

Mentor: Studenti:

Prof. Dr. Mile Stojčev Bojan Milošević 10549

Dušan Tasić 10391

Page 2: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

2

SADRŽAJ

Uvod................................................................................................................................................3

1. Impulsno-širinska i impulno-amplitudna modulacija............................................4

1.1 Opis impulsno-širinske modulacije PWM...........................................................................5 1.2 Odnos impuls/pauza.............................................................................................................6 1.3 Primena impulsno-širinske modulacije................................................................................7 1.4 Opis impulsno-amplitudske modulacije PAM.....................................................................8 1.5 Osnovne karakteristike PWM i PAM primopredajnika.....................................................10 1.6 Struktura PWAM modulacije............................................................................................11 1.7 Glavne osobine PWAM signala.........................................................................................13

2. Opis mikrokontrolera PIC16F877-04.........................................................................16

2.1 Osnovne karakteristike mikrokontrolera PIC16F877-04......................................................16 2.2 Arhitektura mikrokontrolera PIC16F877-04........................................................................19 2.3 Memorijska mapa mikrokontrolera PIC16F877-04..............................................................23 2.4 Izbor oscilatora mikrokontrolera PIC16F877-04..................................................................28 2.5 Opis perifernih jedinica.......................................................................................................30 2.6 Programiranje......................................................................................................................37

3. Softver za mikrokontroler PIC16F877-04- mikroC.....................................................40

3.1 Instalacija mikroC-a......................................................................................................................42 3.2 Kreiranje koda...............................................................................................................................46 3.3 USART terminal............................................................................................................................51 3.4 ASCII standard..............................................................................................................................54

4. Implementacija PWAM prijemnika..................................................................................56

4.1 Projekat...........................................................................................................................................56

5. Laboratorijska vežba.................................................................................................................81

6. Zaključak.........................................................................................................................................84

7. Literatura........................................................................................................................................85

Page 3: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

3

UVOD

U sledećem projektu biće opisan prijemnik signala. Signal koji se prima sa predajnika je impulsno-širinski i impulsno-amplitudski modulisan u predajnom delu. U prijemnom delu se taj modulisani signal vraća u prvobitni oblik, odnosno u sekvence podataka koje se šalju na ulaz predajnog dela.

Za pisanje potrebnog koda je korišćen kompajler mikroC. Za upis koda u mikrokontroler je korišćen ALLPIC programator.

Celokupni projekat je podeljen na poglavlja i u svakom poglavlju će biti opisani pojedini delovi projekata.

Kroz prvo poglavlje je dato objašnjenje impulsno-širinske i impulsno-amplitudske modulacije. Tu je predstavljeno i grafičko objašnjenje pomenutih modulacija. U drugom delu je kratak opis mikrokontrolera PIC16F877-DIP40. MikroC kompajler i softverski USART terminal, koji služi za komunikaciju mikrokontrolera PIC16F877-DIP40 i PC računara, dat je kroz kratki opis u trećem poglavlju. Postupak programiranja mikrokontrolera izložen je u četvrtom poglavlju. Kao alat je korišćen MikroC. Takođe u ovom poglavlju je predstavljena implementacija PWM i PAM pomoću mikrokontrolera PIC16F877-04 kao i način njegove upotrebe. Peto poglavlje je osmišljeno kao laboratoriska vežba gde bi se praktično pokazali rezultati celog projekta i videlo kako ceo sistem funkcioniše.

Na kraju smo želeli da se zahvalimo profesoru Miletu Stojčevu koji nam je omogućio da realizujemo ovakav projekat, savetovao nas kako da rešimo probleme na koje smo nailazili u toku realizacije ovog projekta i pomogao nam oko nabavke potrebnih komponenata. Bez pomoći profesora ovaj projekat bi bilo vrlo teško realizovati.

Page 4: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

4

1.IMPULSNO-ŠIRINSKA I IMPULSNO- AMPLITUDSKA MODULACIJA

Da bi se održala velika brzina, da bi ceo sistem bio jedinstven i da bi se dobila mala cena potrebno je da se ispune neki neophodni uslovi u međusobnoj komunikaciji između čipova. Ti uslovi se odnose na brzinu prenosa podatka između gradivih blokova sistema i između samih pinova. Pomenuta brzina mora biti srazmerna brzini rada kola i stepenu integracije samog integrisanog kola. Da bi se postigla velika brzina prenosa podataka to za sobom povlači i određene uslove koji moraju biti ispunjeni. Ti uslovi su na primer povećanje obima interne magistrale, povećanje broja pinova na samom čipu a sve to dovodi i do povećanja dimenzija samog čipa. Sa povećanjem dimenzija javlja se problem povezivanja različitih modula na čipu. Da bi se izbegli ovi problemi pronađeno je rešenje u vidu prenosa više bitova pomoću jednog simbola uz pomoć raznih modulacionih tehnika. Na taj način je rešen veći broj problema koji su predhodno navedeni.

Jedna od modulacionih metoda je impulsno-amplitudska modulacija. Ova tehnika se koristi pri projektovanju prijemnika i predajnika koji zahtevaju veliku brzinu. Njihiva brzina je reda i nekoliko gigabita u sekundi. Kod impulsno-amplitudske modulacije u jednoj sekvenci bitova svaka dva susedna bita se grupišu i konvertuju u jedan od četiri moguća amlitudska nivoa.

Da bi se postigla određena brzina prenosa podataka pojednostavljenom šemom i redukcijom ukupnog broja pinova, kanali za prenos podataka i takt kanali su kombinovani tako da idu preko jednog kanala i u PWM i u PAM šemama

Impulsno modulaciona tehnika je efikasna kako kod sprezanja komponenti na štampanoj ploči, tako i kod rada sa multi-modulima.

Page 5: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

5

1.1 OPIS IMPULSNO-ŠIRINSKE MODULACIJE-PWM

Impulsno širinska modulacija ima širok spektar primena. Od primena u komunikacijama i raznim merenjima pa sve do primene u upravljanju snagom i do konverzije energije u neke druge oblike energije. Često se u literaturi impulsno-širinska modulacija može pronaći pod imenom PWM (eng. Pulse Wide Modulation). Da bi se na pravi način opisala impulsno-širinska modulacija mora se prvo shvatiti pojam analognog signala i zašto se odlučuje za digitalno upravljanje pomoću PWM.

Analogni signal ima kontinualno promenljivu vrednost amplitude, kao i beskonačnu rezoluciju kako po amplitudi tako i po vremenskoj osi. Anlogni signal se razlikuje od digitalnog, jer se kod digitalnog signala uvek uzima vrednost iz nekog konačnog skupa definisanih vrednosti.

Analogni napon i struja mogu se koristiti i za direktnu kontrolu. Jedan od takvih primera je korišćenje potenciometra radi regulacije zvuka na radiju. Pri okretanju potenciometra u jednu ili u drugu stranu dolazi do povećanja ili smanjenja otpornosti na krajevima potenciometra. Kako se menja otpornost tako se menja i jačina struje koja protiče kroz potenciometar. Ova promena struje utiče i na promenu jačine zvuka u zvučniku.

Analogna kola imaju niz prednosti u odnosu na digitalna kola, ali imaju i niz nedostataka. Glavna prednost analognih kola u odnosu na digitalna je sama jednostavnost. Međutim analogna kola često imaju izbor rešenja koja nisu dovoljno ekonomična i praktična. Još jedan od nedostataka je i taj što analogna mogu u toku vremena mogu promeniti svoje karakteristike. Da bi se taj nedostatak nadomestio sama izrada postaje glomazna i skupa. Najveći nedostatk analognih kola u poređenju s digitalnim kolima je veća osetljivost. Pored toga analogna kola imaju i problem disipacije, koja je srazmerna struji koja teče kroz kola i naponu koji vlada na krajevima kola, pa je zbog toga neophodno obezbediti i odgovarajuće hlađenje samog kola.

Jedan od načina da se drastično smanje cena i potrošnja je digitralna kontrola analognih kola. Još jedna od dobrih osobina je i ta što mnogi mikrokontroleri već imaju ugrađen generator PWM signala. Na taj način je u olakšan rad sa samim mikrokontrolerom.

Page 6: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

6

1.2 ODNOS IMPULS/PAUZA

Naponski ili strujni izvor se dovodi na analogno kolo putem povorke impulsa sa odgovarajućim odnosom impuls/pauza. Jedan od mogućih odnosa impuls/pauza, odnosno faktora ispune, kod PWM signala predstavljeni su na slici 1.1:

sl.1.1. PWM signal signal sa različitim faktorom ispune

Na slici 1.1.a je prikazan signal gde je faktor ispune 0.9, naslici 1.1.b prikazan je signal sa faktorom ispune 0.5 a na slici 1.1.c je signal sa faktorom ispune od 0.1. Ova tri signala reprezentuju tri vrednosti analognog signala. Ako je npr. napon napajanja 9V tada navedeni signali na svom izlazu daju vrednosti od 8.1V, 4.5V i 0.9V respektivno.

Page 7: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

7

1.3 PRIMENA IMPULSNO ŠIRINSKE MODULACIJE

Na slici 1.2 prikazan je jedan od primera korišćenja PWM modulacije. U ovom kolu rad se zasniva na principu da kada je prekidač zatvoren sijalica svetli, a kad je prekidač otvoren sijalica ne svetli. Može se podešavati dužina trajanja vremena u kom je prekidač zatvoren i vremena u kom je prekida otvoren. Ova dužina trajanja određenog stanja prekidača određena je faktorom ispune PWM signala. Ako je perioda PWM signala dovoljno mala tada se ne primeti treperenje sijalice, a ako je rezolucija velika tada se može upravljati jačinom svetlosti sijalice.

sl.1.2. Kolo za upravljanje jačinom svetlosti

Pored ovog primera je moguće naći i druge primene pomenute modulacije. Ako se koristi u audio tehnici tada nastaje nova klasa u oblasti pojačavača. Ta klasa je poznata kao D-klasa pojačavača. Ona je po svojim osobinama dosta naprednija i bolja od ostalih klasa koje su u upotrebi. Kod ovih pojačavača signal na izlazu je skoro ekvivalentan ulaznom signalu i tu je stepen korisnog dejstva dosta veliki.

Page 8: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

8

1.4 OPIS IMPULSNO-AMPLITUDSKE MODULACIJE-PAM

sl 1.3 Impulsno-amplitudska modulacija

Kao što je prikazano na slici 1.3 impulsno-amplitudska modulacija predstavlja modulaciju signala, gde se informaciona poruka dobija kada se signal kodira po amplitudi. Kodiranje se vrši na taj način što se uzima određeni broj bitova istovremeno i vrši se odmeravanje signala po amplitudi sa nekom od defisanih vrednosti amplitude.

Page 9: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

9

Impulsno amplitudska modulacija se dosta primenjuje u baznoj transmisiji digitalnih podataka.

Treba napomenuti da se danas u nekim verzijama, vrlo popularnom Ethernet komunikacijskom standardu, koriste isključivo PAM modulacioni signali. U Fast Ethernet (100Base-T2) komunikaciji, na 100Mb/s koriste 5-stepena PAM modulacija (PAM-5) pri brzina od 25 megaimpulsa/sek, preko 2 para kablova. Specijalna tehnika se koristi kako bi se smanjila medju-znakovna interferencija između neoklopljenih parova. Kasnije, Gigabit Ethernet standard (100Base-T) koriste 4 para žica pri brzinama od 125megaimpulsa/sek, pa se time potižu brzine prenosa podataka i do 1000Mb/s

Page 10: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

10

1.5 OSNOVNE KARAKTERISTIKE PWM I PAM PRIMOPREDAJNIKA

(c) Slika 1.4. a) 2-bitni, b) 4-PAM primopredajnik c) PWM kodirani signal

Konvencionalni dvostepeni PAM primopredajnik konvertuje ulazne paralelne podatke i šalje ih na izlaz. Na slici 1.4, 2-bitni paralelni podaci na ulazu se prosleđuju ka izlazu dvostrukom brzinom, 1/Tb. Pored toga, velika brzina prenosa u kanalu dovodi do problema sa među-znakovnom interferencijom (ISI). Da bi se ti problemi prevazišli, upotrebljava se primopredajnik sa više nivoa. Kao primer, signali u 4-stepenom ili 4-PAM primopredajnik prikazani su na slici 4b. Brzina prenosa izlaznih podataka je ista kao paralelna brzina prenosa.

Page 11: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

11

1.6 STRUKTURA PWAM MODULACIJE

Na slici 1.5 data je šema PWAM primopredajnika.

Sl. 1.5 Šema PWAM primopredajnika

Page 12: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

12

Slika 1.5 se sastoji od tri dela:

Na slici 1.5.a prikazana je šema PWAM primopredajnika gde čip A koristi PWAM transmiter. Njegova uloga je da prenese odmerene podatke i takt preko kanala. Odmereni podaci stižu do čipa B. U čipu B podaci i takt koji stignu se rekonstruišu.

Na slica 1.5.b je prikazan 4-stepeni PWM i 5-stepeni PAM, gde se prenose 4 bita podatka i jedan sistemski takt koji se takođe prenosi putem kanala. Pošto se radi sa signalima PAM formata, PWAM kodirani signali ne mogu da postignu velike brzine, ali je zato dobra mogućnost da se znatno redukuje veliki broj pinova i da obezbede lako obnavljanje takt signala uz pomoć PWM funkcije.

Na slici 1.5.c PAM modulator konvertuje Tx-bit2 i Tx-bit3 u PWAM kodirani signal. PWAM primopredajnik se sastoji od 2-bitnog PWM modulatora i 2-bitnog PAM modulatora. PWM kodirani signal ima impulse sa 4 različite dužine. Širina impulsa je kvantovana u 4 nivoa da bi se prikazala Tx-bit0 i Tx-bit1.

Sl. 1.6. Impulsno modulisani tal. oblici na x osi , amplitudski na y osi.

Na slici 1.6 su prikazani oblici PWAM formata koji su asimetrične prirode. Oni se karakterišu time čto imaju veći razmek između RI nivoa ali i između ostalih nivoa.

Page 13: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

13

1.7 GLAVNE OSOBINE PWAM SIGNALA

Neke najbitnije karakteristike PWAM signala su:

1) Sa karakteristikom PWM, neophodna komponenta TAKT se umeće u kodirani signal, pa stoga, u prijemniku imamo konvencionalni PLL koji lako obnavlja takt signal ulaznih podataka, a višefazni izlaz naponski kontrolisanog oscilatora (Vco) u PLL-u se koristi za demodulaciju PWM-kodiranog signala.

2) Za datu brzinu, PAM šema sa više nivoa smanjuje brzinu prenosa podataka u odnosu na konvencionalni 2-PAM sistem. Redukcija brzine smanjuje ne samo ISI karakteristiku već i maksimalnu potrebnu takt frekvenciju na samom čipu. Prenošenjem više bitova u jednom vremenskom intervalu simbola, smanjuje se i potrebna širina opsega prenosnog kanala za odgovarajuću brzinu prenosa podataka, pa stoga raste efikanost celokupnog sistema.

3) U 4-bitnoj modulacionoj tehnici, predstavljeni model 4-bitnog PWAM odmerenog 2-btinim PWM i 2-bitnim PAM omogućava prenos velikim brzinama prenosa podataka, ali je to ipak manja brzina od 4-PAM ili 8-PAM ali je veća od klasične PWM tehnike.

4) Ukupan broj pinova se može dodatno još smanjiti prenošenjem 4- bitnih kanala i klok kanala preko jednog prenosnog kanala propuštajući ih kroz modulacione tehnike, PAM ili PWM.

Jedna o možda najbitnijih karakteristika čipova, koja nije do sad navedena, jeste sigurno cena samih čipova, potrebna snaga i kompleksnost izrade.

Page 14: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

14

Detaljna slika PWAM primopredajnika prikazana je na sledećoj slici:

Sl 1.7. PWAM primopredajnik

Jedan PWAM primopredajnik sastoji se iz tri dela: PWM modulator, PAM modulator i glavno kolo.Delay-locked loop (DLL) obezbeđuje prostor za klok fazu koja se koristi za PWM kodiranje signala. Posle procesuiranja Tx-bit0 i Tx-bit1 PWM tehnikom, informacija (Tx-bit2 i Tx-bit3) se propušta i kroz PAM modulator.

Page 15: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

15

Slika 1.8. Mikrofotgrafski snimak PWAM primopredajnika

Prijemnik PWAM signala se sastoji od PAM i PWM demodulatora, a kompletan sistem predajnika i prijemnika PWAM signala, snimljen mikrofotgrafskom tehnikom, prikazan je na slici 1.8.

Page 16: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

16

2.OPIS MIKROKONTROLERA PIC16F877-04

2.1 OSNOVNE KARAKTERIOSTIKE MIKROKONTROLERA

PIC16F877-04

PIC16F877 je Microchip-ov 8-bitnom CMOS mikrokontroler. On poseduje na samom čipu većinu periferija koje su potrebne za rad pa je zbog toga podesan za aplikaciju na jednom čipu. Koristi ISP (In System Programming) tehniku programiranja, za čiji programator je dovoljno realizovati manji sklop od tri otpornika i imati vezu sa serijskim portom računara. Izgradnja se bazira na flash tehnologiji. To što je bazirana na flash tehnologiji znači da unutar samog čipa postoji programska memorija. Ta memorija se upisuje i briše električnim putem. Ovaj način je daleko naprednije od brisanja EPROM-a UV zracima. Kod RISC arhitekture imamo mogućnost odvojene magistrale 8-bitnih podataka i 14-bitne programske memorije. To nam daje mogućnost da se pribavlja neka naredna instrukcija u trenucima dok se izvršava tekuća instrukcija (eng. pipelining). Sve instrukcije koje se izvršavaju su jednake dužine trajanja i završe se za vreme trajanja četiri ciklusa oscilatora (izuzetak je samo ukoliko postoji grananje u programu). Na primer, ako imamo oscilator koji je konfigurisan na 4 MHz, tada se dobija da ciklus instrukcije iznosi 1 µs.

Page 17: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

17

sl2.1Kućišta u koja se pakuje PIC16F877

Na slici 2.1 su prikazana kućišta u kojima se pakuje mikrokontroler PIC16F877-04. Kućišta koja su prikazana na slici su: a) DIP-40, b) PLC-44, c) TQFP-44.

Jezgro kod mikrokontrolera PIC16F877 se proizvode u 40-pinskom kućištu (DIP) ili u 44-pinskim kućištima (QFP i PLCC) kao što je prikaztano na slici 2.1.

Neke od osnovnih karakteristika mikrokontrolera PIC16F877-04 su:

• Radna frekvencija do 20 MHz • Memorije za podatke (RAM) je kapaciteta 368 X 8 bita • Memorije za podatke (EEPROM) je kapaciteta 256 X 8 bita • Sve instrukcije su jednocikluske, sem instrukcija grananja koje su dvocikluske • Trajanje taktnog intervala 200 ns (pri frekvenciji 20 MHz) • Opkod je obima 14 bita • RISC CPU visokih performansi

Page 18: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

18

• 35 instrukcija obima jedne reči • Hardverski magacin (stack) ima osam nivoa • Postoje tri načina adresiranja (direktno, indirektno i relativno) • Programska flash memorija je kapaciteta 8 k X 14-bitnih reči • Prekidi (maksimalno 14 izvora prekida) • Šest ulazno-izlaznih portova (A, B, C, D i E) • Tri tajmera:

- Timer0 (TMR0): osmobitni tajmer/brojač_događaja - Timer1 (TMR1): šesnaestobitni tajmer/brojač_događaja - Timer2 (TMR2): osmobitni tajmer/brojač_događaja

• Serijska komunikacija: MSSP, USART • Paralelna 8-bitna komunikacija: PSP • ICSP (In Circuit Serial Programing) preko samo dva izvoda • Analogni komparatorski modul sa programabilnim referentnim naponima • 8-kanalni 10-bitni ADC (Analog-to-Digital Converter, analogno/digitalni konvertor) • Power-on Reset - reset pri uključenju napajanja (POR) • Power-up timer - unošenje kašnjenja nakon uključenja napajanja (PWRT) • Oscillator Start-up Timer - unošenje kašnjenja neposredno po stabilizovanju

radne frekvencije oscilatora (OST) • Sleep mode - režim rada sa veoma malim utroškom energije • Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad • Izbor tipa oscilatora (RC, XT, HS, LP) • 100000 ciklusa Write/Erase programske memorije. • 1000000 ciklusa Write/Erase memorije za podatke EEPROM. • Trajanje podataka u EEPROM duže od 40 godina. • Radni napon može da bude u opsegu od 2V do 5.5V • Mala potrošnja energije:

- <0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz - 20µA pri naponu od 3V i radnom taktu od 32kHz - <1µA u standby režimu rada.

Page 19: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

19

2.2 ARHITEKTURA MIKROKONTROLERA PIC16F877-04

Na Slici 1.2 prikazana je arhitektura mikrokontrolera PIC16F877A. Ona poseduje odvojene magistrale. Jedna magistrala se korusti za podatke a druga je namenjena programskom kodu. Obim podataka je osmobitni, dok je programski kod četrnaestobitni. Sve instrukcije koje se koriste su istog obima (osim instrukcija grananja) i izvšavaju se u toku trajanja četiri taktna intervala. Dakle, ukoliko se koristi oscilator od 20 MHz, ciklus instrukcije traje 200 ns, a moguće je protočno izvršenje (pipelining).

sl 2.2. Arhitektura mikrokontrolera

Page 20: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

20

Sa slike (Slika 2.2) može se doći do zaključka da se koncepcija mikrokontrolera PIC16F877-04 u suštini ne razlikuje mnogo od koncepcije RISC mikrokontrolera drugih proizvođača prisutnih na tržištu.

Mogu se uočiti sledeće standardne komponente:

• Akumulator (Working Register) • Hardverski magacin (Stack) sa 8 nivoa • EEPROM memorija podataka – 256 bajtova • Flash programska memorija – 8 kword • RAM (File Registers) – 368 bajtova • Aritmetičko-logička jedinica (ALU) • Razne periferne jedinice (portovi, tajmeri, A/D konvertor, USART,...)

PIC16F877 podržava tehniku prekida. Prekidi mogu biti unutrašnji ili spoljašnji. U ovom slučaju postoji ukupno 14 izvora prekida. Kod svakog prekida postoji jedinstvena adresa(0x0004). Od ove adrese se nastavlja izvršavanje programa kada se dogodi bilo koji od prekida. Tada je na programeru da prozivanjem zastavica/markera pojedinih prekida (eng. interrupt flags polling) ustanovi ko traži prekid i uputi program na izvršavanje odgovarajuće rutine za obradu. Adresa na koju se program treba vratiti po obradi prekida čuva se automatski u hardverskom magacinu i u programski brojač vraća izvršavanjem instrukcije RETFIE. Ne postoje sopstveni interapt-vektori.

Mikrokontrolere od ostalih procesora izdvaja prisustvo raznih specijalnih kola koja se trebaju izboriti sa potrebama real-time aplikacija. Ovaj mikrokontroler poseduje niz osobina kojima se postiže maksimalna pouzdanost sistema, minimizuje se cena kroz eliminaciju eksternih komponenti, omoguće režimi niske potrošnje energije. Upotreba navedenih resursa definiše se u programatorskom sostveru upisom odgovarajuće konfiguracione reči u registar CONFIG.

Page 21: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

21

Među ponuđenim karakteristikama postoji mogućnost izbora četiri tipa oscilatora, mogućnost upotrebe Power-up (PWRT) i Oscilator Start-up (OST) tajmera, te eventualno korišćenje Power-on (POR) i/ili Brown-out (BOR) reseta. Povećanju pouzdanosti kroz sprečavanje zalaska programa u mrtve petlje pomaže upotreba Watchdog tajmera (WDT). Zaštitu koda od neželjenog čitanja pruža opcija code protection.

Za uređaje sa baterijskim napajanjem interesantna mogućnost je Sleep Mode, režim sa smanjenom potrošnjom energije, kada se program ne izvršava, ali rade neke periferne jedinice koje mogu “probuditi” mikrokontroler. Tada je potrošnja mikrokontrolera ispod 1 µA.

sl 2.3. Mapa programske memorije

Page 22: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

22

Na slici 2.3. je prikazan raspored pinova mikrokontrolera PIC16F877A. Napajanje se dovodi na pinove VDD, a masa na pinove VSS. Nožice OSC1 i OSC2 služe za priključenje oscilatorskih komponenti (RC-kolo ili rezonator), odnosno priključenje eksternog oscilatora kao bolje, ali skuplje varijante. Osim za reset-kolo pin 1 (MCLR/VPP) ima ulogu u toku procesa programiranja mikrokontrolera. Ostalih 33 pina predstavljaju I/O linije. Oni su grupisani u pet portova (PORT A, B, C, D i E) i svaki od njih je individualno definisan kao izlazni ili kao ulazni. Osim opšte namene, većina pinova ima i specifičnu svrhu koja se programski dodeljuje u slučaju korišćenja nekih specijalnih periferija mikrokontrolera (brojača, serijske komunikacije, A/D konvertora i dr.). Na kraju ovog uvoda treba napomenuti da su Microchip PIC mikrokontroleri dominantni u odnosu na konkurentne relativno visokom strujom koju može propustiti I/O pin (25 mA). Takođe, ova familija mikrokontrolera poseduje veoma širok opseg napona napajanja koji se proteže od 2,0 V do 5,5 V.

Page 23: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

23

2.3. MEMORIJSKA MAPA MIKROKONTROLERA PIC16F877-04

Strukturu mikrokontrolera PIC16F877-04 kao i kod ostalih mikrokontrolera čine tri celine a to su:

• Programska memorija • Memorija podataka • EEPROM memorija podataka.

Izuzev ove tri celine postoji i magacin (stack). Magacin radi na principu cikličnog punjenja. Moše sadržati maksimalno osam adresa. Ukoliko se pojavi potreba za upisivanje devete adrese, i ona se upiše doći će do brisanja adrese koja je prva upisana u magacin. Kod magacina ne postoji mogućnost programskog utvrđivanja da li je došlo do punjenja magacina. Memorija se sastoji od osam 13-bitnih registra. U toku izvršenja naredbe CALL ili prilikom prekida mikrokontrolera adresa sledeće naredbe koja će se izvršiti biće smeštena u magacin. Ukoliko želimo da izvršimo vraćanje starog sadržaja koristićemo naredbu RETURN, RETLW ili RETFIE.

Page 24: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

24

Organizacija programske memorije

sl 1.4 Mapa programske memorije

PIC16F877 mikrokontroleri poseduju 13-bitni programski brojač. Ovaj brojač ima mogućnosti da adresira memorijski prostor od 8k programskih reči od 14 bita. Reset vektor je 0x0000. Ovaj vektor označava početak izvršavanja nekog programa.

Page 25: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

25

Organizacija memorije podataka

Slika 2.5. Registarska mapa mikrokontrolera

Memorija koja se koristi izdeljena je u više celina. Satoji se od registra opšte namene (General Purpose Registers) i od registra specifične namene(Special Function Registers).

Page 26: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

26

Jedan od specijalnih registara je STATUS registar. U ovom registru se nalaze dva bita RP1 i RP0. Ovi bitovi služe za odabir željene banke po principu koji je dat na sledećoj slici:

Neki od registara koji se najčešće upotrebljavaju prilikom korišćenja jezgra su:

- registar PCON (Power Control Register). U PIC16F877 ovaj registar sadrži samo dva bita. Pomoću bita POR detektuje se razlika između Power-on reseta i reseta izazvanih drugim uzrokom. Drugi bit (BOR) služi kao indikacija Brown-out stanja (nedozvoljeni naponski nivoi u napajanju mikrokontrolera), zbog kojeg se takođe može desiti reset.

- Registri FSR (File Select Register) i INDF (Indirect File), koji služe za indirektno adresiranje memorije podataka. Bilo koja instrukcija koja se obraća INDF registru, u stvari, indirektno pristupa onoj lokaciji internog RAM-a čija je adresa trenutno u registru FSR.

- INTCON je registar za manipulisanje sistemom prekida mikrokontrolera. Pored bita za omogućenje svih prekida (GIE) i bita za omogućenje perifernih prekida (PEIE), u ovom registru su interapt-flegovi i bit omogućenja prekida tajmera 0, spoljašnjeg prekida na pinu RB0/INT i prekida porta B na promenu stanja. Osim ova tri osnovna prekida postoji još 11 periferijskih prekida. Bitovi za njihovo omogućenje nalaze se u registrima PIE1 i PIE2, a korespondentni flegovi u registrima PIR1 i PIR2. Ovi se flegovi setuju čim se ispuni uslov interapta bez obzira na stanje njihovog bita omogućenja, a po izvršenju servis rutine potrebno ih je sostverski resetovati.

Page 27: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

27

- STATUS registar je veoma bitan i zato je predviđeno da se može adresirati iz bilo koje banke. On pokazuje status aritmetičko-logičke jedinice, reset status mikrokontrolera i sadrži bite za selekciju banki internog RAM-a. Od navedenih flegova posebno treba izdvojiti Zero bit (Z) koji se postavlja kad je rezultat aritmetičke operacije jednak nuli i bit prenosa (eng. Carry - C).

- Registar OPTION_REG se koristi za konfiguraciju preskalera za tajmer 0 ili Watchdog, za upravljanje tajmerom 0, selekciju ivice okidanja eksternog interapta, te za omogućenje Pull-up otpornika na portu B.

- Programski brojač (PC) određuje adresu instrukcije u programskom flešu koja će sledeća biti pribavljena. Reč je o 13-bitnom registru. Simboličko ime nižeg bajta je PCL. To je registar koji se može i upisivati i iščitavati. Težih pet bita programskog brojača smešteni su u izolovani registar PCH kojem se pristupa samo preko leča PCLATH mapiranom u internom RAM-u na adresi 0x0A.

Interni EEPROM za podatke

Ova memorija se sastoji od 256 bajtova. Nekad se javlja potreba da se podaci sačuvaju i nakon prestanka napajanja mikrokontrolera. Ovaj problem se rešava na taj način što se podaci koje treba sačuvati predhodno upišu u interni EPROM.

Page 28: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

28

2.4 IZBOR OSCILATORA MIKROKONTROLERA PIC16F877A

Kod mikrokontrolera PIC16F877A moguće je izabrati jednu od četiri konfiguracije oscilatora:

• RC Resistor/Capacitor • XT Crystal / Resonator

• LP Low Power Crystal • HS High Speed Crystal / Resonator.

Najjednostavnija varijanta je izbor RC oscilatora (internog ili eksternog), kao što je i prikazano na Slici 2.6. Ovakav pristup je opravdan u aplikacijama u kojima se ne zadaje posebna osobina kao što je precizna procena vremenskih intervala.

Slika 2.6. Povezivanje oscilatora sa eksternim otpornikom i kondenzatorom

Frekvencija oscilovanja zavisi kako od vrednosti otpornika i kondenzatora (Rext i Cext), tako zavisi i od napona napajanja i radne temperature. Vrednost otpornika Rext se određuje na taj način da se njegova vrednost nađe u opsegu od 3 KΩ do 100K KΩ. Ukoliko se vrenost nađe izvan ovog opsega rad oscilatora nije stabilan i oscilator postaje osetljiv na spoljašne uticaje. Kondenzator Cext se može čak i izostaviti. Međutim, zbog stabilnosti oscilatora a samim tim i celog kola preporučuje se vrednost kondenzatora oko 20pF.

Page 29: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

29

Kod aplikacija koje su vremenski kritične (time critical) treba koristiti kvarcni oscilator ili keramički rezonator. Vrednosti kondenzatora C1 i C2 (Slici 2.7), treba da budu identične.

Slika 2.7. Povezivanje eksternog kvarca (LP, XT, HS)

Postoji mogućnost da se mikrokontroleru PIC16F877A dovede i spoljašnji takt. Jedna takva realizacija je i pokazano na Slici 2.8.

Slika 2.8. Dovođenje spoljašnjeg takta

Page 30: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

30

2.5. OPIS PERIFERNIH JEDINICA

Tajmeri

U slučaju ovog mikrokontrolera ugrađena su tri tajmerska modula (TMR 0,1,2). Svaki od ovih modula ima specifične (posebne) specifikacije. Tajmeri inače predstavljaju periferije koje se koriste prilikom brojanja događaja i prilikom merenja vremena.

Tajmer 0 predstavlja 8-bitni brojač. On predstavlja interapt pri prelasku sa 0xFF na 0x00 (overflow). Njega poseduju svi niži procesori i u ovom slušaju je zadržana kompatibilnost s njima. Izvor takta može biti ili interni sistemski sat (Fosc/4). Posoji mogućnost inkrementiranja brojača na rastuću ili na opadajuću ivicu spoljačnjeg signala. U kombinaciji sa modulom tajmera 0 može se koristiti delilac frekvencije čiji bi se odnos deljenja mogo kretati od 1:2 pa sve do 1:256. Ukoliko deljenje nije potrebno delilac frekvencije će se dodeliti watchdog tajmeru.

Tajmer 1 je 16-bitni i osposobljen je da radi kao brojač/merač vremena. Ima tri izvora takta: sistemski sat (Fosc/4), spoljašnji takt ili spoljašnji kristal.

Tajmer 2 je 8-bitni tajmer. Može da bude tajmer/brojač opšte namene. U kooperaciji sa tajmerom 2 koristi se registar PR2 (Period Register). Kada se vrednost brojača izjednači sa vrednošću upisanom u registar PR2, generiše se odgovarajući interapt.

I/O portovi

PIC16F877A poseduje pet portova (PORT A, PORT B, PORT C, PORT D i PORT E). Svi oni predstavljaju vezu mikrokontrolera sa spoljašnjim svetom. Svaki od njih mo-že da se konfiguriše kao ulazni ili kao izlazni.

Pomenuti portovi su različitog obima:

• 6-pinski (PORT A) • 8-pinski (PORT B, PORT C, PORT D) • 3-pinski (PORT E).

Page 31: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

31

Svakom pinu bilo kojeg porta, u zavisnosti od režima rada, mogu da se dodele kako fiksne tako i promenljive funkcije. Konfiguracija smera prenosa ostvaruje se upisom na odgovarajuću bit-poziciju u pripadajućem registru (0 – pin je izlazni, 1 – pin je ulazni).

Svakom portu je dodeljen registar podataka (PORT_X), preko kojeg se programski pristupa U/I pinovima. Upis u neki od tih registara iniciraće upis u latch tog porta, a njegovo čitanje rezultiraće čitanjem logičkih stanja direktno sa pinova.

Sve instrukcije upisivanja su tipa read-modify-write.To znači da se pri upisu u port najpre očitaju stanja pinova, zatim izvrši modifikacija, a potom korigovana vrednost upiše u latch porta. Ne postoji velika razlika u konstrukciji pomenutih pet portova. Jedino se Port B od ostalih razlikuje zbog posebne opcije koju nude četiri MSB. Ukoliko se setuje bit RBIE u registru INTCON, svaka promena stanja na ovim pinovima, generisaće prekid mikrokontrolera.

Slika 2.9. Blok-dijagram pina RA4

Page 32: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

32

Port A

Port_A je 6-bitni (RA5-RA0) bidirekcioni port (podaci mogu da se šalju u oba smera). Sadržaj registra TRISA određuje smer (ulazni ili izlazni) pinova na portu. Blok-dijagrami za pin RA4 je prikazan na Slici 2.9, a za ostale pinove na Slici 2.10.

Slika 2.10. Blok-dijagram ostalih pinova Porta A

Port A ima mogućnost analogno-digitalne konverzije i prvenstveno se koristi za te svrhe. A/D konvertor, koji je integrisan u mikrokontroleru, je 10-bitni sa 8 ulaznih kanala, jer se u ove svrhe koriste i svi pinovi Porta E.

Page 33: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

33

Port B

Port B je 8-bitni bidirekcioni port. Svakom pinu porta je dodeljen odgovarajući bit u registru TRISB, kojim se definiše smer. Svi pinovi unutar Porta B poseduju pull-up otpornike. Ovi otpornici mogu da se uključe jednim kontrolnim bitom. To se postiže postavljanjem RBPU bita na ‘0’. Otpornici su isključeni i kod Power-on reseta.

Slika 2.11. Blok-dijagram pinova RB7-RB4

Četiri pina na Portu B (RB7-RB4) imaju mogućnost generisanja prekida. Samo pinovi koji su definisani kao ulazni mogu da prouzrokuju prekid.

Kombinacija prekida na promenu stanja Porta B i pull-u otpornik mogu da se iskoriste kao jednostavan interfejs za tastaturu.

Page 34: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

34

Port C

Port C je 8-bitni bidirekcioni port. Posebnost ovog porta se ogleda u tome što poseduje ugrađen USART modul, koji služi za serijsku komunikaciju. Modulu se pristupa preko pinova RC7 i RC6. Pinove treba softverski konfigurisati da budu u funkciji USART modula.

Port D

Port_ D je 8-bitni bidirekcioni port. Ovaj port može da se konfiguriše kao 8-bitni paralelni mikroprocesorski port (parallel slave port-PSP) i to podešavanjem konfiguracionog bita PSPMOTE (TRISC<4>). U ovom režimu rada ulazni bafer je TTL tipa.

Slika 2.12. Blok-dijagram pinova RC7-RC5, RC2-RC0

Page 35: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

35

Port E

Port E je bidirekcioni port veličine 3 bita. Ima mogućnost A/D konverzije.Ulazni bafer je tipa Schmitt Trigger. Pinovi mogu da se konfigurišu kao digitalni ili analogni, kao i u slučaju Porta A.

CCP moduli

CCP je skraćenica za Compare/Capture/PWM. PIC16F877 poseduje dva ovakva modula koji mu “pomažu” da se lakše nosi sa raznim zahtevima real-time aplikacija.

U modu Compare 16-bitna vrednost registra CCPR1 se stalno poredi sa vrednošću para registara tajmera 1. Kada dođe do izjednačenja moguće je da se pin RC2/CCP1 setuje, resetuje ili ostane nepromenjen, što se ranije podesi odgovarajućim konfiguracionim bajtom upisanim u registar CCP1CON.

Ostale periferije

S obzirom na kontinualnost pojava u spoljašnjem svetu, teško je upravljati bilo kojim procesom bez digitalizacije analognih veličina. Na većinu zahteva može odgovoriti 10-bitni, 8-kanalni A/D konvertor konstruisan na principu sukcesivnih aproksimacija.

Mikrokontroler je deo mreže elektronskih sklopova koji međusobno komuniciraju i razmenjuju podatke. U tu svrhu, on je opremljen sa tri hardverska komunikaciona modula.

Page 36: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

36

Prvi među njima je SSP modul (Synchronous Serial Port), koji služi za komunikaciju sa serijskim EEPROM-ima, pomeračkim registrima, displej-drajverima, A/D konvertorima, itd. Ovaj modul može raditi u jednom od dva moda:

• Serial Peripheral Interface (SPI), • Inter-Integrated Circuit (I2C).

Drugi serijski komunikacioni modul je USART (Universal Synchronous Asynchronous Receiver Transmiter). On uglavnom služi za povezivanje sa personalnim računarom, ali to nije njegova jedina mogućnost primene. USART se može konfigurisati u neki od sledećih modova rada:

• Asinhroni rad (full duplex), • Sinhroni master rad (half duplex), • Sinhroni slave rad (half duplex).

Osim serijskih, postoji i jedan paralelni komunikacioni modul. Reč je o modulu PSP (Parallel Slave Port). On služi da se PIC16F877 direktno poveže na 8-bitnu magistralu podataka drugog mikroprocesora. Eksterni procesor tada koristeći linije Read (RD) i Write(WR) može da čita i upisuje PORTD registar kao svaki drugi 8-bitni leč.

Page 37: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

37

2.6. PROGRAMIRANJE

Set instrukcija

U duhu harvardske RISC arhitekture procesor ima samo 35 instrukcija. One su 14-bitne i sastoje se od operacionog koda i jednog ili više operanada. Slika 2.13 prikazuje opšti format implementiranih instrukcija, a kompletan pregled seta instrukcija daje Tabela 2.14. Instrukcije su podeljene u tri kategorije:

• Byte-oriented (operacije sa čitavim registrima), • Bit-oriented (operacije sa pojedinim bitovima), • Literal & Control (operacije sa konstantama i upravljačke).

Slika 2.13. Format instrukcije

Page 38: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

38

Izvršavanje svake instrukcije traje jedan mašinski ciklus, osim kod grananja programa. Kod potvrdnog odgovora u nekom testu, pribavljena instrukcija se proglašava nevažećom i traži se nova, što rezultuje trajanjem od dva mašinska ciklusa. Dok se tokom drugog ciklusa pribavlja nova instrukcija, praktično se izvršava naredba NOP.

Jedan mašinski ciklus traje četiri perioda oscilatora, što garantuje njegovu dužinu od 1µs pri frekvenciji oscilatora od 4 MHz.

Tabela 2.14. Set instrukcija mikrokontrolera

Page 39: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

39

Napomene:

1. Kada se vrši modifikacija I/O registra, a u instrukciji se koristi prethodno njegovo stanje (npr.MOVF PORTB,1), kao operand se koristi stanje pročitano sa pinova porta. Tako je moguće da se u leč pina konfigurisanog kao ulaz i postavljenog na nulu preko spoljašnjih elektronskih komponenti, posle izvršenja instrukcije upiše nula.

2. Ako se ova instrukcija izvrši nad registrom TMR0 ( i ako je d=1, gde je to moguće), preskaler će biti resetovan, ako je dodeljen tajmerskom modulu.

3. Ako je modifikovan programski brojač (PC) ili je rezultat logičkog testa pozitivan, za izvršenje instrukcije biće potrebna dva mašinska ciklusa. U drugom ciklusu praktično se izvršava naredba NOP (No operation).

Page 40: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

40

3.SOFTVER ZA MIKROKONTROLER PIC16F877A

mikroC

U sledećem tekstu biće ukratko opisan mikroC koji prestavlja moćan softverski alat, koji je razvila beogradska Mikroelektronika, i namenjen je pisanju koda za Microchip-ove PIC mikrokontrolere. Koristeći mikroC, programeru je omogućen jednostavan način da kontroliše proces programiranja i napravi kvalitetan firmware.

Osnovne karakteristike programa mikroC su sledeće:

• Pisanje C koda korišćenjem kvalitetnog editora, što se ogleda automatskom kontrolom i upozorenjima vezanim za sintaksu koda, korišćenih parametara, kao i automatskoj korekciji pojedinih grešaka

• Preglednost strukture programa (koda), promenljivih i funkcija omogućava Code explorer

• Jasan asemblerski kod i standardna kompatibilnost generisanih HEX datoteka toka programa preko debagera (debugger)

• Programer ima na raspolaganju veliki broj integrisanih biblioteka i rutina, koje značajno ubrzavaju pisanje programa

• Detaljan izveštaj i grafičko predstavljanje RAM i ROM mape, statistike koda i slično.

Moramo da napomenemo kako mikroC odstupa od ANSI standarda u nekoliko segmenata. Neka odstupanja načinjena su u cilju da se olakša programiranje, dok su druge rezultat hardverskih ograničenja PIC mikrokontrolera. Pomenućemo neke specifičnosti:

• Rekurzivne funkcije (function recursion) su podržane sa izvesnim ograničenjima, koja su posledica nešto složenijeg pristupa magacinu (stack) i ograničenja vezana za memoriju

• Pokazivači (pointers) promenljivih i pokazivači konstanti nisu kompatibilni, tj. nije moguća međusobna dodela ili upoređivanje

Page 41: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

41

• mikroC tretira označavanje const kao “true constans” (kod C++), što omogućava korišćenje const objekta na mestima gde ANSIC očekuje constant izraz .Ukoliko se teži ka prenosivosti programa, treba koristiti tradicionalno pretprocesorsko definisanje konstanti

• mikroC dozvoljava C++ stil jednolinijskih komentara, koristeći dve kose crte (//). Komentar može da počne bilo gde i traje do sledeće nove linije programskog koda

• Brojne standardne C biblioteke (ctype, math, stdlib, string ) implementirane su u mikroC, uz individualna odstupanja.

Napominjemo da mikroC podržava gotovo sve PIC mikrokontrolere serija 12, 16 i 18. Izuzetak su mikrokontroleri koji imaju staro hardversko jezgro kao na primer PIC12C508, PIC12F508, PIC12C509, PIC12F509 itd. Inače, ograničena verzija (do 2KB programa) može da s preuzme sa sajta Mikroelektronike (www.mikroe.com). U sličaju ako se želi potpuna verzija (neograničen kapacitet programa), mora da se plati licenca od 250$.

Page 42: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

42

3.1. INSTALACIJA

Ovde ćemo preko slika 3.1-3.5 ilustrovati proces instaliranja mikroC-a. Inače, instalacija traje nepuni minut. Posle instalacije treba pokrenuti mikroC, a to se najjednostavnije ostvaruje klikom na ikonicu:

Sl.3.1. Početak procesa instalacije se ostvaruje klikom na izvršni fajl mikroC_..._.exe

Page 43: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

43

Sl.3.2. Sada treba kliknuti na komandno dugme NEXT

Page 44: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

44

Sl.3.3. Prihvatanje uslova licenciranja i zatim treba kliknuti na komandno dugme NEXT

Sl.3.4. Izbor programatora (PicFlash), gotovih primera i zatim klik na komandno dugme NEXT

Page 45: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

45

Sl.3.5. Izbor foldera za smeštanje programa i klik na komandno dugme NEXT

Page 46: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

46

3.2. KREIRANJE KODA

U narednim koracima biće ilustrovan postupak kreiranja koda u mikroC-u (Slike 3.6-3.13).

Sl.3.6. Izgled editora po startovanju programa mikroC

Page 47: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

47

Sl.3.7. Kreiranje novog projekta preko opcije Project → New Project

Sl.3.8. Podešavanje parametara novog projekta (naziv, tip mikrokontrolera, takt, parametri kontrolera)

Page 48: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

48

Sl.3.9. U editor treba uneti program (kôd) mikrokontrolera

Sl.3.10. U editor je unet za primer Soft_USART program

Page 49: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

49

Sl.3.11. Sada treba izvršiti prevođenje (compile) programa preko opcije Project → Build

Sl.3.12. Izgled prozora posle kompilacije sa izveštajem (Messages)

Page 50: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

50

Sl.3.13. Kao produkti prevođenja (kompilacije/kompajliranja) generiše se nekoliko fajlova: asemblerski kôd (ASM), heksadecimalni kôd (HEX), izveštaji itd.

Page 51: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

51

3.3. USART terminal

Na sl.3.14 ilustrovano je startovanje internog (softverskog) terminala za USART komunikaciju.

Sl.3.14. Pokretanje internog terminala mikroC-a preko Tools → USART Terminal

Page 52: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

52

Na Sl.3.15. je prikazan izgled prozora USART terminala. Kao što se vidi, moguće je podesiti veliki broj parametara.

Navešćemo najvažnije:

• Serijski port (u padajućem meniju treba izabrati željeni serijski port, a kod standardnih računara to su COM1 i COM2)

• Brzina prenosa (za frekvenciju kvarca od 4MHz treba izabrati 2400 bauda, za 8MHz bira se 9600 bauda itd.)

• Broj stop bitova (1, 1.5 i 2) • Izbor parnosti (bez, parna, neparna itd.) • Broj bitova koji čine karakter (5, 6, 7 ili 8) • Uključivanje/isključivanje handshaking signala (RTS i DTR) • Izbor formata podatka koji se šalje (ASCII, heksadecimalni - HEX ili

dekadni - DEC) • Način slanja (odmah po kucanju ili kada se klikne na opciju SEND) itd.

Čim se podese parametri, terminal se startuje klikom na komandno dugme Connect. Odmah zatim, terminal je spreman da prihvati komande (vidi Sl.5.16). Kada se završi komunikacija, treba kliknuti na komandno dugme Disconnect.

Page 53: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

53

Sl.3.15. Izgled prozora kod USART komunikacionog terminala

Sl.3.16. Izgled prozora kod UART komunikacionog terminala kada je ovaj spreman za slanje/prijem

Page 54: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

54

3.4. ASCII standard

ASCII standard je striktno definisan sedmobitni kod, što znači da koristi sedam binarnih cifara (opseg je od 0 do 127 u dekadnom sistemu) za predstavljanje znakovnih informacija. U vreme kada je ovaj standard uveden, mnogi računari su koristili osmobitne grupe (bajtove) kao najmanju jedinicu za predstavljanje informacija. Osmi bit je bio najčešće korišćen kao bit parnosti za proveru grešaka u pre-nosu ili druge funkcije specifične za dati uređaj. Mašine koje nisu koristile parnost obično su postavljale osmi bit na nulu, mada je bilo i nekih sistema koje su postavljali osmi bit na jedinicu. U Tabeli 3.17 prikazan je skup ASCII karaktera.

ASCII je kao standard prvi put objavila Američka asocijacija za standarde (American Standards Association, ASA) 1963. godine, koja se kasnije preimenovala u ANSI. Postoji više varijante ASCII-a, ali trenutno je najrasprostranjeniji ANSI X3.4-1986, takođe standardizovan kao ECMA-6, ISO/IEC 646:1991 International Reference Version, ITU-T Recommendation T.50 (09/92), i RFC 20. Neki računarski stručnjaci smatraju kako jeASCII najuspešniji softverskim standard ikada usvojen.

Tabela 3.17.Tabela ASCII kôdova

Page 55: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

55

Prvih trideset i dva koda u tabeli ASCII kodova (od 0 do 31 u dekadnom sistemu) su rezervisani su za tzv. kontrolne znakove. Ovi kodovi, praktično, ne sadrže nikakve informacije o karakteru, nego upravljaju izlaznim uređajima (npr. štampačima, skenerima itd.) Tako, na primer, kod koji ima vrednost 10 predstavlja komandu line feed, koja nalaže štampaču da pomeri papir "na gore" za jedan red, dok kod sa vrednošću 27 simulira pritisak na taster "escape", lociran u gornjem levom uglu tastature.

Kod 32 se koristi za razmak (blanko) između dve reči, za kojeg je na tastaturi najčešće predviđen dugački horizontalni taster. Kodovi od 33 do 126 se nazivaju štampajući (printable) karakteri, koji predstavljaju: slova, cifre, znakove interpunkcije, i još nekoliko raznih simbola.

Page 56: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

56

4. IMPLEMENTACIJA PWAM PRIJEMNIKA

4.1 PROJEKAT

Struktura sistema je prikazana preko blok seme na Slici 4.1, dok je detaljnija struktura PWAM prijemnika prikazana na Slici 4.1.1. Kao sto se vidi, od ploče PWAM predajnika ka PWAM prijemniku postoji 5 linija veze kojima se prenose signali za napajanje (+5V i -5V), masa (Gnd), takt (Clk) i PWAM signal.

Slika 4.1 Blok sema PWAM prijemnika sa mikrokontrolerom PIC16F877

Page 57: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

57

Slika 4.1.1 Struktura PWAM prijemnika

Na neinvertujuće ulaze sva 4 komparatora (K1,K2,K3 i K4) koji su integrisani u kolu LM339 dolazi (amplitudski modulisani) PWAM signal, dok se naponski nivoi/pragovi -2.6V, -0.8V, 0.8V i 2.6V (formiraju se preko razdelnika napona na Slici 4.1.2) dovode na invertujuće ulaze komparatora K1, K2, K3 i K4, respektivno. Izlazi pomenutih komparatora se vode na pinove PA1-PA4 mikrokontrolera.

Na ulaz mikrokontrolera PA0 se dovodi takt.

Page 58: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

58

Slika 4.1.2 Formiranje naponskih nivoa/pragova preko komparatora

Amplituda PWAM signala se menja u 5 nivoa: -3.50V, -1.75V, 0V, 1.75V i 3.50V. U Tabeli 4.2 su prikazana stanja na pinovima mikrokontrolera PA1-PA4 za svih 5 naponskih nivoa PWAM signala.

PWAM (V) PA-1 PA-2 PA-3 PA-4

-3,50 0 0 0 0

-1,75 1 0 0 0

0,00 1 1 0 0

1,75 1 1 1 0

3,50 1 1 1 1

Tabela 4.2 Stanja na ulaznim pinovima mikrokontrolera zavisno od nivoa PWAM signala

Page 59: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

59

Ukoliko bi se umesto fiksnih koristili promenljivi naponski pragovi, izgled električne šeme dela kola koje transformiše PWAM signal u digitalni signal bi bio kao na Slici 4.3. Operacioni pojačavači OP2 i OP3 služe kao razdvojni stepeni (jednični pojačavači sa velikom ulaznom i malom izlaznom impedansom). Kondenzator C1 se puni preko D1 kada je nivo PWAM signala manji od 0, dok se kondenzator C2 se puni preko D2 u slučaju kada je nivo PWAM signala veći od 0. Kada se kondenzator napuni na vršnu vrednost posle određenog vremena, izlaz ovog kola je uvek jednak vršnoj vrednosti amplitude ulaznog signala. Ovo kolo se sastoji iz dva dela. Jedan deo služi za detekciju vršne vrednosti pozitivnih, a drugi deo negativnih napona. Zbog toga će se signal na izlazu ovog kola uvek tretirati kao vršna vrednost ulaznog napona.

Slika 4.3 Primer konvertovanja PWAM signala sa promenljivim naponskim pragovima

Page 60: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

60

Interfejsno kolo MAX232

Slika 4.4 Struktura integrisanog kola MAX232

Integrisano kolo MAX232, koje se ovde koristi kao interfejs između mikrokontrolera i računara, sadrži sledeće tri celine:

• dva DC-DC konvertora, • dva RS232 drajvera, • dva RS232 prijemnika.

Prvi DC-DC konvertor koristi eksterne kondenzatore C1 i C3 za udvostručavanje napona (sa +5V na +10V), dok drugi konvertor koristi eksterne kondenzatore C2 i C4 za invertovanje napona (sa +10V na -10V). Vrednosti kondenzatora C1-C5 ne treba da budu manje od 100nF (najčešće se stavljaju vrednosti od 100 ili 220nF, a u izuzetnim slučajevima, kada treba obezbediti veće izlazne struje, vrednosti su do 4.7uF).

Page 61: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

61

RS232 drajveri (sastoje od logičkih invertora i otpornika) vrše transformaciju ulaznih RS232 signala na sledeći način:

• logičku '0' transformišu u signal vrednosti +8V (pri opterećenju 5KΩ), • logičku '1' transformišu u signal vrednosti -8V (pri opterećenju 5KΩ).

RS232 prijemnici koji se sastoje od logičkih invertora i otpornika vrše transformaciju ulaznih RS232 signala na sledeći način:

• signal u opsegu od +3V do +25V transformišu u logičku '0', • signal napona u opsegu od -3V do -25V transformišu u logičku '1'.

Primeri prijema PWM i PAM signala

Primer prijema sekvence 00011110 prikazan je na Slici 4.5 (širinska modulacija) i Slici 4.6 (ampiludska modulacija).

U slučaju širinske modulacije, širina jednog «prozora» traje/iznosi 5 taktova, a prijem 2 bita signala se odvija prema sledećem:

• 00 – širina od 1 takta • 01 – širina od 2 takta • 10 – širina od 3 takta • 11 – širina od 4 takta

Slika 4.5 Primer prijema sekvence 00011110 (PWM)

Page 62: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

62

Dakle, u slučaju amplitudske modulacije (PAM) posle prve rastuće ivice takta, prijemnik pročita vrednost 00, posle druge – vrednost 01, posle treće – vrednost 11, a posle četvrte – vrednost 10. Crvenom bojom su obeležena 4 nivoa sa komparatorima.

Slika 4.6 Primer prijema sekvence 00011110 (PAM)

Page 63: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

63

Na sledećoj slici je predstavljen primer prijema PWAM signala. Prenosi se sekvenca:

1011000111100100

Vrednost amplitude Širina impulsa 00 = -3.5V 00 = 1 takt 01 = -1.75V 01 = 2 takta 10 = 1.75V 10 = 3 takta 11 = 3.5V 11 = 4 takta

Prva dva bita koja se prenose daju informaciju o amplitudi, a druga dva bita daju informaciju o širini impulsa koji se prenosi.

Page 64: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

64

Električna šema

Na Slici 4.7 je prikazana elektricna sema PWAM prijemnika realizovanog sa mikrokontrolerom PIC16F877. Signal PWAM i takt, kao i dvostruko napajanje (+5V i -5V) se dovode sa pločice na kojoj se nalazi PWAM predajnik. Zahvaljujući 4 komparatora koji se nalaze u integrisanom kolu LM339, vrsi se transformacija PWAM signala u digitalni oblik. (Takt se direktno dovodi na pin PA0 mikrokontrolera). Kad PWAM prijemnik prihvati 8-bitnu reč u (PWAM obliku) koju salje predajnik, transformiše je u 8-bitnu digitalnu sekvencu i šalje prema Portu B mikrokontrolera (gde su LED) i serijskom portu računara. Na Slici 4.8 je prikazan layout (izgled stampane ploce) PWAM prijemnika. U pitanju je, dakle, jednoslojna štampa.

MCLR1

PA02

PA13

PA24

PA35

PA46

PA57

RD8

WR9

PC217

PD2 21PD3 22PC4 23PC5 24PC6 25PC7 26PD4 27PD5 28PD6 29PD7 30CS10

VDD11

VSS12

OSC113

OSC214

PC015

PC116

PC318

PD019

PD120

VSS 31VDD 32PB0 33PB1 34PB2 35PB3 36PB4 37PB5 38PB6 39PB7 40U1

PIC16F877-04

C14

22pF

C15

22pF

Y1

4MHz

SW1

C1+1 Vcc 16

V+2 Gnd 15

C1-3 T1out 14

C2+4 R1in 13

C2-5 R1out 12

V-6 T1in 11

T2out7 T2in 10

R2in8 R2out 9

U2

MAX232

162738495

CN2

DB9/F

C3220nF

C4220nF

C6220nF

C5220nF

C2

220nF

C1

220nF

LED7

LED1

LED2

LED4

LED3

LED5

LED6

12345678

9

RN1

2K2

LED0

R11

10K

12345

CN1

Out21

Out12

Vcc3

In1-4

In1+5

In2-6

In2+7

Out4 13

In3- 8

In3+ 9

In4- 10

In4+ 11

Gnd 12

Out3 14U3

LM339

R8

6K8

R9

4K7

R3

2K4R1

2K4

R2

2K4R4

2K4

R5

6K8

R6

4K7

R10

2K4

R7

2K4

C6220nF

C7220nF

Slika 4.7 Elektricna sema PWAM prijemnika sa PIC16F877

Page 65: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

65

Slika 4.8 Štampana ploča PWAM prijemnika.

Na Slici 4.10 je prikazan algoritam programa upisanog u mikrokontroleru PIC16F877. Dakle, na svaku rastucu ivicu takta (dolazi na pin PA-0) koji dobija od PWAM predajnika, mikrokontroler čita stanja na svojim ulazima PA-1, PA-2, PA-3 i PA-4. Tako, posle 4 rastuce ivice takta, mikrokontroler je «procitao» osmobitnu rec. Naravno, stanje PA-1=PA-2=1, PA-3=PA-4=0 se «ne cita», tj. to je stanje kada na PWAM prijemnik ne dolazi takt od predajnika. (Sve izreceno ilustruje Tabela 4.9).

Page 66: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

66

PA-1 PA-2 PA-3 PA-4 2-bitna informacija

0 0 0 0 00

1 0 0 0 01

1 1 0 0 “ne cita se”

1 1 1 0 10

1 1 1 1 11

Tabela 4.9 Stanja na ulaznim pinovima mikrokontrolera za svih 5 nivoa PWAM signala

Page 67: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

67

Slika 4.10 Algoritam programa implementiranog u mikrokontroleru

Page 68: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

68

mikroC program za PWAM prijemnik

unsigned short k; // Definisanje varijable k void main()

TRISA = 0b111111; // Definisanje i inicijalizacija PORTA = 0b000000; // pinova PORTOVA A i B TRISB = 0b00000000; PORTB = 0b00000000; ADCON1=0X06; // Definisanje pinova A porta kao digitalnih

Usart_Init(2400); // Inicijalizacija USART modula mikrokontrolera // (8 bita, 2400 bauda) do

// Transformacija PWAM signala u digitalni ostvaruje se // preko komparatora if (((PortA.F1||PortA.F2) != 1) || ((PortA.F3||PortA.F4) ==1)) k = 0; delay_ms(1); // Definisanje kasnjenja u milisekundama

// Transformacija prva dva bita PWAM signala (mogu da budu // 01, 10, 11 ili 00) if (PortA.F2 ==1) k.F7 = 0; k.F6 = 1;

if (PortA.F3 ==1) k.F7 = 1; k.F6 = 0;

if (PortA.F4 ==1) k.F7 = 1; k.F6 = 1;

Page 69: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

69

if (PortA.F1 ==0) k.F7 = 0; k.F6 = 0;

delay_ms(2); // Definisanje kasnjenja

// Transformacija druga dva bita PWAM signala (mogu da budu // 01, 10, 11 ili 00) if (PortA.F2 ==1) k.F5 = 0; k.F4 = 1; if (PortA.F3 ==1) k.F5 = 1; k.F4 = 0;

if (PortA.F4 ==1) k.F5 = 1; k.F4 = 1;

if (PortA.F1 ==0) k.F5 = 0; k.F4 = 0;

delay_ms(2); // Definisanje kasnjenja

// Transformacija treca dva bita PWAM signala (mogu da budu // 01, 10, 11 ili 00) if (PortA.F2 ==1) k.F3 = 0; k.F2 = 1;

Page 70: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

70

if (PortA.F3 ==1) k.F3 = 1; k.F2 = 0; if (PortA.F4 ==1) k.F3 = 1; k.F2 = 1;

if (PortA.F1 ==0) k.F3 = 0; k.F2 = 0;

delay_ms(2); // Definisanje kasnjenja

// Transformacija cetvrta dva bita PWAM signala (mogu da budu // 01, 10, 11 ili 00) if (PortA.F2 ==1) k.F1 = 0; k.F0 = 1;

if (PortA.F3 ==1) k.F1 = 1; k.F0 = 0;

if (PortA.F4 ==1) k.F1 = 1; k.F0 = 1;

if (PortA.F1 ==0) k.F1 = 0; k.F0 = 0;

delay_ms(1); // Definisanje kasnjenja

Page 71: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

71

// Dakle, posle 4 rastuce ivice takta, varijabla k «nosi» osmobitnu // informaciju koju je dobio prijemnik od PWAM predajnika

Usart_Write(k); //Slanje primljenog podatka ka racunaru i PORTB = k; // Portu B, gde su LED delay_us(100); while (1); // Kraj beskonacne petlje //~ Asemblerski program za PWAM prijemnik

; ADDRESS OPCODE ASM ; ---------------------------------------------- $0000 $2804 GOTO _main $0133 $ _Usart_Write: $0133 $ L_Usart_Write_3: $0133 $3000 MOVLW 0 $0134 $1303 BCF STATUS, RP1 $0135 $1683 BSF STATUS, RP0 $0136 $1898 BTFSC TXSTA, 1 $0137 $3001 MOVLW 1 $0138 $00F1 MOVWF STACK_1 $0139 $0871 MOVF STACK_1, 0 $013A $3A00 XORLW 0 $013B $1D03 BTFSS STATUS, Z $013C $293F GOTO L_Usart_Write_4 $013D $0000 NOP $013E $2933 GOTO L_Usart_Write_3 $013F $ L_Usart_Write_4: $013F $1283 BCF STATUS, RP0 $0140 $0821 MOVF FARG_Usart_Write+0, 0 $0141 $0099 MOVWF TXREG $0142 $0008 RETURN $0143 $ _Usart_Init: $0143 $1303 BCF STATUS, RP1 $0144 $1683 BSF STATUS, RP0 $0145 $1698 BSF TXSTA, 5 $0146 $3090 MOVLW 144 $0147 $1283 BCF STATUS, RP0 $0148 $0098 MOVWF RCSTA $0149 $1683 BSF STATUS, RP0 $014A $1787 BSF TRISC, 7 $014B $1307 BCF TRISC, 6 $014C $ L_Usart_Init_0:

Page 72: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

72

$014C $1283 BCF STATUS, RP0 $014D $1E8C BTFSS PIR1, 5 $014E $2952 GOTO L_Usart_Init_1 $014F $081A MOVF RCREG, 0 $0150 $00A5 MOVWF Usart_Init_tmp_L0 $0151 $294C GOTO L_Usart_Init_0 $0152 $ L_Usart_Init_1: $0152 $0008 RETURN $0004 $ _main: ;PWAMprijem.c,2 :: void main() ;PWAMprijem.c,5 :: TRISA = 0b111111; // Definisanje i inicijalizacija $0004 $303F MOVLW 63 $0005 $1303 BCF STATUS, RP1 $0006 $1683 BSF STATUS, RP0 $0007 $0085 MOVWF TRISA ;PWAMprijem.c,6 :: PORTA = 0b000000; // pinova PORTOVA A i B $0008 $1283 BCF STATUS, RP0 $0009 $0185 CLRF PORTA, 1 ;PWAMprijem.c,7 :: TRISB = 0b00000000; $000A $1683 BSF STATUS, RP0 $000B $0186 CLRF TRISB, 1 ;PWAMprijem.c,8 :: PORTB = 0b00000000; $000C $1283 BCF STATUS, RP0 $000D $0186 CLRF PORTB, 1 ;PWAMprijem.c,9 :: ADCON1=0X06; $000E $3006 MOVLW 6 $000F $1683 BSF STATUS, RP0 $0010 $009F MOVWF ADCON1 ;PWAMprijem.c,13 :: Usart_Init(2400); // Inicijalizacija USART modula $0011 $3067 MOVLW 103 $0012 $0099 MOVWF SPBRG $0013 $1518 BSF TXSTA, BRGH $0014 $2143 CALL _Usart_Init ;PWAMprijem.c,15 :: do $0015 $ L_main_0: ;PWAMprijem.c,18 :: if (((PortA.F1||PortA.F2) != 1) || ((PortA.F3||PortA.F4) ==1)) $0015 $3000 MOVLW 0 $0016 $1885 BTFSC PORTA, 1 $0017 $3001 MOVLW 1 $0018 $00F1 MOVWF STACK_1 $0019 $0871 MOVF STACK_1, 0 $001A $1D03 BTFSS STATUS, Z $001B $2825 GOTO L_main_3 $001C $3000 MOVLW 0 $001D $1905 BTFSC PORTA, 2 $001E $3001 MOVLW 1 $001F $00F1 MOVWF STACK_1 $0020 $0871 MOVF STACK_1, 0 $0021 $1D03 BTFSS STATUS, Z $0022 $2825 GOTO L_main_3 $0023 $01F1 CLRF STACK_1, 1

Page 73: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

73

$0024 $2827 GOTO L_main_2 $0025 $ L_main_3: $0025 $3001 MOVLW 1 $0026 $00F1 MOVWF STACK_1 $0027 $ L_main_2: $0027 $0871 MOVF STACK_1, 0 $0028 $3A01 XORLW 1 $0029 $1D03 BTFSS STATUS, Z $002A $2841 GOTO L51_ex_L_main_8 $002B $3000 MOVLW 0 $002C $1985 BTFSC PORTA, 3 $002D $3001 MOVLW 1 $002E $00F1 MOVWF STACK_1 $002F $0871 MOVF STACK_1, 0 $0030 $1D03 BTFSS STATUS, Z $0031 $283B GOTO L_main_5 $0032 $3000 MOVLW 0 $0033 $1A05 BTFSC PORTA, 4 $0034 $3001 MOVLW 1 $0035 $00F1 MOVWF STACK_1 $0036 $0871 MOVF STACK_1, 0 $0037 $1D03 BTFSS STATUS, Z $0038 $283B GOTO L_main_5 $0039 $01F1 CLRF STACK_1, 1 $003A $283D GOTO L_main_4 $003B $ L_main_5: $003B $3001 MOVLW 1 $003C $00F1 MOVWF STACK_1 $003D $ L_main_4: $003D $0871 MOVF STACK_1, 0 $003E $3A01 XORLW 1 $003F $1D03 BTFSS STATUS, Z $0040 $292D GOTO L_main_8 $0041 $ L51_ex_L_main_8: ;PWAMprijem.c,21 :: k = 0; $0041 $01A0 CLRF _k, 1 ;PWAMprijem.c,22 :: delay_ms(1); $0042 $3002 MOVLW 2 $0043 $00FB MOVWF STACK_11 $0044 $30FF MOVLW 255 $0045 $00FA MOVWF STACK_10 $0046 $0BFB DECFSZ STACK_11, F $0047 $2849 GOTO $+2 $0048 $284C GOTO $+4 $0049 $0BFA DECFSZ STACK_10, F $004A $2849 GOTO $-1 $004B $2846 GOTO $-5 $004C $304A MOVLW 74 $004D $00FA MOVWF STACK_10 $004E $0BFA DECFSZ STACK_10, F $004F $284E GOTO $-1

Page 74: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

74

;PWAMprijem.c,24 :: if (PortA.F1 ==1) $0050 $3000 MOVLW 0 $0051 $1885 BTFSC PORTA, 1 $0052 $3001 MOVLW 1 $0053 $00F1 MOVWF STACK_1 $0054 $0871 MOVF STACK_1, 0 $0055 $3A01 XORLW 1 $0056 $1D03 BTFSS STATUS, Z $0057 $285A GOTO L_main_9 ;PWAMprijem.c,25 :: k.F7 = 0; $0058 $13A0 BCF _k, 7 ;PWAMprijem.c,26 :: k.F6 = 1; $0059 $1720 BSF _k, 6 ;PWAMprijem.c,27 :: $005A $ L_main_9: ;PWAMprijem.c,29 :: if (PortA.F3 ==1) $005A $3000 MOVLW 0 $005B $1985 BTFSC PORTA, 3 $005C $3001 MOVLW 1 $005D $00F1 MOVWF STACK_1 $005E $0871 MOVF STACK_1, 0 $005F $3A01 XORLW 1 $0060 $1D03 BTFSS STATUS, Z $0061 $2864 GOTO L_main_10 ;PWAMprijem.c,30 :: k.F7 = 1; $0062 $17A0 BSF _k, 7 ;PWAMprijem.c,31 :: k.F6 = 0; $0063 $1320 BCF _k, 6 ;PWAMprijem.c,32 :: $0064 $ L_main_10: ;PWAMprijem.c,34 :: if (PortA.F4 ==1) $0064 $3000 MOVLW 0 $0065 $1A05 BTFSC PORTA, 4 $0066 $3001 MOVLW 1 $0067 $00F1 MOVWF STACK_1 $0068 $0871 MOVF STACK_1, 0 $0069 $3A01 XORLW 1 $006A $1D03 BTFSS STATUS, Z $006B $286E GOTO L_main_11 ;PWAMprijem.c,35 :: k.F7 = 1; $006C $17A0 BSF _k, 7 ;PWAMprijem.c,36 :: k.F6 = 1; $006D $1720 BSF _k, 6 ;PWAMprijem.c,37 :: $006E $ L_main_11: ;PWAMprijem.c,39 :: if (PortA.F1 ==0) $006E $3000 MOVLW 0 $006F $1885 BTFSC PORTA, 1 $0070 $3001 MOVLW 1 $0071 $00F1 MOVWF STACK_1 $0072 $0871 MOVF STACK_1, 0

Page 75: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

75

$0073 $3A00 XORLW 0 $0074 $1D03 BTFSS STATUS, Z $0075 $2878 GOTO L_main_12 ;PWAMprijem.c,40 :: k.F7 = 0; $0076 $13A0 BCF _k, 7 ;PWAMprijem.c,41 :: k.F6 = 0; $0077 $1320 BCF _k, 6 ;PWAMprijem.c,42 :: $0078 $ L_main_12: ;PWAMprijem.c,44 :: delay_ms(2); $0078 $3003 MOVLW 3 $0079 $00FB MOVWF STACK_11 $007A $30FF MOVLW 255 $007B $00FA MOVWF STACK_10 $007C $0BFB DECFSZ STACK_11, F $007D $287F GOTO $+2 $007E $2882 GOTO $+4 $007F $0BFA DECFSZ STACK_10, F $0080 $287F GOTO $-1 $0081 $287C GOTO $-5 $0082 $3096 MOVLW 150 $0083 $00FA MOVWF STACK_10 $0084 $0BFA DECFSZ STACK_10, F $0085 $2884 GOTO $-1 ;PWAMprijem.c,47 :: if (PortA.F1 ==1) $0086 $3000 MOVLW 0 $0087 $1885 BTFSC PORTA, 1 $0088 $3001 MOVLW 1 $0089 $00F1 MOVWF STACK_1 $008A $0871 MOVF STACK_1, 0 $008B $3A01 XORLW 1 $008C $1D03 BTFSS STATUS, Z $008D $2890 GOTO L_main_13 ;PWAMprijem.c,48 :: k.F5 = 0; $008E $12A0 BCF _k, 5 ;PWAMprijem.c,49 :: k.F4 = 1; $008F $1620 BSF _k, 4 ;PWAMprijem.c,50 :: $0090 $ L_main_13: ;PWAMprijem.c,52 :: if (PortA.F3 ==1) $0090 $3000 MOVLW 0 $0091 $1985 BTFSC PORTA, 3 $0092 $3001 MOVLW 1 $0093 $00F1 MOVWF STACK_1 $0094 $0871 MOVF STACK_1, 0 $0095 $3A01 XORLW 1 $0096 $1D03 BTFSS STATUS, Z $0097 $289A GOTO L_main_14 ;PWAMprijem.c,53 :: k.F5 = 1; $0098 $16A0 BSF _k, 5 ;PWAMprijem.c,54 :: k.F4 = 0;

Page 76: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

76

$0099 $1220 BCF _k, 4 ;PWAMprijem.c,55 :: $009A $ L_main_14: ;PWAMprijem.c,57 :: if (PortA.F4 ==1) $009A $3000 MOVLW 0 $009B $1A05 BTFSC PORTA, 4 $009C $3001 MOVLW 1 $009D $00F1 MOVWF STACK_1 $009E $0871 MOVF STACK_1, 0 $009F $3A01 XORLW 1 $00A0 $1D03 BTFSS STATUS, Z $00A1 $28A4 GOTO L_main_15 ;PWAMprijem.c,58 :: k.F5 = 1; $00A2 $16A0 BSF _k, 5 ;PWAMprijem.c,59 :: k.F4 = 1; $00A3 $1620 BSF _k, 4 ;PWAMprijem.c,60 :: $00A4 $ L_main_15: ;PWAMprijem.c,62 :: if (PortA.F1 ==0) $00A4 $3000 MOVLW 0 $00A5 $1885 BTFSC PORTA, 1 $00A6 $3001 MOVLW 1 $00A7 $00F1 MOVWF STACK_1 $00A8 $0871 MOVF STACK_1, 0 $00A9 $3A00 XORLW 0 $00AA $1D03 BTFSS STATUS, Z $00AB $28AE GOTO L_main_16 ;PWAMprijem.c,63 :: k.F5 = 0; $00AC $12A0 BCF _k, 5 ;PWAMprijem.c,64 :: k.F4 = 0; $00AD $1220 BCF _k, 4 ;PWAMprijem.c,65 :: $00AE $ L_main_16: ;PWAMprijem.c,67 :: delay_ms(2); $00AE $3003 MOVLW 3 $00AF $00FB MOVWF STACK_11 $00B0 $30FF MOVLW 255 $00B1 $00FA MOVWF STACK_10 $00B2 $0BFB DECFSZ STACK_11, F $00B3 $28B5 GOTO $+2 $00B4 $28B8 GOTO $+4 $00B5 $0BFA DECFSZ STACK_10, F $00B6 $28B5 GOTO $-1 $00B7 $28B2 GOTO $-5 $00B8 $3096 MOVLW 150 $00B9 $00FA MOVWF STACK_10 $00BA $0BFA DECFSZ STACK_10, F $00BB $28BA GOTO $-1 ;PWAMprijem.c,69 :: if (PortA.F1 ==1) $00BC $3000 MOVLW 0 $00BD $1885 BTFSC PORTA, 1

Page 77: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

77

$00BE $3001 MOVLW 1 $00BF $00F1 MOVWF STACK_1 $00C0 $0871 MOVF STACK_1, 0 $00C1 $3A01 XORLW 1 $00C2 $1D03 BTFSS STATUS, Z $00C3 $28C6 GOTO L_main_17 ;PWAMprijem.c,70 :: k.F3 = 0; $00C4 $11A0 BCF _k, 3 ;PWAMprijem.c,71 :: k.F2 = 1; $00C5 $1520 BSF _k, 2 ;PWAMprijem.c,72 :: $00C6 $ L_main_17: ;PWAMprijem.c,74 :: if (PortA.F3 ==1) $00C6 $3000 MOVLW 0 $00C7 $1985 BTFSC PORTA, 3 $00C8 $3001 MOVLW 1 $00C9 $00F1 MOVWF STACK_1 $00CA $0871 MOVF STACK_1, 0 $00CB $3A01 XORLW 1 $00CC $1D03 BTFSS STATUS, Z $00CD $28D0 GOTO L_main_18 ;PWAMprijem.c,75 :: k.F3 = 1; $00CE $15A0 BSF _k, 3 ;PWAMprijem.c,76 :: k.F2 = 0; $00CF $1120 BCF _k, 2 ;PWAMprijem.c,77 :: $00D0 $ L_main_18: ;PWAMprijem.c,79 :: if (PortA.F4 ==1) $00D0 $3000 MOVLW 0 $00D1 $1A05 BTFSC PORTA, 4 $00D2 $3001 MOVLW 1 $00D3 $00F1 MOVWF STACK_1 $00D4 $0871 MOVF STACK_1, 0 $00D5 $3A01 XORLW 1 $00D6 $1D03 BTFSS STATUS, Z $00D7 $28DA GOTO L_main_19 ;PWAMprijem.c,80 :: k.F3 = 1; $00D8 $15A0 BSF _k, 3 ;PWAMprijem.c,81 :: k.F2 = 1; $00D9 $1520 BSF _k, 2 ;PWAMprijem.c,82 :: $00DA $ L_main_19: ;PWAMprijem.c,84 :: if (PortA.F1 ==0) $00DA $3000 MOVLW 0 $00DB $1885 BTFSC PORTA, 1 $00DC $3001 MOVLW 1 $00DD $00F1 MOVWF STACK_1 $00DE $0871 MOVF STACK_1, 0 $00DF $3A00 XORLW 0 $00E0 $1D03 BTFSS STATUS, Z $00E1 $28E4 GOTO L_main_20

Page 78: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

78

;PWAMprijem.c,85 :: k.F3 = 0; $00E2 $11A0 BCF _k, 3 ;PWAMprijem.c,86 :: k.F2 = 0; $00E3 $1120 BCF _k, 2 ;PWAMprijem.c,87 :: $00E4 $ L_main_20: ;PWAMprijem.c,89 :: delay_ms(2); $00E4 $3003 MOVLW 3 $00E5 $00FB MOVWF STACK_11 $00E6 $30FF MOVLW 255 $00E7 $00FA MOVWF STACK_10 $00E8 $0BFB DECFSZ STACK_11, F $00E9 $28EB GOTO $+2 $00EA $28EE GOTO $+4 $00EB $0BFA DECFSZ STACK_10, F $00EC $28EB GOTO $-1 $00ED $28E8 GOTO $-5 $00EE $3096 MOVLW 150 $00EF $00FA MOVWF STACK_10 $00F0 $0BFA DECFSZ STACK_10, F $00F1 $28F0 GOTO $-1 ;PWAMprijem.c,92 :: if (PortA.F1 ==1) $00F2 $3000 MOVLW 0 $00F3 $1885 BTFSC PORTA, 1 $00F4 $3001 MOVLW 1 $00F5 $00F1 MOVWF STACK_1 $00F6 $0871 MOVF STACK_1, 0 $00F7 $3A01 XORLW 1 $00F8 $1D03 BTFSS STATUS, Z $00F9 $28FC GOTO L_main_21 ;PWAMprijem.c,93 :: k.F1 = 0; $00FA $10A0 BCF _k, 1 ;PWAMprijem.c,94 :: k.F0 = 1; $00FB $1420 BSF _k, 0 ;PWAMprijem.c,95 :: $00FC $ L_main_21: ;PWAMprijem.c,97 :: if (PortA.F3 ==1) $00FC $3000 MOVLW 0 $00FD $1985 BTFSC PORTA, 3 $00FE $3001 MOVLW 1 $00FF $00F1 MOVWF STACK_1 $0100 $0871 MOVF STACK_1, 0 $0101 $3A01 XORLW 1 $0102 $1D03 BTFSS STATUS, Z $0103 $2906 GOTO L_main_22 ;PWAMprijem.c,98 :: k.F1 = 1; $0104 $14A0 BSF _k, 1 ;PWAMprijem.c,99 :: k.F0 = 0; $0105 $1020 BCF _k, 0 ;PWAMprijem.c,100 :: $0106 $ L_main_22:

Page 79: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

79

;PWAMprijem.c,102 :: if (PortA.F4 ==1) $0106 $3000 MOVLW 0 $0107 $1A05 BTFSC PORTA, 4 $0108 $3001 MOVLW 1 $0109 $00F1 MOVWF STACK_1 $010A $0871 MOVF STACK_1, 0 $010B $3A01 XORLW 1 $010C $1D03 BTFSS STATUS, Z $010D $2910 GOTO L_main_23 ;PWAMprijem.c,103 :: k.F1 = 1; $010E $14A0 BSF _k, 1 ;PWAMprijem.c,104 :: k.F0 = 1; $010F $1420 BSF _k, 0 ;PWAMprijem.c,105 :: $0110 $ L_main_23: ;PWAMprijem.c,107 :: if (PortA.F1 ==0) $0110 $3000 MOVLW 0 $0111 $1885 BTFSC PORTA, 1 $0112 $3001 MOVLW 1 $0113 $00F1 MOVWF STACK_1 $0114 $0871 MOVF STACK_1, 0 $0115 $3A00 XORLW 0 $0116 $1D03 BTFSS STATUS, Z $0117 $291A GOTO L_main_24 ;PWAMprijem.c,108 :: k.F1 = 0; $0118 $10A0 BCF _k, 1 ;PWAMprijem.c,109 :: k.F0 = 0; $0119 $1020 BCF _k, 0 ;PWAMprijem.c,110 :: $011A $ L_main_24: ;PWAMprijem.c,113 :: delay_ms(1); $011A $3002 MOVLW 2 $011B $00FB MOVWF STACK_11 $011C $30FF MOVLW 255 $011D $00FA MOVWF STACK_10 $011E $0BFB DECFSZ STACK_11, F $011F $2921 GOTO $+2 $0120 $2924 GOTO $+4 $0121 $0BFA DECFSZ STACK_10, F $0122 $2921 GOTO $-1 $0123 $291E GOTO $-5 $0124 $304A MOVLW 74 $0125 $00FA MOVWF STACK_10 $0126 $0BFA DECFSZ STACK_10, F $0127 $2926 GOTO $-1 ;PWAMprijem.c,114 :: Usart_Write(k); //Slanje primljenog podatka ka racunaru i $0128 $0820 MOVF _k, 0 $0129 $00A1 MOVWF FARG_Usart_Write+0 $012A $2133 CALL _Usart_Write ;PWAMprijem.c,115 :: PORTB = k; // Portu B, gde su LED $012B $0820 MOVF _k, 0

Page 80: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

80

$012C $0086 MOVWF PORTB ;PWAMprijem.c,116 :: $012D $ L_main_8: ;PWAMprijem.c,117 :: delay_us(100); $012D $3021 MOVLW 33 $012E $00FA MOVWF STACK_10 $012F $0BFA DECFSZ STACK_10, F $0130 $292F GOTO $-1 ;PWAMprijem.c,122 :: while (1); // Kraj beskon. petlje $0131 $2815 GOTO L_main_0 ;PWAMprijem.c,123 :: //~ $0132 $2932 GOTO $

Page 81: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

81

5. LABORATORIJSKA VEŽBA

1. Postavite prekidače kod predajnika kao na Slici 5.1:

Slika 5.1 Položaj prekidača pre početka vežbe

2. Dovedite napajanje sistemu (PWAM predajniku i prijemniku) 3. Povezite PWAM predajnik sa serijskim portom prvog PC-a na kome je

instaliran mikroC, a zatim sa serijskim portom drugog PC-a povezite PWAM prijemnik .

4. Ukljucite alat UsartTerminal (u okviru mikroC-a) na oba racunara i podesite parametre prema Slici 5.2, a zatim aktivirajte terminal klikom na dugme Connect.

Page 82: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

82

Slika 5.2 Izgled prozora USART terminala sa parametrima koji su podeseni

5. Saljite sekvence od 0 do 255 (heksadecimalno: 0x00-0xFF) prema PWAM predajniku. Poslate sekvence ce biti prikazane na Portu B PWAM prijemnika i u prozoru Usart Terminala na (prijemnoj strani).

Na slici 5.3 je ilustrovana komunikacija preko jednog PC-a sa 2 serijska porta (Terminal_COM1→ PWAM_predajnik → PWAM_prijemnik → Terminal_COM2).

Svi savremeni PC racunari imaju jedan serijski COM i vise USB portova, ali je moguce, eventualno, koristiti konvertor USB-RS232 i tako jedan USB «transformisati» u serijski port.

Page 83: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

83

Slika 5.3 Ilustracija slanja i prijema podataka preko PWAM sistema

Page 84: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

84

6.ZAKLJUČAK

U ovom projektu realizovan je prijemnik signala, koji je impulsno-širinski i

impulsno-amplitudski modulisan. Ulazni signali su dobijeni sa predajnika signala. Pomenuti predajnik je realizovan u predhodnom projektu. Pločica je kreirana u Protel-u.

Za pisanje koda koristili smo kompajler mikroC, a za upis koda u mikro-kontroler koristili smo ALLPIC programator.

U ovom radu su objašnjene osnovne karakteristike PWM i PAM modulacije, sa detaljnim grafičkim objašnjenjima, sadržan je kratak opis mikrokontrolera PIC16F877-DIP40.

Ukratko je opisan MikroC kompajler i softverski USART terminal, koji služi za komunikaciju mikrokontrolera PIC16F877 i PC računara.

Prilikom programiranja mikrokontrolera kao alat je korišćen MikroC.

Na istom postolju na kom je realizovan prijemnik signala nalazi se i predajnik signala sa kog se dovodi signal i moguće je u svakom trenutku uz odgovarajuću opremu testirati kolo i proveriti njegovu ispravnost.

Page 85: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

85

7.LITERATURA

• PWM and PAM signaling - Ching Yuan Yang, Yu Lee

• AllPIC programator, Info Elektronika - Niš o IC-Prog, http://www.ic-prog.com o mikroC, firma Mikroelektronika, http://mikroe.com

• PIC16F877, Microchip Tecnology, http://www.microchip.com

• Sprega mikrokontrolera PIC16f877 sa paralelnimperiferijskim interfejsom8255A i D/A konvertorim DAC832LCV Slaviša Popović, Mladen Pavlović, Siniša Stoilković- Elektronski fakultet - Niš, (seminarski rad)

Komunikacija mikrokontrolera PIC16F877-20 preko SPI modula Dušan Đorđevič, Žarko Đorđević - Elektronski fakultet - Niš, (seminarski rad)

Page 86: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

86

O Autorima:

Prezime: Milošević

Ime: Bojan

Adresa stanovanja: 25.maja br.29 Niš

e-mail adresa: [email protected]

Datum rođenja: 05. 12. 1982.g.

Nacionalnost: Srbin Obrazovanje:

ETŠ. „Nikola Tesla“ Niš

Kompletna ili stepenovana diploma: IV stepen

Poznavanje jezika: Engleski , Ruski

Vozačka dozvola:

Rad na računaru: WINDOWS, CorelDraw, Adobe PhotoShop, MS Office, MikroC

Posebna interesovanja: Muzika, sport, razvoj računarskog hardvera, itd.

Page 87: Implementacija impulsno-širinske (PWM) i impulsno ...es.elfak.ni.ac.rs/Papers/BMilosevic-DTasic-PWM i PAM koriscenjem... · Impulsno širinska modulacija ima širok spektar primena

87

Prezime: Tasić

Ime: Dušan

Adresa stanovanja: 18254 Donje Međurovo

Đure Jakšića 8

e-mail adresa: [email protected]

Datum rođenja: 26. 07. 1981.g.

Nacionalnost: Srbin

Obrazovanje:

ETŠ. „Mija Stanimirović“

Niš

Kompletna ili stepenovana diploma: IV stepen

Poznavanje jezika: Engleski

Vozačka dozvola: B kategorija

Rad na računaru: WINDOWS (98/2K/XP/VISTA), Linux, CorelDraw, Adobe PhotoShop, MS Office, MikroC

Posebna interesovanja: Internet, obrada video signala, hardver , itd.