PIC 8259 PIC 8259 Sistema de Interrupção CPU RAM ROM I/O(1) I/O(N) CPU-DRIVEN MULTIPLEXOR I/O(2)...
Transcript of PIC 8259 PIC 8259 Sistema de Interrupção CPU RAM ROM I/O(1) I/O(N) CPU-DRIVEN MULTIPLEXOR I/O(2)...
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________