56
Procesni sistemi vodenja - Prekinitve 1 http://www.ro.feri.uni- mb.si Procesni sistemi Procesni sistemi vodenja vodenja Prekinitve

Procesni sistemi vodenja

  • 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

Page 1: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 11

http://www.ro.feri.uni-mb.si

Procesni sistemi vodenjaProcesni sistemi vodenja

Prekinitve

Page 2: Procesni sistemi vodenja

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

Page 3: Procesni sistemi vodenja

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....

Page 4: Procesni sistemi vodenja

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

Page 5: Procesni sistemi vodenja

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.

Page 6: Procesni sistemi vodenja

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

Page 7: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 77

http://www.ro.feri.uni-mb.si

Procesi - primerProcesi - primer

Page 8: Procesni sistemi vodenja

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.

Page 9: Procesni sistemi vodenja

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.

Page 10: Procesni sistemi vodenja

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

Page 11: Procesni sistemi vodenja

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, ...)

Page 12: Procesni sistemi vodenja

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.

Page 13: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 1313

http://www.ro.feri.uni-mb.si

Rokovalnik prekinitev in izjemRokovalnik prekinitev in izjem

Page 14: Procesni sistemi vodenja

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.

Page 15: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 1515

http://www.ro.feri.uni-mb.si

Prioritete prekinitev - prikazPrioritete prekinitev - prikaz

Page 16: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 1616

http://www.ro.feri.uni-mb.si

Izjeme (tabela vektorjev):Izjeme (tabela vektorjev):

Page 17: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 1717

http://www.ro.feri.uni-mb.si

Prioritete prekinitevPrioritete prekinitev

Page 18: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 1818

http://www.ro.feri.uni-mb.si

TMS320LF2407 – izvajanje prekinitevTMS320LF2407 – izvajanje prekinitev

TMS320LF2407TMS320LF2407

Page 19: Procesni sistemi vodenja

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)

Page 20: Procesni sistemi vodenja

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

Page 21: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 2121

http://www.ro.feri.uni-mb.si

Freescale DSP560x – zakasnitev (Latency)Freescale DSP560x – zakasnitev (Latency)

Zajemanje iz pomnilnika

Page 22: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 2222

http://www.ro.feri.uni-mb.si

Freescale DSP560x – zakasnitev (Latency)Freescale DSP560x – zakasnitev (Latency)

Izvajanje v procesorju

Page 23: Procesni sistemi vodenja

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

Page 24: Procesni sistemi vodenja

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

Page 25: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 2525

http://www.ro.feri.uni-mb.si

Osnovni princip delovanja DC motorjaOsnovni princip delovanja DC motorja

Page 26: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 2626

http://www.ro.feri.uni-mb.si

Pulzno širinsko modulirani krmilni signalPulzno širinsko modulirani krmilni signal

Page 27: Procesni sistemi vodenja

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

Page 28: Procesni sistemi vodenja

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

Page 29: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 2929

http://www.ro.feri.uni-mb.si

VsebinaVsebina

• Programska oprema– Režimi delovanja

• Prehajanja

• Opis

– Prekinitvene rutine

Page 30: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 3030

http://www.ro.feri.uni-mb.si

Režimi delovanja - prehajanjaRežimi delovanja - prehajanja

Page 31: Procesni sistemi vodenja

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

Page 32: Procesni sistemi vodenja

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

Page 33: Procesni sistemi vodenja

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

Page 34: Procesni sistemi vodenja

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

Page 35: Procesni sistemi vodenja

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, ...

Page 36: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 3636

http://www.ro.feri.uni-mb.si

Prekinitvene rutinePrekinitvene rutine

Page 37: Procesni sistemi vodenja

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

Page 38: Procesni sistemi vodenja

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

Page 39: Procesni sistemi vodenja

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;}

}

Page 40: Procesni sistemi vodenja

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

Page 41: Procesni sistemi vodenja

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

Page 42: Procesni sistemi vodenja

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

Page 43: Procesni sistemi vodenja

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

Page 44: Procesni sistemi vodenja

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

Page 45: Procesni sistemi vodenja

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

Page 46: Procesni sistemi vodenja

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

}

}

Page 47: Procesni sistemi vodenja

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;

Page 48: Procesni sistemi vodenja

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;

Page 49: Procesni sistemi vodenja

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;

Page 50: Procesni sistemi vodenja

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

}

}

Page 51: Procesni sistemi vodenja

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;

Page 52: Procesni sistemi vodenja

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;

Page 53: Procesni sistemi vodenja

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;

Page 54: Procesni sistemi vodenja

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

Page 55: Procesni sistemi vodenja

Procesni sistemi vodenja - Prekinitve 5555

http://www.ro.feri.uni-mb.si

Domača nalogaDomača naloga

Page 56: Procesni sistemi vodenja

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.