Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
LABORATORIJSKE VEŽBE IZ ISPITA
PRIMENA MIKROPROCESORA U ELEKTROENERGETICI
Uvod
Osnove praktičnog rada sa mikrokontrolerima namenjenim
upravljanju energetskim pretvaračima
Dugo vremena dominantna tehnologija u kontroli energetskih pretvarača je bila
analogna. Osnovni razlog za to je bila ograničena brzina rada digitalnih kola koja nije
dozvoljavala izgradnju digitalno upravljanog uređaja prihvatljive cene sposobnog za
rad i upravljanje energetskim pretvaračima u realnom vremenu. Međutim, uvećanje
brzine rada i umanjenje cene mikrokontrolerskih sistema konačno probija barijeru i
dovode do značajnog porasta njihove primene i skoro potpunog nestanka potrebe za
analognom kontrolom. Kao prvo, do tada korišćeni prosti analogni kontroleri se
zamenjuju sa jeftinim digitalnim, koji su ujedno i robusniji, programabilni i skalabilni
što u potpunosti zadovoljava potrebe novog globalnog tržišta. Zatim, otvara se
mogućnost primene složenijih (upravljački zahtevnih) algoritama za koje je digitalna
tehnologija jedino rešenje. Primenom složenijih algoritama upravljanja se ostvaruju
bolje performanse tokom rada, omogućava ušteda materijala pri izradi kako pretvarača
tako i objekta upravljanja i konačno, ostvaruje se izrazita energetska efikasnost tokom
eksploatacije čime se dodatno zadovoljava zahtev tržišta ali i društva u celini.
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Najvažnije prednosti upotrebe digitalnog upravljanja se uglavnom sadržane u
programabilnoj prirodi mikrokontrolera i njegovim računskim i komunikacionim
sposobnostima. Ukratko, prednosti se mogu svrstati u nekoliko tačaka:
•
upravljački sistemi bazirani na mikroprocesorima su programabilni.
Upravljačka strategija i konfiguracija mogu biti modifikovane na softverskom
nivou, što omogućuje visoku operativnu i adaptivnu fleksibilnost
•
upravljački sistemi bazirani na mikroprocesorima su skalabilni. Prostom
izmenom davača i baznih veličina u programu isti upravljački sistem može da
iskoristi za upravljanje i/ili nadzor nad objektom koji je za red veličine veći
•
zahvaljujući računskim sposobnostima, digitalni kontroleri mogu biti korišćeni
za implementaciju složenih, naprednih upravljačkih algoritama (kontrola u
prostoru stanja bazirana na observerima, adaptivna kontrola, Kalmanovi filtri,
nelinearna kontrola ...) koji omogućuju optimalan i energetski efikasniji rad
objekta kojim se upravlja
•
zahvaljujući računskim sposobnostima, digitalni kontroler može paralelno sa
upravljanjem vršiti i procenu stanja i izlaza sistema, što dovodi do umanjenja
broja davača potrebnih za rad sistema (shaft-sensorelss drives, drives with
single dc-link shunt)
•
Programabilni digitalni kontroleri podržavaju ogroman broj komunikacionih
protokola, od protokola nižeg rada kao što su RS-485 pa sve do protokola
višeg rada tipa Profibus ili Ethernet. Time se dobija mogućnost umrežavanja
više distribuiranih energetskih pretvarača. Ovim se omogućava razmena
podataka i sinhronizacija što je osnov modernih sistema kontrole kretanja, kao
što su na primer višeosni manipulator ili niz mašina u papirnoj industriji. Sve
ove pogone kontroliše centralni kontroler, koji koordinira celokupno kretanje i
obezbeđuje potreban rezultat na nivou celog procesa.
1.
Osnove digitalnog upravljanja energetskim pretvaračima
Energetski pretvarač vrši pretvaranje jednog oblika energije u drugi koji je
pogodniji za rad objekta kojim upravljamo. Kod savremenog pretvarača oblik izlazne
energije, kao i način korišćenja ulazne energije, se kontrolišu putem namenskog
digitalnog sklopa. Dok energetski pretvarač radi kontinualno i sa relativno velikim
snagama, digitalni sklop radi samo u diskrenim vremenskim trenucima i sa malim
signalima. Da bi se ova dva sveta spojila, neophodna su pojačavačka i prilagodna kola.
Ovim se dolazi do osnovnih blokova digitalno upravljanog energetskog pretvarača čija
je šema prikazana na slici U-1.
2
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Izlazna
snaga
Ulazna
snaga
Energetski pretvarač
Objekat
Komandni impulsi ka
energetskom pretvaraču
Impulsni pojačavač
Prilagodna kola
Merni podaci sa objekta
i energetskog pretvarača
Digitalni upravljački deo
(mikrokontroler)
Zadavanje komandi i prikaz veličina
Sl. U-1. Uopšteni blok dijagram digitalnog upravljanja energetskim pretvaračem
Objekat kojim upravljamo pretvara električnu energiju na svom ulazu u neki rad. Da
bi to radio pravilno, neophodno mu je obezbediti odgovarajući oblik napona ili struje.
Energetski pretvarač uzima energiju sa svog ulaza i kontroliše njen prenos ka objektu
tako što u svakom trenutku obezbeđuje potreban oblik izlaznog napona i/ili struje. U
zavisnosti od objekta kojim upravljamo biramo takav energetski pretvarač koji na
svom izlazu obezbeđuje na primer jednosmerni napon (ili struju) promenjive
amplitude, ili monofazni ili višefazni naizmenični napon (ili struju) promenjive
efektivne vrednosti i frekvencije, itd..
Digitalni upravljački deo je u najvećem broju slučajeva na bazi mikrokontrolera ili
DSP (DSP- digitalni signalni procesor). Ovaj deo treba da obezbedi upravljačke
signale kojima se upravlja energetskim pretvaračem. Da bi to bilo ostvareno,
upravljački deo mora u realnom vremenu da 1) prima sve komande, 2) procesira sve
merne signale, 3) izračuna potreban algoritam upravljanja i 4) postavi potrebne
komandne signale ka energetskom pretvaraču. Ukoliko je primenjeni mikrokontroler
spor, i ne može da odradi sve gore navedene radnje u toku jedne periode upravljanja
procesom (koja je dovoljno mala za potreban proces), dolazi do zagušenja i rad u
realnom vremenu nije moguć.
3
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Impulsni pojačavač pojačava upravljačke signale koje postavlja mikrokontroler i
prilagođava ih korišćenim prekidačkim elementima u okviru energetskog pretvarača.
Po potrebi, impulsni pojačavač može da vrši i galvansko odvajanja mikrokontrolera i
energetskog dela.
Merna prilagodna kola treba da prilagode ulazima digitalnog upravljačkog dela
signale pristigle sa raznih davača postavljenih kako na objektu upravljanja tako u
sklopu energetskog pretvarača. Signali mogu biti analogne ili impusne prirode i treba
ih povezati sa odgovarajućim ulazima upravljačkog dela.
Zadavanje komandi i prikaz veličina se može vršiti lokalno, zadavanje preko
tastera, prekidača, tastaturu, touch screen i prikaz preko LED, display, itd. Svi ovi
elementi služe za povezivanje operatera (čoveka) sa kontrolerom i popularno se
nazivaju HMI (Human Machine Interface – veza između čoveka i mašine). Danas je
sve popularnija komunikacija sa kontrolerom na daljinu preko serijske veze.
Sledeća slika donosi blok dijagram pogona sa detaljnije prikazanim mikrokontrolerom.
4
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U-2. Blok dijagram digitalnog upravljanjog energetskog pretvarača sa
mikrokontrolerom
Osnovni delovi mikrokontrolera namenjenog upravljanju energetskim pretvaračima:
1. Centralna procesorska jedinica (CPU) je mozak sistema i ima sledeće aspekte:
a) brzina izražava se vremenom potrebnim za izvršenje jedne instrukcije i kreće
se oko 20-40 MIPS (MIPS -milionima instrukcija u sekundi) za sisteme nižih i
srednjih performansi i 150 MIPS-a za sisteme visokih performansi. Veća
brzina CPU omogućava izbor kraće periode odabiranja, čime se uvećava
propusni opseg sistema. U elektromotornim pogonima obično postoje tri
kontura regulacije (poziciona, brzinska, strujna) od kojih je računski
5
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
najkritičnija strujna jer je se u pogonima srednje i male snage izvršava svaki
50us (20kHz- van čujnog opsega)
b) tip i dužina podataka: CPU radi sa promenjivama koje su brojni ekvivalenti
svih anagonih veličina u pogonu. Ukoliko se više bitova rezervišu za jednu
promenjivu preciznost je veća, ali cena raste. Najpovoljniji odnos cena
performance danas imaju 16 –bitni procesori (moguć izbor 8, 16 ili 32 bita).
Ove promenljive mogu biti predstavljene u obliku sa pomičnim ili nepomičnim
zarezom. Najpovoljniji odnos cena performance danas imaju procesori sa
nepomičnim zarezom (fixed point) koji rade sa normalizovanim modelima.
c) matematičke operacije: potreban račun se uglavnom svodi na digitalno
filtiranje (y=∑aiyi+∑bixi), tako da najviše korišćene operacije tokom digitalnog
upravljanja su množenje, pomeranje bitova i akumulacija(sabiranje). Moderne
CPU poseduju MAC (multiply-accumulate unit) jedinice koje vrše množenje
dva 16-bitna broja, pomeranje 32-bitnog rezultata i akumulaciju sa
prethodnom 32-bitnom sumom u jednom CPU periodu. Složenije funkcije,
kao SQRT ili trigonometrijske funkcije (sin, cos) se uglavnom vrše preko
aproksimacija ili tablica.
d) sposobnost rada u realnom vremenu: rad u realnom vremenu podrazumeva
izvršenje određenih računskih operacija i osvežavanje izlaza u tačno
određenim, vremenski uvek jednako udaljenim trenucima. Da bi se ovo
ostvarilo, deo upravljačkog programa mora da se izvršava po tačno određenom
taktu. Ovaj takt uglavnom kontroliše unutrašnji brojač (timer) tako što unutar
mikrokontrolera generiše ekvidistantne signale prekida ka CPU i navodi je da
izvrši program prekidne rutine u tačno definisanim trenucima. Deo programa
koji nije upravljački se i dalje može izvršavati u osnovnoj glavnoj petlji.
Pogledati poglavlje uvoda o tipičnoj strukturi programa.
2. Memorija za program: danas se koristi samo reprogramabilna FLASH memorija.
Mikrokontroleri se uglavnom nude u serijama, sa izborom kapaciteta FLASH
memorija u rasponu od od 8 - 256 kB. Ovaj izbor direktno utiče i na cenu
mikrokontrolera. Za program elektromotornog pogona opšte namene je na primer
dovoljno oko 32kB programske memorije.
3. Memorija za podatke: danas se u mikrokontrolere ugrađuje RAM memorija i to u
rasponu kapaciteta od 256 bajtova do 16kB za podatke. Izbor utiče na cenu a
zavisi od složenosti problema, za tipičan program elektromotornog pogona opšte
namene je na primer dovoljno 2 kB RAM memorije ukoliko je program pisan u
višem programskom jeziku C i potrebne tabele su zapisane u FLASH memoriji.
6
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
4. Generator impulsa: specijalni blok koji se nalazi samo u kontrolerima
namenjenim za rad sa energetskim pretvaračima. Blok koji samostalno generiše
višefazne PWM signale potrebne za rad većine poznatih topologija. Često sretani
nazivi su: PWM Generator, High speed output/high speed input (HSO/HSI) ulazno izlazna jedinica za brze signale, Event processor array (EPA) - procesorska
jedinica za obradu događaja, i Compare/capture (CC) - poredi/uhvati jedinica. Od
rezolucija brojača unutar ovih jedinica zavisi kvalitete izlaznog napona pretvarača.
Tokom ovog kursa se uglavnom zadržavamo na ovom bloku.
5. AD konvertor: blok koji konvertuje analogne signale u brojne vrednosti. Dobijene
podatke CPU smešta u promenjive koje dalje koristi za potrebe upravljanja,
akvizicije ili zaštite sistema. Za tipičan moderni energetski pretvarač neophodno je
izabrati mikrokontroler sa 4 do 8 multipleksiranih analognih ulaza, sa A/D
konvertorom rezolucije 8, 10 ili 12 bita i vremenom konverzije 1 µs ili manje.
6. Brojački moduli: specijalni blok koji se nalazi samo u kontrolerima namenjenim
za rad sa energetskim pretvaračima. Služi za brojanje impulsa koji se tipično
dobijaju sa senzora frekvencije, brzine ili položaja rotora.
7. Serijski port i serijska komunikacija Danas je uobičajeno da svaki lokalni
kontroler razmenjuje podatke sa centralnim kontrolerom. Komunikacija na daljinu
se uvek vrši preko serijske veze jer broj provodnika paralelnu vezu čini skupom,
neotpornom na šum i teškom za održavanje. Serijska veza se može uspostaviti na
osnovu nekog od protokola nižeg reda (na primer UART- universal asynchronous
interface port sa protokolom RS-232 ili RS-485, ili sinhroni serijski port sa
protokolima SPI, I2C ...), ili serijski port koji podržava neki od protokola višeg
reda (CAN bus, Modbus, Profibus, Ethernet,..). Upotreba protokola višeg reda sa
složenim checksum poljima potpuno eleminisana mogućnost greške usled šuma ili
drugih tipova smetnji i digitalni prenos podatak potpuno eliminiše analogni.
Uvećanje mogućnosti serijske vete dovodi do rasta primene SCADA (Supervisory
Control And Data Acquisition) sistema koji vrše kontrolu procesa i akviziciju
podataka na daljinu. Tokom laboratorijskog rada zadavanje i prikaz veličina će biti
obezbeđeno preko PC računara sa odgovarajućeg protokolom za razmenu podataka
i programom za prikaz.
8. IO port Digitalni ulazi/izlazi opšte namene. Mogu se konfigurisati da rade kao
ulazi ili izlazi. Kao izlazi mogu da rade na više načina, na primer forse ili open
collector. Kao ulazi često imaju internu validaciju promene ivice, čime značajno
uvećavaju robusnost i smanjuju osetljivost na šum.
2.
Osnovne karakteristike mikrokontrolera dsPIC30F4011 – Microchip
7
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Tipičan primer mikrokontrolera namenjenog upravljanju energetskim pretvaračima je
dsPIC30F4011 proizvođača Microchip. Ovaj mikrokontroler je dovoljno brz i ima sve
funkcije i periferijske blokove potrebne za upravljanje većinom energetskih pretvarača.
Osnovne karakteristike dsPIC30F4011 su:
• Modifikovana RISC CPU (Reduced Instruction Set Controler), 84 instrukcije
• Modifikovana Harvard arhitektura magistrala (omogućava paralelan prenos
instrukcija i podataka ka CPU)
• 24-bitna širina instrukcija, 16-bitna širina memorijskog prostora
• 48 KB FLASH - memorije za program (16K instrukcija)
• 2 KB interne RAM - memorije za podatke
• 16 x 16-bita radnog registarskog niza – interni registri za rad sa podacima i
privremeno čuvanje rezultata
• 1 KB EEPROM - memorije za čuvanje programa i/ili parametara
• Do 30 MIP operacija:
o DC do 40 MHz na ulazu spoljnog (eksternog) takta
o 4 MHz-10 MHz na ulazu oscilatora sa aktivnim PLL (4x, 8x, 16x)
• 30 izvora prekida
o 3 spoljnih izvora prekida
o 8 korisnički izabranih nivoa prioriteta za svaki izvor prekida
Funkcionalni blok dijagram mikrokontrolera dsPIC30F4011 je preuzet iz korisničkog
uputstva [Microchip, dsPIC30F4011/4012 Data Sheet] i dat na slici 1.3.
8
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U-3. Blok dijagram mikrokontrolera dsPIC30F4011
9
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Blok dijagram na slici U-3 na prvi pogled izgleda prilično komplikovano. Na sreću,
njega ni ne treba razumeti u potpunosti, neophodno je samo razumevanje rada
pojedinih blokova i osnovnih veza između tih blokova. Na blok dijagramu je
neophodno uočiti sledeće funkcionalne oblasti i blokove:
Blok za procesiranje signala
Blok sadrži 16x16 W reg registarsku oblast, DSP engine, ALU jedinicu i Divide
jedinicu. Kod mikrokontrolera namenjenog za upravljanje pretvaračima neophodno je
izvršenje velikog broja operacija u realnom vremenu. Iz toga razloga su značajne DSP
karakteristike uređaja (funkcije za procesiranje digitalnih signala - matematika, logika,
pomeranje, etc). Opremljen gore pomenutim blokovima, DSP deo unutar
dsPIC30F4011 podržava
• Dualno sakupljaje podataka (dve magistrale za operande)
• Povratna informacija akumulatora za DSP operacije
• Dva akumulatora, 40-bitne širine sa opcionom logikom zasićenja
• Sve DSP instrukcije su jednociklične (izvršavaju se u jednom ciklusu).
o 17x17-bita jednociklusni multiplikator za razlomke/cele brojeve
o ± 16-bitni jednociklični pomerač
Postoji odličan kompajler programskog jezika C koji podržava većinu DSP funkcija.
Blok za prenos i skladištenje podataka
Blok sadrži X data RAM (1kB), Y data RAM (1kB), X data bus, Y data bus 16x16
koji omogućuju paralelan prenos dva operanda matematičke ili logičke operacije ka
ALU i W registarskoj oblasti.
Blok za programsku memoriju
Blok sadrži Program Memory (48kB), EEPROM (1kB) i 24-bitni Program counter
koji pokazuje na sledeću programsku instrukciju koju treba izvršiti. Jednom dobijena iz
programske memorije, ta instrukcija se dekoduje u bloku Instruction Decode and
Control. Program Memory je FLASH tipa sa minimum 10,000 briši/piši ciklusa
(100k tipično), za industrijski raspon temperature. EEPROM memorija sa minimum
100,000 briši/piši ciklusa za industrijski raspon temperature, (1M tipično)
Blok za kontrolu rada CPU
Blok sadrži Timing generation, Power-on Reset (POR), Power-up Timer (PWRT) i
Start-up Oscilator Timer (OST) i Watchdog Timer.
10
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Brojački periferni blokovi (Timers , Input Capture i Output Compare)
•
•
•
•
•
Brojanje vremena (clock) ili brojanje impulsa na ulaznom pinu
programabilni preskaler
Pet 16-bitnih tajmera/brojača; opciono mogu da rade kao par (Dva 16-bitna
tajmera u 32-bitnim tajmerskim režimima)
16-bitne ulazne funkcije za ‘hvatanje’ ivice signala (input capture)
16-bitne izlazne funkcije za poređenje ili PWM (output compare)
Periferni blokovi za serijsku komunijaciju
•
•
•
•
3-žični SPI™ režim (podržava 4 Frejm režima)
I2C™ režim podržava Multi-Master/Slave režim i 7-bitno/10-bitno adresiranje
2 UART režima sa FIFO Baferima
1 CAN režim, 2.0B kompatibilan
Periferni modul za PWM upravljanje motorom - Motor Control PWM
•
•
•
•
•
•
6 PWM izlaznih kanala
o komplementarni ili nezavisni izlazni režimi PWM izlaznih parova
o ivični ili centralni režim PWM brojača
Tri nezavisna generatora faktora ispune PWM signala
Određena vremenska baza
Programabilni izlazni polaritet
Kontrola mrtvog vremena za komplementarni režim
Mogućnost startovanja A/D konverzije sinhronizovano sa PWM brojačem
Periferija za prijem signala sa kvadratnog enkodera - QEI modul
•
•
•
•
•
Tri ulaza, Faza A, Faza B i indeks puls ulaz
16-bitni brojač pozicije nagore/nadole , režim merenja pozicije (x2 i x4)
status pravca brojanja, Prekid na poziciji brojača rollover/underflow
Programabilni digitalni fiteri šuma na ulazima
Alternativni 16-bitni režim Tajmer/Brojač
Periferija za konverziju analognih signala, 10-bit ADC
• 10-bitni Analogno-Digitalni konvertor (A/D)
• Četiri 4 S/H ulaza, moguće je istovremeno odabrati 4 signala.
• 9 ulaznih kanala
• Brzina konverzije od 500 Ksps (kilo samples per second)
Detaljnije o ovom mikrokontoleru u korisničkom uputstvu [Microchip, dsPIC30F4011
/4012 Data Sheet]
11
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
3.
Uvod
Osnove korišćena standardnih mikrokontrolerskih razvojnih sistema
Većina proizvođača nudi gotova rešenja razvojnih sistema baziranih na
njihovim najnovijim mikrokontrolerima ili DSP. Ovi sistemi su izgrađeni i testirani od
strane proizvođača i veoma su korisni u razvojnoj fazi u kojoj se testiraju software i
hardware jednog digitalno upravljanog energetskog pretvarača.
Na svim laboratorijskim vežbama se koristi standardni razvojni sistem
proizvođača Mikroelektronika, koji čini mikrokontrolerska kartici bazirana na
mikrokontrolerom dsPIC30F4011. Ovaj mikrokontroler je u stvari prošireni DSP koji
radi sa 16 bitnim podacima, sa 30MHz clock-om, i ima 48kB FLASH i 2kB RAM
memorije što je dovoljno za upravljanje većinom energetskih pretvarača. dsPIC4011
poseduje i potrebne periferije, kao što su pet brojačkih modula, 10-bitni ADC sa 4 S/H
(sample i hold) kola i 9 ulaza, ulaz za kvadraturni enkoder, 6 fazni motor control
PWM blok i mnoge blokove za komunikaciju (UART, CAN, I2C, SPI ) – detaljnije o
dsPIC30F4011 u [Microchip, dsPIC30F4011/4012 Data Sheet]. Svi ovi ulazi/izlazi
mikrokontrolera zahtevaju dodatni elektronski sklop, prilagodno kolo koje vrši
prilagođenje ulazno/izlaznih signala. Za uspešan rad tokom laboratorijskih vežbi nema
potreba za detaljnim poznavanje rada ovih blokova kao ni internim vezama i ostalom
korišćenom elektronikom u okviru mikrokontrolerske kartice. Ono što je važno je
poznavanje načina rada mikrokontrolera kao i poznavanje električnih karakteristika
njegovih ulaza i izlaza koji su od značaja pri povezivanju sa energetskim pretvaračem.
Na primer, za analogni ulaz mikrokontrolerske kartice je važno poznavati njegov
dozvoljeni opseg, dovesti mu koristan signal i konačno iskoristiti taj signal u programu
mikrokontrolera dok konkretan način procesiranja tog signala na mikrokontrolerskoj
kartici nije od primarnog značaja.
Od studenata se u toku vežbi očekuje da
1.
povežu potrebne ulaze i izlaze koji povezuju mikrokontrolerski razvojni sistem
sa energetskim pretvaračem,
2.
napišu program na PC računaru u Microchip-ovom MPLAB okruženju,
generišu hex file i isprogramiraju mikrokontroler preko dsPIC programatora
3.
testiraju rad energetskog pretvarača
3.1. Razvojni sistem za rad sa mikrokontrolerima dsPIC
Izgled razvojnog sistema Mikroelektronika easy dsPIC2 je dat na slici U-4.
12
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U-4. Razvojni sistem mikroelektronika easy dsPIC2
Razvojna kartica sadrži
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ulaz za spoljno napajanje (7÷15V, DC/AC)
kratkospojnik: izbor spoljnog ili USB napajanja
programator
serijska komunikacija
konektor za ICD2 (in circuit debbuger) - spoljni programator
trimer otpornici za dva AD ulaza
slovno numerički LCD (liquid crystal display)
dsPIC - ploča podržava kontrolere sa DIP18, DIP28, DIP40 kućištima
kućište za SD/MMC kartice
kratkospojnik za vezivanje izlaznog pina na napajanje ili masu (pull up / pull
down)
11. svi pinovi su izvedeni na konektore sa desne strane:
13
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
12.
13.
14.
15.
16.
17.
18.
Uvod
• konektor PORT B
• konektor PORT B&C
• konektor PORT D&A
• konektor PORT E
• konektor PORT F
LED
oscilator
prekidač: uključi / isključi LED
referentni napon za AD konvertor
tasteri
kratkospojnik: logička 0 ili 1 se pojavljuje na pinu pri pritisnutom tasteru
grafički LCD (liquid crystal display)
Sl. U-5. Direktan pristup portu dsPIC (razvojni sistem mikroelektronika easy dsPIC2)
Ulazi/izlazi dsPIC-a se sa eventualnom dodatnom pločom povezuju preko ravnog (flat)
kabla, na čijem kraju se nalazi odgovarajući konektor koji se postavlja na izabrani port,
slika U-4, oznaka 11. Šema povezivanja je data na slici U-5.
14
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
3.2. Softverski alati za rad sa dsPIC-om
Program za dsPIC se razvija na PC računaru u programskom okruženju
MPLAB. PC računar se dalje povezuje sa dsPIC razvojnim sistemom preko
programatora koji postoji na Mikroelektronikinoj ploči, slika U-4 ili preko posebnog
uređaja za programiranje ICD2 (in circuit debugger), slika U-9.
MPLAB Integrated Development Enviroment je besplatan, integrisani set alata
za razvoj pogonskih programa za Michrochipove PIC i dsPIC mikrokontrolere.
MPLAB je 32 bitna aplikacija koja radi pod Windows operativnim sistemom, lako je
za korišćenje i ima posebne dodatke za brzi razvoj aplikacija i debugovanje. MPLAB
se moše koristiti i kao grafički interfejs prema Mikrochipovim softverskim i
hardverskim razvojnim alatima.
MPLAB u sebi objedinjuje tekst editor, C kompajler, alate za jednostavnije
nalaženje i ispravku greški u programu (tzv. debagovanje koda), kao i alate za
numerički i grafički prikaz vrednosti promenljivih u realnom vremenu, bez uticaja na
izvršavanje programa.
Na slici U-6 se sa leve strane se nalazi tzv. Project Manager, gde se mogu naći
sve datoteke koje su korišćene u programu. Tu spadaju: izvorne C datoteke, zatim tzv.
header datoteke sa definisanim strukturama i konstantama, biblioteke uključene u
program kao i linker datoteke koji se koriste za povezivanje delova programskog koda
u jednu celinu. Takođe, tu je moguće podestiti opcije kompajlera i linker-a koje će se
koristiti po kreiranju konačnog izvršnog koda, odnosno .hex datoteke za učitavanje u
dsPIC. Editor MPLAB-a različitim bojama označava konstante, promenljive i funkcije
u programu, kako bi olakšao snalaženje u napisanom kodu. Editor ima mogućnost da
sam završava delove linija koda, prepoznavanjem članica definisanih struktura čime je
značajno olakšano samo pisanje koda. U posebnom, izlaznom (output) prozoru nalazi
se izveštaj o rezultatu kompajliranja programa. Tu su izlistane sve greške i upozorenja
nastale tokom kompajliranja. Numerički prozor (Watch window) pruža mogućnost
numeričkog prikaza promenljivih u programu, dok ih grafički prozor (Graph window)
iscrtava u vremenu. Oni predstavljaju jedan od glavnih alata korišćenih tokom razvoja
programa. Memorijski prozor omogućava uvid u sadržaj bilo koje memorijske lokacije,
dok se CPU prozor ograničava na radne registre dsPIC-a. Sve u svemu, Microchip
MPLAB predstavlja software-sko okruženje u kojem je moguće efektno i brzo pisanje
programa. Na slici je takođe prikazana u liniji sa alatima (toolbar) prečice Run, Build i
Help.
15
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U-6. Prozor razvojnog okruženja MPLAB IDE za razvoj programa za dsPIC
Da bi imali uvid u mogućnosti i način korišćenja MPLAB okruženja, u kratkim
crtama će biti objašnjeni neophodni koraci za ispravku starog ili stvaranje novog
softvera. Ti koraci se mogu ugrubo podeliti na: instalaciju MPLAB-a, otvaranje
MPLAB-a, učitavanje starog ili kreiranje novog projekta, debagovanje, učitavanje
softvera u dsPIC pomoću IDE 2 alata, i čitanje promenljivih sa dsPIC-a.
3.2.1. Učitavanje i kreiranje programa sa Microchip MPLAB IDE
Dvoklikom na MPLAB ikonicu na desktopu, otvara se početni ekran
Microchip MPLAB IDE prikazan na slici U-7.
16
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U-7. Početni prozor MPLAB-a
Stvaranje novog projekta se vrši odabirom Project>Project Wizard.
Prolaskom kroz opcije wizarda biramo tip mikrokontrolera, dajemo ime projektu,
uključujemo pojedine fajlove u projekat i smeštamo ga u određeni folder. Klikom na
dugme Finish možemo početi sa pisanjem koda, tj. stvaranjem novih fajlova, sa
naznakom za jezik u kojem ćemo programirati. Korak u kojem se biraju jezičke alatke
je prikazan na slici U-8. Kao što se na slici može videti izabran je jezički alat
Michrochip C30 Toolsuite. Ove alatke služe za prebacivanje napisanog koda u
asembleru, C ili BASIC programskim jezicima u izvršivi kod koji se može prebaciti u
dsPIC. Ova alatka se kupuje posebno i nije uključena u osnovni paket MPLAB-a.
Posle njegove instalacije, neophodno je dati tačan folder u kome se traženi jezički alat
nalazi. Ovaj šesnaestobitni jezički alat podržava dsPIC digital signal kontrolere. Za
detaljnije informacije pogledati readme file u MPLAB IDE instalacionom folderu.
17
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U-8. Biranje jezičkih alatki
Da bismo se uverili u ispravnost softvera, moramo ga prevesti u kod razumljiv
dsPIC(u daljem tekstu build-ovati). To se najjednostavnije čini klikom na ikonicu
build na Project toolbar-u. U Output prozoru se posle ovog klika ispisuju podaci o
kompajliranju i linkovanju fajlova uključenih u projekat. Ako nema grešaka, build
procedura će se uspešno završiti.
3.2.2. Upisivanje softvera sa Microchip MPLAB IDE
Da bismo pokrenuli softver potrebno je da ga upišemo u dsPIC ili da ga
startujemo u MPLAB SIM simulator-u. U mod za simulaciju ulazimo odabirom
Debugger>Select Tool padajućeg menija.
Učitavanje programa u mikrokontroler se vrši pomoću In circuit debuger-a
MPLAB ICD2, kao što je to prikazano na slici U-9.
18
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Sl. U- 9. Programiranje dsPIC-a pomoću ICD2
ICD2 se konektuje na računar preko USB port-a. Njegov deo elektronike koji
je neposredno vezan za računar se i napaja sa USB port-a. Na dsPIC se vezuje mrežnim
kablom, za koji postoji prilagođenje na Mikroelektronik-inom Easy dsPIC2 razvojnom
okruženju. Deo elektronike koji je neposredno vezan za mrežni izlaz, dobija napajanje
sa Mikroelektrnikinog razvojnog okruženja.
Da bi se softver mogao prebaciti na dsPIC moramo prvo instalirati driver za
ICD2. Posle toga je potrebno odabrati ICD2 u Debugger/Select Tool padajućem
meniju, slika U-10.
Sl. U-10. Pokretanje ICD2 debugger-a
MPLAB mora prvo da uspostavi kontakt sa računarom. To se može učiniti u
Debuger (programiranje i analiza programa) ili Programer (samo programiranje)
modu. Zato treba kliknuti na padajući meni Programmer ili Debbuger i odabrati opciju
Connect. Nakon ovog postupka u Toolbaru će nam se pojaviti nekoliko novih ikonica,
koje nam pružaju mogućnost upisa i čitanja podataka sa dsPIC-a, pokretanje programa
sa ikonicom Release from reset, itd.. Zaustavljanje programa se može ostvariti klikom
na ikonicu Hold in reset, dok se resetovanje i ponovna konekcija vrši sa ikonicom
Reset and Connect to ICD2.
19
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
3.2.3. Analiza programa (debugging) sa Microchip MPLAB IDE
U slučaju da napisani program ne radi kako treba ili želimo uneti neke
ispravke, poželjno je raditi u Debugger modu. Da bismo prešli u ovaj mod potrebno je
izabrati pogodan debugger: iz padajućeg menija Debugger/Select Tool/MPLAB ICD2.
MPLAB će od korisnika tražiti ponovno build-ovanje projekta, jer je potrebno da uz
naš program u memoriju dsPIC-a ubaci i kod koji opslužuje sam debugger.
Klikom na Debugger>Reset>Processor Reset zelena strelica će nam pokazati
trenutno mesto izvršenja programa, kao što je to pokzano na slici U-11.
Slika U-11. Debugg mode
U tabeli U-1. su date najčešće korišćene opcije i njihove skraćenice. One se
pojavljuju u Toolbaru u Debugg modu.
20
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Tab. U-1. Spisak najčešće korišćenih komandi u Debugg modu
Komanda Run pokreće izvršavanje programa, dok je komanda Halt zaustavlja.
Komandom Animate izršava se program dinamikom kojom možemo da ga ispratimo,
komandu po komandu. Ukoliko nam je taj tempo prerviše brz, možemo ići korak po
korak u kodu sa naredbama Step into, Step Over i Step Out. Razlika između ovih
naredbi je to što prva ulazi u svaku pozvanu funkciju, druga ne ulazi već je posmatra
kao jedan korak, a treća služi za preskakanje preostalog dela pozvane funkcije. Sa
naredbom Reset program se pokreće iznova.
U Debug modu nam je omogućeno i praćenje stanja promenljivih i postavljanje
tzv. Breake point - linija programa gde će se dsPIC automatski zaustaviti posle
pokretanja opcijom Run.
3.2.4. Čitanje promenjivih sa Microchip MPLAB IDE
Infomacije o stanju promenljivih se osvežavaju svaki put kada program
zaustavimo sa Halt naredbom ili kada kroz program prolazimo pomoću naredbi
Animate, Step Into, Step Over ili Step Out. Da bismo videli konkretne podatke koji
stoje u registrima moramo uključiti Watch window. On se uključuje odabirom
View/Watch komande. Na slici U-12. vidimo izgled Watch prozora, gde je prikazana
promenljiva tipa strukture. U gornjem delu prozora vidimo mesta gde se mogu dodati
nove promenljive ili registri koje želimo posmatrati.
Spomenuti break point možemo dodati u bilo koji red softvera prostim dvo-klikom
na taj red koda. Kada pustimo program da radi komandom Run, on će se zaustaviti kod
prvog prolaska kroz ovaj red. Tad možemo polako, korak po korak posmatrati šta se
dešava sa određenim parametrima.
21
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Slika U-12. Watch window
Za grafički prikaz određenih veličina možemo koristiti Data Monitor Control
Interface (DMCI). Za njegovo aktiviranje treba kliknuti na istoimenu opciju u Tools
meniju. Pojavljuje nam se prozor sa četiri grafika. Svaki od ta četiri grafika možemo
uključiti i isključiti i podešavati po potrebi. Grafici zahtevaju da im ulazni podaci koji
se nanose na vertikalnu osu budu nizovi. Horizontalna osa se deli na onoliko tačaka,
koliko je niz dugačak, i u tim tačkama se na graficima crta vrednost koja je sadržana u
odgovarajućem elementu niza. Desnim klikom na aktiviran grafik stižemo do niza
opcija u vezi oblikovanja grafika. Možemo menjati stil grafika, veličinu slova,
preciznost, natpise, mrežu itd.
Izvor informacija podešavamo u okviru prve opcije padajućeg menija – Configure
Data Source. Najpogodnije je izabrati iz liste promenljivih, datih pri sredini
novootvorenog prozora, npr. SnapBuf1, 2 i 3, kao na slici U-13. Na ovom mestu
možemo da odaberemo način prikazivanja podataka. Na vertikalnoj osi se mogu
postaviti npr. razlomljeni brojevi od -1 do 1, brojevi u brojnom sistemu sa osnovom 16
ili decimalni ekvivalent istih.
Na donjem delu slike U-14 se vide prečice za ponovno pokretanje ili nastavljanje
rada mikrokontrolera, čuvanje ili otvaranje neke datoteke sa nizovima i dugme kojim
se osvežaju podaci na graficima.
22
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Slika U-13. Podešavanje grafika
Uvod
Slika U-14. DMCI grafici
Nakon prvog pauziranja mikrokontrolera, posmatrane promenljive se
osvežavaj, tj. dobijamo njihov grafik. Mana ovakvog sistema je nemogućnost real time
praćenja promenljivih, već se za svaku obnovu podataka mora pauzirati mikroprocesor.
3.3.
Organizacija i osnove pisanja programa za mikroprocesor namenjen
upravljanju energetskim pretvaračima
Jedna od osnovnih inžinjerskih aktivnosti prilikom razvoja digitalno
upravljanog pretvarača je pisanje programa za mikrokontroler koji treba da upravlja
tim pretvaračem. Iako je princip rada ovog mikrokontrolera isti kao i onoga koji
izvršava programe na PC računarom, ne važe ista pravila za pisanje i izvršenje
njegovog programa. Kod PC računara postoji operativni sistem koji poziva pojedine
programe koji po pozivu odrade svoj posao i vraćaju kontrolu operativnom sistemu.
23
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
Pisac programa ne mora da brine o ostatku sistema niti šta se dešava pre ili nakon
njegovog izvršenja.
Kod namenskog mikrokontrolerskog sistema imamo drugačiju situaciju. Ne
postoji operativni sistem i naš sistem je potpuno namenski načinjen i prepušten samom
sebi. U tom slučaju pisac programa mora da predvidi sve potrebne akcije kako nakon
reseta (dolaska napajanja), tako i tokom celog životnog veka uređaja. Naš program
nema ničiju pomoć, on počinje od početka (reseta) i ne prestaje da izvršava svoju
funkciju do kraja radnog veka uređaja.
Programski brojač se nakon reseta mikrokontrolera postavlja na unapred
predviđenu lokaciju u programskoj memoriji. Tu počinje naš program da se linearno
izvršava. Da bi glavni deo programa pravilno radio u ovom delu se postavlja (linkuje)
inicijalizacija, početni deo programa u kome se podešavaju sve globalne programske
promenjive i funkcije i prvi put spremaju za rad. Zatim se prelazi u programski deo
koji se nalazi u beskonačnoj petlji i koji se izvršava koliko je god moguće brzo i zatim
ponavlja. Mikrokontroler izvršava programske instrukcije po taktu internog sata od čije
brzine zavisi brzina izvršenja programa i samim tim brzina ponavljanja ovih operacija.
Dok ovakva programska struktura može da zadovolji većinu prostih primena
mikrokontrolera to nije slučaj i sa upravljanjem energetskim pretvaračem. Digitalno
upravljanje energetskih pretvarača karakteriše rad u realnom vremenu, t.j. potreba da
se neke akcije izvrše u tačno određenim i ekvidistantnim vremenskim trenucima. Ovo
zahteva posebnu strukturu programa koja većinu svojih funkcija izvršava paralelno sa
glavnom beskonačnom petljom, i sinhrono na osnovu takta nekog od unutrašnjih
brojača vremena. Nadalje, pri upravljanju energetskim pretvaračima mikroprocesor
uvek koristi pomoć neke od specijalno namenjenih periferija koje takođe treba
konfigurisati neposredno nakon reseta, t.j. u toku inicijalizacije.
Da bi se gore opisan zahtev ispunio, pogram mikrokontrolera se uvek sastoji iz
najmanje tri dela:
1) Deo za inicijalizaciju
a. inicijalizacija globalnih promenjivih, na
primer postaviti:
broj_impulsa=0, brzina_motora = 0, ref_brzina = 0, strujni_limit
=100 ... Bez ovih vrednosti program bi počeo od nedefinisanog
stanja. Na primer, ne bi bilo dobro da nakon reseta motor dobije
nenultu referentu brzinu i počne nekontrolisano da se okreće.
b. inicijalizacija programskih modula, pojedini SW moduli zahtevaju
pozive za inicijalizaciju da postave svoje interne promenjive na
početnu vrednost, to su pozivi na primer – PI_controller_init(),
24
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
SpaceVector_init() ... _init na kraju imena funkcije jasno pokazuje
da je to poziv inicijalizacije.
c. inicijalizacija koriščenih periferija, pre rada sa AD konvertorom,
ili
brojačem,
ili
PWM
modulom,
njih
treba
inicijalizovati/parametrizivati,
na
primer:
PWM_init(),
UART_init()... Ove funkcije podese na primer PWM frekvenciju
na 16kHz ili BuadRate serijske veze na 9600...
d. zatim dozvola dešavanja prekida, PWM_INT _ENABLE= 1 ...
2) glavna petlja – u njoj se izvršavaju asinhrone operacije, tj. one koje ne
zahtevaju precizno brzinu ni trenutak izvršenja
a. HMI interface – ljudsko oko/ruka su spori, u glavnu petlju treba
postaviti program za ispisivanje na display, program koji čita
tastere , etc, sve one koji nisu vremenski kritični.
b. Pozadinski račun – svaki račun koji nije vremenski kritičan
c. Sigurnosne provere – one često nisu vremenski kritične, kao na
primer RAM test, FLASH test, naponski test...
d. Parametrizacija ... Večina parametara se sporo menja, idealno
mesto za njihovu promenu je deo programa koji se sporo izvršava.
3) Deo koji se sinhrono izvršava, smešten u prekidnoj rutini koja se
poziva u ekvidistantnim vremenskim trenucima.
Ovde se vrše radnje koje se moraju izvršiti u tačno određenim trenucima,
uglavnom sve u vezi kontrole pretvarača.
a. Sinhronizovano merenje struja, napona, brzine, položaja...
b. Sinhrono čitanje referentnih/komandnih veličina
c. Izvršenje algoritma upravljanja – na primer linearni regulator
struje koji radi na osnovu greške između zadate (3.b) i izmerene
(3.a) vrednosti struje. Regulator na izlazu daje potreban napon da
se održi zadata struja, i on mora da radi u realnom vremenu.
d. upis novih komandi ka pretvaraču. Algoritam upravljanja definiše
novu naponsku komandu, i nju odmah treba zadati pretvaraču. Za
to se koriste specijalne periferije tipa PWM motor control.
Jedan od najboljih načina početka izrade programa za mikrokontroler je izrada
uproštenog blok dijagram algoritma programa, sl. U-12. Blok dijagram algoritma
25
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
programa jasno pokazuje tok programa kao i glavne funkcije koje taj program izvršava.
Slika U-15 daje tipičnu strukturu programa za mikrokontroler. Na slici se jasno može
razdovojiti inicijalni deo koji se izvršava samo jednom i to odmah nakon starta, deo
sa glavnom petljom (main loop) koji se neprekidno ponavlja, i potprogram koji se
poziva u prekidnoj rutini brojača T1 (ukoliko se brojač inicijalizuje da brojim vreme tx,
prekid T1 a samim tim i izvršenje potprograma T1 će se uvek izvršavati u vremenskim
trenucima međusobno udaljenim tačno za tx) .
Glavni program
Inicijalizacija sistema
Inicijalizacija vremenskog brojača (T1)
dozvola prekida T1
glavna petlja
Sl. U-15. Opšti algoritam rada mikrokontrolera
Nakon izrade blok dijagrama algoritma programa pristupa se pisanju programa
za odabrani mikrokontroler. Svaki mikrokontroler poseduje svoj asembler, programski
jezik nižeg nivoa (mnogo bliži mašini nego čoveku) koji se brzo izvršava. Asembler se
ipak danas sve reže koristi jer nestandardan i manje komforan od jezika višeg nivoa.
Algoritam sa slike U-15 u asembleru za Microchip seriju bi izgledao ovako:
; Glavni program:
__reset:
call InitSystem
call InitTimer1
bset IEC0,#T1IE
glavna petlja:
*** telo glavne petlje ***
bra glavna petlja
; Prekid T1:
__T1Interrupt:
*** telo potprograma T1 ***
retfie
;inicijalizacija sistema
;inicijalizacija T1
;dozvoli prekid T1: bit T1IE u
;registru IEC0 postavi na 1
;asinhroni deo programa
;granaj (branch) se na glavnu petlju
; sinhroni deo programa
; vrati se u glavni program (return
; from interrupt)
26
Primena mikroprocesora u elektroenergetici – laboratorijski praktikum
Uvod
C programski jezik je mnogo bliži čoveku i konformniji je za rad. C jezik je definisan
standardom i isti C - program se može izvršiti na različitim mikrokontrolerima. Danas
su na raspolaganju odlični C kompajleri koji generišu asemblerski kod optimalne
dužine i maksimalne brzine tako da rad u asembleru polako postaje prošlost.
Algoritam sa slike U-15 u programskom jeziku "C" bi izgledao ovako:
// Glavni program:
int main(void)
{
InitSystem();
InitTimer1();
IEC0bits. T1IE = 1;
while (1)
{
*** telo glavne petlje ***
}
// funkcija za inicijalizaciju sistema
// funkcija za inicijalizaciju T1
// dozvoli prekid T1: bit T1IE u registru
// IEC0 postavi na 1 (IE = interrupt enable)
// asinhroni deo programa
}
// Prekid T1:
void __attribute__((__interrupt__)) _T1Interrupt(void)
{
*** telo potprograma T1 *** // sinhroni deo programa
}
Kompletni programi za upravljanje energetskim pretvaračima (pisani u asembleru ili C
jeziku) koji se u toku vežbi koriste će biti priloženi u sledećim poglavljima.
27
Download

Uvodni deo novog praktikuma-osnove rada sa mikrokontrolerima