Mikrokontrolery System przerwa Zygmunt Kubiak Instytut Informatyki Politechnika
Mikrokontrolery System przerwań Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Mikrokontrolery – System przerwań Współpraca z układami peryferyjnymi i urządzeniami zewnętrznymi Testowanie programowe (odpytywanie, przeglądanie) System przerwań Testowanie programowe Testowanie odpowiednich bitów (flag przerwań) w rejestrach specjalnych, związanych z układami peryferyjnymi Priorytety obsługi – kolejność obsługi Możliwy, wydłużony czas obsługi Dodatkowe obciążenie mikrokontrolera zadaniami testowania 11 -2016 Zygmunt Kubiak 2
Mikrokontrolery – System przerwań Przerwania są zdarzeniami wymuszającymi zmianę wykonywania programu Sygnał IRQ (ang. Interrupt Re. Quest) Zdarzenia te uruchamiają specjalny podprogram obsługi przerwań (ISR ang. Interrupt Service Routine) Po zakończeniu programu obsługi przerwań (ISR), następuje powrót do uprzednio wykonywanego programu Występuje niewielkie opóźnienie wykonania przerwania jest to czas między wystąpieniem zdarzenia a początkiem wykonania ISR; zależy od momentu wystąpienia zdarzenia względem cyklu rozkazowego oraz zainicjowania przerwania; przykładowo w MSP 430 potrzeba do 6 cykli zegarowych 11 -2016 Zygmunt Kubiak 3
Mikrokontrolery – System przerwań Obsługa przerwań zachowanie stanu CPU odtworzenie stanu CPU ISR t program żądanie przerwania 11 -2016 Zygmunt Kubiak 4
Mikrokontrolery – System przerwań Cykl pobranie instrukcji - wykonanie Nie Tak 11 -2016 Zygmunt Kubiak 5
Mikrokontrolery – System przerwań Przykładowa organizacja pamięci - MSP 430 F 2274 11 -2016 Zygmunt Kubiak 6
Mikrokontrolery – System przerwań MSP 430 Wejście do trybu LPM 3 i zezwolenie na przerwania w asemblerze: bis. b #LPM 3+GIE, SR ; LPM 3 w/interrupts Wejście do trybu LPM 3 i zezwolenie na przerwania w języku C: __bis_SR_register(LPM 3_bits + GIE); 11 -2016 Zygmunt Kubiak 7
Mikrokontrolery – System przerwań Operacje na stosie 11 -2016 Zygmunt Kubiak 8
Mikrokontrolery – System przerwań Sekwencja obsługi przerwania Wykrycie przez układ peryferyjny zdarzenia wymagającego interwencji mikrokontrolera Zgłoszenie żądania przerwania do mikrokontrolera CPU przerywa aktualnie wykonywaną sekwencję rozkazów i przechowuje niezbędne o niej informacje na stosie CPU przechodzi do wykonania procedury obsługi przerwania Po wykonaniu procedury obsługi przerwania CPU odtwarza informacje ze stosu i wraca do kontynuacji przerwanego programu Powrót z przerwania (instrukcja reti) w MSP 430 wymaga 5 -ciu cykli zegarowych 11 -2016 Zygmunt Kubiak 9
Mikrokontrolery – System przerwań Źródła przerwań Okresowe Timer’y w pracujące w trybach okresowych Zegary systemowe z dzielnikami Okresowe źródła zewnętrzne Asynchroniczne, przypadkowe Źródła wewnętrzne Programowe Pułapki Błędy Przerwania od wewnętrznych układów peryferyjnych Źródła zewnętrzne Wyzwalanie poziomem sygnału Wyzwalanie zboczem narastającym lub opadającym 11 -2016 Zygmunt Kubiak 10
Mikrokontrolery – System przerwań Źródła przerwań Przerwania od wewnętrznych układów peryferyjnych Kontrolery DMA Liczniki / Timer’y RTC (ang. Real Time Clock) Kontrolery interfejsów (UART, I 2 C-Bus, SPI, CAN, USB, Ethernet, . . ) Przetworniki (A/C i C/A) WDT (Watch. Dog Timer) 11 -2016 Zygmunt Kubiak 11
Mikrokontrolery – System przerwań Podział przerwań Przerwania niemaskowalne NMI (ang. Non – Maskable Interrupt) - nie mogą być wyłączone przez ustawienie bitu przerwania globalnego (GIE) Przerywania maskowalne (ang. Maskable Interrupt) – można je włączyć programowo przez ustawienie bitu przerwania globalnego (GIE), np. przerwania urządzeń peryferyjnych jak Timer w trybie timera interwałowego w momencie przepełnienia itp. 11 -2016 Zygmunt Kubiak 12
Mikrokontrolery – System przerwań Przerwania MSP 430 G 2553 11 -2016 Zygmunt Kubiak 13
Mikrokontrolery – System przerwań Sterowania obsługiwane są przez kontroler przerwań Przykład kontrolera Intel 8259 A Rejestr zgłoszenia przerwań IRR (ang. Interrupt Request Register) Rejestr maski przerwań IMR (ang. Interrupt Mask Register) Rejestr obsługiwanych przerwań ISR (ang. In-Service Register) Układ priorytetu 11 -2016 Zygmunt Kubiak 14
Mikrokontrolery – System przerwań Kontroler przerwań – przykład Intel 8259 A 11 -2016 Zygmunt Kubiak 15
Mikrokontrolery – System przerwań Przerwania jednopoziomowe Przerwanie 1 – najniższy priorytet Przerwanie 3 – najwyższy priorytet ISR t program żądanie przerwania 1 żądanie przerwania 2 11 -2016 żądanie przerwania 3 Zygmunt Kubiak 16
Mikrokontrolery – System przerwań Przerwania wielopoziomowe Przerwanie 1 – najniższy priorytet Przerwanie 3 – najwyższy priorytet ISR t program żądanie przerwania 1 żądanie przerwania 2 11 -2016 żądanie przerwania 3 Zygmunt Kubiak 17
Dziękuję Zygmunt Kubiak 18 11201 6
- Slides: 18