Upload
haanh
View
215
Download
0
Embed Size (px)
Citation preview
Decodificação de I/O e Memória Cap.6: 1/10
CAPÍTULO VI
DECODIFICAÇÃO DE I/O E MEMÓRIA
• afirmava-se que memória era todo dispositivo acessado através dossinais *(S)MEMR ou *(S)MEMW e que I/O era todo dispositivo acessadoatravés dos sinais *IOR ou *IOW (ativados pelas instruções "in" e "out")
I/O é o nome dado a dispositivos que realizam diversas funções específicas,tais como enviar dados, receber dados, configurar a porta serial, controlar oacionador de disco ou ainda gerenciar a temporização. De forma mais simples,diz-se que os dispositivos de I/O trabalham com comandos e dados. Oscomandos (operações de escrita) indicam como o dispositivo deverá operar,por exemplo, mudando a resolução da placa VGA, enquanto que os dados(leitura ou escrita) são manuseados pelo I/O com objetivos diversos, como,por exemplo, para serem comunicados via modem ou placa de rede.
• instruções in, out, ins e outs
• 64K x 1K endereços
Espaço de I/O com512 endereços
para a placa do sistema ouIndica se o endereço era
para os slots de expansão(A9=0) - placa do sistema
Gerado pelasinstruções IN e OUT,mas ignorado no casode alguns PCs antigos
Não são usados pelasinstruções IN e OUT
(A9=1) - slots de expansão
19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Bits do Endereço
Figura 6.1. Interpretação dos bits de endereçamento de I/O, nas arquiteturas de PCs antigos.
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 2/10
FFFFh
0400h03FFh
0200h01FFh
0000h
64.512
512
512
Não usado no projeto inicial do PC
Espaço para os slots de expansão
Espaço para a placa do sistema
Figura 6.2. Utilização do espaço de endereçamento de I/O nos primeiros PCs.
• dispositivos "on-board"
Endereços Dispositivo000h-00Fh primeiro controlador de DMA (8237)020h-021h primeiro controlador de interrupções (8259)040h-043h temporizador programável (8253)060h-063h interface paralela 8255 (XT)060h-064h controlador 8742 (AT)070h-071h RAM CMOS e registrador de máscara NMI (AT)080h-08Fh registradores de paginação para DMA0A0h-0A1h segundo controlador de interrupções (AT)0C0h-0DFh segundo controlador de DMA (AT)0F0h-0FFh coprocessador aritmético (AT)1F0h-1FFh disco rígido (AT)200h-20Fh porta de jogos238h-23Bh mouse de barramento278h-27Fh LPT2:2B0h-2BFh vídeo (EGA-VGA)2C0h-2CFh vídeo (EGA-VGA)2D0h-2DFh vídeo (EGA-VGA)2E8h-2EFh COM4:2F8h-2FFh COM2:320h-32Fh disco rígido (XT)378h-37Fh LPT1:300h-31Fh reservado para protótipos3C0h-3CFh vídeo (EGA-VGA)3D0h-3DFh vídeo (CGA)3E8h-3EFh COM3:3F0h-3F7h disco flexível3F8h-3FFh COM1:
400h => projetos PCIFigura 6.3. Uso do espaço de endereçamento de I/O no PC.
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 3/10
Decodificação com endereço fixo
• *CS0, *CS1,...,*CS7 com habilitação em nível baixo• OR dos *CS com *IOR e *IOW
D0D1D2
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS373
*IOW (B13)74LS02
D3D4D5D6D7
D0D1D2D3D4D5
1A11Y11A21Y21A31Y31A41Y42A12Y12A22Y22A32Y32A42Y4
1G2G
74LS244
*CS0 (3E0H)*CS1 (3E1H)*CS2 (3E2H)*CS3 (3E3H)*CS4 (3E4H)*CS5 (3E5H)*CS6 (3E6H)
VCC
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
A0 (A31)A1 (A30)A2 (A29)
A9A8A7
74LS30
A9 (A22)A8 (A23)A7 (A24)
A4 (A27)
A6 (A25)
A5 (A26)
74LS04
A6
A5*A4*A3*AEN
*CS7 (3E7H)
*IOR (B14)74LS32
D6D7
D0D1D2D3
A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR74LS245
D0 (A9)D1 (A8)D2 (A7)D3 (A6)
74LS04
74LS04
A3 (A28)
AEN (A11)
*IOR (B14)
*IOW (B13)74LS08
D4 (A5)D5 (A4)D6 (A3)D7 (A2)
74LS32
D4D5D6D7
*IOR (B14)
Barramento
de Dados do PCBarramento Interno
Entrada com8 Bits
Saída com8 Bits
8 EndereçosDecodificados
A9 A81 1
A7 A61 1
A5 A41 0
A3 A20 X
A1 A0X X
Endereço Base = 3E0H
*ADROK*IORW
Figura 6.4. Decodificação de I/O com endereço fixo.
• outportb(0x3E0, variável);
• variável = inportb(0x3E0);
• uso do 74LS374 ao invés do 74LS373
AEN = 0 é um nível lógico necessário para que os decodificadores deI/O operem sem conflitar com os ciclos de DMA.
Decodificação programável por chave
• uso de "dip switch"
• outportb(endereço, variável);
• variável = inportb(endereço);
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 4/10
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS373
D0D1D2
*IOW (B13)74LS02
D3D4D5D6D7
1G2G
74LS244
D0D1D2D3D4D5
*CS0 (base)*CS1 (base+1)*CS2 (base+2)*CS3 (base+3)*CS4 (base+4)*CS5 (base+5)*CS6 (base+6)
VCC
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
A0 (A31)A1 (A30)A2 (A29)
P0P1P2P3P4P5P6P7
Q0Q1Q2Q3Q4Q5Q6Q7
G
P=Q
74LS688
AEN (A11)
6x (8K2)
A9 (A22)
A8 (A23)A7 (A24)A6 (A25)A5 (A26)A4 (A27)A3 (A28)
VCC*CS7 (base+7)
*IOR (B14)74LS32
D6D7
D0D1D2D3
A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR
74LS245
D0 (A9)D1 (A8)D2 (A7)D3 (A6)
VCCSW1
SW DIP-6
*IOR (B14)
*IOW (B13)74LS08
*ADROK
*IORW
D4 (A5)D5 (A4)D6 (A3)D7 (A2)
74LS32
D4D5D6D7
*IOR (B14)
Barramento
de Dados do PC
Barramento Interno
Entrada com8 Bits
Saída com8 Bits
8 EndereçosDecodificados
A9 A81 Y
A7 A6Y Y
A5 A4Y Y
A3 A2Y X
A1 A0X X
Programado pela Chave
1A11Y11A21Y21A31Y31A41Y42A12Y12A22Y22A32Y32A42Y4
Figura 6.5. Decodificação programável por chave, usando o 74LS688.
4X (8K2)
VCC VCC
4K7
*CS0 (base+0)*CS1 (base+4)*CS2 (base+8)*CS3 (base+12)*CS4 (base+16)
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
A2 (A29)
A4 (A27)A3 (A28)
74LS266
74LS266
A8 (A23)
A7 (A24)
SW1
SW DIP-4
A6 (A25)74LS266
ADROK *CS5 (base+20)*CS6 (base+24)*CS7 (base+28)
74LS266
74LS09
A5 (A26)
74LS04
AEN (A11)
A9 (A22)
A B NXOR
0 0 1
0 1 0
1 0 0
1 1 1A=B 1
A=B 0
Wired AND
Coletor AbertoA9 A81 Y
A7 A6Y Y
A5 A4Y X
A3 A2X X
A1 A0- -
Programado pela Chave
8 Linhas Decodificadas.Cada linha seleciona umbloco de 4 endereços consecutivos.
Figura 6.6. Decodificação programável por chave usando o 74LS266.
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 5/10
• decodificação selecionável por PROM
EXEMPLO: Habilitar *CS0 para o endereço 382h
Endereço Dado Programado
1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0D7 D6 D5 D4 D3 D2 D1 D0A8 A7 A6 A5 A4 A3 A2 A1 A0
A0 (A31)
A1 (A30)
8
7
A2 (A29)
A3 (A28)
6
5
A4 (A27)
A5 (A26)
4
3
A6 (A25)
A7 (A24)
2
1
A8 (A23) 23
(60 s)N82S141
512X8 PROM
AEN (A11)21
A9 (A22) 19
23
21
*CS0
*CS1
9
10
*CS2
*CS3
11
13
*CS4
*CS5
14
15
*CS6
*CS7
16
17
VCC
A0
A1
A2
A3
A4
A5
A6
A7
A8
D0
D1
D2
D3
D4
D5
D6
D7
*CE1
*CE2
CE3
CE4
η
Figura 6.7. Decodificação de I/O usando uma PROM.
Expandindo o espaço de endereçamento
• utilização dos bits de ordem superior• não funciona desde o surgimento do PCI
• endereçamento indireto• RAM CMOS e vídeo VGA
DECOD.NORMAL
D0 - D7
*IOW
D0 - D7
G
Latch
IA0-7
D0-D7
*CS
*IOW
*IOR
8 / 256
A0-A9
AEN
EndereçoIndireto
DecodificadorI/O EndereçadoIndiretamente
*SEL
Transceiver
Dado Interpretado
como Endereço
Barramento de Dados Interno
*CS0
*CS1
Barramento de Dados do PC
Figura 6.9. Esquema simplificado para o endereçamento indireto para I/O.
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 6/10
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS37374LS27
D0D1D2D3D4D5D6D7
IA0IA1IA2IA3IA4IA5IA6IA7
VCC
*ICS0*ICS1*ICS2*ICS3*ICS4*ICS5*ICS6*ICS7
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS373
D0D1D2D3D4P0
P1P2P3P4P5P6P7
Q0Q1Q2Q3Q4Q5Q6Q7
G
P=Q
74LS688
AEN (A11)
A0 (A31)*IOW (B13)
6x (8K2)
A9 (A22)
A8 (A23)A7 (A24)A6 (A25)A5 (A26)A4 (A27)A3 (A28)
VCC
*IOW (B13)
D5D6D7
1G2G
74LS244
D0D1D2D3D4D5D6D7
VCCSW1
SW DIP-6
*IOR (B14)
A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR
74LS245
D0D1D2D3D4D5D6D7
D0 (A9)D1 (A8)D2 (A7)D3 (A6)D4 (A5)D5 (A4)D6 (A3)D7 (A2)
74LS32
A0 (A31)
74LS04
*IOR (B14)
Dado usadocomo Endereço
8 Endereços Decodificados
Saída DigitalEndereçada Indiretamente
Entrada DigitalEndereçada Indiretamente
Barramento de DadosInterno
Barramento de Dados do PC
Barramento Dados PC
74LS27
1A11Y11A21Y21A31Y31A41Y42A12Y12A22Y22A32Y32A42Y4
Figura 6.10. Uso de endereçamento indireto para expandir o espaço de I/O.
• "outportb(base,índice);" seguido de "outportb(base+1,dado);"
I/O mapeado em memóriaDO0DO1DO2DO3
D0D1D2D3
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS373
*MEMW74LS02
D4D5D6D7
DO4DO5DO6DO7
D0D1A1 B1
A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR
74LS245
D0 (A9)D1 (A8)74LS04
74LS30
A13 (A18)A14 (A17)
A15 (A16)A16 (A15)A18 (A13)A19 (A12)
A7 (A24)A8 (A23)A9 (A22)A10 (A21)
A11 (A20)A12 (A19)
74LS30
74LS04
D2 (A7)D3 (A6)D4 (A5)D5 (A4)D6 (A3)D7 (A2)
74LS10
D2D3D4D5D6
DI0DI1DI2DI3DI4DI5
D0D1D2D3D4D5
1G2G
74LS244
*MEMR
74S260A0 (A31)A1 (A30)A2 (A29)
A3 (A28)A4 (A27)A5 (A26)A6 (A25)
A17 (A14)
*MEMR74LS02
74LS04
D6D7
DI6DI7
D7
Decodificação dos 20 bits do Endereço DFFF8H
A191
A181
A170
A161
A151
A141
A131
A121
A111
A101
A91
A81
A71
A61
A51
A41
A31
A20
A10
A00
Entradas usando o endereçode memória DFFF8H
Saídas usando o endereçode memória DFFF8H
1A11Y11A21Y21A31Y31A41Y42A12Y12A22Y22A32Y32A42Y4
Figura 6.11. Registradores de I/O (entrada e saída) mapeados no primeiro megabyte de memória.
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 7/10
• nunca entra em conflito com os endereços de I/O já utilizados• aumenta o espaço de I/O• oferece a possibilidade de usar todas as instruções da família 80x86
I/O a 16 bits
DO0DO1DO2DO3
D0D1D2D3
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS373
*IOW74LS02
D4D5D6D7
DO4DO5DO6DO7
74LS05
A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR
74LS245
SD0SD1SD2SD3SD4SD5SD6SD7
*IOR
A0
*I/OCS16
DO8DO9DO10DO11
D8D9D10D11
D0 Q0D1 Q1D2 Q2D3 Q3D4 Q4D5 Q5D6 Q6D7 Q7
OCG
74LS373
*IOW74LS02
D12D13D14D15
DO12DO13DO14DO15
A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR
74LS245
SD8SD9SD10SD11SD12SD13SD14SD15
*IOR
*SBHE
A9...A1
AEN
decod.
I/O
endereçoímpar
endereçopar
74LS04
Figura 6.12. Esquema para I/O a 16 bits.
• parte alta e parte baixa (*SBHE e A0)
• acesso a endereço par• mov dx,300h
in ax,dx• "outport(0x300);" em linguagem C• endereços acessados: 300h e 301h• 1 único ciclo de barramento
• acesso a endereço ímpar• mov dx,301h
in ax,dx• "outport(0x301);" em linguagem C• endereços acessados: 301h e 302h• 2 ciclos de barramento
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 8/10
• acesso de 16 bits em barramento PCI
• acesso de 32 bits em barramento PCI
Decodificação de memória
• *(S)MEMR e *(S)MEMW
BD0BD1BD2BD3BD4
BA0BA1BA2BA3BA4
A0A1A2A3A4A5A6A7A8A9A10
CEOEWE
D0D1D2D3D4D5D6D7
6116
BD0BD1BD2BD3BD4
A0A1A2A3A4A5A6A7A8A9A10
CEOEWE
D0D1D2D3D4D5D6D7
6116
BA0BA1BA2BA3BA4
BA10BA9BA8BA7BA6
1A1 1Y11A2 1Y21A3 1Y31A4 1Y42A1 2Y12A2 2Y22A3 2Y32A4 2Y4
1G2G
74LS244
A10 (A21)A9 (A22)A8 (A23)
A6 (A25)A7 (A24)
A5 (A26)A4 (A27)A3 (A28)
1A1 1Y11A2 1Y21A3 1Y31A4 1Y42A1 2Y12A2 2Y22A3 2Y32A4 2Y4
1G2G
74LS244
BA5BA4BA3
BA5BA6BA7BA8BA9BA10
*BMEMR*CS0
BD5BD6BD7
*BMEMR*CS1
BA5BA6BA7BA8BA9BA10
BD5BD6BD7
BD0BD1BD2BD3
BA0BA1BA2BA3
A0A1A2A3A4A5A6A7A8A9A10
CEOEWE
D0D1D2D3D4D5D6D7
6116
*BMEMW
BD0BD1BD2BD3
A0A1A2A3A4A5A6A7A8A9A10
CEOEWE
D0D1D2D3D4D5D6D7
6116
*BMEMW
BA0BA1BA2BA3
BA2BA1BA0*BMEMR*BMEMW
A2 (A29)A1 (A30)A0 (A31)
*MEMR (B12)*MEMW (B11)
A11 (A20) A Y0B Y1
Y2G Y3
74LS139
*CS0
BA4BA5BA6BA7BA8BA9BA10
BD4BD5BD6BD7
BA4BA5BA6BA7BA8BA9BA10
BD4BD5BD6BD7
*BMEMR*BMEMW
*CS3*BMEMR*BMEMW
*CS2*CS1*CS2*CS3*SEL GRUPO
A12 (A19)
VCC
A19 (A12)A18 A(13)A17 (A14)A16 (A15)A15 (A16)A14 (A17)A13 (A18)
8K2
P0P1P2P3P4P5P6P7
Q0Q1Q2Q3Q4Q5Q6Q7
G
P=Q
74LS688
*SEL GRUPOD0 (A9)D1 (A8)D2 (A7)D3 (A6)D4 (A5)D5 (A4)D6 (A3)
A1 B1A2 B2A3 B3A4 B4A5 B5A6 B6A7 B7A8 B8
GDIR
74LS245
BD0BD1BD2BD3BD4BD5BD6BD7D7 (A2)
*MEMR (B12)
SW DIP-7
Figura 6.13. Decodificação de 8 KB de memória em blocos de 2 KB.
VCC
SW DIP-4
8K2A19 (A12)A18 (A13)A17 (A14)A16 (A15)
A0A1A2A3B0B1B2B3A<B A<BA=B A=BA>B A>B
74LS85
DecodificaçãoVCC de um bloco
de 64KB
Figura 6.14. Decodificação de 64 KB com endereço selecionável por chave.
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 9/10
Mapa de memória
PC ATMemória Estendida
100000h
E0000h
C0000h
A0000h
00000h
00400h
00500h
Reservado para a PARA ROM BIOS
Reservado para ROMs
Buffers de Vídeo
Porção transiente do DOS
Área de Programas
(programas de usuários e dados)
Porção residente do DOS
Área de dados para ROM BIOS e BASIC
Área de dados para a ROM BIOS
Tabela de Vetores de Interrupção
Área destinada
ao DOS
9FFFFh
Figura 6.15. Mapa de memória de um típico PC AT.
Exercícios
6-7) Projete um circuito que multiplexe o acesso a 2 registradores nummesmo endereço, da seguinte forma: o primeiro acesso é realizado em umdos registradores, o acesso seguinte é feito ao outro e assimsucessivamente.
6-12) O seguinte conjunto de instruções é utilizado para realizar uma leiturade 16 bits:
mov dx,300hin ax,dx .
Existe alguma diferença de desempenho entre executar estas instruçõescom a linha *I/O CS 16 ativada ou não ?
6-13) Repita o problema anterior, substituindo apenas 300h por 301h.
6-14) Nos casos dos problemas 6-12 e 6-13, quais as diferenças deimplementações em hardware ao ativar-se ou não a linha *I/O CS 16 ?
6-15) O que acontecerá se, por engano, um projetista utilizar em seu projetoos endereços de I/O de 3F0h a 3F7h ?
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
Decodificação de I/O e Memória Cap.6: 10/10
6-17) (Concurso para o Quadro de Engenheiros Militares do Exército -especialidade eletrônica - 1998)Para permitir que um microprocessador acesse 3 dispositivos, foi preparadaa decodificação a seguir, onde se utilizaram apenas as 10 linhas deendereços menos significativas: A0, A1, ..., A9. As demais linhas deendereços foram ignoradas. Considerando que os dispositivos sãoselecionados em nível baixo (quando *CS=0), determine em hexadecimaltodos os endereços possíveis, para cada dispositivo.
A1
A2 *CS
ABC
G1G2AG2B
Y0Y1Y2Y3Y4Y5Y6Y7
74LS138
A9
A8
A3
A7
A5
A6
A0
VCC
A4
DISP1
*CS DISP2
*CS DISP3
MZMZ Editora Ltda.
- http://www.mzeditora.com.br - PC: um Guia Prático de Hardware e Interfaceamento - Ricardo Zelenovsky & Alexandre Mendonça
DEE - Unesp 1
10.1 – Conexão com Memórias – EPROM E SRAM
2
10.2 – Decodificação de Endereços
DEE - Unesp 3
10.3 – Decodificação de Endereços
DEE - Unesp 4
10.3 – Decodificação de Endereços
DEE - Unesp 5
10.3 – Decodificação de Endereços
DEE - Unesp Introdução aos Microcontroladores –
ELE 1187 6
10.3 – Decodificação de Endereços
DEE - Unesp 7
10.3 – Decodificação de Endereços
DEE - Unesp 8
10.3 – Decodificação de Endereços
DEE - Unesp 9
10.3 – Decodificação de Endereços
DEE - Unesp Introdução aos Microcontroladores –
ELE 1187 10
10.3 – Decodificação de Endereços
DEE - Unesp Introdução aos Microcontroladores –
ELE 1187 11
10.3 – Decodificação de Endereços
DEE - Unesp 12
Trabalho 4 – Decodificação de endereço de I/O e Memória
4.1 : Indique a faixa de endereços em hexadecimal de cada
*CS para cada circuito a seguir
DEE - Unesp 13
4.2: Indique a faixa de endereços em hexadecimal de cada *CS
para cada circuito a seguir.
DEE - Unesp 14
4.3: Desenhe o mapa de endereços de um sistema de 16 bits de
endereçamento e mapeie o bloco ocupado por cada CI de
memória da figura a seguir.