Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
MCS51 - wykład 5
2
Przerwania MCS51 Praca krokowa Praca z obniżonym poborem prądu
Wykład /27 Przerwania MCS51 Praca krokowa Praca z obniżonym poborem prądu
3
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
4
MCS51 - przerwania zewnętrzne 3/27
ITx IEx INTx 1 EXx Wejścia INTx są testowane w każdym cyklu maszynowym
5
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ę.
6
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
7
MCS51 - system przerwań /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;
8
MCS51 - system przerwań /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)
9
MCS51 - system przerwań /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
10
Struktura systemu przerwań
MCS51 - system przerwań /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
11
MCS51 - system przerwań /27 Wektorowość systemu przerwań INT h timer Bh INT h timer Bh SIO (RI+TI) h timer2 (TF2+EXF2) 2Bh
12
MCS51 - system przerwań /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).
13
MCS51 - system przerwań /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.
14
Czas reakcji na pojawiające się przerwanie: dolne ograniczenie:
MCS51 - system przerwań /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
15
odtworzenie stanu rejestrów ze stosu RETI
MCS51 - system przerwań /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
16
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
17
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
18
odtworzenie stanu rejestrów ze stosu RET
MCS51 - system przerwań /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
19
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
20
MCS51 - system przerwań /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ń
21
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 (poprzez zdublowanie rejestrów IP)
22
Zał. do wejścia INT0 dołączono przycisk rozwierający je z masą.
MCS51 - praca krokowa /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 R POPK R POPK R debugowany progr. E INT0 E - odblokowanie przerwań 1 - oczekiwanie na „1” 0 - oczekiwanie na „0” R - RETI
23
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
24
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;
25
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 GF resetu sprzętowego to jednak zeruje mikrokontroler i inicjuje rejestry SFR na wartości początkowe
26
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
27
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.
28
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
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.