+ All Categories
Home > Documents > Proiectarea Microsistemelor Digitale

Proiectarea Microsistemelor Digitale

Date post: 21-Jan-2016
Category:
Upload: trish
View: 31 times
Download: 0 times
Share this document with a friend
Description:
Proiectarea Microsistemelor Digitale. Curs 12. Proiectarea Microsistemelor Digitale. 7 . Sistemul de întreruperi 7.1. Posibilități de comunicare UC – periferie Intrare/ ieşire programabilă (PIO): transferul se desfăşoară prin intermediul UC; foloseşte intensiv timpul UC; - PowerPoint PPT Presentation
35
1 Proiectarea Microsistemelor Digitale Curs 12
Transcript
Page 1: Proiectarea Microsistemelor Digitale

1

Proiectarea Microsistemelor Digitale

Curs 12

Page 2: Proiectarea Microsistemelor Digitale

2

Proiectarea Microsistemelor Digitale

7. Sistemul de întreruperi

7.1. Posibilități de comunicare UC – periferie

Intrare/ ieşire programabilă (PIO): transferul se desfăşoară prin intermediul UC; foloseşte 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 fiecărui cuvânt (octet); multe întreruperi care nu întotdeauna pot fi acceptate; rată de transfer limitată

Page 3: Proiectarea Microsistemelor Digitale

3

Proiectarea Microsistemelor Digitale

7.2. Întreruperile Permit abandonarea momentană de către microprocesor a execuţiei

unui program şi începerea execuţiei unui alt program situat oriunde în spaţiul 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

atenţie imediată din partea acestuia. Cel care cere întreruperea trebuie să:

Ţină cererea activată până când microprocesorul răspunde, Se identifice atunci când microprocesorul o cere.

Page 4: Proiectarea Microsistemelor Digitale

4

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:

Fixă, Programabilă sau Rotativă.

Există 2 tipuri de întreruperi externe: Mascabile sau Nemascabile.

Întreruperile externe mascabile: Vin din partea periferiei sau altui microprocesor (în sisteme

multiprocesor); Mascarea se face prin program dezactivând sistemul de întreruperi;

Page 5: Proiectarea Microsistemelor Digitale

5

Proiectarea Microsistemelor Digitale

Mascarea poate fi totală, acţionând asupra unui indicator din interiorul microprocesorului (soluţie implementată la microprocesoarele Intel şi clone);

Mascarea poate fi parţială, permiţînd 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 (soluţie 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 protecţie; reactivarea trebuie făcută de programator.

Întreruperile externe nemascabile: Microprocesorul le ia în seamă întotdeauna; Nu pot fi blocate decât prin hardware extern; Rezervate pentru situaţii catastrofale, de exemplu:

O iminentă cădere a tensiunii de alimentare, O eroare la memorie.

Page 6: Proiectarea Microsistemelor Digitale

6

Proiectarea Microsistemelor Digitale

Microprocesorul le distinge prin: Intrări diferite (în majoritatea cazurilor); de ex. la familia Intel:

INTR pentru cereri mascabile şi NMI pentru cereri nemascabile.

Cod unic (la unele microprocesoare din familia Motorola). Terminale ale microprocesorului implicate:

Pentru intrări (mascabile şi nemascabile); Pentru comunicarea acceptării: poate fi:

Un terminal dedicat (de ex. INTA la familia Intel) sau O anumită combinaţie pe unele terminale de comandă;

Magistrala de date (liniile D0 – 7) pentru primirea de către microprocesor a informaţiei 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.

Page 7: Proiectarea Microsistemelor Digitale

7

Proiectarea Microsistemelor Digitale

Exemplu de logică simplă pentru generarea unui vector de întrerupere fix:

Page 8: Proiectarea Microsistemelor Digitale

8

Proiectarea Microsistemelor Digitale

Exemplu de logică pentru generarea unui vector de întrerupere care poate fi modificat:

Page 9: Proiectarea Microsistemelor Digitale

9

Proiectarea Microsistemelor Digitale

Exemplu de logică pentru generarea vectorilor de întrerupere ataşaţi mai multor surse de întrerupere:

Page 10: Proiectarea Microsistemelor Digitale

10

Proiectarea Microsistemelor Digitale

Întreruperile externe sunt de 2 tipuri: Active pe nivel sau Active pe front.

Întreruperile externe active pe nivel: Pe nivel 0 sau 1; Cererea trebuie menţinută activă până când este luată în seamă de

microprocesor; Linia trebuie menţinută în starea sa inactivă atunci când nu este activă

vreo cerere; Este minimizat riscul luării în seamă a aşa numitelor “Spurious Interrupts”.

Întreruperile externe active pe front: Pe front crescător sau descrescător; 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).

Page 11: Proiectarea Microsistemelor Digitale

11

Proiectarea Microsistemelor Digitale

7.2.2. Întreruperi interne Se găsesc la microprocesoarele peste 8 biţi şi la toate

microcontrolerele; Se numesc şi excepţii 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 Instrucţiuni dedicate (se mai numesc şi întreruperi software).

Întreruperi interne provocate de evenimente speciale: Pot fi generate înainte de execuţia unei instrucţiuni: de ex.: o violare de

privilegiu sau cod ilegal etc.; Pot fi generate după execuţia unei instrucţiuni: de ex.: o divizare la 0,

obţinerea unui rezultat în afara unui domeniu, pas cu pas etc.

Page 12: Proiectarea Microsistemelor Digitale

12

Proiectarea Microsistemelor Digitale

Întreruperi interne datorate instrucţiunilor: Există instrucţiuni ale căror execuţie 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 instrucţiuni.

Pe lângă 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ă.

Page 13: Proiectarea Microsistemelor Digitale

13

Proiectarea Microsistemelor Digitale

Comparaţie î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ă secvenţa este reexecutată

Repetabile dacă secvenţa este reexecutată

Page 14: Proiectarea Microsistemelor Digitale

14

Proiectarea Microsistemelor Digitale

Luarea în considerare a cererilor de întrerupere: Cele interne: atunci când 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 maşină al unei instrucţiuni – nu acceptă întreruperea instrucţiunilor;

Microprocesoarele evoluate acceptă întreruperea instrucţiunilor; 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 foloseşte vectorul de întrerupere generat din exterior

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

Page 15: Proiectarea Microsistemelor Digitale

15

Proiectarea Microsistemelor Digitale

Tratarea cererilor de întrerupere: Programul principal este oprit; Procesorul salvează, în stivă, conţinutul PC şi, în unele cazuri, şi alte

informaţii – aceste informaţii 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ă, Obţinută dintr – o tabelă – vectorul de întrerupere este folosit ca deplasament

pentru a ajunge la intrarea ce conţine adresa de început. Se execută ISR; trebuie evitată decalarea stivei; La sfârşitul ISR se reactivează sistemul de întreruperi (dacă s – a tratat o

cerere externă mascabilă); Revenirea în programul principal se face cu o instrucţiune dedicată (de

ex. IRET la familia Intel) care aduce din stivă conţinutul PC-ului.

Page 16: Proiectarea Microsistemelor Digitale

16

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 asigurând 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 iniţializare (ICW1 – 4) şi 4 cuvinte de operare (OCW1 – 4);

Generează vectorul de întrerupere asociat cererii luată în considerare de procesor.

Page 17: Proiectarea Microsistemelor Digitale

17

Proiectarea Microsistemelor Digitale

Terminalele: D0 – 7: magistrala de date, /RD: comandă citire, /WR: comandă scriere. A0: selecţie adrese port, /CS: selecţie circuit, CAS2 – 0: intrări pentru cascadare, /SP/ /EN: indică poziţia de master sau slave

sau validează tampoane, /INT: cerere de întrerupere către procesor, /INTA: cerere acceptată, IR0 – 7: intrări pentru cereri de întrerupere

externe.

Page 18: Proiectarea Microsistemelor Digitale

18

Proiectarea Microsistemelor Digitale

Structura internă:

Page 19: Proiectarea Microsistemelor Digitale

19

Proiectarea Microsistemelor Digitale

Secvenţa 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ă ieşirea /INT către

procesor, Procesorul răspunde cu /INTA arătând că a acceptat cererea, Bitul corespunzător 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 sfârşitul celui de – al 2 – lea

/INTA; dacă nu este activat modul AEOI, bitul ISR rămâne setat până la generarea unei comenzi EOI la sfârşitul rutinei de tratare.

Page 20: Proiectarea Microsistemelor Digitale

20

Proiectarea Microsistemelor Digitale

Conectarea la magistralele sistemului:

Programarea circuitului Cere 2 tipuri de cuvinte de comandă:

De iniţializare: 2 – 4 cuvinte, ICW1 – 4 şi De operare: 4 cuvinte, OCW1 – 4.

Page 21: Proiectarea Microsistemelor Digitale

21

Proiectarea Microsistemelor Digitale

Secvenţa de iniţializare:

Page 22: Proiectarea Microsistemelor Digitale

22

Proiectarea Microsistemelor Digitale

Cuvintele de iniţializare ICW1 şi ICW2:

Page 23: Proiectarea Microsistemelor Digitale

23

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

Proiectarea Microsistemelor Digitale

Page 24: Proiectarea Microsistemelor Digitale

24

Cuvintele ICW3 şi ICW4:

Proiectarea Microsistemelor Digitale

Page 25: Proiectarea Microsistemelor Digitale

25

După cuvintele de iniţializare circuitul poate lucra; Selecţia modurilor de lucru se face utilizând cuvinte de operare:

Proiectarea Microsistemelor Digitale

Page 26: Proiectarea Microsistemelor Digitale

26

Proiectarea Microsistemelor Digitale

Cuvintele de operare OCW1 şi OCW2:

Page 27: Proiectarea Microsistemelor Digitale

27

Cuvântul de operare OCW3:

Proiectarea Microsistemelor Digitale

Page 28: Proiectarea Microsistemelor Digitale

28

Proiectarea Microsistemelor Digitale

Modul Special mask: Permite modificarea dinamică a priorităţii; În acest mod, dacă un bit de mascare este setat în OCW1 următoarele

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ă iniţializare în lipsa altei specificaţii; Intrările 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; până când fie o comandă EOI este generată de procesor la sfârşitul rutinei de tratare a cererii de întrerupere fie bitul AEOI este setat până la frontul ridicător la celui de-al 2-lea impuls /INTA.

Page 29: Proiectarea Microsistemelor Digitale

29

Proiectarea Microsistemelor Digitale

Modul Rotating priority: Este util atunci când sunt mai multe surse de priorităţi egale; După tratarea cererii unei surse aceasta primeşte prioritatea minimă; 2 variante:

A: iniţial, sursa cu prioritate maximă este 0, B: iniţial, 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 când:

O rutină poate fi folosită de mai multe surse, economisind astfel memorie, Se doreşte extinderea numărului de surse peste 64.

Page 30: Proiectarea Microsistemelor Digitale

30

Proiectarea Microsistemelor Digitale

Citirea stării circuitului 8259A:

Se foloseşte cuvîntul 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.

Page 31: Proiectarea Microsistemelor Digitale

31

Proiectarea Microsistemelor Digitale

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

Page 32: Proiectarea Microsistemelor Digitale

32

Proiectarea Microsistemelor Digitale

Sistemul de întreruperi al PC – ului: 2 circuite 8259A, PIC1 şi PIC2, conţinute în setul de chip – uri: 15 linii IRQ, IRQ2 este redirectat:

Page 33: Proiectarea Microsistemelor Digitale

33

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 hardâdisc 2

Page 34: Proiectarea Microsistemelor Digitale

34

Proiectarea Microsistemelor Digitale

Adresele de port folosite de PIC1:

Vectorul de întrerupere: 00001D2D1D0

Page 35: Proiectarea Microsistemelor Digitale

35

Proiectarea Microsistemelor Digitale

Adresele de port folosite de PIC2:

Vectorul de întrerupere: 01110D2D1D0


Recommended