22
SYSTÉM PŘERUŠENÍ U 68HC11

SYSTÉM PŘERUŠENÍ U 68HC11

  • Upload
    dandre

  • View
    52

  • Download
    0

Embed Size (px)

DESCRIPTION

SYSTÉM PŘERUŠENÍ U 68HC11. 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. Postup při obsluze přerušení. - PowerPoint PPT Presentation

Citation preview

Page 1: SYSTÉM PŘERUŠENÍ U 68HC11

SYSTÉM PŘERUŠENÍ U 68HC11

Page 2: SYSTÉM PŘERUŠENÍ U 68HC11

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

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

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

Přerušení přes vektor přerušení

Page 6: SYSTÉM PŘERUŠENÍ U 68HC11

Přerušení přes pseudo vektor přerušení

Page 7: SYSTÉM PŘERUŠENÍ U 68HC11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pole registrů

Přehled registrů 1 Přehled registrů 2