plik


ÿþSWB - Przerwania, polling, timery - wykBad 10a z 1 Przerwania, polling, timery - wykBad 10 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Przerwania, polling, timery - wykBad 10a z 2 Metody obsBugi zdarzeD " Przerwanie (ang. Interrupt) - zmiana sterowania, niezale|nie od aktualnie wykonywanego programu, spowodowana pojawieniem si sygnaBu przewania. Pojawienie si przerwania powoduje wstrzymanie aktualnie wykonywanego programu i wykonanie przez kontroler procedury obsBugi przerwania. " Zapytywanie (ang. Polling) - aktywne, okresowe, próbkowanie (sprawdzanie) statusu urzdzeD zewntrznych przez kontroler. SWB - Przerwania, polling, timery - wykBad 10a z 3 Zapytywanie (ang. Polling) " Technika polling jest najcz[ciej u|ywana w kontek[cie obsBugi urzdzeD wej[cia/ wyj[cia, " W polling-u komputer centralny cyklicznie sprawdza stan urzdzenia zewntrznego w oczekiwaniu na gotowo[ tego urzdzenia - czeka na gotowo[, " Polling znajduje zastosowanie w sytuacjach, gdy komputer Bczy si z zewntrznymi urzdzeniami w celu zebrania (od[wie|enia) danych, przy czym wspóBpraca ta odbywa si w trybie off-line, " Polling mo|e by wykorzystany do wymiany informacji z urzdzeniami zewntrznymi, w sytuacji gdy z jaki[ wzgldów urzdzenia te nie mog rozpocz komunikacji, " W systemach obsBugujcych jedno zadanie polling mo|e równie| mie zastosowanie. Wikszo[ czasu procesora byBaby wówczas tracona na sprawdzanie gotowo[ci urzdzenia, " W systemach, które wymagaj wykonania wielu zadaD polling jest maBo efektywny w stosunku do przerwaD. SWB - Przerwania, polling, timery - wykBad 10a z 4 Rodzaje przerwaD 1. Sprztowe: " Zewntrzne sygnaB przerwania pochodzi z zewntrznego zródBa. Przerwania te sBu| do komunikacji z urzdzeniami zewntrznymi. " Wewntrzne - pochodzce od timera " Wewntrzne wyjtki - (ang. exceptions)  zgBaszane przez procesor dla sygnalizowania sytuacji wyjtkowych (np. dzielenie przez zero) 2. Programowe: z kodu programu wywoBywana jest procedura obsBugi przerwania (do komunikacji z systemem operacyjnym). SWB - Przerwania, polling, timery - wykBad 10a z 5 Wektory przerwaD " Wektor przerwaD jest adresem pocztku obsBugi przerwania, " Wektor przerwaD, w momencie wystpienia przerwania, wpisywany jest do licznika rozkazów - rejestr PC, a zawarto[ rejestru PC jest kBadziona na stos, " Adresy procedur obsBugi przerwaD zapisane s w tablicy wektorów przerwaD, " Przechowuje ona adresy poszczególnych procedur obsBugi przerwaD, SWB - Przerwania, polling, timery - wykBad 10a z 6 Tablica wektorów przerwaD dla µC Atmel ATMega32 DokBadniejsze informacje w dokumentacji. SWB - Przerwania, polling, timery - wykBad 10a z 7 Przerwania programowe " Z kodu programu wywoBywana jest procedura obsBugi przerwania, " Najcz[ciej wykorzystywane do komunikacji z systemem operacyjnym, który w procedurze obsBugi przerwania (np. w DOS 21h) SWB - Przerwania, polling, timery - wykBad 10a z 8 Przerwania maskowalne i niemaskowalne " Przerwania maskowalne które mo|na blokowa i odblokowa programowo, " Przerwania niemaskowalne - przerwania, których nie mo|na zablokow programowo. S to przerwania, których wystpienie ka|dorazowo powoduje bezwarunkowy skok do funkcji obsBugi tego przerwania, np. reset SWB - Przerwania, polling, timery - wykBad 10a z 9 ObsBuga przerwania " Procedura obsBugi przerwania - cig rozkazów realizujcych po|dan reakcj na przerwanie, " Program gBówny - sekwencja dziaBaD (rozkazów) mikroprocesora realizowanych gdy nie ma przerwaD, " ObsBuga przerwania nie mo|e wprowadza |adnych zmian w programie gBównym. SWB - Przerwania, polling, timery - wykBad 10a z 10 Procedura obsBugi przerwania 1. Rozpoznanie przyczyny przerwania (realizacja mo|e by sprztowa), 2. Skasowanie przyczyny przerwania (realizacja mo|e by sprztowa), 3. Zablokowanie przerwania, 4. SkBadowanie na stosie rejestrów roboczych, 5. WBa[ciwa obsBuga przerwania, 6. Odtworzenie rejestrów roboczych ze stosu, 7. Odblokowanie przerwania, 8. Powrót do zawieszonego programu. SWB - Przerwania, polling, timery - wykBad 10a z 11 Stos " W momencie wywoBania przerwania adres odkBadany jest na stos, " Wskaznik stosu powinien by ustawiony na miejsce gdzie znajduje si stos. SWB - Przerwania, polling, timery - wykBad 10a z 12 Priorytet przerwaD " Priorytet przerwaD - zró|nicowanie co do wa|no[ci (pilno[ci) zadaD realizowanych przez system mikroprocesorowy, " W szczególno[ci zadaniami tymi mog by procedury obsBugi przerwaD ró|nicujc ich pilno[ dokonuje si okre[lenia priorytetów poszczególnych przerwaD, " W przypadku AVR system obsBugi przerwaD jest pBaski (brak hierarchii). Wszystkie przerwania s jednakowo wa|ne. SWB - Przerwania, polling, timery - wykBad 10a z 13 Sprztowa realizacja hierarchii przerwaD " sprztowo - o wyborze przerwania decyduje kontroler przerwaD. SWB - Przerwania, polling, timery - wykBad 10a z 14 Programowa realizacja hierarchii przerwaD " programowo - poprzez wspóln procedur obsBugi przerwaD. Jest on arbitrem systemu przerwaD (rozpoznaje zródBa aktualnych przerwaD i decyduje o kolejno[ci ich obsBugi) SWB - Przerwania, polling, timery - wykBad 10a z 15 Asynchroniczno[ przerwaD " Przerwania z ró|nych zródeB pojawiaj si w dowolnych, niezale|nych od siebie, chwilach czasu, " z punktu widzenie procesora przerwania 1 i 3 wystpiBy jednocze[nie. SWB - Przerwania, polling, timery - wykBad 10a z 16 System przerwaD bez priorytetów " Opóznienia {"t2, "t3} w reakcji na obsBug przerwaD, " Mo|liwo[ zgubienia przerwania podczas tych opóznieD, " Maksymalny czas oczekiwania na obsBug przerwania mo|e by równy sumie czasów obsBugi pozostaBych przerwaD w systemie, SWB - Przerwania, polling, timery - wykBad 10a z 17 System przerwaD z priorytetami " Istnieje hierarchia wa|no[ci przerwaD, " Opóznienia {"t1, "t2} w reakcji na obsBug przerwaD, " Przerwania o ni|szych priorytetach mog dBu|ej czeka na obsBug (w skrajnych przypadkach mog by nie obsBu|one), SWB - Przerwania, polling, timery - wykBad 10a z 18 Rodzaje przerwaD " Przerwania zegarowe - odmierzanie czasu, " Przerwania od urzdzeD zewntrznych - nieregularne, " Przerwania od ukBadów kontrolujcych prac systemu - o najwy|szym priorytecie. Sygnalizuj stan pracy jak  zanik zasilania,  bBd/wyjtek procesora,  inne SWB - Przerwania, polling, timery - wykBad 10a z 19 Liczniki i timery " Timery s to liczniki sBu|ce do odmierzania okresów czasu, " Czstotliwo[ pracy licznika jest okre[lana poprzez podziaB czstotliwo[ci zegara, " Timery (liczniki) mog mie ró|n dBugo[ - zazwyczaj 8 albo 16 bitów, " Przerwanie od timera generowane jest w momencie przepeBnienia licznika. SWB - Przerwania, polling, timery - wykBad 10a z 20 Timer0 w µC Atmel ATMega32 " Licznik pojedynczy, " Automatyczne zerowanie (Auto Reload), " Generator Pulse Width Modulator (PWM), " generator czstotliwo[ci, " Licznik zdarzeD zewntrznych, " 10-bitowy prescaler, " PrzepeBnienie (TOV0 and OCF0). SWB - Przerwania, polling, timery - wykBad 10a z 21 Timer0 w µC Atmel ATMega32 - schemat blokowy SWB - Przerwania, polling, timery - wykBad 10a z 22 Uruchomienie timera0 i timera1 1. Ustawienie trybów pracy timera. Normalny tryb pracy jest domy[lny. PozostaBe tryby omówione bd na nastpnych wykBadach. 2. Ustawienie prescalera okre[lenie czstotliwo[ci pracy zegra licznika w oparciu o zegar systemowy. Dostpne dzielniki to N = {1, 8, 64, 256, 1024} - tyle razy mo|na zmiejszy czstotliwo[ zegara systemowego, 3. Ustawienie etykiety wektora przerwaD danego przerwania, 4. Uruchomienie wszystkich przerwaD oraz przerwaD timera (rejestr Timer/Counter Interrupt Mask Register), 5. Wystartowanie timera 6. ObsBuga przerwaD. SWB - Przerwania, polling, timery - wykBad 10a z 23 Struktura programu obsBugi przerwaD (Bascom-AVR)

Wyszukiwarka

Podobne podstrony:
SWBwyklad15d
SWBwyklad5d
SWBwyklad8d
SWBwyklad9d
SWBwyklad7d
SWBwyklad11d
SWBwyklad1d
SWBwyklad4d
SWBwyklad3d
SWBwyklad11
SWBwyklad8d
SWBwyklad8d
SWBwyklad7d
SWBwyklad6d
SWBwyklad2d

więcej podobnych podstron