Aula 6 Arquitetura do Microprocessador 8085 - Pinagem e … · 2018-09-04 · Demultiplexação do...
Transcript of Aula 6 Arquitetura do Microprocessador 8085 - Pinagem e … · 2018-09-04 · Demultiplexação do...
Microprocessadores I
Aula 6
Arquitetura do Microprocessador 8085
- Pinagem e Diagrama de Temporização
1
• O 8085 contém em seu CI circuitos para executaroperações de cálculos e comunicação com periféricos.
• 8 vias (fios) do barramento são multiplexadas(compartilhado no tempo);
• O byte menos significativo (endereço baixo) doendereçamento de memória compartilha o mesmobarramento com o byte de dados.
• São necessárias técnicas para demultiplexar o barramentoe gerar os sinais de controles necessários.
– Quais são os tempos (timing) dos sinais no barramento naexecução de uma instrução?
• Tempos nos barramentos na busca de uma instrução na memória;
• Como demultiplexar o barramento AD7 – AD0;
• Como são gerados os 4 sinais de controle (*MEMR, *MEMW, *IOR, *IOW);2
3
2.1 - Diagrama de Bloco do Microprocessador 8085
Os sinais são classificados em 6 grupos:
1. Barramento de endereço;
2. Barramento de dados;
3. Sinais de controle e status;
4. Sinais de freqüência e alimentação;
5. Sinais externos de inicialização;
6. Portos seriais de I/O.
6.2 – Pinagem do 8085
4
- Barramento de endereço
- Barramento de endereço/dados
- Sinais de Controle e Status
6.2 – Pinagem do 8085
5
6.2 – Pinagem do 8085
6
6.3 - Barramentos de Endereço e Dados
- 16 linhas (pinos) de barramento de endereço.
- 8 linhas de barramento de dados
- Dividido em dois segmentos:
A15 – A8 (Byte mais significativo – high order address)
AD7 – AD0 (Byte menos significativo – low order address)
- Bits A15-A8 são unidirecionais e utilizados somente como byte de
endereçamento.
- Bits AD7-AD0 é usado como byte de endereçamento e byte de
dados.
7
O bits AD7-AD0 é bidirecional e serve para dois propósitos.
- Byte menos significativo do barramento de endereço;
- Barramento de dados.
• Isto é conhecido como barramento multiplexado
• São necessários latch e sinais de controle e de status
6.3 - Barramentos de Endereço e Dados
• ALE ( Address Latch Enable)
Sinal de controle gerado toda vez que 8085 inicia uma operação.
Ele indica que os bits AD7-AD0 são bits de endereçamento.
É usado para habilitar o latch do byte menos significativo do endereço
do barramento multiplexado.
Bits A7-A0 são armazenados, liberando o barramento para ser utilizado
como barramento de dados.
8
6.4 - Sinais de Controle e de Status
Esse grupo contém 6 sinais.
Dois sinais de controle:
• *RD
• *WR
Três sinais de Status:
• IO/*M
• S1
• S0
9
• *RD (Read)
- É o sinal de controle de leitura;
- Este sinal força o dispositivo selecionado (memória ou I/O) a colocar
os dados no barramento de dados para ser lido pelo processador.
• *WR (Write)
- É o sinal de controle de escrita;
- Este sinal força o dispositivo selecionado ( memória ou I/O) a
armazenar o dado presente no barramento que foi fornecido pelo
processador.
6.4 - Sinais de Controle – Leitura e Escrita
10
• IO/*M
- Este sinal de status é utilizado para diferenciar os dispositivos I/O ou
memória nas operações de escrita e leitura
Quando em nível ALTO indica operação em dispositivo de I/O
Quando em nível BAIXO indica operação em memória
• Esse sinal é combinado com os sinais *RD e *WR para gerar sinais de
controle de I/O e memória.
*MEMR, *MEMW, *IOR, *IOW
6.4 - Sinais de Controle – Leitura, Escrita e Status
11
6.4 - Sinais de Controle – Leitura, Escrita e Status
S1 e S0 - Esse sinal de status, similar ao IO/*M, pode identificar várias
operações, porém são raramente utilizados em pequenos sistemas.
12
6.6 – Diagramas de Temporização do 8085Comunicação do 8085 com a memória e temporização nos barramentos
- Processo de comunicação entre o microprocessador e memória e os
tempos desses sinais em relação ao sinal de relógio.
- Primeiro Passo: leitura em memória. (Busca de instrução – Fetching an
instruction)
- Como o microprocessador busca o código de máquina na memória?
- Exemplo: Instrução MOV C, A
- Suponha que o código de máquina da instrução está armazenado no
endereço 2005H da memória. O opcode é 4FH.
13
6.6.a – Exemplo de Busca de Instrução
- Busca do byte 4FH: CPU coloca o endereço 2005H no barramento e, posteriomente,
habilitar o fluxo de dados da memória.
( Esta operação é chamada de Ciclo de Busca – Fetch Cycle )
14
O Ciclo de busca (Opcode Fetch) é executado em 4 passos:
Passo 1: CPU coloca os 16 bits do conteúdo do PC no barramento de endereço. O
barramento A15-A8 recebe o byte 20H e o barramento AD7-AD0 recebe o byte
05H.
6.6.a – Exemplo de Busca de Instrução
15
Passo 2: A unidade de controle envia o sinal *RD = 0 para habilitar a leitura no
chip de memória. Este sinal permanece habilitado durante dois ciclos de relógio.
6.6.a – Exemplo de Busca de Instrução
16
Passo 3: O byte da localização da memória especificada (2005H) é colocado no
barramento de dados (AD7-AD0) e transferido para a CPU.
A seguir, *RD = ‘1’ e o barramento de dados fica em alta impedância.
6.6.a – Exemplo de Busca de Instrução
17
Passo 4: O byte é colocado no registrador de instruções (IR) e decodificado no
decodificação de instruções. O código de máquina ( 4FH) é decodificado e o
conteúdo do acumulador é copiado para o registrador C.
18
6.6.a – Exemplo de Busca de Instrução
6.7 - Ciclo de Instrução / Ciclo de Máquina / Estados T
Ciclo de Instrução: Tempo necessário para completar a execução de
uma instrução. Para o 8085 o ciclo de instrução consiste de 1 a 6
ciclos de máquinas;
Ciclo de Máquina: Tempo necessário para completar uma operação de
acesso a memória, I/O ou reconhecer uma solicitação externa. Este
ciclo pode consistir de 3 a 6 Estados T;
Estados T: É a sub-divisão da operação executada em um período de
clock. Essa sub-divisão são estados internos sincronizados com o
sistema de clock e cada Estado T é igual a um período de clock.
O termo Estado T e período de clock (relógio) são muitas vezes
usados como sinônimos.
T = 1/fclk; Se f = 5 MHz -> T = 200 ns
19
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
20
Dois ciclos de leitura:
3 Ciclos: T1, T2 e T3
4 Ciclos: T1, T2, Twait e T3
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
21
Sinais: CLK: sistema síncrono
IO/*M: tipo de dispositivo acionado
A8-A15: byte superior do barramento de endereços;
AD7-AD0: byte inferior do barramento de endereços / dados
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
22
Sinais: ALE: demultiplexação endereços e dados;
*RD: tipo de operação: leitura (pelo microprocessador);
READY: inserção de estado de espera ( Twait);
6.8 - Temporização do Ciclo de Leitura (MR, IOR)
23
Duração: 3 ciclos: Tt = 3 / Fclk; Se Fclk = 5 MHz, Tt = 600 ns
4 ciclos: Tt = 4 / Fclk ... Tt = 800 ns
Conclusão: tempo extra de 200 ns ...
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
24
Sinais: CLK: sistema síncrono
IO/*M: tipo de dispositivo acionado
A8-A15: byte superior do barramento de endereços;
AD7-AD0: byte inferior do barramento de endereços / dados
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
25
Sinais: ALE: demultiplexação endereços e dados;
*WR: tipo de operação: escrita – dados fornecido pela CPU;
READY: inserção de estado de espera (Twait);
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
26
Sinais: ALE: demultiplexação endereços e dados;
*WR: tipo de operação: escrita – dados fornecido pela CPU;
READY: inserção de estado de espera (Twait);
6.9 - Temporização do Ciclo de Escrita (MW, IOW):
27
Duração: 3 ciclos: Tt = 3 / Fclk; Se Fclk = 5 MHz, Tt = 600 ns
4 ciclos: Tt = 4 / Fclk ... Tt = 800 ns
Conclusão: tempo extra de 200 ns ...
28
6.10 – Diagrama de Temporização - Exemplo
- Leitura do byte 4F H armazenado no endereço 2005H;
Demultiplexação do barramento AD7-AD0
29
Demultiplexação do barramento AD7-AD0
O barramento AD7-AD0 recebeu os bytes menos significativos do endereçamento
e também recebeu os bytes de dados armazenados em memória.
O byte mais significativo do endereçamento (20H) permaneceu no barramento
A15-A8 durante três períodos de clock, porém o byte menos significativo (05H)
no barramento AD7-AD0 é perdido após o primeiro período de clock.
O barramento AD7-AD0, que é usado para identificar o endereço da memória, é
alterado para 4FH após o primeiro período de clock.
Para reter o byte 05H presente no barramento AD7-AD0 durante o primeiro
período de clock utiliza-se o CI 74LS373 (Latch) e o sinal ALE conectado no
pino G (enable) do latch.
Como o sinal ALE permanece Alto durante T1, o latch é transparente, ou seja
qualquer sinal presente na entrada do latch é transferido para a saída. Quando
o sinal ALE torna-se Baixo, no tempo T2, o byte 05H permanece no latch até o
próximo sinal ALE Alto. Dessa forma a saída do latch armazena o byte menos
significativo do endereçamento, ou seja, representa o byte A7-A0. 30
Demultiplexação do barramento AD7-AD0
31
Instrução STA
32
33
Gerando os sinais de Controle
O Sinal *RD (Read) é utilizado como sinal para ler memória e ler
dispositivos I/O. Dessa forma são necessários dois sinais *RD.
- Um para memória;
- Outro para entrada.
Da mesma forma são necessários dois sinais *WR.
- Um para memória;
- Outro para saída.
A combinação dos sinais *RD, *WR e IO/*M podem gerar os quatros sinais
descrito.
- *MEMR (Memory Read);
- *MEMW (Memory Write);
- *IOR (I/O Read);
- *IOW (I/O Write)
34
Esquema para gerar os sinais de Controle Read/Write para Memória e I/O
35
A CPU necessita de um Latch e portas lógicas para gerar a interface para
qualquer memória ou dispositivo de I/O e demultiplexar barramento AD7-AD0
36
A CPU necessita de um Latch e portas lógicas para gerar a interface
para qualquer memória ou dispositivo de I/O e demultiplexar
barramento AD7-AD0
37
Diagrama de Blocos Funcional do 8085
38
Qual o tempo necessário para executar a seguinte instrução:
MVI A, 32H => Carregar o byte 32H no Acumulador.
Suponha que o código de máquina 3EH (MVI A) e 32H estão
armazenados nas posições 2000H e 2001H respectivamente.
A freqüência de clock é de 2 MHz.
39
Qual o tempo necessário para executar a seguinte instrução:
MVI A, 32H => Carregar o byte 32H no Acumulador.
Suponha que o código de máquina 3EH (MVI A) e 32H estão
armazenados nas posições 2000H e 2001H respectivamente.
A freqüência de clock é de 2 MHz.
Essa instrução consiste de dois bytes: Opcode e byte de dados.
A CPU precisa ler esses dois bytes na memória necessitando de dois
ciclos de máquinas. No primeiro ciclo de máquina é a busca do Opcode
e no segundo ciclo de máquina e a Leitura do dado na Memória.
40
Qual o tempo necessário para executar a seguinte instrução:
MVI A, 32H => Carregar o byte 32H no Acumulador.
41
Qual o tempo necessário para executar a seguinte instrução:
MVI A, 32H => Carregar o byte 32H no Acumulador.
A instrução requer 7 T para os dois Ciclos de Máquinas.
- Freqüência de Clock = 2 MHz;
- T-Estado = Período de Clock (1 / f) = 0,5 µs;
- Tempo de execução para a busca do Opcode = 4 T * 0,5 = 2 µs;
- Tempo de execução para leitura de memória = 3 T * 0,5 = 1,5 µs;
- Tempo de execução para a instrução = 7 T * 0,5 = 3,5 µs.
42
Quantidade de Ciclos de Máquina e quantidade de T-Estados
43
Quantidade de Ciclos de Máquina e quantidade de T-Estados
44
Quantidade de Ciclos de Máquina e quantidade de T-Estados
45
Lógica do Circuito de Clock do 8085A
CLK = Fcristal / 2
Fcristal
cristal piezoelétrico: é um cristal de quartzo que, quando submetido a uma
pressão, gera um campo elétrico
que pode ser coletado como tensão. O cristal é utilizado em circuitos eletrônicos
para se gerar o clock de Trigger
46
Exercícios:
1. Qual a função dos sinais ALE e IO/*M do 8085?
2. Qual a necessidade de demultiplexar o barramento AD7-AD0?
3. Especifique a saída do latch 74LS373 quando o 8085 coloca o endereço 2005H quando o sinal ALE está em nível alto.
4. Escreva as instruções em assembly e em linguagem de máquina para executar as seguintes operações:
A - Carregar o registrador B com 20H;
B - Carregar o registrador D com o decimal 100;
C - Mover o conteúdo do registrador D para o registrador H;
D – Carregar o número 44H nos registradores C e E, usando somente 3 bytes de códigos em linguagem de máquina.
E – Carregar o par de registrador D e E com a valor 3800H
47
Exercícios:
5. Determine o conteúdo dos registadores B e C após a execução dos
seguintes programas:
A – LXI B, 24FFH
INX B
B - LXI B, 46FFH
INR C
C - LXI B, 4F88H
DCR B
D - MVI B, C7H
MVI C, 00H
DCX B
48
Exercícios:
6. O que executa o seguinte programa? Qual seu tempo de execução se o
cristal do sistema é de 4.00 MHz?
2000 21 LXI H, 20B0H
2001 B0
2002 20
2003 56 MOV D, M
2004 21 LXI H, 20C0H
2005 C0
2006 20
2007 72 MOV M, D
7. Determine o conteúdo do Acumulador e (F) após executar o programa:
LXI H, 20C0H
MVI M, 20H
MVI A, 2AH
ADD M49