vta-urs: mikrokontroler nov

1

Upload: others

Post on 15-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VTA-URS: MIKROKONTROLER Nov

1Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

modul a3

integrisani mikroračunarski sistemi

Page 2: VTA-URS: MIKROKONTROLER Nov

2Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

CILJEVIOpšti cilj ovog modula je da se studenti upoznaju sa arhitekturom i principima funkcionisanja i organizacije računarskog hardvera detaljnim izučavanjem mikroračunarskog sistema jednostavne konstrukcije, bez operativnog sistema i sa pridodatim osnovnim hardverskim okruženjem, neophodnim za realizaciju tipičnih zadataka upravljanja i akvizicije senzorskih signala u okviru nekog mehatronskog sistema.

Posebni ciljevi modula:

• Osnovni funkcionalni moduli mikroračunara, organizacija i principi funkcionisanja;

• Pojam instrukcije, format instrukcije, instrukcijska lista, mašinski jezik, asembler i programiranje u asembleru;

• Povezivanje mikrokontrolera sa okruženjem: Digitalni ulazno-izlazni uredjaji, Analogni ulazno-izlazni uredjaji, MMI, industrijski interfejsi i mreže mikrokontrolera;

• Viši programski jezici i razvojna okruženja za programiranje mikrokontrolera;

• Primena mikrokontrolera u praktičnom rešavanju zadataka digitalnog upravljanja procesima i sistemima;

• Projektovanje mehatronskih sistema baziranih na primeni mikrokontrolera.

Page 3: VTA-URS: MIKROKONTROLER Nov

3Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Sadržaj:

a31 arhitektura mikrokontroleraa32 lista instrukcija i programiranje u asemblerua33 ulazni i izlazni kanalia34 periferijski uredjaji i dodatne funkcije

Page 4: VTA-URS: MIKROKONTROLER Nov

4Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Mikroprocesori i mikrokompjuteriMikroprocesor je kompleksno elektronsko kolo (VLSI – Very large scale integration) izvedeno u jednom čipu, koje je sadrži podsisteme za izvodjenje logičkih, aritmetičkih, komunikacionih i upravljačkih funkcija. Ovi sistemi zbirno/integrisano čine jednu zaokruženu funkcionalnu celinu.

Kada je mikroprocesor ugradjen na jednoj, zajedničkoj štampanoj ploči, zajedno sa memorijskim jedinicama i pratećim interfejsima, onda se takav sklop naziva mikrokompjuter (single-board computer). Ukoliko je ovakav sklop smešten na jedan čip, onda se takav kompjuter naziva integrisani mikrokompjuter (single-chip computer).

U aplikativno-tehničkom smislu, postoje dve grane razvoja/evolucije mikroprocesora:

• mikroprocesori specijalizovani za primene u personalnim računarima i radnim stanicama (grafičke radne stanice, industrijski računari, CNC upravljački sistemi otvorene arhitekture, ...), gde su osnovni zahtevi brzina rada i širina magistrale (dužina reči 32, 64 i 128 bita)

• integrisani mikroračunarski sistemi – mikrokontroleri (uC) i digitalni procesori signala (DSP), gde je osnovni zahtev multifunkcionalnost ostvarena u minimalnim fizičkim okvirima – visok stepen integracije funkcija.

Ubrzani tehnološki razvoj u ovoj oblasti radikalno menja performanse u prethodno navedenim klasama, tako da i kvantitativna odredjenja i definicije imaju vremensku ograničenost.

Page 5: VTA-URS: MIKROKONTROLER Nov

5Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Arhitektura mikrokompjutera (mikroračunarski sistem)

ALURegistarpodataka

Upravljačka jedinica

kont

roln

e lin

ijead

resn

e lin

ijelin

ije z

a pr

otok

pod

atak

a

Magistrala Mikroprocesor (CPU)

Instrukcijskiregistar

Dekoderinstrukcija

Periferna jedinica 1

Periferna jedinica N

Page 6: VTA-URS: MIKROKONTROLER Nov

6Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Mikrokompjuter se sastoji iz sledećih funkcionalnih celina: procesor, memorija, ulazno-izlazni interfejsi za komunikaciju sa okruženjem i magistrala.

Procesor, odnosno mikroprocesor se sastoji iz aritmetičko-logičke jedinice, polja registara u kojima se čuva korisnički program i polja registara u kojima se čuvaju radni i sistemski podaci. Upravljačka jedinica podržava rad aritmetičko-logičke jedinice tako što iz polja registra u kome se čuva korisnički program povlači instrukciju po instrukciju, prosledjuje je u sklop za dekodiranje instrukcije i povlači tražene podatke iz polja registara u kojima se čuvaju radni i sistemski podaci.

Magistrala se sastoji iz paralelnih kanala (linija) koji su upravljačkog, adresnog i data tipa. Preko magistrale mikrokoprocesor ostvaruje vezu sa periferijskim uredjajima (memorija, tastatura, monitor, štampač, modem, ....).

Page 7: VTA-URS: MIKROKONTROLER Nov

7Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

a 31

arhitektura mikrokontrolera

Page 8: VTA-URS: MIKROKONTROLER Nov

8Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

MikrokontrolerMikrokontroler je mikroračunar integrisan u jednom čipu.

Pored mikroprocesora, ovakav čip u sebi sadrži specijalizovana kola i funkcije koje omogućavaju memorisanje podataka, komunikaciju sa drugim mikrokontrolerima, direktno povezivanje sa različitim ulazno/izlaznim uredjajima (senzori, aktuatori, HMI jedinice) i drugim specijalizovanim resursima za različite aplikacije i realizaciju mehatronskih sistema.

Osnovna odlika mikrokontrolera je visok stepen integracije funkcija, kompaktnost, komunikativnost (sposobnost sprezanja sa drugim mikroprocesorskim modulima) i niska cena.

Mikrokontroleri prvenstveno nalaze svoju primenu u oblasti upravljanja različitim procesima i objektima u industriji, kućnim uredjajima, vojnoj opremi i u opremi za istraživanje i razvoj. Specifične tehničke karakteristike mikrokontrolera omogućavaju njihovu neposrednu fizičku ugradnju u mehaničku strukturu sistema, što ih čini idealnom komponentom za gradnju mehatronskih sistema.

Page 9: VTA-URS: MIKROKONTROLER Nov

9Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 10: VTA-URS: MIKROKONTROLER Nov

10Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Arhitektura tipičnog mikrokontrolera potpune konfiguracije

Rad sa analognim signalima

Rad sa digitalnim signalima

CPU

Serijska komunikacija

Memorija

Časovnik realnog vremena

Modul za nadzor funkcionisanjamikrokontrolera

Page 11: VTA-URS: MIKROKONTROLER Nov

11Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Mikrokontroler PIC16F84A

PIC16F84x je familija osmobitnih RISC mikrokontrolera, izradjen u CMOS tehnologiji, modifikovana Harvard arhitektura, pakovanje sa 18 pinova

(kod Harvard arhitekture CPU odvojene su magistrale za prenos podataka i prenos instrukcija korisničkog programa; kod alternativne, Von Neumann arhitekture, prenos podataka i prenos instrukcija se ostvaruje preko zajedničke magistrale).

Instrukcijska lista od 35 14-bitnih instrukcijaPIC – Peripheral Interface Controller

RISC – Reduced Instruction Set Computer

CMOS – Complemetary Metal Oxide Semiconductor

Radna frekvencija: DC - 20 MHz

Izvršenje jedne instrukcije: DC – 200ns (maksimalno 5.000.000 instrukcija/sec)

PIC16F84A može da memoriše korisnički program dužine do 1k instrukcija.

Page 12: VTA-URS: MIKROKONTROLER Nov

12Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Blok dijagram arhitekture mikrokontrolera PIC16F84A

Page 13: VTA-URS: MIKROKONTROLER Nov

13Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Funkcije pinova:

Pin no.1 RA2 Bidirekcioni A port – bit 2Pin no.2 RA3 Bidirekcioni A port – bit 3Pin no.3 RA4/TOCK1 Bidirekcioni A port – bit 4. Ulaz

časovnika/brojača TOCK1Pin no.4 MCLR Master Clear - reset ulaz, Vpp napon

programiranja mikrokontroleraPin no.5 Vss Napajanje masa (GND).Pin no.6 RB0/INT Bidirekcioni B port – bit 0, eksterni prekid.Pin no.7 RB1 Bidirekcioni B port – bit 1.Pin no.8 RB2 Bidirekcioni B port – bit 2.Pin no.9 RB3 Bidirekcioni B port – bit 3.Pin no.10 RB4 Bidirekcioni B port – bit 4.Pin no.11 RB5 Bidirekcioni B port – bit 5.Pin no.12 RB6 Bidirekcioni B port – bit 6. Serijski clk za

programiranje.Pin no.13 RB7 Bidirekcioni B port – bit 7. Serijski ulaz

podataka u modu za programiranje.Pin no.14 Vdd Napajanje + Vss.Pin no.15 OSC2 Oscilator, takt generatora.Pin no.16 OSC1 Oscilator, takt generatora. Pin no.17 RA0 Bidirekcioni A port – bit 0.Pin no.18 RA1 Bidirekcioni A port – bit 1.

Page 14: VTA-URS: MIKROKONTROLER Nov

14Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Minimalna električna konfiguracija:

Spoljašnje električno kolo sa kvarcnim kristalom obezbedjuje precizno i stabilno generisanje vremenskog kvanta za taktovanje mikrokontrolera. Spoljašnji oscilator se priključuje na pinove 15 i 16.Da bi se sprečile smetnje, oscilator treba da bude lociran u neposrednoj blizini kontrolera. Postoje tropolni elementi – keramički rezonatori, koji u sebi sadrže kristal i ostale pasivne komponente za rad oscilatora.

Vreme stabilizacije oscilatora kod uključivanja u rad mikrokontrolera. Dok se rad oscilatora ne stabilizuje kontroler treba da bude u reset stanju.

Kontroler se resetuje dovodjenjem nultog naponskog nivoa na pin 4.

Dovodjenjem 5 VDC na pinove 14 (Vdd = +5 V) i 5 (Vss = 0 V) mikrokontroler je, posle stabilizacije oscilatora, spreman za rad. Negacija reset funkcije zahteva dovodjenje 5 VDC na pin 4.

Page 15: VTA-URS: MIKROKONTROLER Nov

15Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

DIP pakovanjeD = 22.8mm E = 7.94mm

SO pakovanje (SMD tehnologija)D = 11.53mm E = 10.34mm

SS pakovanjeD = 7.2mm E = 7.85mm

Page 16: VTA-URS: MIKROKONTROLER Nov

16Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Organizacija memorije: PIC16F84A poseduje operativnu memoriju koja se sastoji iz dva memorijska bloka: programskamemorija i memorija podataka. Svaki blok poseduje sopstvenu magistralu, tako da se pristup ovim memorijama može da ostvari paralelno u istom taktu oscilatora (Harward arhitektura).

Memorija podatakaProgramska memorija

Page 17: VTA-URS: MIKROKONTROLER Nov

17Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Memorija podataka: Memorija podataka se sastoji iz EEPROM postojane memorije i RAM operativne memorije.

EEPROM memorija se sastoji iz 64 osmobitnih ćelija, adrese: 00h do 3Fh, čiji se sadržaj remanentan, odnosno, čuva se i kada mikrokontroler ostane bez napajanja. EEPROM memorija je indirektno adresna i za njen pristup se koriste EEDATA i EEADR registri. Ovaj memorijski prostor je namenjen za čuvanje podataka tipa konstanti/parametara, koje koristi korisnički program.

RAM memorija se sastoji iz memorijskih registra opšte namene (GPR) i memorijskih registara specijalne namene SFR. RAM memorijski prostor se koristi za privremeno memorisanje radnih podataka koje koristi korisnički program.

SFR registri zauzimaju prvih dvanaest ćelija u obe memorijske banke, adrese: 00h do 0Bh, koje koristi CPU za upravljanje radom mikrokontrolera kao integrisane funkcionalne mikroračunarske jedinice. SFR se dele u dve grupe: core i periferijske.

GPR registri su podeljeni u dve osmobitne banke i sastoje se iz 68 osmobitnih ćelija, adrese: 0Ch do 4Fh.

Page 18: VTA-URS: MIKROKONTROLER Nov

Sadržaj SFR registra:

18Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 19: VTA-URS: MIKROKONTROLER Nov

Sadržaj SFR registra:

19Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 20: VTA-URS: MIKROKONTROLER Nov

Sadržaj SFR registra:

20Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 21: VTA-URS: MIKROKONTROLER Nov

21Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Adresiranje RAM memorije podataka:

RAM memorija podržava dva moda adresiranja: direktni i indirektni.

Direktno adresiranje

Za direktno adresiranje koristi se devetobitna adresa. Na sedam bitova preuzetih iz instrukcije, vrši se konkatenacija 2 bita iz STATUS registra, bit 5 i 6, kojima se vrši izbor banke RAM memorije. Kod PIC16F84 bit 6 nije implementiran, ali ovakvu strukturu adrese treba koristiti zbog kompatibilnosti sa drugim PIC mikrokontrolerima.

STATUS: bit 5 RP0 i bit 6 RP1:

01 = Banka 1 (80h - FFh)00 = Banka 0 (00h - 7Fh)

bsf STATUS, RP0 ;selekciija banke lmovlw 0xFF ;W = 0xFFmovwf TRISA ;W se upisuje na adresu TRISA registra

;adresa RP0*f=TRISA

Primer: program za upis sadržaja radnog registra W (akumulator aritmetičke jedinice) u TRISA registar.

Page 22: VTA-URS: MIKROKONTROLER Nov

22Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Indirektno adresiranje

Za indirektno adresiranje ne koristi se adresa koja je sadržana u instrukciji. Umesto toga, ovde se koristi ciljna vrednost adrese upisane u INDF registar (00h i 80h), koja je izvedena iz vrednosti IRPbita iz STATUS registra (bit 7) i vrednosti upisane u FSR registar (04h) iz bloka SFR registara. I u ovom slučaju se formira adresa dužine 9 bita. Dva najznačajnija bita adresiraju banku memorije.Mada na prvi pogled komplikovan, ovaj način adresiranja je vrlo pogodan za adresiranje kod manipulacije poljem podataka. Pošto se adresa nalazi u RAM memoriji, ona može da bude programski modifikovana!

Page 23: VTA-URS: MIKROKONTROLER Nov

23Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Indirektno adresiranje je zasnovano na primeni INDF registra, kao pomoćnog memorijskog prostora.

Sadržaj INDF registra se formira iz FSR (File Select Register) registra, koji se nezavisno može da kontroliše programskim instrukcijama.

Sadržaju koji se iz FSR registra prepisuje u INDF registar, konkatenacijom se dodaje 2 IRP bita iz STATUS bajta koji se čuva u polju SFR registara.

Formirana devetobitna adresa operanda upisana u INDF registar dodaje se operacijskom kodu instrukcije. Dalje se proces izvršavanja instrukcije izvodi kao i za slučaj direktnog adresiranja.

Page 24: VTA-URS: MIKROKONTROLER Nov

24Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

movlw 0x20 ;upisivanje početne adrese 20h u akumulatormovwf FSR ;prepisivanje početne adrese 20h u FSR registar

NEXT clrf INDF ;brisanje sadrzaja na lokaciji definisanoj sadrzajem ;zapisanim u INDF registru, pocinje sa 0h20, kraj na 0h27

incf FSR ;inkrementiranje adrese u FSR registrubtfss FSR,4 ;uradjeno? (provera bita 4 u FSR registru koji postaje

;jedinica za vrednost 28 (28dec = 101000))goto NEXT ;NE, brisi sledeci

CONTINUE: ;DA, nastavi

Primer: program za brisanje 8 RAM lokacija 20h-27h indirektnim adresiranjem.

20h (32dec) 10000021h 10000122h 10001023h 10001124h 10010025h 10010126h 10011027h 10011128h (40dec) 101000

Sadržaj FSR

Page 25: VTA-URS: MIKROKONTROLER Nov

25Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Sadržaj SFR registra:

Page 26: VTA-URS: MIKROKONTROLER Nov

26Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

STATUS REGISTAR (ADRESA 03h, 83h)

STATUS registar sadrži informacije o aritmetičkom statusu ALU, RESET status, bit selekcije banke memorije.

Page 27: VTA-URS: MIKROKONTROLER Nov

27Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

OPTION REGISTAR (ADRESA 81h)

U OPTION registar upisuju se i čitaju sadržaji raznih kontrolnih funkcija, delitelji (preskaleri) časovnika, eksterni prekidi i status B porta.

Page 28: VTA-URS: MIKROKONTROLER Nov

28Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Programska memorija:

Programska memorija se sastoji od 1024 (1K) 14 bitnih lokacija koje su namenjene za čuvanje korisničkog programa. Pošto kod PIC16F84 mikrokontrolera jedna instrukcija zauzima jednu memorijsku ćeliju, maksimalna dužina programskog koda je 1k instrukcija.Programska memorija zauzima adresni prostor od 0h do 1FFFh.

Memorijske ćelije 0h i 04h su rezervisane za čuvanje reset vektora i vektora prekida.

PIC16F84A poseduje 13 bitni adresni brojač koji omogućava adresiranje 8K instrukcija. 7K adresnog prostora nije iskorišćeno u ovom slučaju i ostavljeno je za budući razvoj.

PIC16F84A poseduje 13 bitni magacinski (stek) registar sa 8 nivoa. Ovaj memorijski prostor je rezervisan za pamćenje statusa programskog brojača kada se izvršavaju naredbe skoka na podprogram (CALL). Posle izvršavanja podprograma (instrukcije RETURN, RETLW ili RETFIE ) programski brojač preuzima memorisane vrednosti pre prekida i tako nastavlja dalje izvršavanje glavnog programa.

Page 29: VTA-URS: MIKROKONTROLER Nov

29Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Instrukcijski ciklus

Kada se prevedeni program učita u mikrokontroler, on se u obliku mašinskog koda čuva u programskoj memoriji. Instrukcije se sukcesivno povlače iz memorije, upisuju u instrukcijski registar, i izvršavaju. CLK signal sa oscilatora koji se dovodi na OSC1 (pin 16) deli se na četiri asimetrična oscilatora Q1, Q2, Q3 i Q4 koji su fazno pomereni, tako da se ne preklapaju.

Instrukcija se učitava uvek kada je Q1=1 a upis u instrukcijski registar se završava kada je Q4=1.U narednoj tetradi Q1 do Q4 instrukcija se dekodira i izvršava.Paralelno, sa dekodiranjem i izvršavanjem instrukcije učitane u instrukcijski registar u brojačkom ciklusu PC, u tekućem brojačkom ciklusu PC+1 vrši se učitavanje i upis u instrukcijski registar naredne instrukcije. Na ovaj način u svakom ciklusu se izvršava jedna instrukcija. Izuzetak je slučaj prekida (skokovi i grananja) u izvršavanju programa, kada se zahtevaju dva ciklusa.

Page 30: VTA-URS: MIKROKONTROLER Nov

30Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Lista instrukcija

PIC16F84 je mikrokontroler baziran na RISC tehnologiji (Reduced Instruction Set Computer). RISC tehnologija omogućava kompresiju programa 2:1 i ubrzavanje rada za 4:1 u odnosu na ekvivalentne CISC (Complex Instruction Set Computer) mikrokontrolere.

PIC16F84 poseduje 35 instrukcija. Instrukcije se klasifikuju u tri grupe:

1. bajt orijentisane, 2. bit orijentisane i 3. literal/kontrolne instrukcije.

Instrukcija je kodirana 14 bitnom reči i njen format uključuje OPCODE polje (binarni kod operacije) i adresna polja u kojima se naznačuje destinacija i adresa operanda, ili direktna vrednost operanda (kombinovan dvoadresni i nulaadresni format).

Page 31: VTA-URS: MIKROKONTROLER Nov

31Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

PIC16F84 poseduje 8-bitnu aritmetičko-logičku jedinicu (ALU) i 8-bitni radni registar (woriking register, pa odatle dolazi oznaka W koja se koristi u nazivima instrukcija; uobičajeni termin za ovaj pomoćni registar ALU je akumulator).

Aritmetičko logička jedinica je univerzalnog tipa i ona izvodi aritmetičke (sabiranje i oduzimanje) i logičke operacije nad sadržajem W registra i bilo kog registra RAM memorije podataka ili konstante direktno sadržane u adresnom polju instrukcije. U slučaju operacija sa jednim operandom, operand je W registar ili RAM registar. Aritmetičke operacije sa negativnim brojevima su tipa komplementa dvojke.

W registar nije adresabilan.

Zavisno od vrste instrukcije, ALU može da utiče na vrednosti Carry (C), Digit Carry (DC), i Zero (Z) bitove STATUS registra. C i DC bitovi imaju značenje prenesenih bitova kod instrukcija koje se odnose na operacije oduzimanja (SUBLW i SUBWF).

Važno je uočiti da prepisivanje podatka iz jedne RAM adrese u drugu, zahteva upisivanje u W registar, dakle 2 instrukcijska ciklusa!!! Ako se rezultat operacije nad RAM adresom ponovo vraća na istu RAM adresu, W registar nije neophodan, pa se ova operacija izvršava u jednom ciklusu.

Page 32: VTA-URS: MIKROKONTROLER Nov

32Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

CPU (Central Processor Unit) mikrokontrolera PIC16F84 poseduje 13-bitni programski brojač, koji može da adresira 8K x 14 programski memorijski prostor. Širina sabirnice programske memorije je 14-bita. Pošto sve instrukcije imaju širinu jedne reči, memorijski prostor 8K x 14 može da čuva 8K instrukcija.

Ovaj memorijski prostor se kod PIC mikrokontrolera srednje veličine deli na stranice dužine 2K reči svaka (0h - 7FFh, 800h - FFFh, 1000h - 17FFh, and 1800h - 1FFFh).

Skokovi izmedju memorijskih stranica zahtevaju modifikovanje programskog brojača (PC). Ovo se ostvaruje tako što se željene vrednosti upisuju u SFR registar PVLATH (Program Counter Latch High). Mikrokontroleri koji u čipu sadrže manje ili 2K reči ne zahtevaju definisanje memorijske stranice. Adresiranje na memorijsku lokaciju koja nije fizički implementirana dovodi do pomeranja odsecanjem (na primer, nepostojeća adresa 17FFh tumači se kao 7FFh).

Page 33: VTA-URS: MIKROKONTROLER Nov

33Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Programski brojač (PC) specificira adresu instrukcije koja se povlači (fetch) za izvršenje. PC ima širinu 13 bita. Niži bajt se naziva PCL registar. Ovaj registar se može da čita i upisuje. Viši bajt se naziva PCH registar. Ovaj registar sadrži PC<12:8> bitove i može da se direktno čita i upisuje. Sve izmene PCH registra realizuju se preko PCLATH registra.

Na slici desno prikazane su četiri situacije upisivanja sadržaja u programski brojač.

Situacija 1 prikazuje kako se vrši upis u PCL (PCLATH<4:0> ® PCH).

Situacija 2 prikazuje kako se upisuje sadržaj u PC tokom izvršavanja GOTO instrukcije (PCLATH<4:3> ® PCH).

Situacija 3 prikazuje kako se vrši upis u PC tokom izvršavanja CALL instrukcije (PCLATH<4:3> ® PCH), kada se sadržaj PC upisuje (PUSH) na vrh steka.

Situacija 4 prikazuje kako se vrši upis sadržaja u PC tokom izvršavanja RETURN instrukcije kada se sadržaj sa vrha steka prenosi (POP) u PC.

Page 34: VTA-URS: MIKROKONTROLER Nov

34Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Magacinska (stek) memorija programskog brojača CPU

Stek programskog brojača dozvoljava do 8 programskih poziva ili prekida po dubini. U osam registra steka čuvaju se adrese instrukcija (broj) na koje treba da se vrati programski brojač posle grananja tokom izvršavanja programa.

Širina steka je 13 bita. Stek registri nisu deo programske memorije ili RAM memorije podataka. Registri steka se ne mogu da čitaju niti u njih može da se vrši upis (nisu kontrolabilni sa strane korisnika). Stanje programskog brojača se upisuje u registar na vrhu steka kada se izvršava CALL instrukcija ili kada se pojavi prekid koji zahteva skok na neku odredjenu programsku instrukciju ili sabrutinu. Upis u stek dovodi do pomeranja (transliranja) svih prethodnih sadržaja po dubini (PUSH).

Kod izvršavanja povratnih instrukcija iz grana programa (RETURN, RETLW ili RETFIE), vrši se prenos sadržaja registra sa vrha steka u PC i brisanje tog registra pomeranjem ostatka sadržaja steka za jedan korak ka vrhu (POP). PCLATH se ne menja kada se realizuje pomeranje sadržaja steka tipa PUSH ili POP.

Kada se stek pomeri PUSH funkcijom osam puta, deveti pomeraj se upisuje preko sadržaja koji je upisan kod prve PUSH operacije. Deseta PUSH operacija se ispisuje preko drugog PUSH sadržaja, itd. Ovo nije dozvoljeno.

Page 35: VTA-URS: MIKROKONTROLER Nov

35Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

a 32

lista instrukcija i programiranje u asembleru

bsf PORTA,0 ;setovanje RA0 decfzs brojac, 1 ;dekrementiranje brojacagoto petlja ;povratak na pocetak glavne

;petlje ako brojac > 0

Page 36: VTA-URS: MIKROKONTROLER Nov

36Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Lista instrukcijaPIC16F84 mikrokontrolera

Page 37: VTA-URS: MIKROKONTROLER Nov

37Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 38: VTA-URS: MIKROKONTROLER Nov

38Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 39: VTA-URS: MIKROKONTROLER Nov

39Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 40: VTA-URS: MIKROKONTROLER Nov

40Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 41: VTA-URS: MIKROKONTROLER Nov

41Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 42: VTA-URS: MIKROKONTROLER Nov

42Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 43: VTA-URS: MIKROKONTROLER Nov

43Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 44: VTA-URS: MIKROKONTROLER Nov

44Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 45: VTA-URS: MIKROKONTROLER Nov

45Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 46: VTA-URS: MIKROKONTROLER Nov

46Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 47: VTA-URS: MIKROKONTROLER Nov

47Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 48: VTA-URS: MIKROKONTROLER Nov

48Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 49: VTA-URS: MIKROKONTROLER Nov

49Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 50: VTA-URS: MIKROKONTROLER Nov

50Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 51: VTA-URS: MIKROKONTROLER Nov

51Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 52: VTA-URS: MIKROKONTROLER Nov

52Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 53: VTA-URS: MIKROKONTROLER Nov

53Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 54: VTA-URS: MIKROKONTROLER Nov

54Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 55: VTA-URS: MIKROKONTROLER Nov

55Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

a 33

ulazi i izlazni kanali

Page 56: VTA-URS: MIKROKONTROLER Nov

56Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

U/I portPIC16F84 raspolaže sa dva ulazno/izlazna porta – port A i port B. Ovi portovi predstavljaju fizičke kanale za vezu mikrokontrolera sa okruženjem. Oba porta su bidirekciona i ukupno poseduju 13 ulaznih ili izlaznih binarnih kanala. Prema potrebi moguće su različite kombinacije, odnosno slobodne dodele ulazne ili izlazne funkcije svakom od 13 fizičkih kanala. Pojedini kanali su multipleksirani i njima mogu da budu dodeljene neke posebne funkcije. Pored toga, kanali se u električnom smislu izvode na različit način, tako da se korisniku nude odredjene funkcionalne specifičnosti koje se kao pogodnost mogu iskoristiti kod sinteze upravljanja nekog mehatronskog sistema.

Port A je petobitni port, a njemu pripadajući konfiguracioni registar nosi oznaku TRISA. Setovanjem pojedinih bitova na logičku jedinicu pripadajućem pinu se dodeljuje funkcija ulaza. U suprotnom, kada je TRISA bit setovan na nulu, pripadajući pin dobija funkciju izlaza. TRISA registar služi za selekciju smera toka signala na portu A. Sadržaj na portu A se čuva u sistemskom registru PORTA.

Primer setovanja porta A:

CLRF PORTA ;Inicijalizacija registra PORTA upisom ;nula u sve bitove memorijskog leča

BSF STATUS, RP0 ;Izbor memorijske banke 1MOVLW 0xCF ;Upis konstante CFh kojom se definise

;smer toka signala u W radni registar;CFh = 11001111b

MOVWF TRISA ;Prepisivanje W u TRISA kontrolni ;registar,PORTA<3:0> = ulazi,;PORTA<5:4> = izlazi, ;TRISA<7:6> uvek se setuje kao '0'

Page 57: VTA-URS: MIKROKONTROLER Nov

57Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

PORT AKod porta A za korisnika su dostupna samo 5 kanala (pina) RA4:RA0 (kanali RA7:RA5 nisu raspoloživi).

Hardversko izvodjenje kanala RA3: RA0

Svi kanali su hardverski izvedeni kao TTL ulazi i kao potpuni CMOS izlazi.

WR TRIS kontroliše TRIS leč a RD TRIS kontroliše trostatički NI element i tako odredjuju smer toka informacija – ulaz/izlaz.

Kod resetovanja napajanja mikrokontrolera, svi bitovi TRISAregistra su setovani na 1 (ulaz) a svi bitovi PORTA registra su setovni na 0.

Page 58: VTA-URS: MIKROKONTROLER Nov

58Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

PORT AHardversko izvodjenje kanala RA4

RA4 kanal je izveden kao Šmitov okidač za uobličavanje ulaznog signala ili kao otvoreni drejn izlaz.

RA4 je multipleksiran sa modulom TIMER0 kod njegove pobude spoljašnjim oscilatorom.

Pregled SFR registara povezanih sa portom A:

Page 59: VTA-URS: MIKROKONTROLER Nov

59Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

PORT B

Port B je osmobitni port, a njemu pripadajući konfiguracioni registar nosi oznaku TRISB. Setovanjem pojedinih bitova na logičku jedinicu pipadajućem pinu se dodeljuje funkcija ulaza. U suprotnom, kada je TRISB bit setovan na nulu, pripadajući pin dobija funkciju izlaza. TRISB registar služi za selekciju smera toka signala na portu B.

Hardversko izvodjenje kanala RB3: RB0

Svi kanali su hardverski izvedeni kao TTL ulazi i kao polu CMOS izlazi. Svi kanali imaju interni slabi pul-up ulaz koji se aktivira kontrolnim bitom RBPU (OPTION<7>) FSR registra. Kod resetovanja napajanja slabi pul-up se deaktivira. Kada je konfigurisan kao eksterni prekid RB0 poseduje Šmitov okidač za uobličavanje signala.

WR TRIS kontroliše TRIS leč a RD TRIS kontroliše trostatički NI element i tako odredjuju smer toka informacija – ulaz/izlaz.

Page 60: VTA-URS: MIKROKONTROLER Nov

60Okt 2009

MEHATRONSKI SISTEMI, 2009/2010Prof.dr Petar B. Petrović, Mašinski fakultet Univerziteta u Beogradu

Pregled SFR registara povezanih sa portom B:

PORT B

Hardversko izvodjenje kanala RB7: RB4

Svi kanali su hardverski izvedeni kao TTL ulazi i kao polu CMOS izlazi. Svi kanali imaju interni slabi pul-up ulaz koji se aktivira kontrolnim bitom RBPU (OPTION<7>) FSR registra. Kod resetovanja napajanja slabi pul-up se deaktivira.

Kada su konfigurisani kao ulazi svim ulazima mogu da budu dodeljene funkcije eksternog prekida preko bita RBIF (INTCON<0>) FSR registra. Ovi prekidi mogu da se iskoriste za aktiviranje mikrokontolera kada se on nalazi u SLEEP modu.

Kada je konfigurisan kao ulaz i koristi se za serijsko programiranje RB7: RB6 poseduju Šmitov okidač za uobličavanje signala.

Page 61: VTA-URS: MIKROKONTROLER Nov

61Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Opšte o ulazima

PIC16F87 omogućava povezivanje sa ulaznim periferijskim jedinicama koje generišu sledeće vrste signala:

• TTL• CMOS 5V• TTL otvoreni kolektor• CMOS otvoreni drejn• Mehanički prekidač• Nestabilni ili šumom kontaminirani signali

Page 62: VTA-URS: MIKROKONTROLER Nov

62Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Opšte o izlazima

PIC16F87 omogućava povezivanje sa izlaznim periferijskim jedinicama koje na svom ulazu prihvataju sledeće vrste signala:

• TTL• CMOS 5V• TTL otvoreni kolektor• CMOS otvoreni drejn• Mehanički releji• Bipolarni tranzistori• MOSFET• D/A konvertor

Page 63: VTA-URS: MIKROKONTROLER Nov

63Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Primer 1:

Zadatak je da se pritiskom na taster na ulazu RB0 aktivira izlaz RA1 (LED 2 svetli) koji ostaje aktiviran onoliko dugo koliko je aktiviran RB0. Kada je RB0 neaktivan, deaktivira se izlaz RA1 i aktivira se izlaz RA0 (LED 1 trajno svetli).

Minimalna HW konfiguracija HW konfiguracija za postavljeni zadatak

Page 64: VTA-URS: MIKROKONTROLER Nov

64Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

;taster.asm (naziv fajla u kome se cuva asemblerski kod);Bgd., 11.2005. c PBPetrovic KIBERNETIKA / Masinski fakultet univerziteta u Beogradu

;definicija procesora koji se koristilist p=16f84include<p16f84.inc>

;konfigurisanje porta A, port B je uvek inicijalno setovan kao ulaznibcf STATUS, RP0 ;selekcija banke 0clrf PORTA ;inicijalizacija registra PORTAbsf STATUS, RP0 ;selekcija banke 1movlw 0xFC ;upis konstante FCh za setovanje porta A

;FCh = 11111100bmovwf TRISA ;PORTA<1:0> = izlaz, PORTA<7:3> = ulaz

;inicijalizacija portova zavrsena

bsf PORTA,0 ;setovanje RA0 (LED1 svetli)

petlja ;glavna petljabtfss PORTB,0 ;cekanje da se RB0 taster aktivira !!!!!goto petlja ;NEbcf PORTA,0 ;resetovanje RA0 (LED1 NE svetli) bsf PORTA,1 ;setovanje RA1 (LED2 svetli)

cekajbtfsc PORTB,0 ;cekanje da se taster RB0 dekativira !!!!!goto cekaj ;NEbsf PORTA,0 ;setovanje RA0 (LED1 svetli)bcf PORTA,1 ;setovanje RA1 (LED2 NE svetli)goto petlja ;povratak na pocetak glavne petljeend ;kraj instrukcijske liste

Page 65: VTA-URS: MIKROKONTROLER Nov

65Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Svi karakteri koji slede iza znaka ‘ ; ‘ se ne razmatraju kod prevodjenja asemblerskog u mašinski kod.

U zaglavlju se navode osnovni podaci vezani za konkretnu aplikaciju. Zatim se navodi definicija mikrokontrolera za koji se razvija aplikacija. list, including, ..., target su asemblerske instrukcije koje su namenjene za definisanje mikrokontrolera.

Sledeći korak je konfigurisanje portova. Port B je inicijalno uvek konfigurisan kao ulazni i zato se on ostavlja u stanju u kome se nalazi. Kod porta B neophodno je setovati kanal RA0 i RA1 kao izlazne, dok ostali kanali mogu da ostanu u inicijalnom stanju (ulazi). Ovim se omogućava da ulazna električna kola portova A i B učitaju signal sa tastera na RB0 i posalju TTL signal na izlaze RA0 i RA1 za aktiviranje LED dioda priključenih na njih.

Setovanje porta A zahteva rad sa dva sistemska registra (SFR): PORTA koji se nalazi u banci 0 (adresa 05h) i TRISA koji se nalazi u banci 1 (adresa 85h). Zato se prvo instrukcijom bcf STATUS, RP0 bira banka 0 a zatim instrukcijom clrf PORTA resetuje kompletan sadržaj. Zatim se instrukcijom bsf STATUS, RP0 setuje bit RP0 čime se otvara pristup banci 1. Ovim je omogućeno da se pristupi konfiguracionom bajtu TRISA u koji treba da se upiše odgovarajući sadržaj. Sadržaj koji se upisuje mora prethodno da se upiše u radni registar W i to se čini instrukcijom movlw 0xFC – upis heksadecimalnog broja FC (0x koji prethodi označava heksadecimalni format). Heksadecimalno FC u binarnom obliku glasi 11111100, što znači da će bit koji korespondira RA0 i RA1 biti resetovan, što dalje znači da će smer toka podataka na tim pinovima biti od mikrokontrolera ka okruženju – izlaz. Ovo se ostvaruje prenosom sadržaja radnog registra W u TRISA registar instrukcijom movwf TRISA. Ovim su svi portovi konfigurisani prema potrebama konkretne aplikacije.

Instrukcijom bsf PORTA, 0 setuje se bit (bit-set-file) bit 0 na portu A, što za posledicu ima aktiviranje LED 1.

Page 66: VTA-URS: MIKROKONTROLER Nov

66Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Dalje se zahteva realizacija postavljenog zadatka koja se može ostvariti primenom beskonačne petlje koja neprekidno skenira promenu stanja na RB0 pinu porta B.

Početak petlje se označava labelom kojoj se dodeljuje proizvoljno alfanumeički ime, u ovom slučaju to je petlja. Instrukcijom btfss PORTB,0 se ispituje stanje na RB0. Instrukcija btfss ima značenje: bit-test-file-skip-if-set. Dakle, ukoliko je bit RB0 resetovan (taster nije pritisnut) izvršiće se naredna instrukcija: goto petlja, u suprotnom ona se preskače i izvršava se instrukcija bsf PORTA,1 čime se setuje RA1 odnosno, bit 1 porta A, što za posledicu ima da LED 2 počne da svetli. Istovremeno se instrukcijom bcf PORTA,0 resetuje RA0 i time isključuje LED 1.

Zatim se ulazi u narednu pod petlju kojom se proverava da li je taster isključen. Za ovo se koristi instrukcija btfsc PORTB,0 odnosno, bit-test-file-skip-if-clear. Ukoliko je RB0 setovan izvršava se naredna instrukcija goto cekaj, koja (clear) vraća programski brojač na labelu čekaj. U suprotnom, kada je RB0 resetovan (clear) izvršava se instrukcija bsf PORTA,0 koja uključuje LED 1 i instrukcija bcf PORTA,1 koja isključuje LED 2.

Prethodnim se završava glavna programska petlja što se ostvaruje instrukcijom goto petlja.

Kompletan programski kod se završava instrukcijom end.

Page 67: VTA-URS: MIKROKONTROLER Nov

67Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Program napisan u asembleru treba prevesti u mašinski kod i zatim ga preneti u programsku memoriju mikrokontrolera.

MICROCHIP nudi korisnicima svojih mikrokontrolera MPASM Assembler univerzalni programski paket za generisanje mašinskog koda za sve PIC mikrokontrolere (cross-assembler) koji je namenjen za rad u IBM PC kompatibilnim računarima.

Programiranje u asembleru je vrlo delikatan zadatak. Rad u asembleru podrazumeva način razmišljanja koji je vrlo blizak radu aritmetičke jedinice i periferijskih modula, što se u potpunosti razlikuje od rada sa višim programskim jezicima. Realizacija skoro svih logičkih funkcija zahteva primenu primitivnih mikrologičkih operacija direktno uslovljenih konstrukcijom aritmetičko logičke jedinice. Viši programski jezici su značajno bliži praktičnom razmišljanju koje ljudski mozak koristi u svakodnevnim aktivnostima. Ipak, pored očiglednih teškoća, rad u asembleru pruža i očigledne prednosti kroz potpun uvid u sve resurse mikroprocesora i modula koji ga okružuju, čime se omogućava optimalno korišćenje raspoloživog mikroračunarskog HW i kodiranje kompaktnih i računski efikasnih programa.

Postupak kreiranja asemblerskog koda može se značajno pojednostaviti primenom viših programskih jezika, koji pre svega vode računa o zadovoljenju funkcija definisanih projektnim zadatkom, a manje o HW aspektima. Prevodjenjem ovakvog koda u njemu ekvivalentan asemblerski kod i dalje, generisanje mašinskog koda iz tako nastalog asemblerskog koda, završava se proces razvoja programa kojim se programira rad konkretnog mikrokontrolera. Primer ovakvog jezika je MicroPASCAL ili MicroC firme Mikroelektronika iz Beograda. Ovakvi programski paketi predstavljaju jedno kompletno razvojno okruženje, koje sem kodiranja, omogućava proveru (debagiranje), emulaciju, dokumentovanje i upisivane proizvedenog mašinskog koda u memoriju mikrokontrolera.

Page 68: VTA-URS: MIKROKONTROLER Nov

68Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Primer 2:

Zadatak je da se pomnože dve konstante a = 10 i b = 11 i da se rezultat smesti na adresu c.

PIC16F84A je RISC mikrokontroler koji u svojoj listi instrukcija nema operaciju množenja. Da bi se rešio postavljeni zadatak neophodno je da se ova operacija realizuje preko posebne procedure koja će primenom principa binarnog množenja pomoću operacije sabiranja realizovati nedostajuću operaciju.

Binarno množenje se najčešće realizuje primenom operacije višestrukog sabiranja. Množenik se redom množi svakom cifrom množioca posebno, pa se dobijeni parcijalni proizvodi sabiraju. Pri tome se lokalne sume pomeraju u zavisnosti od pozicije cifara množioca.

Množenje binarnog broja sa množiocem koji ima samo jednu cifru je vrlo jednostavno. Logički model ovog postupka se može realizovati samo pomoću I operatora. Očigledno je da su moguća samo dva slučaja: množenje nulom – rezultat je nula i množenje jedinicom – rezultat je množenik.

Binarno množenje:

1 0 1 0 : množenik

x 1 0 1 1 : množilac

----------------------------------------------

1 0 1 0

1 0 1 0

0 0 0 0

1 0 1 0

----------------------------------------------

1 1 0 1 1 1 0 : proizvod

A3 A2 A1 A0

P3 P2 P1 P0

B

Page 69: VTA-URS: MIKROKONTROLER Nov

69Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Prethodno navedeni postupak se ne primenjuje kod mašinskog množenja. Formiranje svih parcijalnih proizvoda i njihovo sumiranje na kraju zahteva veliki broj pomoćnih registara. Alternativno rešenje je da se posle svakog parcijalnog množenja dobijeni proizvod sabere sa stanjem u izlaznom registru (akumulator). Za realizaciju ovakvog postupka neophodno je da registar B i akumulator budu pomerački registri i da sabirač može naizmenično da upisuje i učitava sadržaj akumulatora.

A3 A2 A1 A0

P3 P2 P1 P0

BnB3 B2 B1 B0

Q7 Q6 Q5 Q4

SABIRAČ

Q3 Q2 Q1 Q0P

množenik

množilac

prenos

akumulator

CLK

CLK

niža tetrada

Page 70: VTA-URS: MIKROKONTROLER Nov

70Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

množenik (A) množilac (B)0 0 0 0 Qo početno stanje akumulatora

1 0 1 0 x 1 0 1 1 =

c=1 1 0 1 0 P1 prvi parcijalni proizvodprepis P1 u akumulator 1 0 1 0 Q1

c=1 1 0 1 0 P2 drugi parcijalni proizvodpomeraj akumulatora udesno 1 0 1 0 Q1 pomerenosuma Q1 pomereno i P2 1 1 1 1 0 Q2

c=0 pomeraj akumulatora udesno 1 1 1 1 0 Q2 pomereno = Q3c=1 1 0 1 0 P4

pomeraj akumulatora udesno 1 1 1 1 0 Q3 pomerenosuma Q3 pomereno i P4 1 1 0 1 1 1 0 Q4 proizvod A * B 1 1 0 1 1 1 0 Q4

algoritam:

resetuje se Q, podešava se SW brojač na n (dužina reči procesora)početak petlje:

pomera se množilac udesno kroz carry sistemsku adresu; dalje se ispituje c i:1: kada je bit c (carry) = 0 samo se pomera sadržaj Q2: kada je bit c (carry) = 1 formira se parcijalni proizvod, pomera se

sadržaj Q i sabira parcijalni proizvod i pomereno Qdekrementira se brojačispituje se tekuca vrednost brojača; ako je jednaka 0 preskače se sledeca instrukcija

idi na početak petljekraj

Page 71: VTA-URS: MIKROKONTROLER Nov

71Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

;procedura za mnozenje dva neoznacena brojamath_mul_8x8_u:

MOVLW 8 ;upis broja cifara u radni registarBCF STATUS,RP1 ;biranje mem banke 0BCF STATUS,RP0MOVWF Brojac ;upis broja cifara u RAM adresu brojaca

lab1 RRF Y_1,F ;rotiranje mnozioca udesno kroz C (Carry) ;i upis rezultata u istu RAM adresu

BTFSC STATUS,C ;ispitivanje CARRY bitaGOTO lab2 ;C=1, skok na lab2DECFSZ Brojac,f ;C=0, dekrementiranje brojaca

;ako brojac=0 preskace se sled. instr.GOTO lab1CLRF X_1,F ;brisanje mnozenikaRETLW 0 ;povratak iz procedure sa W = 0

lab2 BCF STATUS,C ;brisanje C bita u STATUS registruGOTO lab3

lab4 RRF Y_1,F ;rotiranje mnozioca udesno kroz CBTFSC STATUS,C ;ispitivanje C bitaADDWF X_1,F ;C=1, sabiranje W i mnozenika i upis

;rezultata u istu RAM adresulab3 RRF X_1,F ;rotiranje mnozenika udesno kroz C

RRF X_2,F ;rotiranje pomocnog reg. udesno kroz CDECFSZ Brojac,F ;dekrementiranje brojacaGOTO lab4RETURN ;kraj procedure mnozenja

Page 72: VTA-URS: MIKROKONTROLER Nov

72Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

; glavna proceduramain:

MOVLW 10 ;upis mnozenika u radni registarBCF STATUS,RP1 ;izbor banke 0BCF STATUS,RP0MOVWF a ;upis mnozenika u dodeljenu RAM adresuMOVLW 11 ;upis mnozioca u radni registarMOVWF b ;upis mnozioca u dodeljenu RAM adresuCLRF Y_2 ;brisanje pomocne RAM adreseMOVF b,W ;upis mnozioca u radni registar WMOVWF Y_1 ;upis mnozioca u pomocnu RAM adresuCLRF X_2 ;brisanje pomocne RAM adreseMOVF a,W ;upis mnozenika u W MOVWF X_1 ;upis mnozenika u pomoćnu adresu CALL Math_Mul_8X8_U ;poziv procedure za mnozenjeMOVF X_2,W ;upis rezultata u WMOVWF c ;upis rezultata u dodeljenu RAM adresuGOTO $ ;beskonacna petljaEND

; kraj glavne procedure

Page 73: VTA-URS: MIKROKONTROLER Nov

73Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Primer 3:

Zadatak je da se pritiskom na taster na ulazu RB0 aktivira izlaz RA1 (LED 2 svetli) koji ostaje aktiviran onoliko dugo koliko je aktiviran RB0. Kada se RB0 aktivira n = 10 putatrajno se aktivira izlaz RA0 (LED 1 trajno svetli).

Pretpostavlja se da taster priključen na ulaz RB0 funkcioniše kao idealan taster, bez poskakivanja kontakata (bounce free)

Page 74: VTA-URS: MIKROKONTROLER Nov

74Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

;taster_1.asm (naziv fajla u kome se cuva izvorni asemblerski kod);Bgd., 11.2005. c PBPetrovic Masinski fakultet univerziteta u Beogradu

;definicija procesora koji se koristilist p=16f84include<p16f84.inc>

;===================================================================================;definicija u/i kanala;ulazi:;RB0 taster normalno otvoren (pritisnut = 1, otpusten = 0)

;izlazi:;RA0 led dioda 1;RA1 led dioda 2;===================================================================================;definicija promenljivih – simbolicko oznacavanje adresa koje se koriste u programubrojac equ 0x0C ;adresa na kojoj se cuva tekuce stanje brojacan equ 0x0A ;adresa na kojoj se cuva zadata vrednost n=10

;priprema porta A, port B je uvek inicijalno setovan kao ulaznibcf STATUS, RP0 ;selekcija banke 0clrf PORTA ;inicijalizacija registra PORTAbsf STATUS, RP0 ;selekcija banke 1movlw 0x9C ;upis konstante 9Ch za setovanje porta A

;9Ch = 10011100bmovwf TRISA ;PORTA<1:0> = izlaz, PORTA<7:3> = ulaz

;inicijalizacija brojacamovlw n ;upisivanje n u radni registar ALUmovwf brojac ;inicijalizacija tekuceg stanja brojaca na n

;inicijalizacija portova i brojaca zavrsena

Page 75: VTA-URS: MIKROKONTROLER Nov

75Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

;glavna petljapetlja

btfss PORTB,0 ;cekanje da se RB0 taster aktivira !!!!!goto petlja ;NEbsf PORTA,1 ;setovanje RA1 (LED2 svetli)

cekajbtfsc PORTB,0 ;cekanje da se taster RB0 dekativira !!!!!goto cekaj ;NEbsf PORTA,0 ;setovanje RA0 (LED1 svetli)

decfzs brojac, 1 ;dekrementiranje brojacagoto petlja ;povratak na pocetak gl. petlje ako brojac > 0

bsf PORTA,1 ;setovanje RA1 (LED2 svetli)

goto petlja ;povratak na pocetak glavne petljeend ;kraj instrukcijske liste

Page 76: VTA-URS: MIKROKONTROLER Nov

76Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Prekidi

Kada se mikrokontroler primenjuje na zadacima koji zahtevaju rad u realnom vremenu, tada je nužno da postoji mogućnost prekida izvršavanja programa u bilo kom trenutku i usmerenje na izvršavanje skupa instrukcija koje su povezane sa nekim spoljašnjim procesom koji se odvija u realnom fizičkom svetu. Po pravilu, realizacija zadatka upravljanja je najdirektnije povezana sa promenama na fizičkom objektu ili fizičkom procesu, što za posledicu ima zahtev prekida tekuće aktivnosti na izvršavanju programa i trenutni prelaz na izvršavanje skupa instrukcija koje zahtevaju neodložnu reakciju upravljačkog sistema. Na primer, inkrementalni enkoder pomoću koga se meri ugaoni ili linijski pomeraj, zahteva neodložnu reakciju brojača mikrokontrolera na dolazeći signal, jer u suprotnom, fizički pomeraj neće biti registrovan, što će neizostavno dovesti do trajnog gubitka informacije i time pojave greške.

Mikrokontroler PIC16F84 poseduje četiri različite vrste prekida koji omogućavaju njegovu efikasnu primenu za rad u realnom vremenu:

• Spoljašnji prekid koji se aktivira preko RB0/INT pina na portu B • Prekid kod prekoračenja kapaciteta časovnika TMR0 • Prekidi povezani sa portom B (RB7:RB4)• Prekid povezan sa EEPROM memorijom.

Sistemski registar specijalnih funkcija (SFR) sa oznakom INTICON rezervisan je za čuvanje pojedinih bitova kojima se dojavljuje prekid. U ovom registru se čuvaju individualne i globalne dozvole za bitove prekida.

Page 77: VTA-URS: MIKROKONTROLER Nov

77Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

INT prekid

Spoljašnji prekid na pinu RB0/INT porta B se ivično aktivira i to:

• na rastuću ivicu kada je setovan INTEDG bit (OPTION_REG<6>),• na opadajuću ivicu kada je INTEDG bit resetovan.

Kada se validna ivica signala pojavi na RB0/INT pinu, setuje se INTF bit (INTCON<1>). Ovaj prekid se može ukinuti kada se resetuje kontrolni bit INTE (INTCON<4>). Fleg bit INTF mora se resetovati softverski pre nego što se ponovo dozvoli ovaj prekid.

INT prekid može da aktivira procesor koji se nalazi u SLEEP modu samo ako je INTE bit setovan pre nego što je procesor prešao u SLEEP stanje. Stanje GIE bita definiše gde će će procesor nastaviti rad kada se probudi.

Page 78: VTA-URS: MIKROKONTROLER Nov

78Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

TMR0 prekid

Kod prekoračenja brojača časovnika TMR0 (FFh ® 00h) setuje se bit T0IF (INTCON<2>). Ovaj prekid se može kontrolisati (enabled/disabled) setovanjem ili resetovanjem kontrolnog bita T0IE (INTCON<5>).

Pomoću ovog prekida moguće je sintetisati oscilatore različite frekvencije.

Page 79: VTA-URS: MIKROKONTROLER Nov

79Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

PORTB prekid – prekid spoljasnjim signalom

Promena ulaznog signala na PORTB<7:4> setuje bit RBIF (INTCON<0>). Ovaj prekid se može kontrolisati (enabled/disabled) setovanjem ili resetovanjem kontrolnog bita RBIE (INTCON<3>).

Napomena: Da bi se prepoznala promena na ulaznom pinu porta B, impuls mora da poseduje najmanje širinu TCY.

Page 80: VTA-URS: MIKROKONTROLER Nov

80Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

EEPROM prekid

Kod završetka ciklusa upisvanja podataka u EEPROM memoriju setuje se bit EEIF (EECON1<4>). Ovaj prekid se može kontrolisati (enabled/disabled) setovanjem ili resetovanjem kontrolnog bita EEIE (INTCON<6>).

Page 81: VTA-URS: MIKROKONTROLER Nov

81Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Logika prekida i sistemski INTICON registar PIC16F84A

Page 82: VTA-URS: MIKROKONTROLER Nov

82Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

a 34

periferijski uredjaji i dodatne funkcije

Page 83: VTA-URS: MIKROKONTROLER Nov

83Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Bazna klasa: 8 bitni mikrokontroleri sa 12 bitnom instrukcijom, pakovanje sa 6 do 12 pinova, niska cena, izuzetno mala potrošnja (idealna za baterijske uredjaje).

Srednja klasa: 8 bitni mikrokontroleri sa 14 bitnom instrukcijom, pakovanje sa 8 do 64 pinova, širok izbor perifernih analognih i digitalnih modula, 5 MIPS.

Visoka klasa: 8 i 16 bitna arhitektura, 16 bitna instrukcija, pakovanje sa 18 do 80 pinova, instrukcija množenja, linearna memorija do 2 Mb, HW 8x8 množač, 10 MIPS

Familije:mikrokontroleri PIC10, PIC12, PIC16, PIC18 i PIC24 i dsPIC mikrokontroler sa ugradjenim aritmetičkim DSP (Digital Signal Processing) performansama (30 MIPS)

Page 84: VTA-URS: MIKROKONTROLER Nov

84Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Različiti funkcionalni moduli okružuju procesor mikrokontrolera. Svi moduli su izvedeni na jedinstvenom Si kristalu, čime se obezbedjuje izuzetno kompaktan sklop – integrisani mikroračunar. Različite konfiguracije funkcionalnih modula omogućavaju optimalnu prilagodljivost aplikaciji – fleksibilna arhitektura.

Page 85: VTA-URS: MIKROKONTROLER Nov

85Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 86: VTA-URS: MIKROKONTROLER Nov

86Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Časovnik / brojač

PIC16F84 poseduje jedan modul časovnika/brojača koji nosi oznaku TIMER0. TIMER0 poseduje sledeća svojstva:

• Kapacitet 8-bita• Može da se čita i upisuje• Izbor unutrašnjeg ili spoljašnjeg CLK sigala• Izbor ivice kod spoljasnjeg CLK signala• 8-bitno softversko preskaliranje• Prekid kod prekoračenja kapaciteta kod FFh na 00h.

TIMER0 radi kao časovnik ili kao brojač. Izbor moda rada vrši se setovanjem ili resetovanjem kontrolnog bita TOCS (OPTION_REG<5>). Kada je TIMER0 u brojačkom modu (TOCS=1), kontrolnim bitom T0SE (OPTION_REG<4>) vrši se izbor ivice. Kada je TOSE=0 brojač reaguje na uzlaznu ivicu.Kontrolni bit PSA (OPTION_REG<3>) i PS2:PS0 (OPTION_REG<2:0>) su povezani sa funkcijom preskalera, odnosno delitelja osnovne frekvencije časovnika.

Page 87: VTA-URS: MIKROKONTROLER Nov

87Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Funkcija delitelja učestanosti se ekskluzivno deli izmedju TIMER0 i Watchdog časovnika, koji služi za kontrolu izvršavanja instrukcijskog ciklusa. Kada je kontrolni bit PSA (OPTION_REG<3>) resetovan, preskaler je dodeljen TIMER0 modulu.

Deljenje radne učestanosti časovnika ostvaruje se 8-bitnim deliteljem (asinhroni brojač) koji je kontrolisan bitovima PS2:PS0 (OPTION_REG<2:0>). Setovanjem različitih kombinacija ovih bitova dobijaju se sledeći faktori deljenja osnovne frekvencije izvora:

----------------------------------------------------PS2 PS1 PS0 Faktor deljenja----------------------------------------------------0 0 0 1 : 20 0 1 1 : 40 1 0 1 : 80 1 1 1 : 161 0 0 1 : 321 0 1 1 : 641 1 0 1 : 1281 1 1 1 : 256----------------------------------------------------

Kada preskaler nije selektovan (PSA=0) učestanost na izlazu TIMER0 modula je jednaka učestanosti izvora.

Page 88: VTA-URS: MIKROKONTROLER Nov

88Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Tekuća vrednost TIMER0 modula čita se na adresi 01h SFR registra koji nosi sistemski naziv TMR0.

TIMER0 prekid se gneriše kada dodje do prekoračenja kapaciteta TMR0 registra (prelaz sa FFh na 00h). Ovo prekoračenje setuje bit T0IF (INTCON<2>). Ovaj prekid može da bude maskiran resetovanjem bita T0IE (INTCON<5>).

TIMER0 prekid ne može da prevede CPU iz SLEEP stanja u radno stanje, zbog toga što je TIMER0 u SLEEP modu isključen.

Kada se modul TIMER0 pobudjuje spoljašnjim oscilatorom, preko RA4/TOCKI pina porta A, neophodna je sinhronizacija faze ovog izvora sa unutrašnjim oscilatorom takta procesora Fosc/4.

Pregled SFR registara povezanih sa modulom TIMER0:

Page 89: VTA-URS: MIKROKONTROLER Nov

89Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Komunikacija i umrežavanje

Page 90: VTA-URS: MIKROKONTROLER Nov

90Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Moduli za komunikaciju - umrežavanje

Razmena podataka izmedju digitalnih uredjaja ili digitalnih modula. Izuzetno značajna funkcija MCU.

OSNOVNO o digitalnoj komunikaciji:

A Vrsta komunikacionog kanalaa) Serijska komunikacija (jedan kanal - jedan bit)b) Paralelna komunikacija (više paralelizovanih

kanala i simultani prenos većeg broja bitova istovremeno)

B Praktična realizacija komunikacionog kanalaa) Hardverski nivo – fizička digitalna kola koja

ispunjavaju odredjene fizičke uslove (naponi i slično)

b) Softverski nivo – logički uslovi razmene podataka kroz fizički kompatibilni hardver –komunikacioni protokoli

c) STANDARDI i ARHITEKTURE

Page 91: VTA-URS: MIKROKONTROLER Nov

91Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

MCU

Tx

Rx

CLKBoudRate Generator

Configuration + Status1. logičke provere2. logička kontrola prenosa3. format4. mode of operation

Kanal za slanje podataka

Kanal za prijem podataka

Kanal za sinhronizaciju prenosa

Kanal za kontrolne funkcije

Data registers

OKRUŽENJEdigitalni uredjaji / digitalni moduli

Page 92: VTA-URS: MIKROKONTROLER Nov

92Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

PIC mikrokontroleri poseduju hardverske module koji su specijalizovani za razmenu informacija neposrednom serijskom komunikacijom sa:

a) drugim mikrokontrolerima, b) kompjuterima i sličnim digitalnim periferijskim uredjajima, i c) logičkim kolima koja podržavaju serijski način razmene informacija.

Dva hardverska modula:a) MSSP modulb) USART modul

Dodavanjem eksternih hardverskih adaptera i primenom odgovarajućih softverskih protokola, pomoću ova dva modula može se ostvariti serijska komunikacija koja zadovoljava širok spektar industrijskih standarda, na primer:

a) RS232 – primenjuje se specijalizovani sklop pod nazivom MAX232 (eksterno logičkog kolo integrisano u jedan čip);

b) RS485 – primenjuje se specijalizovani sklop pod nazivom MAX485 / Modbusc) CAN bus (Controller Area Network) – primenjuje se MCP2551 CAN transiverd) USB, ETHERNET / TCP/IP (Transmission Control Protocol and the Internet

Protocol), ...

Page 93: VTA-URS: MIKROKONTROLER Nov

93Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

MSSP modul

MSSP modul (Master Synchronous Serial Port module) je sklop serijskog interfejsa koji jenamenjen za ostvarivanje JEDNOSTAVNE ali vrlo EFIKASNE sinhrone komunikacije sadrugim mikrokontrolerima ili specijalnim digitalnim modulima koji u svom sklopu sadržeMSSP modul. Ti digitalni moduli su na primer: serijski EEPROM, pomerački registri,drajveri displeja, A/D konvertori, specijalni moduli za kondicioniranje senzorskih signala iliza upravljanje radom aktuatora i slično.

MSSP modul može da funkcioniše u jednom od dva moda:

• Serial Peripheral Interface - SPI

• Inter-Integrated Circuit - I2C

Page 94: VTA-URS: MIKROKONTROLER Nov

94Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Blok šema MSSP i upravljački registri

MSSP modul poseduje tri namenskaregistra pomoću kojih se upravlja njegovomfunkcijom. To su:

• Data registar – SSPBUF• Status registar – SSPSTAT

• Dva kontrolna registra – SSPCON i SSPCON2.

Korišćenje ovih registara zavisi od moda u kojem radi MSSP registar, SPI ili I2C mod.

Page 95: VTA-URS: MIKROKONTROLER Nov

Sistemski registri SPI modula

95Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 96: VTA-URS: MIKROKONTROLER Nov

96Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 97: VTA-URS: MIKROKONTROLER Nov

97Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 98: VTA-URS: MIKROKONTROLER Nov

98Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

SSPOV means “Synchronous Serial Port OVerflow” and is set by the microcontroller whenever there is an overflow error.An overflow error occurs whenever an SPI transfer finishes, but the previous data had not been read from the SSPBUF.If SSPOV is set, it must be cleared by the user program. The user program should check to ensure SSPOV remains clear. This is part of good error checking in program design.Note, data in the SSPBUF will not be updated until the overflow condition is cleared.

Page 99: VTA-URS: MIKROKONTROLER Nov

99Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

SPI mod rada MSSPSPI (Serial Peripheral Interface) mod rada omogućava da se osmobitna reč predaje i prima sinhrono. Da bi se ostvarila komunikacija, u opštem slučaju potrebna su tri pina:

• Serial Data Out (SDO) – RC5/SDO• Serial Data In (SDI) – RC4/SDI/SDA• Serial Clock (SCK) – RC3/SCK/SCL

Kod složenih mreža, koristi se četvrti pin za izbor slejva:

• Slave Select (SS) – RA5/AN4/SS/C2OUT

Vrlo brza razmena podataka (10 MHz), potpuna dupleks i sinhrona razmena podataka, nema protokola (korisnik može da razvije sopstveni protokol)

Page 100: VTA-URS: MIKROKONTROLER Nov

100Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

MSSP se sastoji od transmit/receive pomeračkog registra (SSPSR) i bafer registra(SSPBUF). SSPSR pomera podatke sa ulaza i izlaza uredjaja, MSb se pomera prvi. TheSSPBUF čuva podatke koji su preneti u SSPSR, prenos se ostvaruje kada postojiodgovarajući uslov. Uslov je da je paket od osam bitova prebačen u SSPSR register.Posle prenosa sadržaja iz SSPSR u SSPBUF registar bit BF (SSPSTAT<0>) se setuje najedinicu, i bit prekida SSPIF se setuje takodje. Ovim bitovima se dalje dozvoljava prenosnarednog bajta, pre nego što se izvrši čitanje sadržaja SSPBUF registra. Bilo koji pokušajupisa u SSPBUF register se ignoriše u toku faze prenosa, a ukoliko je bilo pokušajaWCOL (SSPCON<7>) se setuje na jedinicu. Korisnički softver mora da obriše WCOL bit.Kada korisnički softver očekuje prijem validnih podataka (ne lažnih!), SSPBUF treba dabude pročitan pre nego što se sledeći bajt u njega upiše. Buffer Full bit, BF(SSPSTAT<0>), dojavljuje kada je SSPBUF upisan sa primljenim podacima (transmissionis complete). Kada je SSPBUF pročitan BF bit se briše. Ovi podaci mogu da budunepotrebni ukoliko je SPI modul samo predajnik (transmitter). Načelno, MSSP prekid sekoristi da dojavi kada je transmission/reception sekvenca kompletirana.

Page 101: VTA-URS: MIKROKONTROLER Nov

Minimalna konfiguracija SPI: master – slejv komunikacija. Komunikacija se ostvarujeizmedju dva uredjaja koji poseduju SPI interfejs, tako što jedan uredjaj ima master status,a drugi slave status. Adresiranje nije potrebno. Mogući su sledeći modovi funkcionisanja:

a) Master šalje podatke slejvu a slejv ih memoriše, master ne memoriše podatke koje dobija od slejva;

b) Master šalje lažne podatke slejvu, a slejv šalje podatke masteru koje master memoriše – master čita podatke iz slejva.

c) Master šalje podatke slejvu, a slejv šalje svoje podatke masteru – simultani bidirekcioni prenos, bajt po bajt.

101Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Master Slave

Page 102: VTA-URS: MIKROKONTROLER Nov

Složena komunikaciona mreža sa dva ili više slejvova. Potrebno je adresiranje slejvovapreko CS kanala (Chip Select) i SS kanala (Slave Select) i

102Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 103: VTA-URS: MIKROKONTROLER Nov

Složena komunikaciona mreža sa dva ili više slejvova u zvezda konfiguraciji.Jednostavan hardver koji kompletnu funkcionalnost ostvaruje sa samo 3 kanala /komunikacija se efektivno svodi na prostu master-slejv konfiguraciju

103Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Prvi bajt koji šalje master učitava se u prvi slejv uredjaj; Drugi bajt koji šalje master učitava se u prvi slejv a prvi bajt se iz prvog slejva prenosi u drugi slejv. Treći bajt koji šalje maser učitava se u prvi slejv uredjaj, prvi bajt se istovremeno prenosi u treći slejv, a drugi bajt u drugi slejv uredjaj. Ovim se ciklus slanja po jednog bajta svim slejvovima okončan. Istovremeno, cirkularnim tokom iz trećeg slejva će ka masteru biti prosledjena tri bajta koji su sadržali pomerački registri slejvova. Ovim se ostvaruje puna bidirekciona komunikacija bez prozivanja slejvova. Uslov je da svi uredjaji rade na sinhronizovanom taktu!

Page 104: VTA-URS: MIKROKONTROLER Nov

104Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 105: VTA-URS: MIKROKONTROLER Nov

petlja btfss SSPSTAT, BF ;Čekanje prenosa podataka kroz pomeračke ;registre - prenos kompletiran?

goto petlja ;Ne

;ČITANJE bafer registra = čitanje primljenog bajtamovfw SSPBUF ;W registar = sadržaj SSPBUFmovwf RXDATA ;Sacuvaj u korisnicki RAM registar ukoliko su

;podaci validni (ne lažni, lazne podatke salje ;master kada vrsi samo prijem od slejva)

;UPIS u bafer registar = slanje bajtamovfw TXDATA ;W reg = sadrzaj TXDATAmovwf SSPBUF ;Novi podaci za prenos

;Odmah po okoncanju upisa SPI bafer retistar, ;vrši se automatski prenos bajta u pomeracki ;registar i aktivira logicko kolo koje generiše ;osam taktova za cirkularni prenos

Primer koda kojim se upisuje bajt u SSPBUF za prenos.

SSPSR nije direktno pristupan za čitanje ili pisanje. Njemu se indirektno pristupa čitanjem ili pisanjem u SSPBUF registar.

105Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Page 106: VTA-URS: MIKROKONTROLER Nov

106Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

; SPItstM0.asm; MASTER Rev 0; Demonstrates SPI connection between 2 PICmicro devices; Master sends data (a counter), Slave receives and outputs to LEDs onPORTB

list p=16F876#include "p16F876.inc"

Ctr0 EQU 0x20 ; Counter variable - sent to SPIDly0 EQU 0x21 ; Delay Variable (low byte)Dly1 EQU 0x22 ; Delay Variable (high byte)#define CS 0x02 ; PORTA,2

ORG 0 ; Begin Code at location 0nop ; FOR ICD

; Set up the SPI SupportBANKSEL TRISA ; BANK 1movlw 0x00 ; Set PORTA asmovwf TRISA ; all Outputsmovlw 0x06 ; Turn off A/Dmovwf ADCON1 ; so PORTA can be used

; Set up the SPI PortBANKSEL TRISC ; BANK 1movlw 0x10 ; SCK is output (Master), SDI is input,movwf TRISC ; SDO is output, all others outputmovlw 0x40 ; Mode 1,1 SPI, middle of outputmovwf SSPSTAT ; time samplingBANKSEL SSPCON ; BANK 0movlw 0x31 ; Mode 1,1 SPI Master Mode, 1/16 Tosc bit

timemovwf SSPCON ; SSP is on

Page 107: VTA-URS: MIKROKONTROLER Nov

107Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Send_DT bcf PORTA,CS ; Enable Chip Select Output (low)

movf Ctr0,W ; Get Ctr (Counter Value) in Wmovwf SSPBUF ; put in SSPBUFBANKSEL SSPSTAT ; BANK 1

Char1 btfss SSPSTAT,BF ; Data transfer complete? (Buffer Full?)goto Char1 ; if not, check againBANKSEL SSPBUF ; BANK0movf SSPBUF,W ; Get Data from SSPBUF; ; Throw it away

bsf PORTA,CS ; Disable Chip Select Output (high)

Update_Test_Counterincf Ctr0,F ; Increment counter variable

Delay movlw 0x01 ; Simple Delay loopmovwf Dly1 ; |movlw 0x0F ; |movwf Dly0 ; |

DlyLoop decfsz Dly0,F ; |goto DlyLoop ; |decfsz Dly1,F ; |goto DlyLoop ; |; Done Delay ; \_/

DoAgain goto Send_DT ; Done, Send Next Byte.

Page 108: VTA-URS: MIKROKONTROLER Nov

108Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

UART / USART

USART (Universal Synchronous Asynchronous Receiver Transmitter – univerzalni sinhrono-asinhroni primopredajnik) modul je jedan od serijskih u/i modula. USART modul se često naziva serijski komunikacioni interfejs SCI.

Osnovne odlike:

• Rad u punom dupleksu (može da prima i šalje podatke istovremeno!)• Asinroni i sinhroni mod rada• Visokorezolutni Boud Rate (mimialna greška u prenosu)• 5 do 9 bitova forma, 1 ili 2 stop bita, generator parnosti i provera• 3 generatora prekida (Tx Complete, Rx Complete, Tx Data Register Empty)

USART može da se konfiguriše kao potpuni dupleks asinhroni sistem koji može da komunicira sa periferijskim uredjajima kao što su CRT ili PC računar, ili može da bude konfigurisan kao poludupleks sinhroni sistem koji može da komuicira sa periferijskim uredjajima kao što su A/D ili D/A integrisana kola, serijski EEPROM itd.

USART može da se konfiguriše za sledeće modove rada:• Asinhroni (potpuni dupleks)• Sinhroni - Master (polu dupleks)• Sinhroni - Slave (polu dupleks)

SPEN bit (RCSTA<7>), i TRIS sistemski bitovi, trebaju da budu setovani da bi se konfigurisali TX/CK i RX/DT pinovi USART kola.

Page 109: VTA-URS: MIKROKONTROLER Nov

109Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

USART asinhroni PREDAJNIK

U ovom modu USART koristi standardni nonreturn-to-zero (NRZ) format (jedan start bit, osam ili devet bitova podataka i jedan stop bit). Najčešće se koristi format podataka od 8 bitova.

USART asinhroni modul se sastoji iz sledećih komponenti:• Generator takta• Kolo odabirača• Asinhroni predajnik (transmiter)• Asinhroni prijemnik (risiver)

Centralna komponenta USART je pomerački TSR registar. Pomerački registar dobija podatke iz bafer registra TXREG koji se softverski kontroliše. TSR registar se ne upisuje sve dok se ne prenese STOP bit iz prethodnog ciklusa. Neposredno posle prenosa STOP bita, upisuje se novi sadržaj is TXREG. Kada se izvrši prenos iz TXREG u TSR setuje se TXIF bit. Pored TXIF bita koji pokazuje status TXREG registra, TRMT bit pokazuje status TSR pomeračkog registra, koji je setovan kada je TSR registar prazan.

Page 110: VTA-URS: MIKROKONTROLER Nov

110Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Osnovni koraci kod asinhrone predaje podataka:

1. Inicijalizuje se SPBRG registar za setovanje željene brzine predaje. Ukoliko se radi sa velikom brzinom prenosa setuje se BRGH bit.

2. Aktivira se serijski port resetovanjem SYNC bita i setovanjem SPEN bita.

3. Ako su potrebni prekidi, setuju se TXIE, GIE i PEIE bitovi.

4. Ako se prenos vrži sa 9 bitnim formatom setuje se TX9 bit.

5. Aktivira se prenos setovanjem TXEN bita, koji će takodje setovati TXIF bit.

6. Ako je izabran 9 bitni format, deveti bit treba da bude učitan u TX9D.

7. Učitavanje podataka u TXREG registar (početak predaje).

Page 111: VTA-URS: MIKROKONTROLER Nov

111Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Osmobitni generator takta (baud rate generator) koji je sastavni deo USART modula, koristi se za generisanje standardnih taktnih (baud rate) frekvencija.

USART prvo prenosi i prima najmanje značajan (LSb) bit.

USART predajnik i prijemnik su funkcionalno nezavisni ali koriste isti format podataka i takt koji je odredjen BRGH bitom (TXSTA<2>). Provera pariteta nije hardverski izvedena, ali se može izvesti softverski preko devetog bita. Asinhroni mod se zaustavlja u SLEEP modu.

Izbor asinhronog moda ostvaruje se resetovanjem SYNC bita (TXSTA<4>).

Vremenski dijagram u asinhronom master modu rada USART

Page 112: VTA-URS: MIKROKONTROLER Nov

112Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Sistemski registri povezani sa USART modulom i stanjem predaje podataka

Page 113: VTA-URS: MIKROKONTROLER Nov

113Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

USART asinhroni PRIJEMNIK

Prijem podataka odvija se preko RX/DT pina i kola za korekciju. Kolo za korekciju je brzi pomerač koji radi sa taktom koji je 16 puta brži od takta serijskog prenosa (baud rate)

Kada se aktivira asihnroni mod rada USART, prijem se omogućava setovanjem CREN bita (RCSTA<4>). Osnovna komponenta prijemnika je prijemni pomerački registar (RSR). Posle očitavnjaRX/TX pina i provere prisutnosti STOP bita, primljeni podaci u RSR se prenose u RCREG registar, naravno ukoliko je on prazan. Kada se prenos kompletira, setuje se RCIF bit. Bit prekida RCIE koji prati setovanje RCIF bita može da bude aktivan ili neaktivan. RCIF bit se hardverski setuje kada je RCREG registar prazan. RCREG je FIFO stek registar sa dva nivoa. Kada je ovaj stek registar pun, setuje se OERR (RCSTA<1>).

kolo za korekciju

Page 114: VTA-URS: MIKROKONTROLER Nov

114Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Osnovni koraci kod asinhrone predaje podataka:

1. Inicijalizuje se SPBRG registar za odgovarajuću brzinu prijema. Ukoliko se radi sa velikom brzinom prenosa setuje se BRGH bit.

2. Aktivira se serijski port resetovanjem SYNC bita i setovanjem SPEN bita.3. Ako su potrebni prekidi, setuju se RCIE, GIE i PEIE bitovi.4. Ako se prenos vrši 9 bitnim formatom setuje se RX9 bit.5. Aktivira se prijem setovanjem CREN bita.6. RCIF bit se setuje kada se obavi predaja i generiše se bit prekida ako je RCIE

bit setovan7. Čita se RCSRA registar da bi se dobio deveti bit (ako ga ima) i odredi da li je

došlo do neke greške prilikom prijema.8. Učitava se 8 bitova podataka iz RCREG.9. Ukoliko je došlo do bilo koje greške u prijemu, resetuje se CREN bit.

Page 115: VTA-URS: MIKROKONTROLER Nov

115Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Vremenski dijagram u asinhronom slave modu rada USART

Page 116: VTA-URS: MIKROKONTROLER Nov

116Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Sistemski registri povezani sa USART modulom i stanjem prijema podataka

Page 117: VTA-URS: MIKROKONTROLER Nov

117Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Primer realizacije RS232 serijskog interfejsa za spregu mikrokontrolera sa PC računarom Pre nego što se ostvare logički uslovi serijskog prenosa podataka, neophodno je da se zadovolje HW uslovi. Nivo signala na komunikacionim kanalima PC računara je -10V za logičku nulu i +10V za logčku jedinicu. Pošto je na strani mikrokontrolera logička jedinica +5V i logička nula 0V, neophodno je specijalno kolo koje će ove uslove zadovoljiti sa obe strane. MAX232 integrisano kolo je projektovano za ove namene.

Page 118: VTA-URS: MIKROKONTROLER Nov

118Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Raspored pinova na devetopinskom D konektoru serijskog RS 232 interfejsa PC računara

1. CD Carrier Detect2. RXD Receive Data3. TXD Transmit data4. DTR Data Terminal Ready5. GND Ground6. DSR Data Set Ready7. RTS Request To Send8. CTS Clear To Send9. RI Ring Indicator

MAXIM MAX 232 čip

Page 119: VTA-URS: MIKROKONTROLER Nov

119Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

; Rutina predaje podataka; Predaje se prvo LSB

Predajamovlw BITOVI ; Broj bitova koji treba da se prenesemovwf BROJAC ; Inicijalizacija brojackog registrabcf PORTA, TX ; Generisanje START-bitacall Kasnjenje1Bit ; Poziv rutine za kasnjenje za 1 bit

PredajSledecirrf RXTX_REG, f ; Rotiranje prijemnog registrabtfsc STATUS, C ; Test bita koji se predajebsf PORTA, TX ; Predaja jedinicebtfss STATUS, C ; Provera carry bitabcf PORTA, TX ; Predaja nulecall Kasnjenje1Bit ; poziv rutine kašnjenjadecfsz BROJAC, f ; Dekrementiraj brojacki registargoto PredajSledeci ; Prenesi sledeci bitbsf PORTA, TX ; Generisi STOP bitcall Kasnjenje1Bit ; Kasnjenje za STOP bitretlw 0x00 ; Povratak u glavni program

:

Page 120: VTA-URS: MIKROKONTROLER Nov

120Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

; Rutina prijema podataka

Prijemclrf RXTX_REG ; Reset prijemnog registramovlw BITOVI ; Broj bitova koji se primamovwf BROJAC ; Inicijalizacija brojackog registra

PrijemSTARTbitabtfsc PORTA, RX ; Test prisustva START bitagoto PrijemSTARTbita ; START bit nije nadjencall KasnjejePolaBita ; Cekaj do polovine START bitacall Kasnjenje1Bit ; Ignorisi START bit i odaberi prvi

; bit u sredini bitaPrimiSledeci

btfsc PORTA, RX ; Da li je bit nula ili jedinicabsf STATUS,C ; bit je jedinica => setuj carry bitbtfss PORTA, RX ; Da li je nula ili jedinicabcf STATUS,C ; bit is nula => resetuj carry bitrrf RXTX_REG, f ; Rotiraj prijemni registarcall Kanjenje1Bit ; Pozovi rutinu kasnjenjadecfsz BROJAC, f ; Dekrementiraj brojacki registargoto PrimiSledeci ; Primi sledeci bitretlw 0x00 ; Povratak u glavni program

:

Page 121: VTA-URS: MIKROKONTROLER Nov

121Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Modul A/D konvertora

PIC mikrokontroleri srednje klase poseduju analogno digitalni konvertor za prihvat analognih signala. A/D modul obezbedjuje konverziju analognog ulaznog signala u odgovarajući digitalni broj sa 8 cifara (1 bajt). Kaže se da ovakav konvertor poseduje osmobitnu rezoluciju.

Modul A/D konvertora poseduje mogućnost rada i slučaju kada se procesor nalazi u SLEEP stanju.

Osmobitna diskretizacija obezbedjuje vličinu naponskog kvanta od 1/256 mernog opsega. Tačnost A/D konvertora je ± 1 bit, što znači da konvertor obezbedjuje tačnih 7 cifara odnosno, tačnost koja je bolja od 1% mernog opsega, što je sasvim zadovoljavajuće za većinu industrijskih aplikacija.

Industrijski standard je konverzija analognog signala u digitalni broj koji ima 12 cifara. U cilju približavanja ovom standardu, PIC mikrokontroleri srednje i više klase poseduju A/D konvertor rezolucije 10 bita.

Kod izbora rezolucije A/D konverzije treba biti obazriv i pažljivo proceniti realne potrebe. Osmobitna konverzija je dobar kompromis izmedju tačnosti i performansi kod osmobitnih mikrokontrolera. Osmobitnom konverzijom rezultat se može u jednom intrukcijskom ciklusu smestiti u osmobitne RAM adrese, a takodje, u jednom instrukcijskom ciklusu ALU može da nad rezulatatom A/D konverzije realizuje bilo koju od raspoloživih aritmetičkih ili logičkih operacija.

Opis A/D modula koji sledi odnosi se ne na opšte osobine srednje klase MICROCHIP PIC mikrokontrolera. Treba znati da pojedine varijante mikrokontrolera ove klase odstupaju od navedenih specifkacija u zavisnosti od namene za koju su optimizirani.

Page 122: VTA-URS: MIKROKONTROLER Nov

122Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Standardni A/D modul poseduje 4 analogna ulaza AN(3:0).

Za rad sa A/D modulom koriste se tri sistemska registra:

• A/D Rezultat registar (ADRES)• A/D Kontrolni registar0 (ADCON0)• A/D Kontrolni registar1 (ADCON1)

ADCON0 registar kontroliše funkciju A/D modula.

ADCON1 registar konfiguriše funkciju pinova na ulaznom portu. Ovi pinovi mogu da se konfigurišu kao analogni ulazi (ili kao naponska referenca u slučaju pina AN3) ili kao digitalni ulazi/izlazi.

Osnovna arhitektura A/D modula

Model kola analognog uzlaza

Page 123: VTA-URS: MIKROKONTROLER Nov

123Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Sadržaj ADCON0 sistemskog registra

Page 124: VTA-URS: MIKROKONTROLER Nov

124Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Sadržaj ADCON1 sistemskog registra

Page 125: VTA-URS: MIKROKONTROLER Nov

125Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Setovanje i aktiviranje A/D modula

Kada se jedan ciklus A/D konverzije završi, rezultat se upisuje u ADRES registar, GO/DONE bit (ADCON0<2>) se resetuje, i setuje se bit prekida ADIF A/D modula.

Pre nego što se aktivira rad A/D modula neophodno je da se izvršši negovo konfigurisanje i konfigurisanje ulaznih kanala (TRIS). Neophodno je obaviti sledeće korake konfigurisanja mikrokontrolera:

1. Konfiguracija A/D modula:• Konfiguracija analognih pinova / naponska referenca / i digitalni U/I (ADCON1)• Izbor A/D ulaznog kanala (ADCON0)• Izbor vremenske baze A/D konverzije (ADCON0)• Aktiviranje (start) A/D modula (ADCON0)

2. Konfiguracija A/D prekida (ukolio je potrebno):• Reset ADIF bita• Set ADIE bita• Set GIE bita

3. Čekanje dok se završi odabiranje i zadrška.4. Start konverzije:

• Set GO/DONE bita (ADCON0)5. Čekanje dok se završi A/D converzija, i to:

• do pojave reseta GO/DONE bita, ili• do pojave A/D prekida

6. Čitanje A/D registra u kome se čuva rezultat (ADRES), reset ADIF bita, ako je potrebno.7. Za sledeći ciklus konverzije, idi na korak 1 ili 2 prema potrebi.

Page 126: VTA-URS: MIKROKONTROLER Nov

126Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Podešavanje HW karakteristika ulaza i trajanje ciklusa A/D konverzije

Da bi A/D konvertor mogao da postigne projektovanu tačnost, kapacitet kondenzatora u kolu zadrške(CHOLD) mora da bude tako izabran da omogući njegovo potpuno punjenje tekućim ulaznim naponom. Impedansa izvora (RS) i impedansa internog kola prekidača za odabiranje (RSS), direktno utiču na vreme potrebno za punjenje kondenzatora CHOLD. Impedansa RSS se menja sa promenom napona napajanje mikrokontrolera (vdd). Maksimalna impedansa analognog izvora je 10 kΩ.

Jedan ciklus rada A/D konvertora sastoji se iz dve podsekvence: akvizicija i konverzija. Vreme kompletiranje jedne sekvence je prema tome jednako zbiru vremena akvizicije i vremena konverzije.

Kada je analogni kanal preko multipleksera doveden na ulaz A/D modula, akvizicija ulaznog signala mora da bude obavljena pre nego što počne konverzija. Minimalno vreme akvizicije se izračunava preko sledeće formule:

TACQ = TAMP + TC + TCOFF

gde je: TAMP prelazno vreme pojačivača, TCvreme punjenja kondenzatora i TCOFF vremenski član koji zavisi od radne temperature.

Vreme konverzije po jednom bitu je TAD. Minimalno 2TAD su neophodna izmedju dva uzastopna ciklusa konverzije, tako da se može smatrati da je vreme konverzije za 8 bita 10TAD.

Minimalno TAD iznosi 1.6 μs.

Page 127: VTA-URS: MIKROKONTROLER Nov

127Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

BSF STATUS, RP0 ; izbor RAM banke 1CLRF ADCON1 ; konfigurisanje A/D ulazaBCF STATUS, RP0 ; izbor RAM banke 0MOVLW 0xC1 ; C1h = 11000001b što ima za posledicuMOVWF ADCON0 ; RC časovnik, A/D aktivan, kanal 0BSF INTCON, ADIE ; A/D pekid aktivanBSF INTCON, GIE ; globalni prekid aktivan

;; obezbediti dovoljno čekanje da se obavi prihvatanje naponskog ; signala na izabranom ulaznom kanalu. Onda konverzija može da ; započne;

BSF ADCON0, GO ; start GO bita A/D konverzije: ; setovanje ADIF bita i : ; reset GO/DONE bita: ; kada se završi A/D konverzija.

Primer asemblerskog koda za podešavanja SFR registara A/D modula i start konverzije

TAD ciklus A/D konverzije:

Page 128: VTA-URS: MIKROKONTROLER Nov

128Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

Programiranje mikrokontrolera

Page 129: VTA-URS: MIKROKONTROLER Nov

129Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

PWM

Page 130: VTA-URS: MIKROKONTROLER Nov

130Okt 2009

MEHATRONSKI SISTEMI, 2009/2010UProf.dr Petar B. Petrović, Mašinski fakultet niverziteta u Beogradu

HMI