0: 0V
Opis
stanj mostička:
Stanji 6 in 7 privedeta do uničenja izhodnih močnostnih tranzistorjev, zato je krmilniku dodano zaščitno logično vezje, ki v primeru krmilnega signala za stanji 6 in 7 odklopi krmilni signal in zapre izhodne tranzistorje. Še
nekaj opomb k uporabljenim elementom: Tranzistorje je moč nadomestiti s
podobnimi. Paziti je treba, da imajo integrirano reverzno diodo, ki
omogoča varen razkroj toka, ki se inducira ob izklapljanju in zaviranju
motorja. Tokovne konice, ki nastajajo ob vklapljanju tranzistorjev, dušita
kondenzatorja C1 in C2. Prvi mora biti čim večji in čim bliže
izhodnim tranzitorjem. Paziti je treba, da so žice do močnostnega
napajalnika čim krajše oz. da imajo čim manjšo induktivnost.
Register z dekodirnikom priklopimo na razširitveni vhod (EXPAND konektor) razvojne plošče HC11. Do registra lahko dostopamo na eni od sledečih lokacij, odvisno od nastavitve DIP stikala (0='on'):
Register
je sestavljen iz dveh 8 bitnih D flip flopov. Prvi (IC3) je izhodni in
je namenjen upravljanju močnostnega mostička. Spodnji štirje biti
predstavljajo krmilne signale za tranzistorje močnostnega mostička (A,
B, C, D). Drugi flip flop (IC4) je vhodni del registra. Njegovo vrednost
nastavimo na letvici SET in jo naložimo z urinim impulzom na
letvici CLK; če je slednja krato sklenjena, ta impulz generiramo s
pritiskom na tipko. Na letvici X/1 lahko vklopimo pull-up upore in
vrednost vhodnega registra nastavimo z jumperji na letvici SET.
Dekodirnik
je dinamičnega tipa; sestavljen je iz dveh komparatorjev, ki primerjata kodo na adresnem
vodilu s tisto, ki je nastavljena na kodirnem stikalu. Ob pravi kodi se
generira urin impulz, ki nato glede na vrednost R/W in WE signala vpiše
vsebino podatkovnega vodila v izhodni D flip flop ali pa priklopi na
vodilo izhode drugega D flip flopa in tako omogoči branje nastavljene
vrednosti. Močnostni mostiček priklopimo na letvico BRIDGE.
3c) Senzor Kot števec vrtljajev sva uporabila optični senzor; na gred motorja pripeta ploščica z dvema režama ob vrtenju motorja prekinja svetlobni tok med emiterjem in detektorjem in tako generira vlak impulzov na izhodu senzorja; širina impulza je odvisna od hitrosti vrtenja motorja. Izhod senzorja sva priklopila na IC3 (Input Capture 3) vhod sistema HC11 in s tem ustvarila povratno regulacijsko zanko, katere parametre je moč programsko nastaviti s programom PWM_Reg. Senzor se napaja z logično napetostjo sistema HC11.
Programska oprema obsega dva programa. Prvi, PWM_Demo, je namenjen preizkusu delovanja prvega dela projekta - naslovnega dekoderja in celotnega PWM krmilnika. Drugi, PWM_Reg, je namenjen uporabi z drugim delom projekta in omogoča uporabo krmilnika z regulatorjem ter vnos nastavitev preko serijskega terminala.
4a) PWM_Demo Najprej
se inicializirajo vse spremenljivke, nato se program izvaja v glavni
zanki 'zanka'. Program uporablja oba registra, ki se nahajata na na
enem od nastavljenih naslovov, v tem primeru $4000. Kadar na naslov '_reg' ($4000)
vpišemo osembitno besedo, se ta pojavi na izhodnem
registru. Kadar z naslova '_reg' preberemo podatek, dobi osembitno
besedo,
vpisano v vhodni register.
Glavna
zanka kliče funkcije 'naprej', 'stop' in 'nazaj'. Vsaka od teh treh
funkcij najprej pogleda statusno spremenljivko 'motFlg' in s tem ugotovi,
kakšno je stanje motorja: lahko se vrti naprej, nazaj, zavira, ali pa
stoji. Na podlagi tega odloči, ali mora motor najprej zavirati
in šele potem zavrteti v pravo smer, ali ga samo zavrteti, ali pa se ta
že vrti in korekcija izodnih podatkov zato ni
potrebna. Vsaka funkcija vrti motor samo določen čas, definiran
s spremenljivko 'zakVrt'. Funkcije krmilijo motor tako, da v izhodni register zapisujejo krmilno besedo, štejejo določeno število ponovitev 't0', potem vpišejo novo število, štejejo določeno število ponovitev 't1' in to ponavljajo, dokler se števec ponovitve period ne izteče. Časa oz. vrednosti spremenljivk 't0' in 't1' izračuna funkcija 'duty', in sicer iz vrednosti, prebrane z vhodnega registra '_reg' ter poznane periode T.
Števci ponovitev period so trije. Prvi
'zakZav' je uporabljen pri zaviranju, drugi 'zakVrt' pri vrtenju motorja
naprej in nazaj, tretji 'zakStop' pa določa, koliko časa motor miruje. 4b)
PWM_Reg Opravila si informacije izmenjujejo preko
spremenljivk ovIzm, TmIzm, ovRef, TmRef in UNLOAD_SIGNAL.
Opravilo SCI_TASK služi za prenos podatkov med registrom serijskega
vmesnika _SDCR (Serial Communication Data Register) in sprejemnima
krožnima bufferjema TRAB-TRAE in RECB-RECE. Ob sprejemu podatke tudi
pošilja nazaj na serijski terminal (autoecho možnost), da uporabnik dobi
povratno informacijo o sprejetih podatkih. Ob sprejemu podatkov opravilo
tudi preveri, ali se morda v bufferju TRAB-TRAE nahaja še kakšen
podatek; če se, tudi tega pošlje nazaj po serijskem terminalu. V ta
namen kliče opravilo SCISEND.
Opravilo RECHR_TASK prepiše paket podakov iz sprejemnega krožnega
bufferja v STACKTOP-STACKBOT buffer. Ta dodatni buffer poenostavi
prepisovanje in pretvarjanje vhodnih podatkov v vrednosti za
spremenljivke motFlg, ovRef in TmRef.
Opravili SYNTAX_CHECK in UNLOAD_TASK skrbita za pretvorbo in zlaganje
podatkov iz STACKTOP-STACKBOT bufferja v spremenljivke motFlg, ovRef in
TmRef. Opravili bi lahko združila v eno, vendar sta zaradi varnosti
ločeni v dva dela, saj je tako laže zagotoviti izvedbo v
dovoljenih 1200 ciklih; obe opravili namreč kličeta kar nekaj podfunkcij
(NEWORDER, CHECK_HEX, TESTORDER, ASCI2HEX), nekatere tudi večkrat. S
pomočjo teh funkcij se podatki med zlaganjem prevedejo iz ASCII v
binarni zapis. Vhodni podatki morajo biti zapisani v pravem zaporedju,
sicer opravilo pobriše STACKTOP-STACKBOT buffer in čaka na nov paket
podatkov.
Opravilo testRpm računa hitrost vrtenja
motorja; bere vrednost registra _TIC3, ga odšteje od starega
stanja in s tem izračuna periodo signala iz senzorja. Pri tem pazi tudi na prehod števca _TIC3 preko
ničle.
Opravilo reglDuty izvaja regulacijo vrtljajev. Primerja dejansko in
referenčno periodo signala senzorja (ovIzm-ovRef, TmIzm-TmRef) in
ustrezno spremeni spremenljivko t0, s katero je povezan deovni cikel
izhodnega pulznoširinsko moduliranega signala.
Opravilo PWM skrbi za vse načine krmiljenja motorja; razdeljen je na pet
odločitvenih sklopov (miruj, naprej, nazaj, zavora, rocna zavora), ki
kličejo sedem izvedbenih podfunkcij (vrtIzklop, vrtNapr, vrtNaz, zavNap,
zavNaz, rzNap, rzNaz). Podfunkcije za vrtenje in zaviranje motorja so
podobne kot v programu PWM_Demo, le da so prilagojene delovanju v
operacijskem sistemu.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5) Povezave
|
vprašanja, pripombe, predlogi? pišite:
zoran.bjelic@kiss.uni-lj.si
jkranjski@email.si
zadnji popravek: 16.12.2002