Przerwania w systemie mikroprocesorowym. Obsługa urządzeo wejścia/wyjścia

Podobne dokumenty
Przerwania w systemie mikroprocesorowym

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Przerwania, polling, timery - wykład 9

Metody obsługi zdarzeń

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Działanie systemu operacyjnego

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Działanie systemu operacyjnego

Działanie systemu operacyjnego

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Mechanizm przerwań i menadżer zdarzeń procesora sygnałowego F/C240

Technika mikroprocesorowa I Wykład 2

Układy czasowo-licznikowe w systemach mikroprocesorowych

Mikroprocesor Operacje wejścia / wyjścia

Działanie systemu operacyjnego

Architektura komputerów

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Instytut Teleinformatyki

Architektura komputerów. Układy wejścia-wyjścia komputera

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Hardware mikrokontrolera X51

Część I - Sterownik przerwań 8259A i zegar/licznik 8253

MIKROKONTROLERY I MIKROPROCESORY

Podstawy techniki cyfrowej i mikroprocesorowej II. Urządzenia wejścia-wyjścia

Budowa systemów komputerowych

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

2. Architektura mikrokontrolerów PIC16F8x... 13

2. PORTY WEJŚCIA/WYJŚCIA (I/O)

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Architektura systemu komputerowego

Architektura systemów komputerowych. dr Artur Bartoszewski

Mikroprocesor Intel 8088 (8086)

PROGRAMOWALNE SYSTEMY MECHATRONIKI

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Mikrokontroler Intel dr inż. Wiesław Madej

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

MIKROPROCESORY architektura i programowanie

XMEGA. Warsztaty CHIP Rok akademicki 2014/2015

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

MIKROPROCESORY architektura i programowanie

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

organizacja procesora 8086

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

Organizacja typowego mikroprocesora

Szkolenia specjalistyczne

2. Budowa układów procesorowych rodziny TMS320C

Wstęp Architektura... 13

Kurs Zaawansowany S7. Spis treści. Dzień 1

Systemy wbudowane. Wprowadzenie. Wprowadzenie. Mikrokontroler 8051 Budowa

Jak wiemy, wszystkich danych nie zmieścimy w pamięci. A nawet jeśli zmieścimy, to pozostaną tam tylko do najbliższego wyłączenia zasilania.

Technika Mikroprocesorowa II Wykład 1

Struktura systemów komputerowych

Urządzenia wejścia-wyjścia

LEKCJA TEMAT: Zasada działania komputera.

SYSTEM PRZERWAŃ ATmega 32

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Układy wejścia/wyjścia

Technika Mikroprocesorowa

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Architektura mikroprocesorów z rdzeniem ColdFire

ARCHITEKTURA PROCESORA,

Architektura komputerów

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

Technologia informacyjna. Urządzenia techniki komputerowej

Wstęp: Interfejs portu równoległego 6821 i portu szeregowego 6850 firmy Motorola

Architektura i administracja systemów operacyjnych

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Magistrala systemowa (System Bus)

Instytut Teleinformatyki

CYKL ROZKAZOWY = 1 lub 2(4) cykle maszynowe

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

System mikroprocesorowy i peryferia. Dariusz Chaberski

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Sygnały DRQ i DACK jednego kanału zostały użyte do połączenia kaskadowego obydwu sterowników.

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Wykład IV. Układy we/wy. Studia Podyplomowe INFORMATYKA Architektura komputerów

Techniki mikroprocesorowe i systemy wbudowane

Wykład PASCAL - Pliki tekstowe

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Systemy Operacyjne sprzęt

Układy zegarowe w systemie mikroprocesorowym

Mikroinformatyka. Wielozadaniowość

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

MIKROPROCESORY architektura i programowanie

Układy czasowo-licznikowe w systemach mikroprocesorowych

Przerwania w architekturze mikrokontrolera X51

Logiczny model komputera i działanie procesora. Część 1.

Przykładowe pytania DSP 1

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

Urządzenia zewnętrzne

Transkrypt:

Przerwania w systemie mikroprocesorowym 1 Obsługa urządzeo wejścia/wyjścia W każdym systemie mikroprocesorowym oprócz pamięci programu i pamięci danych znajduje się szereg układów lub urządzeo wejścia/wyjścia, które są niezbędne do komunikacji systemu np. z użytkownikiem (przyciski, klawiatura, myszka, monitor) lub do komunikacji z innym systemem mikroprocesorowym, np. porty szeregowe lub równoległe do transmisji danych. Oprócz tego każdy system zawiera podstawowe układy wejścia/wyjścia, typu układy czasowo-licznikowe, porty do transmisji szeregowej. Każde z tych układów wymaga obsługi, na co się składa: wstępne zaprogramowanie, np. ustawienie parametrów i trybu pracy, jest to przeważnie realizowane jednokrotnie na początku programu. Późniejsza obsługa wymaga już wielokrotnego i cyklicznego wykonywania pewnych operacji (fragmentu programu) przez jednostkę centralną aby efekt działania układu wejścia/wyjścia nie był stracony lub by nie nastąpiło nieprawidłowe działanie programu w systemie, a tym samym nieprawidłowe działanie urządzenia. Każdy układ wejścia/wyjścia zawiera przynajmniej jeden bit (tzw. flagę) informującą system o potrzebie przeprowadzenia obsługi. 2 1

System mikroprocesorowy Mikroprocesor (Jednostka centralna) CPU Reset Generator zegarowy fx Pamięd programu ROM Pamięd danych RAM Sygnały zewnętrzne logiczne System przerwao sprzętowych IRQ Podstawowe układy wejścia/wyjścia Liczniki, Porty równoległe Porty szeregowe Przetwornik A/C Przetwornik C/A Modulator PWM Sygnały zewnętrzne logiczne Sygnały zewnętrzne analogowe 3 Obsługa sytuacji wyjątkowych Oprócz tego system mikroprocesorowy musi czasami reagowad na sygnały zewnętrzne (zdarzenia zewnętrzne) w ściśle określonym czasie. Sygnały te mogą występowad w sposób cykliczny lub mogą mied charakter przypadkowy (losowy). Od czasu do czasu mogą się zdarzyd sytuacje wyjątkowe w systemie mikroprocesorowym, np. pojawienie się sygnału zerowania (Reset) od jakiegoś układu lub elementu w systemie, może się zdarzyd błąd programowy polegający na dzieleniu przez zero lub próba wykonania skoku do adresu w pamięci programu lub w pamięci danych, którego nie ma w systemie, może wystąpid błąd parzystości przy zapisie/odczycie pamięci RAM. Na takie zdarzenia dobrze zaprogramowany i zaprojektowany system mikroprocesorowy, powinien tak zareagowad aby nie nastąpiło np. zawieszenie systemu i tym samym zaprzestanie działania jakiegoś urządzenia lub nieprzewidywalne działanie urządzenia. 4 2

Metoda odpytywania Najprostszym sposobem obsługi poszczególnych układów wejścia/wyjścia jest ciągłe sprawdzanie flag (bitów) w kolejnych układach czy nie wymagają obsługi (tzw. metoda odpytywania, z ang. polling). Jest to proste rozwiązanie ale zabiera dużo czasu jednostce centralnej i tracone jest dużo czasu na oczekiwanie że flaga zostanie ustawiona przez układ wejścia/wyjścia. Jest bardzo nieefektywna metoda obsługi układów lub urządzeo wejścia/wyjścia. W tej metodzie występuje np. niebezpieczeostwo spóźnienia odczytania już odebranego przez port szeregowy znaku. W takim przypadku nie odczytany na czas znak i uległ zapisaniu nowo odebranym znakiem. Aby metoda ta działała poprawnie, program odbierający znaki musi wystarczająco często sprawdzad, czy na wejściu pojawił się nowy znak - jest to strata czasu przez CPU. 5 Metoda przerwao Lepszym rozwiązaniem jest tak skonstruowanie (zaprojektowanie) systemu mikroprocesorowego i jego oprogramowanie aby poszczególne układy zgłaszały potrzebę obsługi do jednostki centralnej tylko wtedy kiedy będzie taka potrzeba. Wtedy jednostka centralna przerywa aktualnie wykonywany fragment programu i skacze do innego miejsca w pamięci programu i wykonuje fragment programu, który obsługuje układ wejścia/wyjścia, który zgłosił przerwanie. Po zakooczeniu obsługi, CPU bezpiecznie wraca do miejsca w pamięci programu, w którym nastąpiło przerwanie. 6 3

Metoda przerwao Ten sposób obsługi urządzeo lub układów wejścia/wyjścia nazywamy systemem przerwao z ang. Interrupts System. Najczęściej w ten sposób obsługuje się układy wejścia/wyjścia i wtedy mówimy o przerwaniach sprzętowych. Program do obsługi przerwania związany jest z odczytem/zapisałem rejestrów układu wejścia/wyjścia, wykonaniem pewnych obliczeo i odczytem/zapisem danych do pamięci RAM lub odczytem/zapisem innych układów wejścia/wyjścia. 7 System przerwao Device A Device B Bus IRQ Interrupt Controller CPU Procedury wstępne IRQ interrupt enable bit Procedura obsługi przerwania nr 1 Procedura obsługi przerwania nr 2 Główna pętla programu 8 4

Rodzaje przerwao Przerwania można podzielid na kilka kategorii: sytuacje wyjątkowe (ang. exception interrupts), tzw. przerwania niemaskowalne (ang. non-maskable interrupt, NMI). przerwania maskowalne sprzętowe (ang. event interrupts), przerwania programowe (ang. software interrupts), pułapki (ang. traps). 9 Przerwania niemaskowalne Przerwania niemaskowalne tzn. użytkownik (programista) nie może je zablokowad ani sprzętowo ani programowo. Programista musi uwzględnid programy do obsługi tych przerwao w oprogramowaniu całego systemu. Są to przerwania najszybciej obsługiwane o najwyższym priorytecie. Do przerwao niemaskowalnych zaliczymy następujące zdarzenia: sygnały z CPU dzielenie przez zero, błąd parzystości, przepełnienie (ang. overflow), itp., błąd działania CPU, sygnały RESETU pochodzące z układu zerowania (zewnętrznego lub wewnętrznego), układu monitorowania napięcia zasilania, układu tzw. watchdoga, układu monitorowania generatora zegarowego, 10 5

Przerwania maskowalne Przerwania maskowalne programista może odblokowad lub zablokowad w sposób programowy, poprzez ustawienie lub zerowanie odpowiednich bitów w rejestrach do ustawiania systemu przerwao. W mikrokontrolerach system przerwao sprzętowych uwzględnia sygnały przerwao od układów wewnętrznych a także sygnały zewnętrzne pochodzące od urządzeo podłączonych do mikrokontrolera. Przerwania maskowalne sprzętowe są zgłaszane przez układy wewnętrzne mikrokontrolera systemu, np.: układy czasowo-licznikowe (Timers, Counters), porty szeregowe (UART, USART, SPI, I2C, CAN..), przetwornik A/C, Przerwania maskowalne sprzętowe są też zgłaszane mikroprocesorowego przez urządzenia lub układy zewnętrzne, np.: do systemu klawiaturę, napędy dysków, karty sieciowe, karty dźwiękowe Reakcja na sygnały zewnętrzne (przerwania zewnętrzne) może byd ustawiona: reakcja na zbocze opadające, lub zbocze narastające, reakcja na zmianę stanu logicznego, na stan logiczny 0 lub 1 11 Przerwania programowe Przerwania programowe są wywoływane przez program (świadome działanie programisty). W kodzie programu umieszcza się rozkaz który wywołuje procedurę do obsługi przerwania. Przerwania programowe najczęściej wykorzystywane są do komunikacji z systemem operacyjnym, np. w komputerze klasy PC, w procedurze obsługi przerwania (np. w DOS 21h, 2fh, Windows 2fh, Linux x86 przerwanie 80h) umieszcza się kod wywołujący odpowiednie funkcje systemowe w zależności od zawartości rejestrów ustawionych przez program wywołujący. Np. w systemie DOS przerwanie int 21h z parametrem ah=01h Czytanie znaku z echem z standardowego wejścia (klawiatura i ekran monitora). Funkcja oczekuje na znak w standardowym strumieniu wejściowym. Po odebraniu znaku funkcja w rejestrze AL zwraca kod tego znaku. 12 6

Pułapki Traps (pułapki) sytuacja, która nie jest błędem, jej wystąpienie ma na celu wykonanie określonego kodu. Wykorzystywane przede wszystkim w debugerach - testowanie oprogramowania, śledzenie wykonywanego programu, krokowe wykonywanie programu. Procedura do obsługi pułapki polega najczęściej na wyprowadzeniu zawartości wybranych rejestrów procesora lub zawartości fragmentu pamięci RAM na zewnątrz systemu np. poprzez port szeregowy do komputera typu PC na którym można podglądad zmiany zachodzące w rejestrach i pamięci RAM. Dzięki temu można znaleźd błędy działania w programie. Po zakooczeniu obsługi pułapki procesor powraca do wykonywania przerwanego kodu. 13 Priorytet przerwao Priorytet przerwao. Każde przerwanie ma określony priorytet (ważnośd). Jeśli zostanie zgłoszonych jednocześnie kilka przerwao to jako pierwsze zostanie obsłużone przerwanie o najwyższym priorytecie. Po zakooczeniu procedury obsługi przerwania obsługiwane jest następne przerwanie o najwyższym priorytecie. W większości przypadków przerwania niemaskowalne mają najwyższy priorytet. Priorytet poszczególnych przerwao na ogół jest już ustalony przez projektanta systemu mikroprocesorowego (producenta mikroprocesora lub mikrokontrolera) ale może byd modyfikowany w pewnym zakresie przez programistę. Np. dla mikrokontrolera 8051 priorytet przerwao maskowalnych: 1. Najwyższy dla przerwania zewnętrznego INT0, 2. przerwanie z licznika T0, 3. przerwanie zewnętrznego INT1, 4. przerwanie z licznika T0, 5. Najniższy dla przerwania z portu szeregowego, 14 7

Wektor przerwao Wektor przerwao. Kiedy wywoływane jest przerwanie, do licznika rozkazów w CPU ładowany jest adres procedury obsługi przerwania (adres pierwszego rozkazu programu do obsługi przerwania). Adres ten pobierany jest z tabeli umieszczonej w pamięci programu zwanej wektorem przerwao. Wektor przerwao zawiera adresy procedur obsługi przerwao oraz adres procedury wywoływanej po resecie mikrokontrolera. Wektor przerwao (początkowe adresy programów do obsługi przerwao) może byd ustalony na stałe przez producenta mikroprocesora/mikrokontrolera lub w niektórych przypadkach programista może narzucid własne adresy procedur do obsługi przerwania. W większości przypadków i tak pod pierwszym adresem procedury do obsługi przerwania umieszcza się rozkaz skoku do innego miejsca w pamięci programu. 15 Wektor przerwao W zależności od budowy i stopnia skomplikowania systemu mikroprocesorowego po pojawieniu się sygnału przerwania jednostka centralna: dokładnie wie z którego urządzenia pojawił się sygnał żądania obsługi przerwania i skacze do pierwszego adresu w pamięci programu obsługującego przerwanie, CPU rozpoznaje że jest zgłoszone przerwanie ale nie wie z jakiego miejsca (od jakiego urządzenia). Wtedy program (świadome działanie programisty) musi rozpoznad skąd pochodzi zgłoszenie przerwania i skoczyd do procedury obsługi przerwania. Np. dla mikrokontrolera 8051 wektor przerwao: 0003H - dla przerwania zewnętrznego INT0, 000BH - dla przerwania z licznika T0, 0013H - dla przerwania zewnętrznego INT1, 001BH - dla przerwania z licznika T0, 0023H - dla przerwania z portu szeregowego, 16 8

Mechanizm obsługi przerwania Pierwszą czynnością wykonywaną po wystąpieniu przerwania jest zachowanie obecnego stanu programu, tak by było możliwe jego odtworzenie po zakooczeniu obsługi przerwania i bezpieczny powrót do przerwanego programu. Dokonywane jest to poprzez automatyczne zachowanie na stosie: licznika rozkazów, akumulatora, odpowiednich rejestrów oraz rejestru stanu (rejestru kontrolnego). Niektóre rejestry i fragmenty pamięci RAM muszą byd odłożone na stos samodzielnie przez programistę (lub zapewnia to kompilator np. języka C). Po zachowaniu stanu procesora procedura obsługi przerwania może korzystad z wyżej wymienionych rejestrów bez niebezpieczeostwa zakłócenia pracy programu głównego. Aby zapobiec przerywaniu procedury obsługi przerwania przez inne przerwania można zablokowad inne przerwania. Czynności wykonywane przez procedurę obsługi przerwania zależą od źródła przerwania. W większości przerwao od urządzeo peryferyjnych konieczne jest wyzerowanie znacznika przerwania. Zerowanie tego znacznika najczęściej wykonywane jest poprzez odczyt odpowiedniego rejestru statusowego, a następnie zapis lub odczyt rejestru stowarzyszonego z danym urządzeniem peryferyjnym. Na przykład skasowanie flagi przerwania od portu szeregowego wykonywane jest przez odczyt rejestru danych. 17 Mechanizm obsługi przerwania Czasami jedna procedura obsługi przerwania wywoływana jest przez kilka źródeł (np. przerwanie układu czasowego może byd wywołane przez 5 różnych źródeł). W takim przypadku na początku procedury obsługi należy wykryd, które źródło wywołało przerwanie. Dokonujemy tego przez testowanie odpowiednich bitów w rejestrach statusowych urządzeo peryferyjnych. Na koocu procedury obsługi przerwania programista musi odtworzyd stan wybranych rejestrów i fragmentu pamięci RAM. Ostatnią instrukcją procedury obsługi jest specjalna instrukcja powrotu z przerwania. Instrukcja ta powoduje przywrócenie stanu z przed wywołania przerwania. To znaczy, zdejmuje ze stosu akumulator, wybrane rejestry i rejestr stanu oraz licznik rozkazów. Zerowany jest bit maski przerwania. Przerwanie 1 Przerwanie 2 Program główny Obsługa przerwania 1 Program główny Obsługa Przerwania 2 Program główny Czas 18 9

Obsługa urządzeo wejścia/wyjścia i sytuacji wyjątkowych w systemie mikroprocesorowym jest jednym z najważniejszych zadao dla programisty. Oprogramowanie układów mikroprocesorowych przewidzianych do sterowania i kontroli w głównej mierze składa się z programów do obsługi przerwao. Program główny w takim przypadku może byd nawet pustą pętlą, która nic nie robi. W zależności od budowy i stopnia skomplikowania systemu mikroprocesorowego czas przejścia CPU do obsługi przerwania może byd stały i taki sam dla wszystkich przerwao lub w bardziej zaawansowanych systemach można wyróżnid przerwania które są wolniej albo szybciej obsługiwane po pojawieniu się sygnału zgłoszenia (np. mikrokontrolery typu ARM). Przerwanie 1 Czas obsługi przerwania Przerwanie 2 Program główny Obsługa przerwania 1 Obsługa Przerwania 2 Obsługa przerwania 1 Program główny Czas 19 10