Microprocessadores I Aula 6 Arquitetura do Microprocessador 8085 - Pinagem e Diagrama de Temporização 1
O 8085 contém em seu CI circuitos para executar operaçõ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) do endereçamento de memória compartilha o mesmo barramento com o byte de dados. São necessárias técnicas para demultiplexar o barramento e gerar os sinais de controles necessários. Quais são os tempos (timing) dos sinais no barramento na execuçã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
2.1 - Diagrama de Bloco do Microprocessador 8085 3
6.2 Pinagem do 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. 4
6.2 Pinagem do 8085 - Barramento de endereço - Barramento de endereço/dados - Sinais de Controle e Status 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
6.3 - Barramentos de Endereço e Dados 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 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
6.4 - Sinais de Controle Leitura e Escrita *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. 10
6.4 - Sinais de Controle Leitura, Escrita e Status 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 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 8085 Comunicaçã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
6.6.a Exemplo de Busca de Instrução 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. 15
6.6.a Exemplo de Busca de Instrução 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. 16
6.6.a Exemplo de Busca de Instrução 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. 17
6.6.a Exemplo de Busca de Instrução 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.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) Dois ciclos de leitura: 3 Ciclos: T1, T2 e T3 4 Ciclos: T1, T2, Twait e T3 20
6.8 - Temporização do Ciclo de Leitura (MR, IOR) 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 21
6.8 - Temporização do Ciclo de Leitura (MR, IOR) Sinais: ALE: demultiplexação endereços e dados; *RD: tipo de operação: leitura (pelo microprocessador); READY: inserção de estado de espera ( Twait); 22
6.8 - Temporização do Ciclo de Leitura (MR, IOR) 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... 23
6.9 - Temporização do Ciclo de Escrita (MW, IOW): 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 24
6.9 - Temporização do Ciclo de Escrita (MW, IOW): 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); 25
6.9 - Temporização do Ciclo de Escrita (MW, IOW): 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); 26
6.9 - Temporização do Ciclo de Escrita (MW, IOW): 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... 27
6.10 Diagrama de Temporização - Exemplo - Leitura do byte 4F H armazenado no endereço 2005H; 28
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 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 Fcristal CLK = Fcristal / 2 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 M 49