SYSTÉM PŘERUŠENÍ U 68HC11
description
Transcript of SYSTÉM PŘERUŠENÍ U 68HC11
![Page 1: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/1.jpg)
SYSTÉM PŘERUŠENÍ U 68HC11
![Page 2: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/2.jpg)
Systém přerušení u 68HC11
Přerušovací systém umožňuje, aby CPU mikrořadiče reagoval na žádosti ze strany V/V zařízení popř. externích událostí a nečekal až na obsloužení těchto požadavků dojde řada.
![Page 3: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/3.jpg)
a) Požadavkem na přerušení se ohlásí některý z periferních obvodů mikrořadiče (vnějších nebo vnitřních)
b) CPU akceptuje požadavek na přerušení (jestliže je přerušení povoleno) na konci právě vykonávané instrukce a současně se znemožní přijetí další žádosti o přerušení (při nemaskovatelném přerušení XIRQ nastaví bity podmínkového registru X = 1 a I = 1 a u ostatních přerušení pak pouze I = 1).
Postup při obsluze přerušení
![Page 4: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/4.jpg)
Postup při obsluze přerušení
c) Přemístění všech obsahů registrů (s výjimkou SP) do zásobníku.
d) CPU přejde na provádění obslužného programu přerušení od adresy, která je určena příslušným vektorem přerušení
e) Po provedení programu obsluhy přerušení (po instrukci RTI - Return from Interrupt ) se obnoví původní obsah pracovních registrů, tj. opačná operace vzhledem k bodu c.
![Page 5: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/5.jpg)
Přerušení přes vektor přerušení
![Page 6: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/6.jpg)
Přerušení přes pseudo vektor přerušení
![Page 7: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/7.jpg)
Přerušovací vstupy - vnější
68HC11 má tři vnější přerušovací vstupy (všechny jsou aktivní v nízké úrovni.): reset maskovatelné přerušení (IRQ) nemaskovatelné přerušení (XIRQ)
![Page 8: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/8.jpg)
Maskovatelné přerušení (IRQ)
proběhnou body a) až c) (9 cyklů). bod d) -adresa programu obsluhy
přerušení se získává z paměťových míst $FFF2 a $FFF3
![Page 9: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/9.jpg)
Maska přerušení se nastaví na 1. Nastavením masky je definován postup
v případě více současně vydaných požadavků na přerušení.
Pokud je potřebné umožnit vnoření dalšího přerušení do obslužného programu, musí se maska přerušení instrukcí CLI na začátku obslužného programu přerušení vynulovat.
Jestliže vnoření není požadováno, maska se nenuluje.
Maskovatelné přerušení (IRQ)
![Page 10: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/10.jpg)
V šestnáctém cyklu se získává první instrukce obsluhy přerušení.
Provedením instrukce RTI se ze zásobníku obnoví všechny registry.
Před přerušením byla maska přerušení ve stavu 0, po provedení instrukce RTI je přerušení znovu povoleno.
Maskovatelné přerušení (IRQ)
![Page 11: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/11.jpg)
Nemaskovatelné přerušení (XIRQ)
Nemaskované přerušení se automaticky zamaskuje pouze po resetu maskovacím bitem X v CCR
Po povolení přerušení ze vstupu XIRQ v průběhu vykonávání programu nelze již tento maskovací bit vrátit zpět.
![Page 12: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/12.jpg)
Nemaskovatelné přerušení (XIRQ)
Na XIRQ připojujeme obvykle obvody, které generují přerušení s nejvyšší prioritou.
Nastaví se bitové masky X i I na 1 a získává se vektor přerušení z paměťových míst $FFF4 a $FFF5.
![Page 13: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/13.jpg)
Reset
Pro nastavení mikrořadiče do počátečního stavu .
Přivedením nízké úrovně na vstup RESET. CPU nastaví masky přerušení (I a X) a
získává vektor přerušení z paměťových míst $FFFE a $FFFF.
Reset mikrořadiče se může uskutečnit také interně signálem COP (nazývaným též Watch dog).
![Page 14: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/14.jpg)
SOFTWAROVÉ PŘERUŠENÍ (1)
Provede se instrukcí SWI. Inicializuje se postup jako u
normálního přerušení. Vektor přerušení se získává
z paměťových míst $FFF6 a $FFF7. Toto přerušení nelze zamaskovat a
při provádění instrukce SW1 se nastavují masky přerušení (I a X).
![Page 15: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/15.jpg)
Mikrořadič má možnost ještě patnácti interních přerušení od vnitřních periferií.
Princip provedení je stejný jako IRQ s výjimkou přerušovacích vektorů, jež jsou po každé přerušení navzájem odlišné.
SOFTWAROVÉ PŘERUŠENÍ (2)
![Page 16: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/16.jpg)
Jestliže mikrořadič při provádění programu narazí na neznámý operační kód, vznikne další druh přerušení, zvaný ILLOP (Illegal Operational Code). Vektor přerušení se získává z paměťových míst $FFF8 a $FFF9. Provedení přerušení je stejné jako u přerušení SWI.
SOFTWAROVÉ PŘERUŠENÍ (2)
![Page 17: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/17.jpg)
Přerušovací vektory jsou všechny umístěny před koncem adresovatelného prostoru. Tento prostor je zpravidla vyplněn pamětí ROM (EPROM) a vektory přerušení představují standardní adresy, na kterých se nachází opět ve většině případů standardizované adresy, směřující do oblasti vnitřní paměti RWM.
SOFTWAROVÉ PŘERUŠENÍ (3)
![Page 18: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/18.jpg)
Na uvedená paměťová místa lze pak umístit nepodmíněné skoky (JMP), které směřují na počátky příslušných programů pro obsluhu jednotlivých typů přerušení.
SOFTWAROVÉ PŘERUŠENÍ (3)
![Page 19: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/19.jpg)
Přehled všech přerušení je dán tabulkou. Priorita uvedených přerušení je dána
pořadím jejich uvedením v tabulce. V případě jednoho, vybraného ze skupiny
maskovatelných přerušení, lze tuto prioritu převést na první místo v této skupině naprogramováním registru HPRIQ.
SOFTWAROVÉ PŘERUŠENÍ
![Page 20: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/20.jpg)
Přehled a prioritní pořadí všech přerušení v mikrořadiči 68HC11
Přehled Vysvětlivky
![Page 21: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/21.jpg)
Pole registrů 68HC11
Pole registrů obsahuje 64 řídicích a stavových registrů umístěných standardně od adresy $_000, tzn. že nejvyšší půlbajt adresy (nahrazený čárou) lze naprogramovat v registru INIT a tím umístit toto pole registrů na počátek kterýchkoliv čtyř kilobajtů adresovatelného paměťového prostoru.
Po resetu se počátek registrového pole automaticky nastavuje na adresu $1000.
![Page 22: SYSTÉM PŘERUŠENÍ U 68HC11](https://reader035.fdocuments.net/reader035/viewer/2022062408/56814292550346895daebf0d/html5/thumbnails/22.jpg)
Pole registrů
Přehled registrů 1 Přehled registrů 2