PIC 8259 PIC 8259 Sistema de Interrupção CPU RAM ROM I/O(1) I/O(N) CPU-DRIVEN MULTIPLEXOR I/O(2)...

Preview:

Citation preview

PIC 8259PIC 8259PIC 8259PIC 8259

Sis

tem

a d

e

Sis

tem

a d

e

Inte

rrupçã

oIn

terr

upçã

o

CPU

RAM

ROM

I/O(1)

I/O(N)

CPU-DRIVENMULTIPLEXOR

I/O(2)

Método “Polled”

CPU

RAM

ROM

PIC

I/O(N)

I/O(1)

I/O(2)

Método de Interrupção

PIC PIC 82598259________

• Compatível com o 8086, 8088, MCS-80/85;

• Controlador de 08 níveis de prioridade, expansível para 64 níveis;

• Modos de Interrupção Programáveis;

• Capacidade de Mascaramento Individual da Interrupção;

• Suprido por +5V DC;

• Não Necessita de Clock;

• Disponível em DIP de 28-Pin e Package PLCC de 28—Lead;

• Completamente compatível com 8259A/8259A-2 e equivalentes.

Gen

era

lidad

Gen

era

lidad

eses

PIC PIC 82598259________

En

cap

sula

men

En

cap

sula

men

totoConfiguração da Pinagem

PIC PIC 82598259________

TTrês Registradores rês Registradores InternosInternos

IRR

IMR

ISR

8259A

IRR = Interrupt Request RegisterIMR = Interrupt Mask RegisterISR = In-Service Register

Sinais de saída

Sinais de entrada

Dia

gra

ma d

e

Dia

gra

ma d

e

Blo

cos

Blo

cos

PIC PIC 82598259________

DD7 7 - D- D00

RDRD

WRWRAA00

CSCS

CAS 0CAS 0CAS 1CAS 1CAS 2CAS 2

SP/ENSP/EN

ININSERVICESERVICE

REGREG(ISR)(ISR)

PRIORITYPRIORITYRESOLVERRESOLVER

DATADATABUSBUS

BUFFERBUFFER

READ/READ/WRITEWRITELOGICLOGIC

CASCADECASCADEBUFFER/BUFFER/

COMPARATORCOMPARATOR

INTERRUPT MASK REGINTERRUPT MASK REG (IMR)(IMR)

INTERRUPTINTERRUPT

REQUESTREQUEST

REGREG

(IRR)(IRR)

CONTROL LOGICCONTROL LOGIC

INTAINTA INTINT

IR0IR0IR1IR1IR2IR2

IR3IR3

IR4IR4

IR5IR5

IR6IR6

IR7IR7

DATADATABUSBUS

BUFFERBUFFER

READ/READ/WRITEWRITELOGICLOGIC

CASCADECASCADEBUFFER/BUFFER/

COMPARATORCOMPARATOR

Dia

gra

ma d

e

Dia

gra

ma d

e

Blo

cos

Blo

cos

PIC PIC 82598259________

DD7 7 - D- D00

RDRD

WRWRAA00

CSCS

CAS 0CAS 0CAS 1CAS 1CAS 2CAS 2

SP/ENSP/EN

ININSERVICESERVICE

REGREG(ISR)(ISR)

PRIORITYPRIORITYRESOLVERRESOLVER

DATADATABUSBUS

BUFFERBUFFER

READ/READ/WRITEWRITELOGICLOGIC

CASCADECASCADEBUFFER/BUFFER/

COMPARATORCOMPARATOR

INTERRUPT MASK REGINTERRUPT MASK REG (IMR)(IMR)

INTERRUPTINTERRUPT

REQUESTREQUEST

REGREG

(IRR)(IRR)

CONTROL LOGICCONTROL LOGIC

INTAINTA INTINT

IR0IR0IR1IR1IR2IR2

IR3IR3

IR4IR4

IR5IR5

IR6IR6

IR7IR7

INTERRUPTINTERRUPT

REQUESTREQUEST

REGREG

(IRR)(IRR)

PRIORITYPRIORITYRESOLVER)RESOLVER)

INSERVICE

REG(ISR)

Dia

gra

ma d

e

Dia

gra

ma d

e

Blo

cos

Blo

cos

PIC PIC 82598259________

DD7 7 - D- D00

RDRD

WRWRAA00

CSCS

CAS 0CAS 0CAS 1CAS 1CAS 2CAS 2

SP/ENSP/EN

ININSERVICESERVICE

REGREG(ISR)(ISR)

PRIORITYPRIORITYRESOLVERRESOLVER

DATADATABUSBUS

BUFFERBUFFER

READ/READ/WRITEWRITELOGICLOGIC

CASCADECASCADEBUFFER/BUFFER/

COMPARATORCOMPARATOR

INTERRUPT MASK REGINTERRUPT MASK REG (IMR)(IMR)

INTERRUPTINTERRUPT

REQUESTREQUEST

REGREG

(IRR)(IRR)

CONTROL LOGICCONTROL LOGIC

INTAINTA INTINT

IR0IR0IR1IR1IR2IR2

IR3IR3

IR4IR4

IR5IR5

IR6IR6

IR7IR7

Desc

riçã

o d

os

Desc

riçã

o d

os

Pin

os

Pin

os

Simbologia Pino Tipo Nome e Função

Vcc 28 I Tensão de Entrada: + 5V DC.

GND 14 I Terra

CS 1 ISeletor do Chip: Uma tensão baixa nestes pinos habilita o processo de Leitura e

escrita de comunicacção entre a CPU e o PIC8259. O CS independe do INTA

WR 2 IEscrita: Habilitado comtensão baixa,quando o CS está baixo habilita o 8259para

aceitar as palavras enviadas pela CPU.

RD 3 ILeitura: Habilitado com tensão baixa, quando o CS está com tensão baixa, para

habilitar o 8259 e liberar os "status" dentro do barramento de dados para a CPU.

D7 - D0 4 - 11 I/OBarramento de Dados Bidirecional: Através dete barramento é controlado as

informações de "Status" e de Vetorização de Interrupção.

CAS0 - CAS2 12,13,15 I/OLinhas CASCADE: As linhas CAS formam umbarramento privado para o 8259 para

controlarumaestruturademultiplos8259.Estspinos sãoutilizados comosaídaseo

8259 para mestre e de entrada se o 8259 for escravo.

SP/EN 16 I/O

ProgramaçãoEscravo/HabilitaBuffer:Estepinoexerce funçãodual.Qando emModo

"Buffered"estepodeser usadocomouma saídade controledo buffer transceivers

(EN).QuandonãoéutilizadonoModo"Buffered"esteéusadocomoumaentradapara

designar um Mestre(SP-1) ou Escravo(SP-0).

INT 17 O

Interrupção: Este pino vai para Vcc, sempre que uma solicitação válida de

interrupção é requerida. Este é usado para interromper a CPU, através de uma

conexão direta no pino de interupção da CPU,

IR0 - IR7 18 - 25 I

Solicitação de Interrupção: Entradas Assincronas. Uma Interrupção solicitada é

executadapelaelevaçãodetensãoemIR(datensãobaixaparaVcc),epermaneçaem

Vccaté queseureconhecimento(EdgeTriggeredMode)ouapenaspelaelevação da

entrad de um IR(Level Triggered Mode).

INTA 26 I

Reconhecimento de Interupção(INTERRUPT ACKNOWLEDGE): Este pino é usado para

habilitarosdadosdeinterrupçãovetorial do8259dentrobarramentodedadospelo

pela sequencia de pulsos de reconhecimento de interrupção solicitados pela CPU.

AO 27 I

Linha de Endereçamento A0: Estepinoageemconjuntocomopinos CS,WReRD.

Esteéusadopelo8259 paradecifrarvarias palavrasdecomandoescritas pelaCPU

e"status"paraaleiturasolicitadospelaCPU.EsepinoétipicamenteconectadoaCPU

na linha de endereço A0(A1 para a famólia 8086 e 8088)

PIC PIC 82598259________

Modo “

Sta

ndard

” de

Modo “

Sta

ndard

” de

Con

exão

Con

exão

PIC PIC 82598259________

O Projeto dos PCsO Projeto dos PCs

8259APIC

(slave)

8259APIC

(master)

CPUINTR

Programável através de I/O-ports 0xA0-0xA1

Programável através de

I/O-ports 0x20-0x21

Célu

la d

e P

riori

dad

e /

Dia

gra

ma

Célu

la d

e P

riori

dad

e /

Dia

gra

ma

Lóg

ico

Lóg

ico

PIC PIC 82598259________

Solic

itaçã

o d

e T

mpori

zaçã

o d

o D

isparo

Solic

itaçã

o d

e T

mpori

zaçã

o d

o D

isparo

de IR

de IR

PIC PIC 82598259________

Modo C

ASC

AD

E n

o

Modo C

ASC

AD

E n

o

82

59

82

59

PIC PIC 82598259________

Tabela

de B

yte

de V

eto

riza

ção d

e

Tabela

de B

yte

de V

eto

riza

ção d

e

Inte

rrupçã

oIn

terr

upçã

oPara a Família 8086

PIC PIC 82598259________

Como programar o 8259AComo programar o 8259A

O 8259A tem dois modos:O 8259A tem dois modos: Modo de inicializaçãoModo de inicialização Modo de operaçãoModo de operação

Programando no Modo de Operação:Programando no Modo de Operação: Escrever um comando (9-bits) no PIC.Escrever um comando (9-bits) no PIC. Pode-se ler um byte de retorno do PICPode-se ler um byte de retorno do PIC

Programando no Modo de Inicialização :Programando no Modo de Inicialização : Escrever uma seqüência de inicialização Escrever uma seqüência de inicialização

completa. completa.

Pro

gra

man

do o

PIC

P

rog

ram

an

do o

PIC

8259

8259

Initialization Command WordsInitialization Command Words(ICWs)(ICWs)

Operation Command WordsOperation Command Words(OCWs)(OCWs) Modo completo aninhado(“nested”)Modo completo aninhado(“nested”) Modo de prioridade rotativa;Modo de prioridade rotativa; Modo de máscara especial;Modo de máscara especial; Modo pooled.Modo pooled.

PIC PIC 82598259________

Seqüênci

a d

e

Seqüênci

a d

e

Inic

ializ

aca

oIn

icia

lizaca

o

PIC PIC 82598259________

Form

ad

o d

a P

ala

vra

de C

om

an

do d

e

Form

ad

o d

a P

ala

vra

de C

om

an

do d

e

Inic

ializ

açã

oIn

icia

lizaçã

o

PIC PIC 82598259________

Form

ad

o d

a P

ala

vra

de C

om

an

do d

e

Form

ad

o d

a P

ala

vra

de C

om

an

do d

e

Inic

ializ

açã

oIn

icia

lizaçã

o

PIC PIC 82598259________

ICW1 and ICW2ICW1 and ICW2

0 A7 A6 A5 1 LTIM ADI SNGL IC4

1 A15/ T7

A14/ T6

A13/ T5

A12/ T4

A11/ T3

A10 A9 A8

ICW1

ICW2

LTIM (1 = Level-Triggered Interrupt Mode, 0 = Edge-Triggered Interupt Mode)ADI is length of Address-Interval for call-instruction (1 = 4-bytes, 0 = 8-bytes) SNGL (1 = single controller system, 0 = multiple controllers in cascade mode)IC4 means Initialization Command-Word 4 is needed (1 = yes, 0 = no)

ICW3ICW3

1 S7 S6 S5

1 0 0 0 0 0 ID2 ID1 ID0

(master)

(slave)

S4 S3 S2 S1 S0

S Interrupt-Request Input is from a slave controller (1=yes, 0=no)

ID number of slave controller’s input-pin to master controller (0-7)

ICW4ICW4

1 0 0 0 SFNM BUF M / S AEOI µPM

microprocessor mode 1=8086/8088 0=8080

Automatic EOI mode 1 = yes, 0 = no

Special Fully-Nested Mode (1 = yes, 0 = no)

NON-BUFFERED mode (00 or 01)BUFFERED-MODE (10 = slave, 11 = master)

Inicializando um PIC Inicializando um PIC MasterMaster Escrever a seqüência de Escrever a seqüência de

comandos.comandos. (Cada comando tem 9 bits.)(Cada comando tem 9 bits.)

0 0 0 0 1 0 0 0 1

1

1 0 0 0 0 0 1 0 0

1 0 0 0 0 0 0 0 1

A0 D7 D6 D5 D4 D3 D2 D1 D0

ICW1=0x11

ICW2=baseID

ICW3=0x04

ICW4=0x01

Inicializando um PIC Inicializando um PIC SlaveSlave

Escrever uma seqüência de quatro Escrever uma seqüência de quatro comandoscomandos

(Cada comando tem 9 bits)(Cada comando tem 9 bits)

0 0 0 0 1 0 0 0 1

1

1 0 0 0 0 0 0 1 0

1 0 0 0 0 0 0 0 1

A0 D7 D6 D5 D4 D3 D2 D1 D0

ICW1=0x11

ICW2=baseID

ICW3=0x02

ICW4=0x01

Pala

vra

s d

e C

ontr

ole

de

Pala

vra

s d

e C

ontr

ole

de

Opera

ção(O

CW

s)O

pera

ção(O

CW

s)

PIC PIC 82598259________

Form

ado d

a P

ala

vra

de C

om

ando d

e

Form

ado d

a P

ala

vra

de C

om

ando d

e

Opera

ção)

Opera

ção)

PIC PIC 82598259________

Form

ado d

a P

ala

vra

de C

om

ando d

e

Form

ado d

a P

ala

vra

de C

om

ando d

e

Opera

ção)

Opera

ção)

PIC PIC 82598259________

Rota

ção

Rota

ção

Au

tom

áti

caA

uto

máti

ca

PIC PIC 82598259________

Como ter acesso ao IMRComo ter acesso ao IMR

Quando no modo de operação, pode-Quando no modo de operação, pode-se ler ou escrever no IMR em qualquer se ler ou escrever no IMR em qualquer momento (fazendo-se in/out with A0-momento (fazendo-se in/out with A0-line=1)line=1) Read the masterRead the master IMR: IMR: in al, #0x21in al, #0x21 Write the masterWrite the master IMR: IMR: out #0x21, alout #0x21, al Read the slaveRead the slave IMR: IMR: in al, #0xA1in al, #0xA1 Write the slaveWrite the slave IMR: IMR: out #0xA1, alout #0xA1, al

Como ler o master IRRComo ler o master IRR

Envie o byte de comando “read Envie o byte de comando “read register” com RR=1 and RIS=0; register” com RR=1 and RIS=0; Leia o byte de retorno:Leia o byte de retorno:

mov al, #0x0Bmov al, #0x0B

out #0x20, alout #0x20, al

in al, #0x20in al, #0x20

Como ler o master ISRComo ler o master ISR

Envie o byte de comando “read Envie o byte de comando “read register”, com RR=1 and RIS=1; leia register”, com RR=1 and RIS=1; leia o byte de retorno: o byte de retorno:

mov al, #0x0Amov al, #0x0A

out #0x20, alout #0x20, al

in al, #0x20in al, #0x20

End-of-InterruptEnd-of-Interrupt

Em modo de operação (a não ser que o Em modo de operação (a não ser que o modo AEOI tenha sido programado), ao modo AEOI tenha sido programado), ao final do serviço de interrupção deve-se final do serviço de interrupção deve-se enviar um enviar um EOI-commandEOI-command para o PIC para o PIC

Isto limpa o bit apropriado do ISR e permite Isto limpa o bit apropriado do ISR e permite outras outras unmaskedunmasked interrupts interrupts de igual ou de igual ou menor prioridade serem atendidas.menor prioridade serem atendidas.

Non-specific EOI-commandNon-specific EOI-command limpa o bit de limpa o bit de mais alta prioridade do mais alta prioridade do In-Service Register.In-Service Register.

Alguns exemplos de EOIAlguns exemplos de EOI

Envie um Envie um non-specific EOInon-specific EOI para o para o mastermaster PIC: PIC:mov al, #0x20mov al, #0x20out #0x20, alout #0x20, al

Envie um Envie um non-specific EOInon-specific EOI para ambos os para ambos os PICs:PICs:

movmov al, #0x20 al, #0x20outout #0xA0, al #0xA0, aloutout #0x20, al #0x20, al

Cara

cterí

stic

Cara

cterí

stic

asas

PIC PIC 82598259________

Cara

cterí

stic

Cara

cterí

stic

asas

PIC PIC 82598259________

Form

as

de

Form

as

de

Onda

Onda

PIC PIC 82598259________

Form

as

de

Form

as

de

Onda

Onda

PIC PIC 82598259________

Form

as

de

Form

as

de

Onda

Onda

PIC PIC 82598259________