MCS51 - wykład 5.

Slides:



Advertisements
Podobne prezentacje
Watchdog Paweł Trojanowski
Advertisements

Taktowanie mikroprocesorów Jednostka sterująca mikroprocesora jest układem sekwencyjnym synchronicznym, czyli wymagającym sygnału taktującego (zegarowego).
I część 1.
Zerowanie mikroprocesorów Cel: wprowadzenie mikroprocesora w określony stan początkowy Zwykle realizowany poprzez: inicjalizację licznika rozkazów (PC)
Co to jest BIOS ? Piotr Pierzchalski kl. III B.
Wykonał : Marcin Sparniuk
Odpytywanie - Polling Program czeka na nadejście danych z urządzenia i nie może wykonywać innych zadań. Urządzenie zewnętrzne dostarcza dane w trudnym.
Liczniki.
Sprzężenie zwrotne Patryk Sobczyk.
Mapa pamięci mikrokontrolera
Wykład 5 Przerwania w systemie SAB80C537 dr inż. Andrzej Przybył
Wykład 4 Przetwornik Analogowo-Cyfrowy
Podstawowe składniki funkcjonalne procesora i ich rola.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Magistrala & mostki PN/PD
Temat nr 10: System przerwań
Wykład 1 z programowania mikrokontrolerów
ZARZĄDZANIE PROCESAMI
Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE
Mikroprocesory i mikrokontrolery
Układy wejścia-wyjścia
ogólne pojęcia struktury
Programowalny układ we-wy szeregowego 8251
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
Architektura komputerów
przykładowy 8-bitowy mikroprocesor uniwersalny CISC
Układy kombinacyjne cz.2
Mikrokontrolery PIC.
MCS51 - wykład 2.
Przyciski i klawiatury
Mikroprocesor Z80 przerwania.
ogólne pojęcia struktury
Programowalny układ we/wy równoległego.. Wyprowadzenia układu.
MCS51 - wykład 6.
Architektura komputerów
Mikrokontrolery PIC.
MCS51 - wykład 4.
Wyrażenia algebraiczne
Sekwencyjne bloki funkcjonalne
Zasada działania komputera
PEŁNA KONTROLA NAD POBOREM MOCY
Rezystancja zastępcza, połączenie trójkąt-gwiazda
Aplikacje systemu windows XP
Rodzina AVR wykład 6.
Przerwanie ang. interrupt.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Podstawy informatyki 2013/2014
12. Input Capture – Wejście przechwytywania
Etapy uruchamiania systemu Pliki konfiguracyjne
Wykład 7 Synchronizacja procesów i wątków
Wykład 3 Praca systemu komputerowego
Wprowadzenie cyfrowego wyświetlacza. Panel wyświetlacza Czas i Temp. Obszar wyświetlania 1) Wyświetlacz czasu 2) Zadana temperatury (po lewej stronie)
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Przerzutniki bistabilne
Procesor, pamięć, przerwania, WE/WY, …
Struktura wewnętrzna mikrokontrolera zamkniętego
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Układy i systemy mikroprocesorowe
Przerwania timera i przerwania zewnętrzne
Tryby adresowania i formaty rozkazów mikroprocesora
PWM, obsługa wyświetlacza graficznego
Automatyczna linia galwanizerska Zarządzanie procesem galwanizerskim w linii automatycznej – sterowanie i wizualizacja.
POLITECHNIKA POZNAŃSKA
POLITECHNIKA POZNAŃSKA WBMiZ Zakład Urządzeń Mechatronicznych STEROWNIKI URZĄDZEŃ MECHATRONICZNYCH
TEMAT: Zapoznanie się z funkcja LICZNIKA w sterowniku Twido
POLITECHNIKA POZNAŃSKA
Układy asynchroniczne
Mikrokontrolery System przerwań
Mikrokontrolery MSP430 DMA
TEMAT: Zapoznanie się z funkcja LICZNIKA w sterowniku Twido
Zapis prezentacji:

MCS51 - wykład 5

Przerwania MCS51 Praca krokowa Praca z obniżonym poborem prądu Wykład 5 1/27 Przerwania MCS51 Praca krokowa Praca z obniżonym poborem prądu

MCS51 - przerwania zewnętrzne 2/27 dwa: INT0 i INT1; aktywne poziomem lub opadającym zboczem; włączane/wyłączane bitami EX0 i EX1 w rejestrze IE; rejestr sterujący: TCON TF1 8F TR1 8E TF0 8D TR0 8C IE1 8B IT1 8A IE0 89 IT0 88 88h IE1 - flaga przerwania INT1 IT1 - ustawiony powoduje wykrywanie opadającego zbocza jako przerwania INT1 IE0 - flaga przerwania INT0 IT0 - ustawiony powoduje wykrywanie opadającego zbocza jako przerwania INT0

MCS51 - przerwania zewnętrzne 3/27 ITx IEx INTx 1 EXx Wejścia INTx są testowane w każdym cyklu maszynowym

MCS51 - przerwania zewnętrzne 4/27 Przerwania aktywne niskim poziomem Przy ITx = 0 stan flagi IEx zmienia się automatycznie przy zmianie wejścia INTx. Niemożliwa jest wtedy programowa modyfikacja ich stanu. cykl maszynowy N-1 cykl maszynowy N cykl maszynowy N+k wykrycie wysokiego poziomu 3/4c.m. wykrycie niskiego poziomu IEx INTx Chcąc programowo wymusić wystąpienie przerwania zewnętrznego (ustawienie się flagi IEx), należy wyzerować odpowiedni bit portu P3. Zanik niskiego poziomu na wejściu INTx przed uruchomieniem odpowiedniej obsługi przerwania, spowoduje „zgubienie” przerwania. Pozostawienie niskiego poziomu na wejściu INTx przez procedurę obsługi przerwania, spowoduje jego ponowną, nadmiarową obsługę.

MCS51 - przerwania zewnętrzne 5/27 Przerwania aktywne opadającym zboczem Przy ITx = 1 flaga IEx jest ustawiana po wykryciu opadającego zbocza na INTx: cykl maszynowy N-1 cykl maszynowy N cykl maszynowy N+1 wykrycie zbocza opadającego 3/4c.m. INTx IEx tINTH tINTL TCM Flaga IEx jest automatycznie kasowana przy wejściu w odpowiednią procedurę obsługi. pierwszy cykl rozkazowy proc. obsługi INTx warunek „zauważenia” przerwania aktywnego zboczem: tINTH , tINTL > TCM

MCS51 - system przerwań 6/27 Cechy systemu przerwań: wektorowy - każde przerwanie ma ustalony adres początkowy jego obsługi: adresy początkowe procedur obsługi przerwań spełniają równość: AOP = k·8+3 , k=0,1,... priorytetowy - pozycja wektora przerwania decyduje o jego priorytecie, dodatkowo można wymusić wyższy priorytet obsługi; wielopoziomowy (2 w standardzie, 4 w niektórych rozszerzeniach); zablokowany po resecie sprzętowym;

MCS51 - system przerwań 7/27 Rejestry sterujące: Rejestr odblokowania przerwań EA AF - AE ET2 AD ES AC ET1 AB EX1 AA ET0 A9 EX0 A8 IE A8h EA - ustawiony włącza system przerwań ET2 - włącza przerwanie od timera/licznika 2 (EXF2 or TF2) ES - włącza przerwanie od portu szeregowego (RI or TI) ET1 - włącza przerwanie od timera/licznika 1 (TF1) EX1 - włącza przerwanie zewnętrzne INT1 (IE1) ET0 - włącza przerwanie od timera/licznika 0 (TF0) EX0 - włącza przerwanie zewnętrzne INT0 (IE0)

MCS51 - system przerwań 8/27 Rejestr priorytetów - BF - BE PT2 BD PS BC PT1 BB PX1 BA PT0 B9 PX0 B8 IP B8h Bity rejestru IP po ustawieniu nadają przerwaniom wyższy priorytet. PT2 - przerwaniu od timera/licznika 2 PS - przerwaniu od portu szeregowego PT1 - przerwaniu od timera/licznika 1 PX1 - przerwaniu zewnętrznemu INT1 PT0 - przerwaniu od timera/licznika 0 PX0 - przerwaniu zewnętrznemu INT0

Struktura systemu przerwań MCS51 - system przerwań 9/27 Struktura systemu przerwań IE0 EX0 PX0 1 TF0 ET0 IE1 EX1 TF1 ET1 RI ES TF2 ET2 TI EXF2 EA PT0 PX1 PT1 PS PT2 P O Z I O M 1 P O Z I O M 0 najwyższy priorytet najniższy priorytet

MCS51 - system przerwań 10/27 Wektorowość systemu przerwań INT0 03h timer 0 0Bh INT1 13h timer 1 1Bh SIO (RI+TI) 23h timer2 (TF2+EXF2) 2Bh

MCS51 - system przerwań 11/27 Proces przyjęcia przerwania: 1. W każdym cyklu maszynowym (w fazie S5P2, tj. w 5/6c.m.) następuje testowanie flag przerwań. 2. W kolejnym cyklu maszynowym: jeżeli EA=1 i indywidualne flagi odblokowania zgłoszonych przerwań są ustawione, i spełnione są warunki: nie jest wykonywana procedura obsługi przerwania o tym samym lub wyższym priorytecie co nowe przerwanie; bieżący cykl maszynowy jest ostatnim cyklem wykonania rozkazu; aktualnie wykonywany rozkaz to nie RETI, ani żaden inny modyfikujący rejestry z bitami priorytetów przerwań lub zezwolenia na przerwania; to po zakończeniu bieżącego cyklu rozkazowego symulowany jest rozkaz LCALL adres_obsługi (adres_obsługi wynika z wektora akceptowanego przerwania).

MCS51 - system przerwań 12/27 Wejście w obsługę przerwania automatycznie kasuje flagi: TF0, TF1 IE0, IE1 tylko wtedy gdy przerwania te są aktywne opadającym zboczem Jeżeli przerwanie zewnętrzne jest aktywne niskim poziomem, to procedura jego obsługi musi wykonać operację wymuszającą wysoki poziom sygnału na odpowiednim wejściu INTx - wtedy wyzeruje się flaga IEx. Flagi od portu szeregowego (TI, RI) i timera/licznika 2 (TF2, EXF2) muszą być kasowane programowo wewnątrz procedury obsługi przerwania.

Czas reakcji na pojawiające się przerwanie: dolne ograniczenie: MCS51 - system przerwań 13/27 Czas reakcji na pojawiające się przerwanie: dolne ograniczenie: c.m. testujący flagi c.m. arbitrażu przerwań 2 c.m. rozkazu LCALL 1. c.m. procedury obsługi TINTLAT > 3TCM koniec zwykłego cyklu rozk górne ograniczenie (zał. nie jest wykonywana żadna inna proc. obsługi) c.m. testujący flagi c.m. arbitrażu przerwań 4 c.m. rozkazu MUL lub DIV 2 c.m. rozkazu LCALL 1. c.m. procedury obsługi szczególny cykl rozk. np. RETI TINTLAT< 9TCM

odtworzenie stanu rejestrów ze stosu RETI MCS51 - system przerwań 14/27 Procedura obsługi przerwania Zalecana struktura: zapis na stos stanu rejestrów wykorzystywanych wewnątrz procedury, w tym: PUSH PSW, innych rejestrów (np. A, B, DPH, DPL, itd.) przełączenie aktywnego banku rejestrów usunięcie przyczyny przerwania: skasowanie sygnału przerwania, ewent. programowe zerowanie flagi (np. RI,TI) odtworzenie stanu rejestrów ze stosu RETI

MCS51 - system przerwań 15/27 T T System przerwań 1-poziomowy, bity priorytetów mają jednakowy stan obsługa timera 0 obsługa INT0 obsługa INT1 obsługa SIO T T TF0 IE0 INT0 IE1 INT1 RI zmiany automatyczne zmiany wymuszone programowo

MCS51 - system przerwań 16/27 T T System przerwań 2-poziomowy, bity PX1,PS=1 (wyższy poziom) pozostałe =0 obsługa INT1 obsługa timera 0 obsługa INT0 obsługa SIO T T TF0 IE0 INT0 IE1 INT1 RI zmiany automatyczne zmiany wymuszone programowo

odtworzenie stanu rejestrów ze stosu RET MCS51 - system przerwań 17/27 System przerwań N-poziomowy, bity priorytetów mogą mieć jednakowy stan Efekt ten jest do osiągnięcia przy odpowiedniej konstrukcji procedur obsługi przerwań: zapis na stos stanu rejestrów wykorzystywanych wewnątrz procedury, w tym: PUSH PSW, innych rejestrów (np. A, B, DPH, DPL, itd.) przełączenie aktywnego banku rejestrów usunięcie przyczyny przerwania: skasowanie sygnału przerwania, ewent. programowe zerowanie flagi (np. RI,TI) ACALL odblokuj odtworzenie stanu rejestrów ze stosu RET odblokuj: RETI

MCS51 - system przerwań 18/27 T T System przerwań N-poziomowy - c.d. obsługa INT0 obsługa INT1 obsługa timera 0 obsługa timera 0 obsługa SIO T T TF0 IE0 INT0 IE1 INT1 RI zmiany automatyczne zmiany wymuszone programowo chwile wykonania procedury odblokuj

MCS51 - system przerwań 19/27 System przerwań N-poziomowy - c.d. Zróżnicowane priorytety przerwań decydują o kolejności obsługi zgłoszonych przerwań w momencie odblokowania systemu przerwań (po rozkazie RETI). System jest podobny do systemu wielopoziomowego bez priorytetów. UWAGA: zapełnienie RAM stosem przy wielopoziomowej obsłudze przerwań

MCS51 - rozszerzenia systemu przerwań 20/27 1. Zwiększenie liczby możliwych źródeł przerwań więcej przerwań zewnętrznych; przerwania od dodatkowych składników struktury. 2. Zwiększenie ilości poziomów priorytetów z 2 do 4 (poprzez zdublowanie rejestrów IP)

Zał. do wejścia INT0 dołączono przycisk rozwierający je z masą. MCS51 - praca krokowa 21/27 Przerwanie zewnętrzne, aktywne poziomem, umożliwia realizację pracy krokowej. Zał. do wejścia INT0 dołączono przycisk rozwierający je z masą. INT0 (P3.2) Aktywność INT0 niskim poziomem spowoduje uruchomienie procedury obsługi tego przerwania Procedura obsługi przerwania INT0 jest procedurą obsługi pracy krokowej: obsługa programowa pracy krokowej JNB P3.2,$ JB P3.2,$ RETI oczekiwanie na niski poziom na INT0 oczekiwanie na wysoki poziom na INT0 POPK 111111100R POPK 111100R POPK 11111111110000R debugowany progr. E INT0 E - odblokowanie przerwań 1 - oczekiwanie na „1” 0 - oczekiwanie na „0” R - RETI

MCS51 - tryby oszczędzania energii 22/27 Występują w układach CMOS Standardowy rejestr sterujący: SMOD - GF1 GF0 PD IDL PCON 87h IDL - ustawiony włącza tryb uśpienia (idle) PD - ustawiony włącza tryb zatrzymania (power down), ma wyższy priorytet od bitu IDL GF1, GF0 - flagi do wykorzystania programowego, nie występują w każdym układzie MCS-51 UWAGA: ponieważ adres PCON=87h, jego bity nie są bezpośrednio adresowalne

MCS51 - tryby oszczędzania energii 23/27 Tryb uśpienia rozkaz ustawiający bit IDL jest ostatnim normalnie wykonanym; generator taktu nadal pracuje; funkcjonuje system przerwań; funkcjonują peryferia wbudowane w strukturę; stany pinów portów pozostają bez zmian (szczegóły  dane katalogowe); podtrzymywana jest zawartość wewn. RAM i rejestrów SFR; kilkukrotna redukcja prądu zasilającego;

MCS51 - tryby oszczędzania energii 24/27 Tryb uśpienia - c.d. powrót do normalnej pracy pod wpływem: - wystąpienia odblokowanego przerwania: zostanie wykonana odpowiednia procedura obsługi przerwania, a następnie procesor wróci do rozkazu za tym, który ustawił bit IDL; jeżeli po obsłużeniu przerwania ponownie ma być tryb uśpienia, to należy odpowiednio napisać program, np: spij: ORL PCON,#1 SJMP spij można też wykorzystać opcjonalne flagi GF0 i GF1 - resetu sprzętowego to jednak zeruje mikrokontroler i inicjuje rejestry SFR na wartości początkowe

MCS51 - tryby oszczędzania energii 25/27 Tryb zatrzymania rozkaz ustawiający bit PD jest ostatnim normalnie wykonanym; generator taktu zostaje zatrzymany; nie funkcjonuje system przerwań; nie funkcjonują peryferia wbudowane w strukturę; stany pinów portów pozostają bez zmian (szczegóły  dane katalogowe); podtrzymywana jest zawartość wewn. RAM i rejestrów SFR; możliwe jest obniżenie napięcia zasilającego nawet do 2V (1V dla wersji CL); kilkusetkrotna redukcja prądu zasilającego (! ważne są zewn. obwody portów); powrót do normalnej pracy tylko poprzez reset sprzętowy - to jednak inicjuje rejestry SFR na wartości początkowe

MCS51 - tryby oszczędzania energii 26/27 Spotykane inne rozwiązania oszczędzania energii: Tryb spowolnienia (np. 515A, 517, 517A) uzyskuje się poprzez włączenie dodatkowego podzielnika generatora taktu dodatkowym bitem sterującym; wolniej są wykonywane rozkazy; wolniej funkcjonują peryferia wbudowane w strukturę; możliwe jest obniżenie napięcia zasilającego nawet do 2V (1V dla wersji CL); redukcja prądu zasilającego proporcjonalnie do redukcji szybkości; powrót do normalnej pracy poprzez wyzerowanie bitu sterującego.

MCS51 - tryby oszczędzania energii 27/27 Spotykane inne rozwiązania oszczędzania energii: Umożliwienie wyjścia z trybu zatrzymania pod wpływem: niezablokowanego przerwania zewnętrznego; przerwania od licznika sekundowego; Wprowadzenie dodatkowych bitów włączających tryby uśpienia i zatrzymania: IDLE i IDLS oraz PDE i PDS. Włączenie wybranego trybu polega na użyciu dwóch rozkazów, np: MOV A,PCON ORL A,#1 ;IDLE:=1 ANL A,#0DFh ;IDLS:=0 MOV PCON,A ;wpis do PCON XRL A,#21h ;IDLE:=0,IDLS:=1 MOV PCON,A ;wpis do PCON