1 / 56

Procesni sistemi vodenja

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.

delta
Télécharger la présentation

Procesni sistemi vodenja

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesni sistemi vodenja Prekinitve Procesni sistemi vodenja - Prekinitve

  2. 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 Procesni sistemi vodenja - Prekinitve

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

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

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

  6. Prehajanja stanj procesov nov proces Konec ali izločitev izločitev kreiranje prekinitev konec ali napaka aktiven izvajanje dodelitev procesorja V/I ali čakanje na drug dogodek dogodek se je zgodil čakanje Procesni sistemi vodenja - Prekinitve

  7. Procesi - primer Procesni sistemi vodenja - Prekinitve

  8. Prekinitve • 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) • Tavektor 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

  9. Prekinitve - 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!). • Nadaljujese izvajanje predhodnega procesa. Procesni sistemi vodenja - Prekinitve

  10. Izvajanje prekinitev Proces Prekinitvena rutina Prekinitev Shrani status Shrani programski števec Obnovi programski števec Obnovi status Procesni sistemi vodenja - Prekinitve

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

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

  13. Rokovalnik prekinitev in izjem Procesni sistemi vodenja - Prekinitve

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

  15. Prioritete prekinitev - prikaz Rokovalnik prekinitev nivoja 3 Proces Rokovalnik prekinitev nivoja 2 Rokovalnik prekinitev nivoja 1 Prekinitev nivoja 2 Prekinitev nivoja 1 Prekinitev nivoja 3 Procesni sistemi vodenja - Prekinitve

  16. Izjeme (tabela vektorjev): Procesni sistemi vodenja - Prekinitve

  17. Prioritete prekinitev Procesni sistemi vodenja - Prekinitve

  18. TMS320LF2407 – izvajanje prekinitev TMS320LF2407 Procesni sistemi vodenja - Prekinitve

  19. TMS320LF2407 – maskiranje prekinitev Interrupt Flag Register (IFR) Interrupt Mask Register (IMR) TMS320LF2407 Procesni sistemi vodenja - Prekinitve

  20. TMS320LF2407 – registri • Peripheral Interrupt Vector Register (PIVR) • Peripheral Interrupt Request Registers (PIRQR0, 1, 2) • Peripheral Interrupt Acknowledge Register (PIACKR0, 1, 2) TMS320LF2407 Procesni sistemi vodenja - Prekinitve

  21. Freescale DSP560x – zakasnitev (Latency) Zajemanje iz pomnilnika Procesni sistemi vodenja - Prekinitve

  22. Freescale DSP560x – zakasnitev (Latency) Izvajanje v procesorju Procesni sistemi vodenja - Prekinitve

  23. Primer za realni sistem – vodenje DC motorja • opis problema • definicija procesov • določitev prioritet Procesni sistemi vodenja - Prekinitve

  24. Sistem za vodenje DCM – blokovna shema Procesni sistemi vodenja - Prekinitve

  25. Osnovni princip delovanja DC motorja Procesni sistemi vodenja - Prekinitve

  26. Pulzno širinsko modulirani krmilni signal Procesni sistemi vodenja - Prekinitve

  27. PWM za DC motor Vezje unipolarnega pulzno širinskega modulatorja Vezje bipolarnega pulzno širinskega modulatorja Procesni sistemi vodenja - Prekinitve

  28. Meritev položaja in hitrosti Inkrementalni dajalnik Procesni sistemi vodenja - Prekinitve

  29. Vsebina • Programska oprema • Režimi delovanja • Prehajanja • Opis • Prekinitvene rutine Procesni sistemi vodenja - Prekinitve

  30. Režimi delovanja - prehajanja Procesni sistemi vodenja - Prekinitve

  31. Režimi delovanja - INIT • pogon (pretvornik) onemogočen • PWM onemogočen • preverja Fault Procesni sistemi vodenja - Prekinitve

  32. Rež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

  33. Rež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

  34. Rež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

  35. Režimi delovanja - FAULT • pogon (pretvornik) onemogočen • PWM onemogočen • čaka na Start, Reset, ... Procesni sistemi vodenja - Prekinitve

  36. Prekinitvene rutine Procesni sistemi vodenja - Prekinitve

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

  38. Glavni program inicializirajprocesor inicializirajmost onemogočimost inicializirajADC inicializirajkonstantealgoritma meritevoffsetovADC stanje = INIT stanje_RUN = RUN_Magnetize Procesni sistemi vodenja - Prekinitve

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

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

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

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

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

  44. IRQA in IRQB • IRQA – nižanje hitrosti • IRQB – višanje hitrosti Procesni sistemi vodenja - Prekinitve

  45. Zašč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

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

  47. ADC End of Scan – 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

  48. ADC End of Scan – 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

  49. ADC End of Scan – Režim FAULT case FAULT: onemogoči_most(); zavora(); break; Procesni sistemi vodenja - Prekinitve

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

More Related