1 / 22

Mikroprocesor Z80

Mikroprocesor Z80. przerwania. Z80 - przerwania 1/21. 2 linie / rodzaje przerwań: /NMI - niemaskowalne, wyższy priorytet; /INT - maskowalne, niższy priorytet.

magda
Download Presentation

Mikroprocesor Z80

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikroprocesor Z80 przerwania

  2. Z80 - przerwania 1/21 2 linie / rodzaje przerwań: /NMI - niemaskowalne, wyższy priorytet; /INT - maskowalne, niższy priorytet.

  3. Z80 - przerwania 2/21 pobieranierozkazu T koniec rozkazu ? N pobranie argumentu wykonanie rozkazu zapamiętanie wyniku zdekodowanierozkazu N koniec cyklu masz.? T N koniec rozkazu ? T T N NMI=0? IFF2:=IFF1 IFF1:=0 PCstos PC:=66h NMIFF:=0 NMIFF:=1 T N NMIFF=1? INT=0? N T N tryb DMA BUSACK:=0 IFF1=1? IFF1:=0 PCstos PC:=adres proc.obs. przerwania INTFF:=0 T INTFF:=1 T INTFF=1? N BUSRQ=1? N T BUSACK:=1 BRFF:=0 T BUSRQ=0? N

  4. Z80 - przerwania niemaskowalne 3/21 • Cechy przerwań niemaskowalnych Z80: • wejście /NMI aktywne opadającym zboczem; • czas trwania niskiego poziomu po opadającym zboczu sygnału przerywającego musi być dostatecznie długi (warunek: TIMPLOW>najdłuższy czas wykonania rozkazu przez P). • ponowne zgłoszenie przerwania wymaga wcześniejszego powrotu sygnału na wejściu /NMI do poziomu wysokiego; • są aktywne cały czas; • obsługa polega na uruchomieniu procedury zaczynającej się od adresu 66h; • wejście w obsługę przerwania NMI blokuje przerwania maskowalne; • procedura obsługi musi kończyć się rozkazem RETN;

  5. Z80 - przerwania niemaskowalne 4/21

  6. cykl rozkazowy-2 cykl rozkazowy-1 M1 zapis PC na stos ... TL-2 T1 TL-1 T1 T2 T3 T4 CLK NMI A0..A15 M1 MREQ RD RFSH PC ADRREF Z80 - przerwania niemaskowalne 5/21 Cykl przyjęcia przerwania /NMI:

  7. koniec cyklu rozk. M1 M2 M3 1-szy rozkaz obsługi CLK NMI A0..A15 M1 MREQ RD WR RFSH D0..D7 1 2 3 4 1 2 3 1 2 3 1 2 3 4 1 PC=66h PC ADRREF SP-1 SP-2 ADRREF M[PC]* M[66h] PCH PCL Z80 - przerwania niemaskowalne 6/21 Kolejne cykle magistrali podczas przyjęcia przerwania /NMI: *zignorowany bajt kodu

  8. Z80 - przerwania maskowalne 7/21 • Cechy przerwań maskowalnych Z80: • wejście /INT aktywne niskim poziomem; • czas trwania sygnału przerywającego musi być dostatecznie długi (warunek: TIMP>najdłuższy czas wykonania rozkazu przez P); • rozpoczęcie obsługi przerwania jest sygnalizowane specjalnym cyklem M1 (/M1=0 i /IORQ=0); • sygnał przerwania musi być wycofany przed zakończeniem jego obsługi; • po resecie sprzętowym są zablokowane; • mogą być programowo włączane i wyłączane; • dostępne są 3 tryby obsługi;

  9. Z80 - przerwania maskowalne - tryb 0 8/21 Tryb 0 Ustawiany automatycznie po RESET lub programowo rozkazem IM 0. Mikroprocesor przyjmując przerwanie oczekuje na szynie danych 1-bajtowego kodu rozkazu RST k albo pierwszego bajtu (0CDh) rozkazu CALL adr16b. W tym drugim przypadku, w kolejnych cyklach maszynowych należy podać jeszcze dwa bajty (młodszy/starszy) adresu startowego procedury obsługi przerwania.

  10. Z80 - przerwania maskowalne - tryb 0 9/21 Działania P w trybie 0

  11. koniec cyklu rozk. 1-szy rozkaz obsługi M1* M2 M3 CLK INT A0..A15 M1 IORQ MREQ RD WR RFSH D0..D7 1 2 W W 3 1 2 3 1 2 3 1 2 3 4 PC SP-1 SP-2 PC=k ADRREF PCH PCL RST k M[PC] Z80 - przerwania maskowalne - tryb 0 10/21 Kolejne cykle magistrali podczas przyjęcia przerwania /INT z rozkazem RST k (zał. /WAIT=1):

  12. Z80 - przerwania maskowalne - tryb 0 11/21 Realizacja układu z 8214 podającego kod rozkazu RST k:

  13. Z80 - przerwania maskowalne - tryb 1 12/21 • Tryb 1 • Ustawiany tylko programowo rozkazem IM 1. • Mikroprocesor przyjmując przerwania zawsze uruchamia procedurę zaczynającą się od adresu 38h. • Sekwencja działań jest taka sama jak dla trybu 0 i kodu rozkazu RST 38h. • Tryb wygodny przy jednym źródle przerwania. • Przy większej liczbie źródeł przerwań, początek procedury obsługi przerwania (od adresu 38h) musi zawierać programowy arbitraż systemu przerwań.

  14. Z80 - przerwania maskowalne - tryb 2 13/21 • Tryb 2 - tzw. wektorowy • Ustawiany tylko programowo rozkazem IM 2. • Mikroprocesor przyjmując przerwanie jest skierowany od razu do właściwej procedury obsługi. • Z natury jest priorytetowy. • Umożliwia realizację wielopoziomowości. • Wymaga stosowania specjalizowanych układów peryferyjnych z rodziny Z80.

  15. rejestr I 0000h urządzenie przerywające IVL APO1 L H L H L H PC IV (IV0=0) APO2 APO3 tablica wektorów przerwań 0FFFFh Z80 - przerwania maskowalne - tryb 2 14/21 Zasada tworzenia adresu startowego procedury obsługi przerwania

  16. Z80 - przerwania maskowalne - tryb 2 15/21 Działania P w trybie 2

  17. konieccyklu rozk. odczyt APOP... M1* TL T1 T2 Tw1 Tw2 T3 CLK INT A0..A15 M1 IORQ RD,WR,RFSH,MREQ D0..D7 PC IVL Z80 - przerwania maskowalne - tryb 2 16/21 Cykl M1 przyjęcia przerwania /INT w trybie2 - wektorowym (zał. /WAIT=1):

  18. koniec cyklu rozk. 1-szy rozkaz obsługi M1* M2 M3 M4 M5 CLK INT A0..A15 M1 IORQ MREQ RD WR RFSH D0..D7 L 1 2 W W 3 1 2 3 1 2 3 1 2 3 1 2 3 1 PC IV IV+1 APOP SP-1 SP-2 IVL PCH PCL M[PC] APOPL APOPH Z80 - przerwania maskowalne - tryb 2 17/21 Kolejne cykle magistrali podczas przyjęcia przerwania /INT w trybie 2:

  19. Z80 - przerwania maskowalne - tryb 2 18/21 Przykład łańcucha urządzeń przerywających: Priorytety w łańcuchu: DMA>CTC>PIO>SIO.

  20. Z80 - przerwania maskowalne - tryb 2 19/21 Priorytety w łańcuchu: DMA>CTC>PIO>SIO. Jeżeli któryś z modułów ma w swoim wnętrzu kaskadowo połączone urządzenia (np. 2 porty w PIO, 4 liczniki w CTC) to również one tworzą łańcuch priorytetów. Przy dłuższych łańcuchach ze względu na czas propagacji sygnału zabraniającego IEI=0 z modułu pierwszego do ostatniego zaleca się dodatkowe bramki AND bocznikujące moduły pośrednie:

  21. Z80 - przerwania maskowalne 20/21 System przerwań maskowalnych może być jedno- lub wielopoziomowy. Zależy to od miejsca użycia rozkazu EI (odblokowującego te przerwania) we wnętrzu procedury obsługi przerwania, ponieważ w momencie przyjmowania przerwania maskowalnego do obsługi, wewnętrzny przerzutnik zezwolenia na te przerwania (IFF1) jest zerowany i dopiero rozkaz EI ustawia go ponownie na "1". Rozkaz EI można użyć w procedurze obsługi danego przerwania dopiero po wykonaniu działań, które skasują obsługiwane przerwanie (spowodują wycofanie sygnału zgłoszenia tego przerwania). W przeciwnym razie dojdzie do cyklicznego ciągłego uruchamiania danej procedury obsługi przerwania.

  22. P3 P2 P1 P2 P3 P1 T T T T 1 2 3 1 2 3 Z80 - przerwania maskowalne 21/21 System jednopoziomowy: System wielopoziomowy: rozkaz EI przed rozkazem rozkaz EI po operacji skasowania powrotu z procedury przyczyny (sygnału) przerwania chwile wykonania rozkazu EI

More Related