kontrola brzine jednosmernog motora korišćenjem ... filemeđutim, u velikom broju uređaja koji se...

30
Opis laboratorijske vežbe za studente treće godine na Univerzitetu Politehnika u Madridu Kontrola brzine jednosmernog motora korišćenjem mikroprocesora MCF5272 1. Uvod Cilj laboratorijskih vežbi iz predmeta Digitalni Elektronski Sistemi je da student kroz praktičan rad primeni i utvrdi znanje stečeno na predmetima Digitalni Elektronski Sistemi i Laboratorijske vežbe iz predmeta Digitalni elektronski sistemi sa treće godine, oslanjajući se na osnovno znanje programiranja stečeno na predmetima Osnove programiranja i Laboratorijske vežbe iz programiranja. Potrebno je pratiti uputstva koja obuhvataju različite faze dizajna, analize, implementacije i predložena merenja u kolima i programima. Poseban naglasak je na sticanju praktičnog pogleda na problem u kome student treba da implementira hardver (HW) i softver (SW) elektronskog sistema. Usvojen je minimum specifikacija koje implementirani uređaj treba da zadovolji što nosi maksimalno 8 poena. Kao dodatak specifikacijama dati su i predlozi za moguća poboljšanja dizajna pri čemu se i studentima ostavlja sloboda da dodaju nova poboljšanja ili alternativne šeme. Sa mogućim poboljšanjima i dodacima na osnovni prototip, u zavisnosti od postignute težine problema, moguće je osvojiti maksimalnih 10 poena. Dodatno poboljšanje ne garantuje da će ocena biti iznad 8, samo nudi mogućnost dodatnih poena. Studenti koji žele da naprave specijalan dizajn zasnovan na sopstvenoj ideji (ili predloženoj od strane profesora) moraju da ga prezentuju nekom od predmetnih profesora (i da dobiju odobrenje od istog) na 2-3 strane u kojima opisuju cilj predloženog sistema, koji resursi su potrebni, kao i predložene arhitekture hardvera i softvera za rešenje problema.

Upload: others

Post on 23-Oct-2019

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

Opis laboratorijske vežbe za studente treće godine na Univerzitetu

Politehnika u Madridu

Kontrola brzine jednosmernog motora korišćenjem

mikroprocesora MCF5272

1. Uvod

Cilj laboratorijskih vežbi iz predmeta Digitalni Elektronski Sistemi je da

student kroz praktičan rad primeni i utvrdi znanje stečeno na predmetima Digitalni

Elektronski Sistemi i Laboratorijske vežbe iz predmeta Digitalni elektronski sistemi

sa treće godine, oslanjajući se na osnovno znanje programiranja stečeno na

predmetima Osnove programiranja i Laboratorijske vežbe iz programiranja. Potrebno

je pratiti uputstva koja obuhvataju različite faze dizajna, analize, implementacije i

predložena merenja u kolima i programima. Poseban naglasak je na sticanju

praktičnog pogleda na problem u kome student treba da implementira hardver (HW) i

softver (SW) elektronskog sistema. Usvojen je minimum specifikacija koje

implementirani uređaj treba da zadovolji što nosi maksimalno 8 poena. Kao dodatak

specifikacijama dati su i predlozi za moguća poboljšanja dizajna pri čemu se i

studentima ostavlja sloboda da dodaju nova poboljšanja ili alternativne šeme. Sa

mogućim poboljšanjima i dodacima na osnovni prototip, u zavisnosti od postignute

težine problema, moguće je osvojiti maksimalnih 10 poena. Dodatno poboljšanje ne

garantuje da će ocena biti iznad 8, samo nudi mogućnost dodatnih poena. Studenti

koji žele da naprave specijalan dizajn zasnovan na sopstvenoj ideji (ili predloženoj od

strane profesora) moraju da ga prezentuju nekom od predmetnih profesora (i da dobiju

odobrenje od istog) na 2-3 strane u kojima opisuju cilj predloženog sistema, koji

resursi su potrebni, kao i predložene arhitekture hardvera i softvera za rešenje

problema.

Page 2: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

2

2. Specifikacija zahteva sistema

2.1. Uvod

U svakodnevnom životu veliki broj uređaja se zasniva na radu motora.

Ukoliko se ne želi širok opseg brzina rada uređaja ili uređaj nije prenosiv, poželjnije

je koristiti motor sa neizmeničnom strujom. U velikom broju uređaja motor se napaja

direktno naizmeničnom strujom, s obzirom da većina kućnih uređaja na struju radi sa

konstantnom brzinom i male varijacije ove brzine neće uticati na ispravan rad uređaja.

Međutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori

koji se napajaju jednosmernom strujom. To omogućava prenosivost uređaja (zbog

prenosivosti izvora jednosmerne struje), ali je dobijeni uređaj manje snage. Jedna od

najvećih prednosti jednosmernih motora je laka kontrola brzine njegovog obrtanja

promenom vrednosti napona na njegovim krajevima.

Studentima se predlaže praktična implementacija sistema koji radi unutar

ventilacionog sistema ili air-condition uređaja koji prihvata ručnu kontrolu

(podešavanje brzine obrtanja ventilatora) i kontrolu brzine obrtanja jednosmernog

motora baziranu na automatskoj kontroli korišćenjem mikroprocesora MCF5272 koji

pokušava da kompenzuje promene temperature promenom brzine obrtanja. S obzirom

da je glavna namera edukacija studenata sa akcentom na interakciju hardvera i

softvera u zahtevima za rad u realnom vremenu, neće biti implementiran kompletan

realan sistem.

2.2. Glavni zadatak

Cilj praktičnog rada je pokazivanje izvodljivosti ideje osnovnog dizajna.

Program koji izvršava mikrokontroler će biti napisan na asembleru ili C-u (razvijena

je softverska podrška za programiranje na oba jezika), kao i digitalni sistem baziran

na mikroprocesoru MCF5272.

Page 3: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

3

Glavni zadatak rada se može rezimirati na sledeći način: Razviti digitalni

sistem baziran na mikroprocesoru koji omogućava:

merenje brzine obrtanja motora i njeno periodično prikazivanje na

LCD displeju

merenje sobne temperature i njeno periodično prikazivanje na LCD

displeju; na taj način će biti prikazano proporcionalno pravilo: što je

veća sobna brzina, veća je i brzina obrtanja motora

detektovanje i dekodovanje pritisaka korisnika na tastaturi koja ima 16

tastera i prikazivanje na displeju; interperetiranje pritiska kao:

sekvenca cifara koja se završava pritiskom na Intro (čime se

brzina obrtanja zadaje ručno)

promena između ručnog i automatskog zadavanja brzine

ručno povećanje ili smanjenje trenutne brzine

prikazivanje statističkih podataka:

srednja vrednost brzine od trenutka uključivanja sistema

srednja vrednost greške, tj. razlike izmeđi željene i merene

brzine

vreme rada

obrtanje motora u skladu sa željenom brzinom i korišćenje PI i PID

regulatora u povratnoj sprezi za kontrolu brzine obrtanja

Procesiranje će biti neodređeno, tj. program neće prestati sa izvršavanjem dok

se sistem ne ugasi.

Prototip koji će biti implementiran bazira se na naponskoj kontroli brzine

obrtanja motora korišćenjem PWM signala. Kontrola će biti izvršena korišćenjem

povratne sprege gde se kao povratni signal šalje izmerena brzina obrtanja motora. U

zavisnosti od razlike između željene brzine programirane ručno ili automatski i

izmerene brzine primeniće se manji ili veći napon na krajeve motora dok se brzine

ne izjednače koristeći izlazni stepen sposoban da pobudi motor.

Page 4: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

4

U konačnoj verziji ispis na ekran ne sme da uspori automatsku kontrolu brzine

(zahtev konkurentnosti i primene u realnom vremenu).

Sistem mora da prepozna pritiske na sledeće tastere (u minimalnoj verziji):

cifre od 0 do 9

taster za početak (Intro) F

taster za promenu moda C

tastere za povećanje (+) i smanjenje (-) željene brzine

taster za prikazivanje statističkih podataka E

U nadležnosti softverskog sistema će biti generisanje i procesiranje signala

potrebnih za upravljanje eksternim hardveskim uređajima: tastaturom, LCD

displejom, motorom, temperaturnim senzorom i meračem brzine.

2.2.1 Različiti slučajevi primene

U sistemu će biti nekoliko spoljašnjih učesnika:

tastatura, preko koje korisnik može da podešava različite operacije sistema

HW motora, sa različitim stepenima snage

HW za detekciju brzine obrtanja, uglavnom elektro-optički

HW za merenje temperature, baziran na kolu senzora

Mogući slučajevi upotrebe softvera bili bi:

debaunsiranje tastature

ako je sistem u manualnom režimu rada, svaki pritisak na taster treba da

izazove prikazivanje odgovarajuće cifre na displeju; željena brzina se ne

menja dok se ne pritisne neki od specijalnih tastera: F, +, - , C

pritiskom na taster I u manualnom režimu rada menja se željena brzina rada u

skladu sa pritisnutim tasterom

Page 5: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

5

nije dozvoljeno da broj pritisnutih cifara pređe veličinu unutrašnjeg bafera (s

obzirom da je maksimalni broj obrtaja motora 150, dovoljne su 3 cifre);

ukoliko se pritisne više tastera bez ijednog pritiska na taster I, sistem će

nastaviti ispisivanje; u trenutku kada se pritisne Intro taster, sistem se vraća u

normalan rad

odabiranje vrednosti temperature će se vršiti svake dve sekunde i ispisivati na

displeju

u automatskom modu željena brzina bazirana na temperaturi će se prikazivati

svake dve sekunde

Funkcije tastera na tastaturi (Slika 1) su:

0-9 - cifre 0-9

A - + (povećanje brzine)

B - − (smanjenje brzine)

C - promena moda

D – ne koristi se

E – prikazivanje na displeju,

F - Intro

Slika 1

Moguće je razlikovati 3 različita stanja funkcionisanja sistema zajedno sa

pridruženim tasterima koji omogućavaju promenu iz jednog stanja u drugo (slika 2):

Page 6: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

6

Ručna kontrola; sistem dozvoljava zadavanje brzine obrtanja sa maksimalno 3

cifre koje predstavljaju broj obrtaja u sekundi; dok ni jedan taster nije pritisnut

na LCD displeju se prikazuje željena brzina i izmerena brzina motora;

Automatska kontrola; sistem meri trenutnu temperaturu i na osnovu tih

merenja modifikuje željenu brzinu; na LCD displeju se prikazuju željena i

izmerena brzina

Predstavljanje statističkih podataka; na LCD displeju treba prikazati sračunate

statističke vrednosti: srednju brzinu obrtanja motora, srednju vrednost greške

kao i proteklo vreme.

Slika 2:Grafički prikaz funkcionisanja sistema

3. Softverski podsistem

3.1. Model zahteva

U ovim vežbama student nije u potpunosti zadužen za analizu i modelovanje

zahteva, već su mu delimično pružene informacije kako bi ispunio svoj zadatak.

Page 7: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

7

3.2. Model objekata ili promenljivih

Rad na otkrivanju koji objekti ili strukture podataka su potrebni u projektu je

sistematičan samo do određene tačke. Posle analize zahteva potrebno je utvrditi da

glavni objekti moraju biti sledeći:

1) Taster

Predstavlja svaki simbol pritisnut od strane korisnika. To je aktivan objekat

koji zahteva brisanje matrične tastature.

2) Bafer ulaznih cifara

Predstavlja bafer pritisnutih cifara bez pritisaka na specijalne tastere. Pritisak

na taster Intro znači prelazak na manualni mod gde sadržaj bafera predstavlja željenu

brzinu obrtanja motora. Za implementaciju je potreban bafer odgovarajuće veličine,

deo za računanje ili krajnja tačka koja dozvoljava prolazak kroz bafer (bez izlaska van

granica bafera) i upisivanje simbola koji će se kasnije prikazati. Ne sme se dozvoliti

unošenje više od tri cifre s obzirom da bi to dovelo do brzine koju je nemoguće postići

i potrebe za obradom greške.

3) Bafer izlaznih cifara

Kao i ulazni bafer, imaćemo i bafer izlaznih cifara gde će biti smeštene po 3

cifre svake brzine (merene, željene, srednje...) koje će biti prikazane na LCD displeju.

To je aktivan objekat koji deluje preko LCD-a za prikazivanje izlaznih veličina.

4) Željena brzina

Ovaj objekat sadrži željenu brzinu motora prikazanu kao broj obrtaja po

sekundi. Željena brzina se može postići na dva načina:

Ručno, preko cifara koje je zadao korisnik i koje se nalaze u ulaznom

baferu

Page 8: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

8

Automatski, modifikovanjem prethodne na osnovu izmerenih

temperaturnih varijacija i prethodno izmerene temperature

5) Merena brzina

Brzina motora (takođe prikazana kao broj obrtaja u sekundi) dobijena od broja

obrtaja motora (koje je detektovao par optokaplera) u konstantnom periodu vremena.

Razlika između izmerene i željene brzine će se iskoristiti za korekciju aktivnog

perioda u PWM signalu primenjenom na motor. To je aktivan objekat koji sadrži skup

spoljašnjih prekida i kontrolu sporadičnih prekida.

6) Merena temperatura

Ovaj objekat sadrži vrednost temperature dobijene od hardverskog sistema za

merenje temperature. Kada sistem radi u automatskom modu, smanjenje ili povećanje

temperature će biti korišćeno za korekciju željene brzine motora. To je aktivan

objekat koji sadrži periodične prekide i kontrolu analogno-digitalnog konvertora.

7) Statistički podaci

Ovaj objekat sadrži statističke podatke kao što je prosečna brzina motora,

srednja vrednost greške između izmerene i željene brzine i vreme rada motora.

8) Sat

U prethodno opisanim objektima potrebno je računati vreme kako bi se neke

od operacija izvršile korektno (na primer za merenje trenutne brzine motora). Zbog

toga je potrebno imati jedan ili više objekata koji obavljaju funkcije računanja

vremena.

Implementacija različitih kašnjenja ili merenja vremena može dovesti do

potrebe za nekoliko naprava za računanje vremena. U ovoj vežbi će biti potrebne bar

dve. U prvom je potrebno ustanoviti vreme za koje je potrebno izračunati izmerenu

brzinu motora i izvršti korekciju aktivnog vremena PWM signala kako bi se približilo

Page 9: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

9

željenoj brzini. U drugom se definiše vreme u kome se meri temperatura da bi se

delovalo na željenu brzinu u automatskom modu.

3.2.1. Rutine ili generalne metode o objektima iz sistema

Svi objekti (ili strukture podataka) mogu da imaju pridružene bar 2 ili 3

generalne funkcije (ili metode) koje njima manipulišu:

Inicijalizacija (inic): Daje inicijalne vrednosti članovima objekta ili strukture

podataka. U C-simulacijama obično otvara fajl za čišćenje gde će svi događaji

i vrednosti objekta tokom vremena biti upisani, tako da omogućava kasniju

detaljnu analizu rada.

Reinicijalizacija (reset): Vraća početne vrednosti objektima

Finalizacija (fin): U slučaju koji nas zanima njeno postojanje nema smisla

zato što objekti ne nestaju dok se ne završi rad njihovog sistema i to nisu

postojani objekti čije je vrednosti potrebno čuvati radi inicijalizacije kasnijih

izvršavanja sistema.

3.3. Model dizajna

U modelu dizajna adaptiramo svoj model objekata da bismo uzeli u obzir:

dobijene vremenske zahteve u modelu zahteva

hardver kojim raspolažemo (njegova brzina, arhitektura. . .)

prethodni softver koji želimo da ponovo koristimo

3.3.1. Arhitektura softverskog sistema

Arhitektura sistema je skelet ili šema na kojoj je sistem baziran i koja se vrlo

malo menja tokom vremena, iako dozvoljava razvoj ostatka nearhitekturalnih modula.

Page 10: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

10

Utvrđuje podelu sistema na podsisteme i reguliše njihove veze, njihovu lokaciju i

sinhronizam. To je prvi element svakog dobrog dizajna i mora biti prisutan od prvog

prototipa. Često se počinje sa dizajniranjem sistema tako što se implementira prototip

koji sadrži predloženu arhitekturu kompletnog sistema, iako podsistemi imaju

propuste u radu (ili im je elementarna funkcionalnost vrlo različita od krajnje potrebne

funkcionalnosti).

Da bi se utvrdili podsistemi (i sa njima i arhitektura), možemo koristiti:

intuiciju: da rukovodi našim odlukama koje elemente da grupišemo, a koje ne

minimizaciju međuzavisnosti i veza: da bi se utvrdili podsistemi koji su vrlo

nezavisni i čiji interfejs je minimalan

formiranje funkcionalnih grupa: skup objekata koji formiraju zajedničku

funkciju ili uslugu moraju pripadati istom podsistemu

uzeti u obzir znanje o hardveru: ako je naš sistem napravljen od različitih

hardverskih i softverskih delova, bilo bi logično ne grupisati softverske

elemente koji se ne izvršavaju na istom hardveru i za koje bi bio potreban

komunikacioni protokol

iskustvo ili prethodna bibliografija: na osnovu njih se utvrđuju šabloni ili

modeli arhitekture koji su prethodno rešili mnogo sličnih problema i mogu

nam poslužiti kao referenca. Neke arhitekture su tako poznate i klasične, kao

što je klijent-server (česta u komunikacijama), arhitektura sa slojevima

(kao kula OSI) i kaskadno procesiranje (tipično u sistemima za digitalnu

obradu signala).

Nastavljajući sa primerom koji komentarišemo, naša analiza glavnih objekata

nam skoro direktno daje arhitekturu, iako se u određenim sistemima ovo ne dešava

zbog čega je potrebno koristiti različite ranije pomenute kriterijume grupisanja. Ipak,

nije strano da, za svaku od veza sistema sa spoljašnjim agentima, postoji podsistemski

interfejs za takvu konekciju na takav način da su procesori oslobođeni načina razmene

podataka sa spoljašnošću (što olakšava simulaciju i povećava portabilnost, na primer).

Arhitektura mora biti u stanju da podrži:

zahteve dizajna nametnute od strane klijenta: kao što je u našem slučaju

sinhrono procesiranje u realnom vremenu

Page 11: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

11

zahteve nametnute od strane hardvera: na primer, imamo izlaze PWM-a i

osetljive ulaze koji olakšavaju naš zadatak

softver na raspolaganju: u našem slučaju za manipulaciju ekranom je potrebno

proći kroz Trap #15, da se ne bi reprogramirale veze i trošilo vreme, ili

tutorijali o tastaturi, LCD-u ili A/D i D/A konvertorima.

Slika 1:Arhitektura softvera

Page 12: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

12

3.3.2. Dinamički model

Da bi se opisao razvoj objekata ili podsistema tokom vremena i u funkciji

proizvedenih događaja, potrebno je koristiti dijagram promene stanja. Jednom stanju

objekta je pridružena vrednost ili kombinacija vrednosti njegovih promenljivih

relevantnih u vreme opisivanja njegovog objekta tokom vremena. Promena stanja se

dešava usled pojave sinhronih ili asinhronih događaja sa dodatnim izvršavanjem jedne

ili više funkcija objekata. Dinamički model formira deo dizajna.

Objekti Taster, Izlazni bafer, Merena brzina i Merena temperatura koji

direktno intereaguju sa hardverom imaju specijalnu dinamiku upravljanu mašinama

stanja koje će biti opisane.

3.3.2.1. Dinamički model objekta taster

Brisanje: Inicijalno, potrebno je brisati tastaturu dok se ne detektuje pritisak

tastera; to je moguće modelovati upotrebom sledećih pod-automata:

Pobuditi jednu vrstu ili kolonu

Sačekati propagaciju eksitacije i odgovarajućeg odziva

Analizirajući odgovor, detektovati da li je neki taster pritisnut u

određenoj vrsti ili koloni

Ako još uvek nismo naišli na sve pritisnute tastere, potrebno je vratiti se

na tačku 1 (ali sa promenom vrste ili kolone; ako se došlo do kraja,

potrebno je vratiti se na početak)

Debaunsiranje: ukoliko je detektovan određen pritisak na taster potrebno ga

je prikazati i sačekati određeno vreme da bi se smirile mehaničke pulsacije

tastera

Sačekati da se smire pulsacije tastera: kada prođe određeno vreme potrebno

je sačekati da korisnik prestane sa pritiskom tastera (da bi se izbeglo

interpretiranje dugog pritiska kao nekoliko manjih)

Page 13: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

13

Debaunsiranje: ukoliko je detektovano puštanje tastera, potrebno je sačekati

određeno vreme da bi se smirile mehaničke pulsacije

3.3.2.2. Dinamički model objekta Izlazni bafer

Kao što je rečeno, objekat Izlazni bafer sadrži po tri cifre brzine ili greške za

prikazivanje na displeju. Prikazivanje se sastoji iz tri koraka: jedan za svaku cifru.

Prikazivanje cifre traje odgovarajuće vreme koje je dato u specifikacijama za LCD

displej.

3.3.2.3. Dinamički model objekta Merena Brzina

Merenje brzine motora se sastoji u brojanju pulseva koje produkuje

detektorski par optokaplera tokom određenog vremena. U našem slučaju vreme će biti

250ms.

3.3.2.4. Dinamički model objekta merena temperatura

U slučaju merenja temperature koristi se takt sa periodom od 2s da bi se

odredili momenti očitavanja vrednosti temperature preko analognog ulaza 1. Da bi se

očitale vrednosti sa analognog ulaza 1 koristi se A/D konvertor koji je na raspolaganju

na platformi ENT2004CF koja se koristi u vežbi. Studentima se predlaže da pročitaju

specifikacije A/D konvertora koji se koristi u vežbi.

3.3.2.5. Dinamički model objekta Sat

Odgovornost za inkrementiranje ili dekrementiranje ovog objekta ili objekata

računskog tipa će imati periodični prekid. Ponašanje objekta je veoma prosto

(inkrementira se ili se dekrementira u svakom prekidu) i konsultovan je od strane

Page 14: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

14

procesa koji su u vezi sa objektima taster, merena brzina i merena temperatura da bi

se proizvela kašnjenja ili usporavanja. Kao na primer, ako se primenjuje

debaunsiranje, ovaj sat ili satovi mogu da služe za odbrojavanje perioda nečitanja

tastature tokom vremena baunsiranja tastera.

3.3.3. Procesi

Često digitalni elektronski procesi moraju da izvršavaju različite zadatke

paraleleno (konkurentno na nekoliko procesora) ili prividno paraleleno (sve akcije se

izvršavaju isprepletano proizvodeći tako privid paralelnosti ako je frekvencija

promene dovoljno visoka). To je ono što zovemo procesima. Stvaranje, izvršavanje,

sinhronizacija i uništenje procesa je obično postignuto preko operativnog sistema

koristeći različite primitive. Ali čak i u tom slučaju dizajner mora da definiše koje

zadaci ili rutine će biti konkurentni, da izabere mehanizam komunikacije među njima,

vreme života itd.

Mogu se definisati tri različita procesa koristeći periodične prekide, spoljašnje

prekide, kao što je prikazano na Slici 4. Ova šema procesa je obavezna.

Slika 2:Vremenska reprezentacija tri procesa: glavni program, spoljšnji prekid i periodični prekid

Page 15: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

15

Može se primetiti da funkcije pridružene istom objektu ne moraju biti

izvršavane u istom procesu. U ovom slučaju problem konkurentnosti između procesa

je uprošćen zato što, kao što ćemo kasnije otkriti, u ovom dizajnu ne postoji

pristupanje istom resursu u modu pisanja. Na primer, glavni program može da pristupi

upisivanju vrednosti promenljive koja sadrži vrednost željene brzine (npr. promeniti

vrednost željene brzine u manualnom modu) kada joj priodični prekid pristupa u

režimu čitanja (npr. kada je potrebno sračunati razliku između merene i željene

brzine).

3.3.3.1. Glavni proces

Uvek postoji i mora da inicijalizije objekte sistema, da inicijalizuje hardver,

omogući pojavu spoljašnjih prekida i inicijalizuje proces periodičnog prekida (_init).

Embeded sistemi koji rade u realnom vremenu obično sadrže beskonačnu petlju

(bucleMain) koja sprovodi zadatke bez strogih vremenskih zahteva, kao što u našem

slučaju može biti čitanje tastature i prikazivanje podataka na LCD displej.

U našem slučaju petlja glavnog programa bila bi:

BucleMain: if (tecladoConsultar ()) –- ako je pritisnit taster { teclaProcesar() -- izvršiti procesiranje } teclaProcesar() -- procesiranje tastera { LCDimprimir() -- prikazivanje na ekran velocidadActualizar() -- aktualizacija brzine }

gde, kada se detektuje pritisak na taster, vrši se njegovo ispisivanje na ekran, menjaju

se vrednosti brzinskih promenljivih, režim rada itd.

Glavna rutina za inicijalizaciju bila bi slična sledećem:

Init: swInit() * inicijalizuje software objetosInit() * inicijalizuje promenljive hwInit() * inicijalizuje prekide i portove

Page 16: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

16

Ovaj proces je najmanjeg prioriteta od sva tri zato što brisanje tastature ili

ispisivanje na LCD displej nisu akcije sa kritičnim vremenom izvršavanja.

3.3.3.2. Periodični prekidi

Sadržaće funkcije sa kritičnim vremenom izvršavanja; u našem slučaju to su

funkcije koje odbrojavaju vreme i deluju na motor kada se izmeri nova brzina (svakih

250ms) i kada se izmeri temperatura (svakih 2s). Njihovo izvršavanje je periodično,

diskontinualno i dešava se u jednakim vremenskim intervalima; konkurentan je sa

glavnim procesom koji može da prekine (ali od strane kog ne može biti prekinut). To

je proces da najvišim prioritetom od sva tri. Ovaj proces je zadužen za vremensku

kontrolu sistema i od njega zavisi ispravno funkcionisanje celog sistema. Zbog toga

ovaj proces mora imati najviši prioritet.

U našem sistemu prekidna rutina bi bila: InterrupcionPeriodica:

GuardarRegistros() --sačuvati vrednosti registara interrReset() ... if (tiempo1==250ms){ -- ako je izmereno vreme 250ms tiempo1=0; VelocidadMedir() -- izmeriti brzinu ActuarSobreMotor() -- delovati na motor } ... if(tiempo2==2seg)&&(Modo==automatico){ -- ako je izmereno

vreme tiempo2=0; 2s i sistem je u automatskom

modu TemperaturaMedir() -- izmeriti temperaturu ActuarSobreMotor() -- delovati na motor } ... relojesActualizar() -- aktualizovati vrednost sata RestaurarRegistros() -- povratiti vrednosti registara RTE External interrupt -- dozvoliti spoljašnje prekide

3.3.3.3. Spoljašnji prekid

Ovaj prekid treba da se dogodi kad god motor završi pun krug obrtanja. U

našem sistemu prekidna rutina treba samo da broj obrtaja motora poveća za jedan:

Page 17: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

17

InterrupcionExterna: GuardarRegistros() interrReset() ContadorVueltas=ContadorVueltas+1; ... RestaurarRegistros() RTE

Ovaj proces treba da ima veći prioritet od glavnog programa da bi se

realizovalo merenje broja obrtaja motora iako se tastatura briše ili se vrši ispisivanje

an displej, ali mora da ima manji prioritet od periodičnog prekida koji vrši vremenske

kontrole čitavog sistema.

3.4. Model implementacije

3.4.1. Programiranje

Kada, posle dizajniranja, budemo imali statičke i dinamičke modele, dolazi

deo kada treba pretvoriti ideje u modele u obliku izvodljivog koda, tako da je

zavisnost od programskog jezika kompletirana?.

U vreme programiranja u asembleru moraju se uzeti u obzir kriterijumi

kvaliteta usvojeni usvojeni u predmetu:

Svaki potprogram mora da ima jedinstvenu tačku početka i jedinstvenu tačku

završetka i ne sme se preplitati sa drugim potprogramima

Potrebno je imati odgovarajući broj potprograma (koje pomažu podelom

problema na potprobleme) koje nisu obimne (čime bi bile kompilikovane za

razumevanje i popravku). Neki od preporučenih potprograma su dati kroz ovo

izlaganje.

Moraju se koristiti definisane konstante (direktiva EQU) kako bi se sistem

lako rekonfigurisao. Tipičan primer mogu biti:

Konstanta koja omogućava laku promenu frekvencije vremenskih

prekida (FREQ_INT EQU...)

Page 18: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

18

Konstanta koja modifikuje vreme čekanja između faza eksitacije i

čekanja odgovora od tastature (RET_TECL EQU...)

Treba koristiti različite i odgovarajuće vrste adresiranja (indeksno, indirektno,

sa post-inkrementom…) i koristiti strukture podataka koje grupišu povezane

podatke i olakšavaju implementaciju (baferi, tabele sa vrednostima…).

Upotreba ovih tehnika obično dovodi do kompaktnijeg i elegantnijeg koda.

Odgovarajući komentari moraju biti uneseni u kod (komentari koji doprinose

boljoj čitljivosti koda, ne samo parafraziranje koda). Jedan loš primer

komentara bio bi:

ADD.L #1,D0 * inkrementira vrednost registra

3.4.2. Optimizacija

Iako se optimizacija koda (kao i potrošnja memorije i CPU vremena) ne može

izvršiti pre faze implementacije, loš dizajn ili loša arhitektura mogu ovaj rad učiniti

nemogućim u fazi implementacije, zahtevajući ponovno razmotravanje dizajna. Tako

da ako je naša arhitektura realizovala regulaciju brzine u glavnom programu, bilo bi

vrlo teško ispuniti vremenske zahteve ovog zadatka i može doći do neregularne

kontrole: kada postoji strukturni defekt, bilo koja optimizacija bi bila osuđena na

neuspeh ako ponovo ne razmotrimo arhitekturu.

Iako to nije naš slučaj (predložena arhitektura može da zadovolji zahteve

sistema), s obzirom da se u laboratoriji vežbe odnose na realno vreme, moguće je da

će student morati da koristi jednu ili više strategija optimizacije da bi bio u stanju da

reši problem zadat u ovom izlaganju.

4. Potrebno znanje pre dolaska u laboratoriju

Iako u početku može biti zamorno, predlaže se studentu da odvoji vreme za

upoznavanje sa knjigama koje predstavljaju podršku radu u laboratoriji.

Page 19: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

19

Takođe student treba da pronađe i upozna se sa softverskim alatom

EDColdFire (koji sadrži asembler za MCF5272 i takođe GCC kompajler za vežbe i

razvoj jezika C) i da se kod kuće upozna sa njim.

Sa svrhom ostvarivanja maksimuma na vežbama u laboratoriji, gde su resursi

vrlo ograničeni, student bi trebalo da ima programe napisane kod kuće i asemblirane

upotrebom EDColdFire softvera radi provere da kod ne sadrži sintaksne greške.

Tokom termina u laboratoriji, student će izvršiti program na platformi ENT2004CF

radi pronalaženja grešaka u radu i njihovog ispravljanja u laboratoriji.

Student takođe mora da poznaje arhitekturu i set instrukcija procesora

MCF5272.

5. Detaljan opis prvog časa u laboratoriji

Pre pristupanja praktičnim vežbama, studenti će imati prvi čas u laboratoriji

namenjen upoznavanju sa hardversim razvojnim okruženjem (platforma ENT2004CF

- zbog sigurnosnih razloga student ne povezuje svoj sistem direktno na MCF5272 već

preko kartice za interfejs koja se sastoji od digitalnog bafera na početku, seta LED

dioda, stepena optokaplera i digitalnog bafera na kraju) i završavanju sticanja

sposobnosti za rad u softverskom razvojnom okruženju (EDColdFire) koje bi trebalo

da je poznato pre dolaska u laboratoriju. Prvi čas u laboratoriji se sastoji iz sledećih

delova:

Realizacija određenog broja tutorijala koji su namenjeni upoznavanju

studenta sa hardverom

Isvršavanje, debagovanje i modifikovanje prvog programa; to je

program kojim se sa tastature učitava broj od 3 cifre i prikazuje na

displeju i zatim se prikazuje vrednost tog broja podeljenog sa 4;

student mora da počne sa realizacijom ovog programa na prvom času i

da bude u stanju da završi do početka drugog časa. Konačni izveštaj o

vežbama mora da sadrži i taj kod.

Page 20: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

20

5.1. Metode rada

Na računaru u laboratoriji student mora da napravi svoj folder u kome

će se nalaziti urađen rad u toku svakog termina u laboratoriji u

posebnim direktorijumima pod nazivima termin_1, termin_2, itd.

Na kraju rada, student treba da snimi svoje programe na disketu ili

flash memoriju i da obriše sa kompjutera sve što je urađeno u tom

terminu kako bi se izbegli problemi neželjenog kopiranja. Na kraju

celog rada svi programi se predaju u elektronskoj formi radi provere.

Računari u laboratoriji su povezani na Internet ukoliko student želi da

prenese podatke na drugu mašinu ili ih pošalje na e-mail.

5.2. Dizajn, implementacija i testiranje prvog programa

Kada završi sa uvodnim tutorijalima, student mora da razvije jednostavan

program koji omogućava čitanje trocifrenog broja sa tastature i njegovo prikazivanje

na displeju, a zatim i prikazivanje tog broja podeljenog sa 4. Ovaj jednostavan

program će poslužiti kao prva verzija ulaznog i izlaznog modula koji će se razvijati

tokom perioda od četiri meseca.

S obzirom da je većina programa urđena, od studenta se zahteva da uradi dva

nova potprograma:

Konvertovanje trocifrenog ASCII simbola (dobijenog sa tastature) u

decimalan ili haksadecimalan broj sa kojim može da se operiše (u

našem slučaju deli sa 4);

Proces suprotan prethodnom, tj. konvertovanje decimalnog ili

heksadecimalnog broja u trocifreni ASCII simbol radi njegovog

prikazivanja na LCD displeju.

Student mora da počne sa realizacijom ovog programa na prvom času i da

bude u stanju da završi do početka drugog časa.

Page 21: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

21

5.3. Osnovna struktura programa

Sledeće što uključujemo je skelet programa koji treba da se razvije i koji

sadrži pet delova. Simbolom <…> se prikazuje nešto što može ostati prazno ili

predstavljati instrukciju ili grupu instrukcija koje su izostavljene.

************************************************* * ZONE OF CONSTANTS <... > ORG < value > * ZONE OF GLOBAL VARIABLES <... > **************************************************** * MAIN PROGRAM **************************************************** PPAL <... > * Supervisor mode. disqualifies interruptions <... > * Moves the stack pointer to a valid region BSR swInit * Subrutina complete configuration of SW BSR hwInit * Subrutina complete configuration of the HW <... > * Qualifies the interruptions CPU LOOP BSR bucleMain * loop of main program. BRA LOOP END PPAL ************************************************* * ZONE OF SUBRUTIES <... > * Subrutine of complete configuration of the hardware hwInit: <... > RTS * Subrutina of boot of the variables that need swInit: <... > RTS * Subrutina that contains the main program * whose execution is typically periodic in the LSED bucleMain: <... > BRA FIN_MAIN ERROR:<...> FIN_MAIN RTS **************************************************** * ZONE OF ROUTINES OF ATTENTION To the INTERRUPTIONS **************************************************** * Routine of attention to the interruptions in the case of * that they are necessary INTERR: <...> FININTER RTE

Page 22: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

22

5.3.1. Potprogram za konfiguraciju hardvera (hwInit)

U ovom potprogramu je potrebno uključiti sve akcije koje će koristiti

hardverski resurursi: prekide, PWM, A/D konvertor, LCD… Potrebno je posebnu

pažnju obratiti na konfiguracije resursa koje koriste iste registre: na primer periodični

i spoljšnji prekidi. Treba biti posebno pažljiv pri inicijalizaciji ovih registara.

U vezi sa frekvencijom periodičnih prekida preporučuje se konfiguracija sa

višom frekvencijom od koje se lako mogu dobiti niže frekvencije potrebne za

implementaciju takt signala koji se koriste u dizajnu.

6. Predlog daljeg rada

U ovom delu je data orijentativna podela rada u laboratoriji. Na početku su

dati glavni ciljevi koje treba ostvariti i mogući red kako im pristupiti. Glavni ciljevi

su:

1. Razvoj ulazno/izlaznog modula korišćenjem TL04. Za razvoj ovog

modula predlaže se studentu da razvije program koji učitava tri cifre sa

tastature i prikazivanje na LCD displeju vrednost koja je jednaka

unetoj vrednosti podeljenoj sa 4. (Objekti koje sadrži: Taster, Ulazni i

Izlazni bafer i Željena brzina).

2. Implementacija modula koji deluje na motor, kako hardverski tako i

softverski. (Objekti koje sadrži: Željena brzina)

3. Modul za očitavanje broja obrtaja motora u određenom vremenu i

sračunavanje brzine motora izražene u broju obrtaja po sekundi.

(Objekti koje sadrži: Merena brzina i Satovi).

4. Programiranje algoritma koji kontroliše brzinu obrtanja motora.

(Objekti koje sadrži: Željena i Merena brzina).

5. Modul za merenje temperature: postavljanje hardvera i razvoj

potrebnog programa. (Objekti koje sadrži: Merena temperatura i

Satovi).

Page 23: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

23

6. Implementacija modula za modifikaciju željene brzine na osnovu

izmerene temperature (ukoliko radi u automatskom modu) i

programiranje korisničkog interfejsa koji omogućava izbor moda rada:

manualni ili automatski. (Objekti koje sadrži: Željena brzina, Merena

brzina, Merena temperatura, Satovi).

7. Implementacija modula za računanje statističkih veličina: srednje

brzine, srednje vrednosti greške, vreme rada i priljučenje

funkcionalnosti potrebne za prikazivanje statističkih veličina na LCD

displeju. (Objekti koje sadrži: Željena brzina, Merena Brzina i

Statističke vrednosti).

8. Postizanje mogućih poboljšanja.

U vezi sa pisanjem završnog izveštaja, predlaže se dopunjavanje izveštaja posle

svakog ispunjenog cilja.

Sledi moguće planiranje za postizanje ciljeva organizovano po terminima (u

Tabeli 1 je data veza između termina i ciljeva koje treba postići u određenom

terminu):

Termin Cilj koji treba postignuti

1 2 1 3 4 2 5 3 6 4 7 5 8 6 9 7 10 8

Tabela 1: Veza između tremina i cilja koji treba postignuti

6.1. Termin 0

Pre dolaska na prvi termin u laboratoriji potrebno je pripremiti rad van

laboratorije kao što je rečeno u prethodnoj sekciji.

Page 24: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

24

6.2. Termini 1 i 2

Student ostvaruje prvi kontakt sa hardverom i softverom koji je na

rasoplaganju u laboratoriji. U delu posvećenom prvom terminu su opisani koraci koje

treba pratiti. Zapamtite da se ispunjenje prvog programa (CILJ 1) mora početi u

prvom terminu, ali može biti završen u drugom.

6.3. Termin 3

U ovom terminu student mora da izvrši CILJ 2. Za to je potrebno da nauči da

programira neki od PWM signala koji su na raspolaganju na platformi ENT2004CF.

Frekvencija PWM signala mora biti oko 2KHz.

6.4. Termini 4 i 5

U ovim terminima student mora da razvije modul za merenje brzine (CILJ 3)

zbog čega mora softverski da implementira dva procesa vezana za periodične prekide

(svaki 250ms) i spoljšnji prekid respektivno. Spoljšnji prekid omogućava merenje

broja obrtaja motora, dok periodični utvrđuje vremena kada kada se procenjuje brzina

motora u broju obrtaja po sekundi (Merena brzina). Perioda od 250ms se može

adaptirati.

6.5. Termin 6

Kada se razviju moduli za delovanje na motor i za merenje brzine, u ovom

terminu se mora programirati algoritam za kontrolu motora (CILJ 4). Sa ispunjenim

ciljem 4 student ima na raspolaganju osnovnu funkcionalnost sistema, tj. rad u

manualnom modu.

Page 25: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

25

6.6. Termin 7

U ovom terminu treba proširiti funkcionalnost procesa periodičnih prekida

tako da obavlja merenje temperature u određenim trenucima vremena (2s bi bio

veoma dobar period). U ovom termiminu treba implementirati potreban hardver i

razviti potreban softver koji vraća 12-bitni kod dobijen sa analognog ulaza 1 (CILJ 5).

6.7. Termin 8

Jednom kada je poznata izmerena temperatura, moguće je implementirati

strategiju za modifikovanje željene brzine motora (automatska kontrola) i dodati

korisnički interfejs koji pruža mogućnost promene moda rada (CILJ 6).

6.8. Termin 9

U ovom terminu se pristupa razvoju algoritma za izračunavanje statističkih

veličina: srednje brzine, srednje greške i vreme rada i implementaciji potrebnih

funkcionalnosti za predstavljanje ovih vrednosti na displeju kada korisnik pritisne

odgovarajući taster (CILJ 7).

6.9. Termin 10

Pristupiti implementaciji mogućih poboljšanja koja su prethodno proučena

(CILJ 8).

7. Poboljšanja

Poboljšanja u ovom poglavlju imaju uglavnom orijentativni karakter. Radi se o

modifikacijama osnovnih specifikacija koje pružaju mogućnost studentu da dobije

Page 26: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

26

veću ocenu od 8. U svakom slučaju, ocena će zavisiti i od faktora kao što je

orginalnost i kvalitet rada. Sva predložena poboljšanja (i ona koja predloži student) se

mogu izvesti na različite načine i sa različitim stepenima perfekcije i težine (dizajna i

implementacije), što je razlog zašto je procenjena težina vrlo orijentativna.

7.1. Proširenje funkcionalnosti softvera

Moguće je dodati nove mogućnosti u sistem:

vreme potrebno za uspostavljanje programirane brzine (vreme odziva)

nove statističke veličine

programirati paljenje i gašenje motora u odgovarajuće vreme tokom

dana

modifikovati osetljivost sistema na temperaturu: da ista varijacija

temperature može da proizvodi manje ili veće varijacije brzine

. . . . .

Procenjana težina: NISKA

7.2. Daljinsko upravljanje korišćenjem radio-frekvencijskog opsega

Postoje razni proizvođači (Aurel, itd) koji pružaju hibridna kola laka za

rukovanje, koja mogu da odašilju, primaju i regenerišu digitalne signale direktno,

kako u AM tako i u FM opsegu (otporniji na šum, ali sa većom cenom) sa dometom

od nekoliko desetina metara u otvorenom prostoru ako je opremljen antenom (prost

bakarni provodnik) odgovarajuće dužine. Zbog ovoga je potrebno modifikovati

hardverski podsistem tastaturu.

Procenjena težina: SREDNJA

Page 27: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

27

7.3. Daljinsko upravljanje korišćenjem infracrvenih zraka

Ovo takođe zahteva modifikaciju hardverskog podsistema tastature. Da bi

mogla da se dosegne određena daljina, podrebno je dovoditi odgovarajuću struju na

LED diodu (uvek unutar specifikacija dobijenim od proizvođača) i imati odgovarajuće

pojačanje i filtriranje u prijemniku.

Procenjena težina: SREDNJA

7.4. Proširenje sistema za vizualizaciju

Uzimaće se u obzir detalji kao što je:

uključenje simbola koje je razvio student korišćenjem mogućnosti

koje nudi LCD

implementirati scroll korišćenjem bafera koji čuva nekoliko poslednjih

prikazanih linija (LCD može da prikaže samo dve linije teksta)

. . .

Procenjena težina: NISKA - SREDNJA

7.5. Konstrukcija prototipa hardvera u PCB-u

Ostavlja se studentima koje interesuje ova oblast.

Procenjena težina: NISKA - SREDNJA

7.6. Komunikacija sa komercijalnim digitalnim sistemom

S obzirom da na datoj platformi postoji serijski asinhroni RS-232 port,

možemo slati naredbe sa komercijalnog hardvera i gledati ih na istom (osim što ih

Page 28: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

28

šaljemo na LCD). Takođe možemo da koristimo i programiramo programabilni HP

kalkulator, PDA ili laptop.

Zbog toga se mora adekvatno programirati serijski port MCF5272 prateći

uputstva proizvođača i povezati serijske portove oba digitalna sistema korišćenjem

kabla null modem.

Procenjena težina: SREDNJA

7.7. Prepoznavanje glasa

Ovo poboljšanje podrazumeva rad na izlaznom audio stepenu (stepen za

adaptaciju nivoa i impedansi, filtri - propusnik opsega, niskopropusnik opsega,

antialiasing...).

Procenjena težina: VISOKA

7.8. Reprodukcija glasa

S obzirom da platforma ENT20004CF sadrži D/A konvertor, može se

iskoristiti DRAM memorija koja je na raspolaganju u sistemu za čuvanje glasovnih

poruka koje informišu korisnika o promenama u sistemu: promeni moda, promeni

željene brzine…

Procenjena težina: SREDNJA

Ovo poboljšanje reprodukcije glasa bi bilo kompletnije ako bi se ostvarilo

korišćenjem spoljašnjeg hardvera (spoljšnja EEPROM memorija u koju se upisuju

podaci korišćenjem EEPROM rekordera). Takt za operacije pristupanja memoriji

može biti generisan korišćenjem posebnog mikroprocesora. Kako imamo na

raspolaganju mali broj slobodnih digitalnih izlaza, bilo bi potrebno obezbediti

eksterne registre i sisteme za računanje da bi se pristupilo takođe spoljašnjoj

memoriji.

Page 29: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

29

Procenjena težina: MAKSIMALNA

8. Ocenjivanje

Kao što je rečeno u uvodu, osim ako se drugačije ne napomene, predložene

standardne vežbe sadrže minimum koji je obavezno ispuniti i koje će biti ocenjene sa

maksimalnom ocenom 8. Orijentativno, može se reći da će u konačnom ocenjivanju:

3 poena (maksimalno) doći ako:

razvijeni prototip u potpunosti odgovara specifikacijama zadatim u

uvodu

student tačno odgovori na pitanja koja mu postavi profesor u usmenom

ispitivanju

Završni izveštaj nosi maksimalno 2 poena od konačne ocene:

kvalitet pisanja, struktura i prezentacija dokumenta

tehnička ispravnost i dobijenih vrednosti i usvojenih odluka

jasnoća i kompletnost tehničkih objašnjenja hardverskog i softverskog

modula

itd…

Kvalitet razvijenog, objašnjenog i dokumentovanog softvera nosi maksimalno

2.5 poena:

generalna struktura programa

struktura svakog potprograma sa jedinstvenom tačkom početka i kraja

često korišćenje potprograma koji nisu veliki

korišćenje potprograma koji se međusobno ne prepliću

korišćenje konstanti i direktive EQU koja omogućava lako

rekonfigurisanje programa

korišćenje različitih i odgovarajućih načina adresiranja (indeksno,

indirektno, sa post - inkrementom…) i korišćenje struktura podataka

Page 30: Kontrola brzine jednosmernog motora korišćenjem ... fileMeđutim, u velikom broju uređaja koji se svakodnevno sreću mogu se naći motori koji se napajaju jednosmernom strujom

30

koje grupišu elemente koji su u vezi čime se olakšava njihova

implementacija (baferi, tabele sa vrednostima…).

optimizacija koda (ako je potrebna)

uvođenje odgovarajućih komentara u kod

itd.

Kvalitet hardvera nosi maksimalno 0.5 poena:

struktura

prisutan nivo šuma

itd.

Treba primetiti da studenti mogu biti suspendovani kada napravljeni sistem

funkcioniše, ali postoje ozbiljni nedostaci u ostalim delovima rada. Malo je verovatno

da će se to dogoditi paru studenata koji su odradili vežbe i izveštaj zasnovan na

sopstvenom trudu i znanju; ali treba imati u vidu da je u praktičnim vežbama vrlo

važno kako stvari izgledaju i na koji način rade.