Upload
delta
View
80
Download
4
Embed Size (px)
DESCRIPTION
Procesni sistemi vodenja. Prekinitve. Vsebina poglavja. Prekinitve in izjeme Procesi - opis Delovanje programa ob prekinitvi – Interrupt service routine Prioritete Maskiranje, omogočanje & onemogočanje Inicializacija Primer za realni sistem – vodenje DC motorja. Prekinitve in izjeme. - PowerPoint PPT Presentation
Citation preview
Procesni sistemi vodenja - Prekinitve 11
http://www.ro.feri.uni-mb.si
Procesni sistemi vodenjaProcesni sistemi vodenja
Prekinitve
Procesni sistemi vodenja - Prekinitve 22
http://www.ro.feri.uni-mb.si
Vsebina poglavjaVsebina poglavja
• Prekinitve in izjeme
• Procesi - opis
• Delovanje programa ob prekinitvi – Interrupt service routine
• Prioritete
• Maskiranje, omogočanje & onemogočanje
• Inicializacija
• Primer za realni sistem – vodenje DC motorja
Procesni sistemi vodenja - Prekinitve 33
http://www.ro.feri.uni-mb.si
Prekinitve in izjemePrekinitve in izjeme
• Prekinitve– Prekinitve so asinhroni dogodki, ki niso povezani s
tem, kar procesor trenutno izvaja. Prekinitve najpogosteje sprožijo vhodno/izhodne enote, ura..... Lahko so omogočene ali pa onemogočene.
• Izjeme– so sinhroni dogodki, ki so povezani s trenutnim
programom. Primeri izjem: deljenje z nič, kršenje pomnilniškega prostora....
Procesni sistemi vodenja - Prekinitve 44
http://www.ro.feri.uni-mb.si
Procesi - opisProcesi - opis
• Program, ki je naložen v pomnilnik in pripravljen za izvajanje, se ponavadi imenuje proces.
• Računalnik lahko hkrati izvaja več procesov, vendar lahko procesor izvaja le eno opravilo hkrati.
• Zgradba:– Programska sekcija– Podatkovna sekcija
Procesni sistemi vodenja - Prekinitve 55
http://www.ro.feri.uni-mb.si
Stanja procesaStanja procesa
• Aktivno (stanje pripravljenosti)– Proces je naložen v pomnilnik in pripravljen na
izvajanje, a še čaka, da mu razvrščevalnik dodeli procesor.
• Izvajanje– Procesor izvaja ukaze iz programske sekcije
procesa.
• Blokiranje oz. čakanje– Izvajanje procesa se je moralo začasno ustaviti, ker
je treba počakati na dogodek, ki je pogoj za nadaljevanje izvajanja.
Procesni sistemi vodenja - Prekinitve 66
http://www.ro.feri.uni-mb.si
Prehajanja stanj procesovPrehajanja stanj procesov
nov proces
aktiven
čakanje
izvajanje
Konec ali izločitevizločitev
kreiranje
kone
c ali
napa
ka
V/I
ali
čaka
nje
na
drug
do
gode
k
prekinitev
dodelitev procesorja
dogodek se
je zgodil
Procesni sistemi vodenja - Prekinitve 77
http://www.ro.feri.uni-mb.si
Procesi - primerProcesi - primer
Procesni sistemi vodenja - Prekinitve 88
http://www.ro.feri.uni-mb.si
PrekinitvePrekinitve• Prekinitve so nizkonivojske funkcije CPE• Zahteva po prekinitvi (Interrupt Request, IRQ)
povzroči zaustavitev izvajanja trenutnega procesa in skok na določen naslov, ki je podan v vektorju prekinitev (Interrupt Vector)
• Ta vektor kaže na sekcijo programske kode, ki izvede akcijo, kot jo zahteva določena zahteva po prekinitvi. To funkcijo imenujemo rokovalnik (handler, Interrupt Service Routine, ISR)
• Po zaključku ISR CPE nadaljuje izvajanje predhodnega programa na mestu, kjer je bil prekinjen.
Procesni sistemi vodenja - Prekinitve 99
http://www.ro.feri.uni-mb.si
Prekinitve - preklopiPrekinitve - preklopi
• Pojavi se IRQ, kako se izvede preklop med procesi?– Procesor premakne delovne registre in
programski števec v RAM (sklad!). – Izvede se prekinitveni program (ISR).– Po zaključku ISR se obnovi stanje pred skokom
v ISR, procesor obnovi delovne registre in programski števec iz RAM (sklada!).
– Nadaljuje se izvajanje predhodnega procesa.
Procesni sistemi vodenja - Prekinitve 1010
http://www.ro.feri.uni-mb.si
Izvajanje prekinitevIzvajanje prekinitevŠt. prekinitve
Naslov rokovalnika
1
2
...
Shrani programski števec
Obnovi programski števec
Shrani status
Obnovi status
Procesni sistemi vodenja - Prekinitve 1111
http://www.ro.feri.uni-mb.si
Viri prekinitevViri prekinitev
• Notranji časovniki procesorja (primerjava z določeno vrednostjo, 0, overflow, ...)
• Zunanja zahteva po prekinitvi (posebni priključek integriranega vezja procesorja
• Druga periferija (UART, ADC, komparator, ...)
Procesni sistemi vodenja - Prekinitve 1212
http://www.ro.feri.uni-mb.si
Smisel prekinitevSmisel prekinitev
• Zagotavljajo določen odzivni čas.
• Omogočijo odzive na redko nastopajoče vendar kljub temu pomembne dogodke (zaščite, ...).
• Periodične prekinitve so uporabne za zajemanje podatkov in vodenje (regulacijski algoritmi).
• Mogoča je uporaba za vmesno shranjevanje V/I podatkov.
Procesni sistemi vodenja - Prekinitve 1313
http://www.ro.feri.uni-mb.si
Rokovalnik prekinitev in izjemRokovalnik prekinitev in izjem
Procesni sistemi vodenja - Prekinitve 1414
http://www.ro.feri.uni-mb.si
Delovanje prekinitev in izjemDelovanje prekinitev in izjem• Distributor prekinitev, ki je del rokovalnika pasti se odziva na
prekinitve. Distibutor najprej ugotovi izvor prekinitve in potem prenese nadzor v zunanjo rutino ki potem servisira prekinitev ali pa v notranjo kernel rutino. Zunanjo rutino morajo zagotavljati gonilniki naprave, notranje rutine pa zagotavlja kernel sam.
• Različni procesorji prepoznajo različno veliko in raazlične tipe prekinitev. Kernel definira tabelo IRQL (interrupt request level). V tej tabeli so urejene prekinitve po prioriteti. Višja prekinitev ima višjo prioriteto. Procesor ima svoj kazalec IRQL, ki kaže v to tabelo in se spreminja glede na prekinitve. Prekinitve, ki ležijo pod tem kazalcem so onemogočene, dokler se kazalec IRQL ne pomakne navzdol.
Procesni sistemi vodenja - Prekinitve 1515
http://www.ro.feri.uni-mb.si
Prioritete prekinitev - prikazPrioritete prekinitev - prikaz
Procesni sistemi vodenja - Prekinitve 1616
http://www.ro.feri.uni-mb.si
Izjeme (tabela vektorjev):Izjeme (tabela vektorjev):
Procesni sistemi vodenja - Prekinitve 1717
http://www.ro.feri.uni-mb.si
Prioritete prekinitevPrioritete prekinitev
Procesni sistemi vodenja - Prekinitve 1818
http://www.ro.feri.uni-mb.si
TMS320LF2407 – izvajanje prekinitevTMS320LF2407 – izvajanje prekinitev
TMS320LF2407TMS320LF2407
Procesni sistemi vodenja - Prekinitve 1919
http://www.ro.feri.uni-mb.si
TMS320LF2407 – maskiranje prekinitevTMS320LF2407 – maskiranje prekinitev
TMS320LF2407TMS320LF2407
Interrupt Flag Register (IFR)
Interrupt Mask Register (IMR)
Procesni sistemi vodenja - Prekinitve 2020
http://www.ro.feri.uni-mb.si
TMS320LF2407 – registriTMS320LF2407 – registri
• Peripheral Interrupt Vector Register (PIVR) • Peripheral Interrupt Request Registers (PIRQR0,
1, 2)
• Peripheral Interrupt Acknowledge Register (PIACKR0, 1, 2)
TMS320LF2407TMS320LF2407
Procesni sistemi vodenja - Prekinitve 2121
http://www.ro.feri.uni-mb.si
Freescale DSP560x – zakasnitev (Latency)Freescale DSP560x – zakasnitev (Latency)
Zajemanje iz pomnilnika
Procesni sistemi vodenja - Prekinitve 2222
http://www.ro.feri.uni-mb.si
Freescale DSP560x – zakasnitev (Latency)Freescale DSP560x – zakasnitev (Latency)
Izvajanje v procesorju
Procesni sistemi vodenja - Prekinitve 2323
http://www.ro.feri.uni-mb.si
Primer za realni sistem – vodenje DC motorjaPrimer za realni sistem – vodenje DC motorja
• opis problema
• definicija procesov• določitev prioritet
Procesni sistemi vodenja - Prekinitve 2424
http://www.ro.feri.uni-mb.si
Sistem za vodenje DCM – blokovna shemaSistem za vodenje DCM – blokovna shema
breme
motor ojačevalnik regulator uporabniški
vmesnik
merilniki
napajalnik
Procesni sistemi vodenja - Prekinitve 2525
http://www.ro.feri.uni-mb.si
Osnovni princip delovanja DC motorjaOsnovni princip delovanja DC motorja
Procesni sistemi vodenja - Prekinitve 2626
http://www.ro.feri.uni-mb.si
Pulzno širinsko modulirani krmilni signalPulzno širinsko modulirani krmilni signal
Procesni sistemi vodenja - Prekinitve 2727
http://www.ro.feri.uni-mb.si
PWM za DC motorPWM za DC motor
UDC
DCM
T1
T2
UDC DCM
T1
T2
T3
T4
Vezje unipolarnega pulzno širinskega
modulatorja
Vezje bipolarnega pulzno širinskega
modulatorja
Procesni sistemi vodenja - Prekinitve 2828
http://www.ro.feri.uni-mb.si
Meritev položaja in hitrostiMeritev položaja in hitrosti
Inkrementalni dajalnik
Vir svetlobe
Disk
Optični sistem
Ojačevalnik
Procesni sistemi vodenja - Prekinitve 2929
http://www.ro.feri.uni-mb.si
VsebinaVsebina
• Programska oprema– Režimi delovanja
• Prehajanja
• Opis
– Prekinitvene rutine
Procesni sistemi vodenja - Prekinitve 3030
http://www.ro.feri.uni-mb.si
Režimi delovanja - prehajanjaRežimi delovanja - prehajanja
Procesni sistemi vodenja - Prekinitve 3131
http://www.ro.feri.uni-mb.si
Režimi delovanja - INITRežimi delovanja - INIT
• pogon (pretvornik) onemogočen
• PWM onemogočen
• preverja Fault
Procesni sistemi vodenja - Prekinitve 3232
http://www.ro.feri.uni-mb.si
Režimi delovanja - INITRežimi delovanja - INIT
• inicializacija procesorja• inicializacija modula PWM• inicializacija ADC modula• definicija časovnikov in njihovih kanalov• inicializacija prekinitev IRQA in IRQB• prioritete prekinitev• inicializacija algoritma vodenja• vodenje = ROČNO• stanje = STOP• določitev uporabljenih kanalov ADC• inicializacija meritve hitrosti z inkrementalnega dajalnika• sinhronizacija PWM in ADC• inicialzacija krmilnih stikal• inicializacija prekinitvene rutine za PWM fault• inicializacija vodenja zavore• inicializacija pretvornika• omogočitev prekinitev
Procesni sistemi vodenja - Prekinitve 3333
http://www.ro.feri.uni-mb.si
Režimi delovanja - STOPRežimi delovanja - STOP
• pogon (pretvornik) onemogočen• PWM onemogočen• v rutini za strežbo ob periodni prekinitvi se izvaja
algoritem vodenja:– analogna meritev in korekcija,– inicializacija pogona,– omogočitev ponovnega tipanja ADC signalov
• čaka na Start• preverja Fault
Procesni sistemi vodenja - Prekinitve 3434
http://www.ro.feri.uni-mb.si
Režimi delovanja - RUNRežimi delovanja - RUN
• pogon (pretvornik) omogočen• PWM omogočen• v ADC End of Scan prekinitvi se
izvaja algoritem vodenja:– analogna meritev in korekcija,– algoritem vodenja v strogem
realnem času,– PŠM,– omogočitev ponovnega tipanja
ADC signalov
• preverja Fault
Procesni sistemi vodenja - Prekinitve 3535
http://www.ro.feri.uni-mb.si
Režimi delovanja - FAULTRežimi delovanja - FAULT
• pogon (pretvornik) onemogočen
• PWM onemogočen
• čaka na Start, Reset, ...
Procesni sistemi vodenja - Prekinitve 3636
http://www.ro.feri.uni-mb.si
Prekinitvene rutinePrekinitvene rutine
Procesni sistemi vodenja - Prekinitve 3737
http://www.ro.feri.uni-mb.si
Prekinitvene rutine - nivojiPrekinitvene rutine - nivoji
• Level 1: IRQA, IRQB
• Level 0:– Priority 6: PWM Fault, AD High/Low Limit– Priority 4: ADC End of Scan– Priority 3: Quadtimer– Priority 1: SCI, GPIO
Procesni sistemi vodenja - Prekinitve 3838
http://www.ro.feri.uni-mb.si
Glavni programGlavni program
inicializiraj procesor
inicializiraj most
onemogoči most
inicializiraj ADC
inicializiraj konstante algoritma
meritev offsetov ADC
stanje = INIT
stanje_RUN = RUN_Magnetize
Procesni sistemi vodenja - Prekinitve 3939
http://www.ro.feri.uni-mb.si
Glavni program Glavni program
while (1){
test_mosta();
switch(stanje){
case INIT:// stanje - INIT
break;case STOP:
// stanje - STOP
break;case RUN:// stanje - RUN
break;case FAULT:
// stanje - FAULT
break;default:
// stanje ni definirano pravilno
// se obravnava kot FAULT
stanje = FAULT;
break;}
}
Procesni sistemi vodenja - Prekinitve 4040
http://www.ro.feri.uni-mb.si
Glavni program – režim INITGlavni program – režim INIT
case INIT:
// stanje - INIT
inicializiraj_algoritem_vodenja();
inicializiraj_algoritem_observerja();
cakaj_Udc(); // čakaj, da je Udc dovolj velika
omogočitev_prekinitev();
stanje = STOP;
stanje_RUN = RUN_Magnetize;
INIT_DONE = 1;
break;
// end - stanje - INIT
Procesni sistemi vodenja - Prekinitve 4141
http://www.ro.feri.uni-mb.si
Glavni program – režim STOPGlavni program – režim STOP
case STOP:
// stanje - STOP
onemogoči_most();
if(Stikalo_RUN == ON)
{
stanje = RUN;
stanje_RUN = RUN_Magnetize;
}
break;
// end - stanje - STOP
Procesni sistemi vodenja - Prekinitve 4242
http://www.ro.feri.uni-mb.si
Glavni program – režim RUNGlavni program – režim RUN
case RUN:
// stanje - RUN
if(Most_Error == OFF) omogoči_most();
if(Stikalo_STOP == ON) želena hitrost = 0;
break;
// end - stanje - RUN
Procesni sistemi vodenja - Prekinitve 4343
http://www.ro.feri.uni-mb.si
Glavni program – režim FAULTGlavni program – režim FAULT
case FAULT:
// stanje - FAULT
onemogoči_most();
onemogočitev_prekinitev();
omogočitev_prekinitev_najnižjega_nivoja();
if (fault_cleared) stanje = INIT;
INIT_DONE = 0;
break;
// end - stanje - FAULT
Procesni sistemi vodenja - Prekinitve 4444
http://www.ro.feri.uni-mb.si
IRQA in IRQBIRQA in IRQB
• IRQA – nižanje hitrosti
• IRQB – višanje hitrosti
Procesni sistemi vodenja - Prekinitve 4545
http://www.ro.feri.uni-mb.si
Zaščite: PWM Fault, AD High/Low LimitZaščite: PWM Fault, AD High/Low Limit
• Napaka na PWM modulu (signal z mosta)
• Prekoračene omejitve ADC:– Toki
– Napetost UDC
Procesni sistemi vodenja - Prekinitve 4646
http://www.ro.feri.uni-mb.si
ADC End of ScanADC End of Scan
void irq_hitri_reg()
{
omogoči_irq_višje_prioritete();
onemogoči_irq_nižje_prioritete();
meritev_tokov();
meritev_udc();
test_mosta();
switch(stanje)
{
// Detekcija in posluževanje stanj
}
}
Procesni sistemi vodenja - Prekinitve 4747
http://www.ro.feri.uni-mb.si
ADC End of ScanADC End of Scan – Režim STOP – Režim STOP
case STOP:
onemogoči_most();
usa = 0; usb=0;
usd = 0; usq=0;
isd_ref = 0; isq_ref = 0;
int_PIreg_isd = 0;
int_PIreg_isq = 0;
observer_v_realnem_casu();
break;
Procesni sistemi vodenja - Prekinitve 4848
http://www.ro.feri.uni-mb.si
ADC End of ScanADC End of Scan – Režim RUN – Režim RUN
case RUN:
if(stanje_RUN == RUN_Magnetize){
isd_ref = magnetilni tok;
isq_ref = 0;if(isd > isd_min) stanje_RUN = RUN_Spin;
}
if(stanje_RUN == RUN_Spin){
isd_ref = magnetilni tok;
isq_ref = navorni tok;
}
if(stanje_RUN == RUN_Demagnetize){
isd_ref = 0;
isq_ref = 0;
if(isd < isd_0) stanje = STOP;
}
hitri_regulator_v_realnem_casu();
observer_v_realnem_casu();
space_vector_modulation();
break;
Procesni sistemi vodenja - Prekinitve 4949
http://www.ro.feri.uni-mb.si
ADC End of ScanADC End of Scan – Režim FAULT – Režim FAULT
case FAULT:
onemogoči_most();
zavora();
break;
Procesni sistemi vodenja - Prekinitve 5050
http://www.ro.feri.uni-mb.si
QuadtimerQuadtimer
void irq_pocasni_reg()
{
omogoči_irq_višje_prioritete();
onemogoči_irq_nižje_prioritete();
test_mosta();
meritev_hitrosti();
switch(stanje)
{ // detekcija in posluževanje stanj
}
}
Procesni sistemi vodenja - Prekinitve 5151
http://www.ro.feri.uni-mb.si
Quadtimer – Režim STOPQuadtimer – Režim STOP
case STOP:
wr_ref = 0;
int_PIreg_wr = 0;
break;
Procesni sistemi vodenja - Prekinitve 5252
http://www.ro.feri.uni-mb.si
Quadtimer – Režim RUNQuadtimer – Režim RUN
case RUN:
if(stanje_RUN == RUN_Magnetize) {
wr_ref = 0;
int_PIreg_wr = 0;
}
if(stanje_RUN == RUN_Spin){
wr_ref = želena hitrost;
if(wr_ref == 0)&&(hitrost == 0)
{
stanje_RUN == RUN_Demagnetize
}
}
if(stanje_RUN == RUN_Demagnetize){
wr_ref = 0;int_PIreg_wr = 0;
}
pocasni_regulator_v_realnem_casu();
break;
Procesni sistemi vodenja - Prekinitve 5353
http://www.ro.feri.uni-mb.si
Quadtimer – Režim FAULTQuadtimer – Režim FAULT
case FAULT:
onemogoči_most();
zavora();break;
Procesni sistemi vodenja - Prekinitve 5454
http://www.ro.feri.uni-mb.si
GPIO in SCI – I/O in komunikacija GPIO in SCI – I/O in komunikacija
Procesni sistemi vodenja - Prekinitve 5555
http://www.ro.feri.uni-mb.si
Domača nalogaDomača naloga
Procesni sistemi vodenja - Prekinitve 5656
http://www.ro.feri.uni-mb.si
Možna vprašanja na izpituMožna vprašanja na izpitu
• Kaj proži prekinitve – viri prekinitev?
• Stanja procesa – opis in prehajanja.
• Opis izvajanja prekinitev.
• Prioritete prekinitev – opis.