10
MIKROPROCESORY – architektura i programowanie 1/10 SYSTEM PRZERWAŃ (dla µ-kontrolerów rodziny 51) pomysł przerwań zewnętrznych i programowych to kolejny, genialny fundament konstrukcji procesorów cyfrowych Naturalnie sekwencyjne wykonywanie programu może być przerwane przez specjalne sygnały pochodzące od wewnętrznych urządzeń peryferyjnych bądź przychodzące z zewnątrz. W procesorach o złożonych systemach operacyjnych repertuar przerwań rozszerzają przerwania programowe, pochodzące od innych procesów. Przerwanie oznacza zawsze zmianę stanu licznika rozkazów i rozpoczęcie obsługi przerwania. Po zakończeniu obsługi przerwania µ-kontroler powraca do wykonywania programu od miejsca przerwania. Z każdym źródłem przerwania ściśle związane są: adres i priorytet programu obsługi. Dla µ-kontrolerów rodziny 51 nieźle przestrzegana jest standaryzacja tych parametrów. Przy jednoczesnym wystąpieniu warunków dla dwóch lub więcej przerwań w pierwszej kolejności obsługiwane jest przerwanie o wyższym priorytecie. Czas reakcji na przerwanie zależy od szeregu warunków. Jest to bardzo istotny czynnik w programowaniu µ-kontrolerów, stosowanych zwykle w systemach o silnym uwarunkowaniu czasowym. Zarówno cały układ przerwań jak i każde indywidualne przerwanie mogą być programowo uaktywnione lub wyłączone.

MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

1/10

SYSTEM PRZERWAŃ (dla µ-kontrolerów rodziny 51) pomysł przerwań zewnętrznych i programowych

to kolejny, genialny fundament konstrukcji procesorów cyfrowych

Naturalnie sekwencyjne wykonywanie programu może być przerwane przez specjalne sygnały pochodzące od wewnętrznych urządzeń peryferyjnych bądź przychodzące z zewnątrz. W procesorach o złożonych systemach operacyjnych repertuar przerwań rozszerzają przerwania programowe, pochodzące od innych procesów.

Przerwanie oznacza zawsze zmianę stanu licznika rozkazów i rozpoczęcie obsługi przerwania. Po zakończeniu obsługi przerwania µ-kontroler powraca do wykonywania programu od miejsca przerwania.

Z każdym źródłem przerwania ściśle związane są: adres i priorytet programu obsługi. Dlaµ-kontrolerów rodziny 51 nieźle przestrzegana jest standaryzacja tych parametrów.

Przy jednoczesnym wystąpieniu warunków dla dwóch lub więcej przerwań w pierwszejkolejności obsługiwane jest przerwanie o wyższym priorytecie.

Czas reakcji na przerwanie zależy od szeregu warunków. Jest to bardzo istotny czynnik w programowaniu µ-kontrolerów, stosowanych zwykle w systemach o silnym uwarunkowaniu czasowym.

Zarówno cały układ przerwań jak i każde indywidualne przerwanie mogą być programowouaktywnione lub wyłączone.

Page 2: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

2/10

SYSTEM PRZERWAŃ (dla µ-kontrolerów rodziny 51) cd.

Wskaźniki przerwań Wskaźniki przerwań (występują w rejestrach SFR, właściwych dla danychurządzeń lub sygnałów) ustawiane są sprzętowo i ustawienie to jest warunkiem koniecznym dla przerwania.

Wskaźniki muszą być zerowane (sprzętowo bądź programowo) przedopuszczeniem procedury obsługi przerwania. W przeciwnym przypadkuobsługa przerwania wywołana zostanie natychmiast ponownie.

Niektóre wskaźniki przerwań mogą być ustawiane także programowo, co daje możność programowego symulowania zdarzeń.

Układ przerwań reaguje na stan wskaźnika, a nie na moment ustawienia.Stan wskaźników badany jest w każdym cyklu maszynowym w fazie S5P2.

Priorytet przerwania Przy jednoczesnym ustawieniu kilku wskaźników, o kolejności obsługi przerwania decyduje priorytet. Efektywny priorytet danego przerwania wynika z dwóch czynników:

- programowo ustawianego poziomu priorytetu, który jest czynnikiemnadrzędnym w stosunku do

- naturalnego priorytetu przerwań.W µ-kontrolerach rodziny 51 liczba poziomów przerwań bywa różna (1-4).Efektywny priorytet przerwania z poziomu wyższego jest wyższy od każdego przerwania z poziomu niższego. Wśród przerwań danego poziomuo pierwszeństwie obsługi decyduje znów priorytet naturalny.

Page 3: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

3/10

Przerwanie o wyższym priorytecie przerywa obsługę przerwania o niższym priorytecie, po czym następuje powrót do przerwanej obsługi przerwania o niższym priorytecie.

(Rysunek z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Page 4: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

4/10(Tabela z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Page 5: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

5/10(Tabela z książki T.Starecki. Mikokontrolery jednoukładowe rodziny 51. NOZOMI W-wa 1996)

Page 6: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

6/10

SYSTEM PRZERWAŃ (dla µ-kontrolerów rodziny 51) cd.

Naturalny priorytet przerwań nie może być zmieniany – jest sztywno związany z typem µ-kontrolera.

Również, adresy procedur obsługi (tzw. wektory adresowe) poszczególnych przerwań zależą od typu µ-kontrolera i nie mogą być zmieniane.

Obsługa przerwań Stan wskaźników badany jest w S5P2 i interpretowany w czasie następnegocyklu maszynowego. Jeśli warunki dla przerwania są spełnione to generowana jest (“sprzętowo”) instrukcja dalekiego wywołania procedury,a adres jej określa wektor adresowy zgłoszonego przerwania. Wywołanie tojest jednak wstrzymane jeśli:

- trwa obsługa przerwania o priorytecie wyższym niż zgłoszone, lub- bieżący cykl maszynowy nie jest ostatnim cyklem wykonywanej instrukcji, lub- właśnie wykonywana jest komenda RETI, lub jakaś inna, modyfikująca rejestry zawierające bity priorytetów lub bity zezwoleń na przerwania.

Wygenerowana instrukcja dalekiego wywołania procedury obsługujeoczywiście odpowiednio licznik rozkazów, natomiast NIE zapamiętuje (ani nieodtwarza) żadnych rejestrów. Należy to do programisty.Powróŧ z tych szczególnych procedur obsługi przerwań musi być wywołany przezRETI (a nie przez RET !!!). Tylko w ten sposób układ przerwań przywracany jest do stanu sprzed przerwania.

Page 7: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

7/10

Page 8: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

8/10

Page 9: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

9/10

Page 10: MIKROPROCESORY – architektura i programowaniemars.iti.pk.edu.pl/~malecki/intrrpt.pdf · 2011. 1. 16. · MIKROPROCESORY – architektura i programowanie 3/10 Przerwanie o wyższym

MIKROPROCESORY – architektura i programowanie

10/10

SYSTEM PRZERWAŃ (dla µ-kontrolerów rodziny 51) cd.

Czas reakcji na przerwanie

Szacowanie tego czasu jest bardzo ważnym elementem projektownia systemu sterowanegoµ-kontrolerami, który jest zwykle systemem czasu rzeczywistego, czyli systemem o silnychuwarunkowaniach czasowych.1. Przynajmniej jeden cykl maszynowy upływa na interpretację wskaźników próbkowanych w S5P2.2. Dwa cykle maszynowe zużywa instrukcja LCALL, sprzętowo wygenerowane dalekie wywołania procedury przerwania.3. Na maksymalny czas reakcji może składać się szereg cykli maszynowych, wynikających z w/w warunków wstrzymujących obsługę przerwania.4. Decydującym, ale łatwiejszym do oszacowania składnikiem czasu reakcji na przerwanie jest sam program obsługi przerwania. Dobrą praktyką programistyczną jest optymalizacja, minimalizowanie programów obsługi, wprowadzanie do obsługi przerwań jedynie niezbędnych operacji i przerzucanie szczegółowej analizy i obróbki danych do programu głównego.