Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Mikrokontrolery System przerwań
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
2
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 Zygmunt Kubiak
3
Mikrokontrolery – System przerwań
Przerwania Przerwania są zdarzeniami wymuszającymi zmianę wykonywania programu Sygnał IRQ (ang. Interrupt ReQuest) 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 MSP430 potrzeba do 6 cykli zegarowych Zygmunt Kubiak
4
Mikrokontrolery – System przerwań
Obsługa przerwań zachowanie stanu CPU odtworzenie żądanie przerwania ISR program t Zygmunt Kubiak
5
Mikrokontrolery – System przerwań
Cykl pobranie instrukcji - wykonanie Nie Tak Zygmunt Kubiak
6
Mikrokontrolery – System przerwań
Przykładowa organizacja pamięci - MSP430F2274 Zygmunt Kubiak
7
Mikrokontrolery – System przerwań
MSP430 Wejście do trybu LPM3 i zezwolenie na przerwania w asemblerze: bis.b #LPM3+GIE,SR ; LPM3 w/interrupts Wejście do trybu LPM3 i zezwolenie na przerwania w języku C: __bis_SR_register(LPM3_bits + GIE); Zygmunt Kubiak
8
Mikrokontrolery – System przerwań
Operacje na stosie Zygmunt Kubiak
9
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 MSP430 wymaga 5-ciu cykli zegarowych Zygmunt Kubiak
10
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 Zygmunt Kubiak
11
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, I2C-Bus, SPI, CAN, USB, Ethernet, ..) Przetworniki (A/C i C/A) WDT (WatchDog Timer) Zygmunt Kubiak
12
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. Zygmunt Kubiak
13
Mikrokontrolery – System przerwań
Przerwania MSP430G2553 Zygmunt Kubiak
14
Mikrokontrolery – System przerwań
Sterowania obsługiwane są przez kontroler przerwań Przykład kontrolera Intel 8259A 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 Zygmunt Kubiak
15
Mikrokontrolery – System przerwań
Kontroler przerwań – przykład Intel 8259A Zygmunt Kubiak
16
Mikrokontrolery – System przerwań
Przerwania jednopoziomowe Przerwanie 1 – najniższy priorytet Przerwanie 3 – najwyższy priorytet żądanie przerwania 1 żądanie przerwania 2 żądanie przerwania 3 ISR program priorytet t Zygmunt Kubiak
17
Mikrokontrolery – System przerwań
Przerwania wielopoziomowe Przerwanie 1 – najniższy priorytet Przerwanie 3 – najwyższy priorytet żądanie przerwania 1 żądanie przerwania 2 żądanie przerwania 3 ISR program priorytet t Zygmunt Kubiak
18
Dziękuję Zygmunt Kubiak
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.