Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

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

Podobne prezentacje


Prezentacja na temat: "MCS51 - wykład 5. Wykład 5 1/27 Przerwania MCS51 Praca krokowa Praca z obniżonym poborem prądu."— Zapis prezentacji:

1 MCS51 - wykład 5

2 Wykład 5 1/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: TF1 8F TR1 8E TF0 8D TR0 8C IE1 8B IT1 8A IE0 89 IT0 88 TCON88h 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 0101 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. 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ę. cykl maszynowy N-1cykl maszynowy Ncykl maszynowy N+k wykrycie wysokiego poziomu 3 / 4 c.m. wykrycie niskiego poziomu IEx 3 / 4 c.m. INTx

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: warunek zauważenia przerwania aktywnego zboczem: t INTH, t INTL > T CM cykl maszynowy N-1cykl maszynowy Ncykl maszynowy N+1 wykrycie zbocza opadającego 3 / 4 c.m. INTx IEx 3 / 4 c.m. t INTH t INTL T CM Flaga IEx jest automatycznie kasowana przy wejściu w odpowiednią procedurę obsługi. pierwszy cykl rozkazowy proc. obsługi INTx

7 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;

8 MCS51 - system przerwań 7/27 Rejestry sterujące: Rejestr odblokowania przerwań 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) EA AF - AE ET2 AD ES AC ET1 AB EX1 AA ET0 A9 EX0 A8 IEA8h

9 MCS51 - system przerwań 8/27 - BF - BE PT2 BD PS BC PT1 BB PX1 BA PT0 B9 PX0 B8 IPB8h Rejestr priorytetów 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 MCS51 - system przerwań 9/27 Struktura systemu przerwań

11 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

12 Proces przyjęcia przerwania: 1. W każdym cyklu maszynowym (w fazie S5P2, tj. w 5 / 6 c.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ń 11/27

13 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.

14 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 T INTLAT > 3T CM górne ograniczenie (zał. nie jest wykonywana żadna inna proc. obsługi) koniec zwykłego cyklu rozk c.m. arbitrażu przerwań 2 c.m. rozkazu LCALL 1. c.m. procedury obsługi T INTLAT < 9T CM szczególny cykl rozk. np. RETI 4 c.m. rozkazu MUL lub DIV c.m. testujący flagi

15 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

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

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

18 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

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

20 MCS51 - system przerwań 19/27 System przerwań N-poziomowy - c.d. UWAGA: zapełnienie RAM stosem przy wielopoziomowej obsłudze przerwań 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.

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 4 (poprzez zdublowanie rejestrów IP)

22 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) 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 Aktywność INT0 niskim poziomem spowoduje uruchomienie procedury obsługi tego przerwania debugowany progr. E POPK RPOPK RPOPK R INT0 E - odblokowanie przerwań 1 - oczekiwanie na oczekiwanie na 0 R - RETI

23 MCS51 - tryby oszczędzania energii 22/27 SMOD---GF1GF0PDIDL PCON87h Występują w układach CMOS Standardowy rejestr sterujący: 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:ORLPCON,#1 SJMPspij 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

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: MOVA,PCON ORLA,#1;IDLE:=1 ANLA,#0DFh;IDLS:=0 MOVPCON,A;wpis do PCON XRLA,#21h;IDLE:=0,IDLS:=1 MOVPCON,A;wpis do PCON


Pobierz ppt "MCS51 - wykład 5. Wykład 5 1/27 Przerwania MCS51 Praca krokowa Praca z obniżonym poborem prądu."

Podobne prezentacje


Reklamy Google