Sunteți pe pagina 1din 35

Proiectarea Microsistemelor Digitale

Curs 12

Proiectarea Microsistemelor Digitale

7. Sistemul de ntreruperi
7.1. Posibiliti de comunicare UC periferie

Intrare/ ieire programabil (PIO): transferul se desfoar prin


intermediul UC; folosete intensiv timpul UC;

Accesul direct la memorie (DMA): transfer direct memorie periferic


sau periferic periferic sau memorie memorie (neutilizat pentru c
este mai rapid prin UC); nu implic UC dar cere hardware
suplimentar conectat pe magistrale;
ntreruperi: procesorul este ntrerupt la transferul fiecrui cuvnt
(octet); multe ntreruperi care nu ntotdeauna pot fi acceptate; rat
de transfer limitat

Proiectarea Microsistemelor Digitale


7.2. ntreruperile

Permit abandonarea momentan de ctre microprocesor a execuiei


unui program i nceperea execuiei unui alt program situat oriunde
n spaiul de memorie.
Se folosesc la:

Comunicarea UC periferie,
n sisteme multiprocesor.

2 tipuri:

Externe i
Interne.

7.2.1. ntreruperile externe


Sunt provocate de evenimente externe microprocesorului care cer
atenie imediat din partea acestuia.
Cel care cere ntreruperea trebuie s:

in cererea activat pn cnd microprocesorul rspunde,


Se identifice atunci cnd microprocesorul o cere.

Proiectarea Microsistemelor Digitale

Pot exista cereri simultane din partea mai multor surse => prioritizare:

Fie cu o logic de prioritizare:

Serial (daisy chain) sau

Paralel.

Fie cu un PIC.
Prioritizarea poate fi:

Exist 2 tipuri de ntreruperi externe:

Fix,
Programabil sau
Rotativ.

Mascabile sau
Nemascabile.

ntreruperile externe mascabile:


Vin din partea periferiei sau altui microprocesor (n sisteme

multiprocesor);
Mascarea se face prin program dezactivnd sistemul de ntreruperi;
4

Proiectarea Microsistemelor Digitale

Mascarea poate fi total, acionnd asupra unui indicator din interiorul


microprocesorului (soluie implementat la microprocesoarele Intel i
clone);
Mascarea poate fi parial, permind ca doar anumite cereri externe
s fie luate n considerare, cele care au un nivel de prioritate mai mare
ca unul programat n interiorul microprocesorului (soluie
implementat la unele microprocesoare din familia Motorola);
La luarea n considerare a unei cereri de ntrerupere mascabile
sistemul de ntreruperi se dezactiveaz automat este un mecanism
de protecie; reactivarea trebuie fcut de programator.

ntreruperile externe nemascabile:

Microprocesorul le ia n seam ntotdeauna;


Nu pot fi blocate dect prin hardware extern;
Rezervate pentru situaii catastrofale, de exemplu:

O iminent cdere a tensiunii de alimentare,


O eroare la memorie.

Proiectarea Microsistemelor Digitale

Microprocesorul le distinge prin:

Intrri diferite (n majoritatea cazurilor); de ex. la familia Intel:

Cod unic (la unele microprocesoare din familia Motorola).

Terminale ale microprocesorului implicate:

Pentru intrri (mascabile i nemascabile);


Pentru comunicarea acceptrii: poate fi:

INTR pentru cereri mascabile i


NMI pentru cereri nemascabile.

Un terminal dedicat (de ex. INTA la familia Intel) sau


O anumit combinaie pe unele terminale de comand;

Magistrala de date (liniile D0 7) pentru primirea de ctre microprocesor


a informaiei de identificare a celui ce a generat cererea).

Identificarea nseamn plasarea pe magistrala de date a unui vector


de ntrerupere n timpul unui ciclu dedicat i poate fi realizat prin:

Logic distinct sau


PIC.
6

Proiectarea Microsistemelor Digitale

Exemplu de logic simpl pentru generarea unui vector de


ntrerupere fix:

Proiectarea Microsistemelor Digitale

Exemplu de logic pentru generarea unui vector de ntrerupere care


poate fi modificat:

Proiectarea Microsistemelor Digitale

Exemplu de logic pentru generarea vectorilor de ntrerupere ataai


mai multor surse de ntrerupere:

Proiectarea Microsistemelor Digitale

ntreruperile externe sunt de 2 tipuri:

ntreruperile externe active pe nivel:

Active pe nivel sau


Active pe front.
Pe nivel 0 sau 1;
Cererea trebuie meninut activ pn cnd este luat n seam de
microprocesor;
Linia trebuie meninut n starea sa inactiv atunci cnd nu este activ
vreo cerere;
Este minimizat riscul lurii n seam a aa numitelor Spurious Interrupts.

ntreruperile externe active pe front:

Pe front cresctor sau descresctor;


Risc de perdere a unei asemenea cereri dac nu exist vreun mecanism
de memorare;
Poate fi transformat n o cerere activ pe nivel cu hardware extern
(bistabil).
10

Proiectarea Microsistemelor Digitale

7.2.2. ntreruperi interne

Se gsesc la microprocesoarele peste 8 bii i la toate


microcontrolerele;
Se numesc i excepii la unele microprocesoare;
O parte din ele se numesc i traps la unele microprocesoare;
Provocate de cauze interne procesorului;
La microcontrolere pot fi mascate, la microprocesoare nu;
2 tipuri de cauze (la microprocesoare):

Evenimente interne speciale sau


Instruciuni dedicate (se mai numesc i ntreruperi software).

ntreruperi interne provocate de evenimente speciale:

Pot fi generate nainte de execuia unei instruciuni: de ex.: o violare de


privilegiu sau cod ilegal etc.;
Pot fi generate dup execuia unei instruciuni: de ex.: o divizare la 0,
obinerea unui rezultat n afara unui domeniu, pas cu pas etc.
11

Proiectarea Microsistemelor Digitale

ntreruperi interne datorate instruciunilor:

Exist instruciuni ale cror execuie este echivalent cu generarea unei


cereri de ntrerupere; de ex.:

INT nn la familia Intel,


TRAP #n la microprocesoarele Motorola.

Pot fi folosite pentru emularea a noi instruciuni.

Pe lng o eventual prioritizare extern, exist i o prioritizare


implicit a surselor de nterupere; de ex. la 8086:

Eroare la divizare, INT nn prioritate maxim,


INTO,
NMI,
INTR,
Pas cu pas prioritate minim.

12

Proiectarea Microsistemelor Digitale

Comparaie ntre ntreuperile externe i cele interne:


ntreruperi externe

ntreruperi interne

Provocate de cauze externe

Provocate de cauze interne

Asincrone cu procesorul

Sincrone cu procesorul

Nerepetabile dac secvena este


reexecutat

Repetabile dac secvena este


reexecutat

13

Proiectarea Microsistemelor Digitale

Luarea n considerare a cererilor de ntrerupere:

Cele interne: atunci cnd apar cauzele care le genereaz;


Cele externe:

Microprocesorul se uit la anumite momente de timp pe liniile de ntrerupere;


dac cererea nu este activ n acel moment, nu va fi luat n considerare;
Dac cererea este mascabil trebuie ca i sistemul de ntreruperi s fie
activat;
Unele microprocesoare verific liniile de ntrerupere doar n ultimul ciclu
main al unei instruciuni nu accept ntreruperea instruciunilor;
Microprocesoarele evoluate accept ntreruperea instruciunilor;
Microprocesorul comunic printr un ciclu de acceptare a cererii de
ntrerupere acceptarea acesteia;
Cel care a generat cererea de ntrerupere trebuie s plaseze pe magistrala de
date (D0 7) vectorul de ntrerupere.

Microprocesorul folosete vectorul de ntrerupere generat din exterior


sau din interior (pentru ntreruperile interne) pentru a ajunge la rutina de
tratare a cererii.

14

Proiectarea Microsistemelor Digitale

Tratarea cererilor de ntrerupere:

Programul principal este oprit;


Procesorul salveaz, n stiv, coninutul PC i, n unele cazuri, i alte
informaii aceste informaii vor fi folosite la revenirea din rutina de
tratare a cererii de ntrerupere;
Procesorul ncarc n PC adresa de nceput a ISR (Interrupt Service
Routine);
Adresa de nceput este:

Fix,
Obinut dintr o tabel vectorul de ntrerupere este folosit ca deplasament
pentru a ajunge la intrarea ce conine adresa de nceput.

Se execut ISR; trebuie evitat decalarea stivei;


La sfritul ISR se reactiveaz sistemul de ntreruperi (dac s a tratat
o cerere extern mascabil);
Revenirea n programul principal se face cu o instruciune dedicat (de
ex. IRET la familia Intel) care aduce din stiv coninutul PC-ului.

15

Proiectarea Microsistemelor Digitale


7.3. Controlerul pentru ntreruperi (PIC) 8259A

Poate gestiona i prioritiza 8 cereri de ntrerupere;


Poate fi legat n cascad cu alte 8 circuite similare asigurnd astfel
gestionarea i prioritizarea a 64 cereri de ntrerupere;
Posibilitate de mascare individual a cererilor;
Mai multe moduri de gestionare a ntreruperilor:

Fully nested,
Rotating priority,
Special mask i
Poll.

Necesit 2 - 4 cuvinte de iniializare (ICW1 4) i 4 cuvinte de


operare (OCW1 4);
Genereaz vectorul de ntrerupere asociat cererii luat n
considerare de procesor.

16

Proiectarea Microsistemelor Digitale

Terminalele:

D0 7: magistrala de date,
/RD: comand citire,
/WR: comand scriere.
A0: selecie adrese port,
/CS: selecie circuit,
CAS2 0: intrri pentru cascadare,
/SP/ /EN: indic poziia de master sau slave
sau valideaz tampoane,
/INT: cerere de ntrerupere ctre procesor,
/INTA: cerere acceptat,
IR0 7: intrri pentru cereri de ntrerupere
externe.

17

Proiectarea Microsistemelor Digitale

Structura intern:

18

Proiectarea Microsistemelor Digitale

Secvena de ntrerupere (valabil pentru procesoarele Intel):

Se presupune c PIC este programat:


Una sau mai multe cereri IR sunt activate,
Dup prioritizare este aleas una i se actveaz ieirea /INT ctre
procesor,
Procesorul rspunde cu /INTA artnd c a acceptat cererea,
Bitul corespunztor din registrul ISR este setat i cel din IRR este
resetat,
Procesorul genereaz un al 2 lea impuls /INTA iar circuitul genereaz
vectorul pe liniile D0 7,
n modul AEOI bitul ISR este resetat la sfritul celui de al 2 lea
/INTA; dac nu este activat modul AEOI, bitul ISR rmne setat pn la
generarea unei comenzi EOI la sfritul rutinei de tratare.

19

Proiectarea Microsistemelor Digitale

Conectarea la magistralele sistemului:

Programarea circuitului
Cere 2 tipuri de cuvinte de comand:

De iniializare: 2 4 cuvinte, ICW1 4 i


De operare: 4 cuvinte, OCW1 4.
20

Proiectarea Microsistemelor Digitale

Secvena de iniializare:

21

Proiectarea Microsistemelor Digitale

Cuvintele de iniializare ICW1 i ICW2:

22

Proiectarea Microsistemelor Digitale

Vectorul de ntrerupere care se va genera (familia Intel):

23

Proiectarea Microsistemelor Digitale

Cuvintele ICW3 i ICW4:

24

Proiectarea Microsistemelor Digitale

Dup cuvintele de iniializare circuitul poate lucra;


Selecia modurilor de lucru se face utiliznd cuvinte de operare:

25

Proiectarea Microsistemelor Digitale

Cuvintele de operare OCW1 i OCW2:

26

Proiectarea Microsistemelor Digitale

Cuvntul de operare OCW3:

27

Proiectarea Microsistemelor Digitale

Modul Special mask:

Permite modificarea dinamic a prioritii;


n acest mod, dac un bit de mascare este setat n OCW1 urmtoarele
cereri de ntrerupere de pe acel nivel vor fi invalidate i vor fi validate
cererile de pe oricare alt nivel.

Modul Fully nested:

Modul este automat instalat dup iniializare n lipsa altei specificaii;


Intrrile sunt prioritizate: 0 prioritate maxim, 7 prioritate minim; n
acest mod prioritatea este fix;
Dac o cerere este luat n considerare, doar cererile de nivel mai
prioritar vor fi luate n considerare; pn cnd fie o comand EOI este
generat de procesor la sfritul rutinei de tratare a cererii de ntrerupere
fie bitul AEOI este setat pn la frontul ridictor la celui de-al 2-lea
impuls /INTA.

28

Proiectarea Microsistemelor Digitale

Modul Rotating priority:

Este util atunci cnd sunt mai multe surse de prioriti egale;
Dup tratarea cererii unei surse aceasta primete prioritatea minim;
2 variante:

A: iniial, sursa cu prioritate maxim este 0,


B: iniial, sursa cu prioritate maxim este stabilit prin program.

Modul Poll:

Sistemul de ntreruperi al procesorului este dezactivat ca urmare cererile


de ntrerupere vor fi preluate prin program;
Este necesar comanda Poll;
Circuitul plaseaz pe liniile de date (la activarea semnalului /RD) un
octet n care pe liniile D0 2 se plaseaz codul sursei cu prioritate
maxim;
Este util atunci cnd:

O rutin poate fi folosit de mai multe surse, economisind astfel memorie,


Se dorete extinderea numrului de surse peste 64.
29

Proiectarea Microsistemelor Digitale

Citirea strii circuitului 8259A:

Se folosete cuvntul OCW3 cu structura necesar pentru citire;

Citirea se face la semnalul /RD;

Se pot citi:

Interrupt Request Register: va indica cererile care sunt active; cererea cea
mai prioritar (i nemascat) va fi anulat la luarea n considerare;
In-Service Register: va indica sursa cea mai prioritar luat n considerare;
Interrupt Mask Register: va indica cererile care sunt mascate.

30

Proiectarea Microsistemelor Digitale

Legarea n cascad (master slave) a mai multor circuite 8259A:

31

Proiectarea Microsistemelor Digitale

Sistemul de ntreruperi al PC ului:

2 circuite 8259A, PIC1 i PIC2, coninute n setul de chip uri:


15 linii IRQ, IRQ2 este redirectat:

32

Proiectarea Microsistemelor Digitale

Alocarea liniilor IRQ:


IRQ0

Contor/ temporizator

IRQ1

Tastatura

IRQ2

PIC2

IRQ3

Port serial: COM2, COM4

IRQ4

Port serial: COM1, COM3

IRQ5

Port paralel (LPT2)/ placa de sunet

IRQ6

Controler de floppy-disc

IRQ7

Port paralel (LPT1)

IRQ8

Ceas de timp real

IRQ9

IRQ2

IRQ10

Rezervat

IRQ11

Rezervat

IRQ12

Mouse PS/ 2

IRQ13

Coprocesor matematic

IRQ14

Controler de hard-disc 1

IRQ15

Controler de harddisc 2
33

Proiectarea Microsistemelor Digitale

Adresele de port folosite de PIC1:

Vectorul de ntrerupere: 00001D2D1D0


34

Proiectarea Microsistemelor Digitale

Adresele de port folosite de PIC2:

Vectorul de ntrerupere: 01110D2D1D0


35

S-ar putea să vă placă și

  • Curs 14
    Curs 14
    Document30 pagini
    Curs 14
    Pasan Petru
    Încă nu există evaluări
  • Curs 10
    Curs 10
    Document23 pagini
    Curs 10
    Pasan Petru
    Încă nu există evaluări
  • Curs 9
    Curs 9
    Document29 pagini
    Curs 9
    Pasan Petru
    Încă nu există evaluări
  • Curs 11
    Curs 11
    Document34 pagini
    Curs 11
    Pasan Petru
    Încă nu există evaluări
  • Curs 13
    Curs 13
    Document25 pagini
    Curs 13
    Pasan Petru
    Încă nu există evaluări
  • Curs 7
    Curs 7
    Document34 pagini
    Curs 7
    Pasan Petru
    Încă nu există evaluări
  • Curs 8
    Curs 8
    Document21 pagini
    Curs 8
    Pasan Petru
    Încă nu există evaluări
  • Curs 6
    Curs 6
    Document26 pagini
    Curs 6
    Pasan Petru
    Încă nu există evaluări
  • Curs 5
    Curs 5
    Document26 pagini
    Curs 5
    Pasan Petru
    Încă nu există evaluări
  • Curs 3
    Curs 3
    Document24 pagini
    Curs 3
    Pasan Petru
    Încă nu există evaluări
  • Curs 4
    Curs 4
    Document37 pagini
    Curs 4
    Pasan Petru
    Încă nu există evaluări
  • Curs Flash 1
    Curs Flash 1
    Document35 pagini
    Curs Flash 1
    Alex Alex
    Încă nu există evaluări
  • Curs 2
    Curs 2
    Document39 pagini
    Curs 2
    Pasan Petru
    Încă nu există evaluări
  • PMD
    PMD
    Document34 pagini
    PMD
    Pasan Petru
    Încă nu există evaluări
  • LabAC 1
    LabAC 1
    Document5 pagini
    LabAC 1
    cornel_punga1504
    Încă nu există evaluări