Capítulo 14
Expandindo as portas de
comunicação 8031 com a PPI 8255
Como discutido ao longo do livro, o 8031 deixa 8 bits para controle genérico
de dispositivos. Em situações nas quais se necessita um número muito maior
de bits, pode-se lançar mão de dispositivos auxiliares como a PPI 8255 para
multiplicar por 3 esse número.
14.1 Interface PPI 8255
8255 é o código comercial de uma interface programável de periféricos
(Peripheral Programmable Interface - PPI 8255) apresentada num circuito
integrado (CI) de 40 pinos. O chip (parte interna do CI) é fabricado usando
a tecnologia de portas canal-N de silício e funciona como uma interface
paralela de entrada e saída (E/S).
A configuração funcional do 8255 é composta por três portas de comunicação com o ambiente externo e é programada por software não requerendo
nenhuma lógica externa para “interfacear” dispositivos periféricos.
Os três modos básicos de operação, selecionados por software são:
• Modo 0: o 8255 tem operações de entrada e saída simples para três portas de 8 bits cada. Os dados são lidos e escritos na porta especificada
(Porta A, B ou C) sem o uso do sinal de handshaking ;
• Modo 1: a PPI habilita a transferência de dados de entrada e saída
nas portas de 8 bits A e B, em conjunto com o sinal de handshaking .
148
Capítulo 14 • Expandindo as portas de comunicação 8031 com a PPI 8255 149
As portas A e B neste modo, usam as linhas da porta C para gerar ou
aceitar o sinal de handshaking com o dispositivo periférico;
• Modo 2: ele habilita a comunicação com dispositivos periféricos por
via de um barramento bidirecional de 8 bits (Porta A). Os sinais de
handshaking, são preparados sobrepondo as linhas da Porta C (a porta
B, neste modo, não é utilizada).
Características físicas:
• Alimentação: 0 e 5 Volts
• Fonte de saída: 1mA e 1,5 Volts
• Apresentação: pastilha de 40 pinos
• 24 pinos para portas de entrada e saída programáveis
• Capacidade de bit de set/Reset direto
• Compatível com os níveis TTL
14.1.1 Sistema de conexões
Do lado esquerdo da Figura 14.1, observa-se os sinais que serão conectados ao
barramento interno do computador, ou seja, os sinais de controle (RD, WR,
Reset, CS), de endereçamento (A0, A1) e os oito pinos de entrada e saída de
dados (D7-D0) através dos quais se efetuará a comunicação com a CPU.
Do lado direito da Figura 14.1 pode-se observar os 24 pinos que compõem
as portas de entrada e saída (PA, PB, PC) a serem conectadas com os periféricos do ambiente externo.
150
Sistemas Automáticos com Microcontroladores 8031/8051
controle do
grupo A
buffer do
barramento
de dados
grupo A
porta A
barramento
interno de
8 bits
A0
A1
RD
WR
lógica de
controle
leitura e
escrita
grupo A
porta C
0#0#
grupo B
porta C
0#0#
grupo B
porta B
controle do
grupo B
0!0!
0"0"
p
e
r
i
f
é
r
i
c
o
s
Reset
CS
8255
barramento de dados
barramento de endereço
barramento de controle
Figura 14.1 – Diagrama em blocos do 8255.
14.1.2 Definição funcional dos pinos de entrada e saída
A distribuição física dos pinos presente no circuito integrado é mostrada na
Figura 14.2.
PA3
PA2
PA1
PA0
RD
CS
Terra
A1
A0
PC7
PC6
PC5
PC4
PC3
PC2
PC1
PC0
PB0
PB1
PB2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8255
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
PA4
PA5
PA6
PA7
WR
RST
D0
D1
D2
D3
D4
D5
D6
D7
Vcc
PB7
PB6
PB5
PB4
PB3
Figura 14.2 – Pinagem da Interface paralela 8255.
Capítulo 14 • Expandindo as portas de comunicação 8031 com a PPI 8255 151
14.1.3 Sinais de entrada
Esta interface possui pinos que dão fluxo à entrada e saída de dados, endereços e controle. O primeiro grupo a ser estudado admite apenas a entrada
de sinais de controle e endereço.
• Chip select (-CS), pino 6 – Quando baixo, o chip é selecionado. Isto
habilita a comunicação entre 8255 e o microprocessador.
• Read (-RD), pino 5 – Quando baixo, permite à CPU ler dados ou informações de estado a partir do 8255.
• Write (-WR), pino 36 – Quando baixo, permite à CPU escrever dados
ou palavras de controle no 8255.
• Port Select (A0, A1), pinos 9 e 8 – Estas duas entradas são normalmente
conectadas aos bits menos significativos (LSB) do barramento de endereços do sistema, como exemplificado na Figura 14.3. São utilizadas para
selecionar um entre quatro registradores: porta A, B, C ou registrador
da palavra interna de controle como indicado na Tabela 14.1.
A1 A0
barramento de endereços
Figura 14.3 – Ligação entre os pinos de seleção das portas e o
barramento do computador.
Tabela 14.1 – Endereços das portas e registrador de controle
A1
0
0
1
1
A0
0
1
0
1
Selecionado
Porta A
Porta B
Porta C
Registrador da palavra de controle
• Reset, pino 35 - Quando alto, limpa todos os registradores internos do
chip e ajusta as portas A, B e C para o modo de entrada para alta impedância, conhecido como terceiro estado (tri-State). Esta técnica é utilizada
para prevenir a destruição de circuitos eletrônicos conectados às portas,
pois, em geral, dispositivos periféricos utilizam o mesmo método. Assim,
poderia haver uma ligação de porta de saída após um Reset e isto poderia
danificar um deles ou ambos (computador e periférico).
• Ground, PINO 7 - 0 Volts de referência.
152
Sistemas Automáticos com Microcontroladores 8031/8051
14.1.4 Sinais de entrada e saída
Este grupo de pinos do chip admite entrada e saída de dados, não sendo
utilizado para controle ou endereçamento.
• Data (D7-D0), pinos 27 a 34 – Este barramento é composto de 8 linhas
de entrada e saída em tri-State. O barramento possui comunicação bidirecional entre o 8255 e a CPU. Os dados são movimentados para (ou do)
buffer de barramento de dados, logo após a execução da instrução OUT
ou IN, respectivamente, pela CPU. As palavras de controle e informações
de estado também são transferidas via buffer do barramento de dados.
• Port A (PA7-PA0), pinos 37 a 40, 1 a 4 – Estas portas de entrada e saída
de 8 bits formam um latch/buffer de saída de dados de 8 bits e/ou um
latch de entrada de dados de 8 bits.
• Port B (PB7-PB0), pinos de 18 a 25 – Esta porta de entrada e saída de
8 bits forma um latch/buffer de saída de dados de 8 bits ou um buffer
de entrada de 8 bits.
• Port C (PC7-PC0), pinos 10 a 17 – Esta porta de entrada e saída de 8
bits forma um latch/buffer de saída de dados de 8 bits ou um buffer de
entrada de 8 bits.
Esta última porta pode ser dividida em duas portas de 4 bits através do
registrador de controle de modo. Cada uma destas portas de 4 bits possuem
um latch de 4 bits que podem ser usados para sinais de controle e de estado,
que por sua vez trabalham em conjunto com as portas A e B.
Através de software pode-se incluir uma palavra de controle de set/Reset
para ligar ou desligar qualquer um dos 8 bits da porta C.
14.2 Formatos das palavras de controle
Como mostra a Figura 14.4, a palavra de controle pode ter dois sentidos:
• O primeiro, quando o bit 7 é alto (MSB = 1), utilizado para definir o
modo de operação das portas de entrada e saída desta PPI. Sempre
que o modo é trocado, todas as saídas dos registradores (e flip/flops)
são ajustadas para zero (desligadas).
• O segundo, quando o bit 7 é baixo (MSB = 0), utilizado para ligar ou
desligar um bit da porta C, ou quando se quer habilitar os sinais de
interrupção (saída) para transferência de dados para handshaking.
Capítulo 14 • Expandindo as portas de comunicação 8031 com a PPI 8255 153
7
6
5
4
3
2
1
0
0 = set/reset dos bits da porta C
1 = definição de modo
Figura 14.4 – Destaque do bit 7 da palavra de controle e exemplo de
programação.
Como a palavra que controla a programação da PPI depende do bit 7, as
Figuras 14.5 e 14.6, mostram as possíveis composições do conjunto de bits que
definem o modo de operação das portas.
D6
D7
PARA
AJUSTEDE
MODO
D5
D4
3ELE¥ÎODEMODO
-
-
8-
D3
D2
D1
D0
0ORTA!
0ORTA# 3ELE¥ÎO 0ORTA"
!LTA
DEMODO
0ORTA#
"AIXA
%.4
3!)
%.4
3!)
%.4
3!)
%.4
3!)
-
-
Grupo A
Grupo B
Figura 14.5 – Formato da palavra de controle e definição de modo.
D7
D6
D5
D4
D3
D2
D1
D0
bit de set / reset
0 = set / reset
não utilizados
bits de seleção
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7
ajusta o valor
no bit selecionado
Figura 14.6 – Formato da palavra de controle para ajustar (set/Reset) os
bits da porta C.
14.3 Modos de operação
O 8255 possui 3 modos de operação que podem utilizar sincronização dos
dados através de handshaking ou leitura e escrita não sincronizada.
Sistemas Automáticos com Microcontroladores 8031/8051
154
14.3.1 Modo 0 – Entrada e saída básicas
Neste modo (Tabela 14.2) existem operações de entrada e saída simples para
cada uma das três portas. O sinal de handshaking não é utilizado; os dados
são simplesmente lidos ou escritos na porta especificada.
Tabela 14.2 – Definição das portas no Modo 0.
no
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
D7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
D6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
D5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
D4
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
D3
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
D2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
D1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
A
saída
saída
saída
saída
saída
saída
saída
saída
entrada
entrada
entrada
entrada
entrada
entrada
entrada
entrada
C(HI)
saída
saída
saída
saída
entrada
entrada
entrada
entrada
saída
saída
saída
saída
entrada
entrada
entrada
entrada
B
saída
saída
entrada
entrada
saída
saída
entrada
entrada
saída
saída
entrada
entrada
saída
saída
entrada
entrada
C(LO)
saída
entrada
saída
entrada
saída
entrada
saída
entrada
saída
entrada
saída
entrada
saída
entrada
saída
entrada
14.3.2 Modo 1 – Entrada e saída com strobe
Este modo possui o recurso de transferência de dados de entrada e saída
para ou de uma porta especificada, em conjunto com os sinais de strobe ou
handshaking. As portas A e B são linhas de dados que utilizam as linhas da
porta C para gerar ou aceitar os sinais de handshaking. O programa pode,
por exemplo, ler o conteúdo da porta C para testar ou verificar o estado de
cada dispositivo periférico.
A seguir, dois exemplos (Figuras 14.7 e 14.8) baseados nos sinais de
handshaking da porta C.
Capítulo 14 • Expandindo as portas de comunicação 8031 com a PPI 8255 155
8255
dispositivo externo
dado
-OBF
-ACK
INTR
CPU
Figura 14.7 – Saída de dados com handshaking .
• Saída: O 8255 disponibiliza o dado no barramento e, logo após, envia um sinal OBF (output buffer full) baixo, para avisar o dispositivo
que o dado está disponível. Este, por sua vez, retorna-lhe o sinal ACK
(ackowledge) baixo, reconhecendo o protocolo e avisando que já “pegou” o dado. Logo após, o 8255 pode disparar um sinal para a CPU
através da linha de interrupção, com o intuito de executar uma rotina
específica, por exemplo, gerar novos dados.
8255
dado
dispositivo externo
IBF
-STB
INTR
CPU
Figura 14.8 – Entrada de dados com handshaking .
• Entrada: O dispositivo disponibiliza o dado no barramento e, logo
após, envia um sinal IBF (input buffer full) para avisar o 8255 que o
dado está disponível. Este, por sua vez, retorna-lhe o sinal STB (strobe)
baixo, reconhecendo o protocolo e avisando que já “pegou” o dado.
Logo após, o 8255 pode disparar um sinal para a CPU através da linha
de interrupção, com o intuito de executar uma rotina específica, por
exemplo, para tratar os novos dados.
14.3.3 Modo 2 – Entrada e saída em barramento bidirecional com strobe
Este modo habilita a comunicação com os dispositivos periféricos, através de
um único barramento de 8 bits, tanto para transmissão quanto para recepção
de dados (barramento de dados bidirecional). Os sinais de handshaking são
utilizados de forma parecida com o modo 1, descrito no item anterior.
Sistemas Automáticos com Microcontroladores 8031/8051
156
A Tabela 14.3 apresenta um resumo de definição dos modos possíveis.
Tabela 14.3 – Descrição dos sinais em cada modo
Modo 0
Bits das portas
Modo 1
Modo 2
PA0
Entrada
entrada
Saída
saída
Entrada
entrada
Saída
saída
Entrada/Saída
Bidirecional
PA1
entrada
saída
entrada
saída
Bidirecional
PA2
entrada
saída
entrada
saída
Bidirecional
PA3
entrada
saída
entrada
saída
Bidirecional
PA4
entrada
saída
entrada
saída
Bidirecional
PA5
entrada
saída
entrada
saída
Bidirecional
PA6
entrada
saída
entrada
saída
Bidirecional
PA7
entrada
saída
entrada
saída
Bidirecional
PB0
entrada
saída
entrada
saída
PB1
entrada
saída
entrada
saída
PB2
entrada
saída
entrada
saída
Somente no
PB3
entrada
saída
entrada
saída
Modo 0
PB4
entrada
saída
entrada
saída
saída
entrada
saída
ou
PB5
entrada
PB6
entrada
saída
entrada
saída
PB7
entrada
saída
entrada
saída
PC0
entrada
saída
INTRB
INTRB
E/S
PC1
entrada
saída
B
IBF
-OBF
E/S
PC2
entrada
saída
-STB
B
PC3
entrada
A
PC4
B
Modo 1
-ACK
E/S
saída
A
INTR
INTR
INTRA
entrada
saída
-STBA
E/S
-STBA
PC5
entrada
saída
-IBF
E/S
-IBFA
PC6
entrada
saída
E/S
-ACKA
-ACKA
PC7
entrada
saída
E/S
-OBFA
-OBFA
B
A
Capítulo 14 • Expandindo as portas de comunicação 8031 com a PPI 8255 157
14.4 Projetando o decodificador de endereços
Como o 8255 tem duas linhas de endereço (A1 e A0) para selecionar seus
quatro registradores e o chip select (-CS) para ativar a sua pastilha, este circuito
foi projetado para utilizar os últimos endereços do barramento de endereços
(A-BUS) de dezesseis linhas (A15 a A0).
Um barramento deste tipo pode endereçar de 0000h até FFFFh, portanto
os quatro últimos valores são: CFFF, DFFF, EFFF e FFFF. Repare na Tabela
14.4 que, nestes quatro números, os bits A15, A14, A11 até A0 são sempre altos
(1) e as linhas A13 e A12 variam seqüencialmente.
Tabela 14.4 – Conexões do 8031 com o 8255
Lado do 8031
C-BUS
RST -RD -WR
RST
-RD
-WR
A15 A14
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
-CS
A13
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
A1
A12
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
A0
Endereços (A-BUS)
A11-A8
A7-A4
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
-CS
A3-A0
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
1111
HEXA
0FFF
1FFF
2FFF
3FFF
4FFF
5FFF
6FFF
7FFF
8FFF
9FFF
AFFF
BFFF
CFFF
DFFF
EFFF
FFFF
Lado do 8255
As linhas A15, A14, A11 a A0 serão combinadas por duas portas “NÃO
E” e uma porta “E”, para gerar o sinal chip select (–CS) do 8255. A Figura 14.9
apresenta o circuito resultante dessa análise.
Sistemas Automáticos com Microcontroladores 8031/8051
158
P0
parte
8031
P2
P0
parte
P1
P3
Vcc
Vcc
A15
A14
A11
A10
A9
A8
1
2
3
4
5
6
11
12
A7
A6
A5
A4
A3
A2
A1
A0
1
2
3
4
5
6
11
12
7430
8
1
7430
7430
8
3
CS
8255
2
A12
A0
A13
A1
-RD
-RD
-WR
-WR
RST
RST
D0-D7
P27
P26
P25
P24
P23
P22
P21
P20
P17
P16
P15
P14
P13
P12
P11
P10
P07
P06
P05
P04
P03
P02
P01
P00
barramento de dados
Figura 14.9 – Decodificador de endereços para o 8255.
Outra forma de criar um decodificador de endereços para este chip é utilizar os endereços FFFF, FFFE, FFFD e FFFC para ativar o chip e endereçar
seus quatro registradores.
De forma semelhante, as linhas de endereço A13 até A0 devem compor
o chip select e as linhas A15 e A14 são ligadas respectiva e diretamente aos
pinos A1 e A0.
Download

Capítulo 14