Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Memórias e Microcontroladores 1, Notas de estudo de Cultura

Construção de bancos de memorias

Tipologia: Notas de estudo

2010

Compartilhado em 29/09/2010

fabio-gomes-19
fabio-gomes-19 🇧🇷

3

(1)

4 documentos

1 / 20

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
MICROPROCESSADORES
1
Construção de bancos de memórias
BANCOS DE MEMÓRIAS
Frequentemente quando lidamos com sistemas microprocessados torna-se
de especial relevância o conhecimento a respeito de bancos de memória e
faixas de endereçamento.
Comecemos imaginando uma memória 2764 (EPROM de uso geral):
prefixo 27
64 Kbits
2764
Como a memória possui 64 Kbits e está organizada em palavras de 8 bits,
ela possui, na verdade, _____________=________ KBytes.
A afirmação acima nos diz que existem 8K=____________ endereços
distintos.
Sendo assim, a memória possui 2n=__________, n=_______ pinos de
endereçamento. É através desses pinos de endereçamento que informamos
à memória a localização exata da informação que será lida ou escrita na
memória. Esses pinos são nomeados de _____ até _____.
Essa memória possui o seguinte mapeamento de endereços:
A12 A11 A10 A9A8A7A6A5A4A3A2A1A0HEXA
0000000000000
0000000000001
0000000000010
.
.
..
.
.
1111111111111
Em cada um desses endereços cabe uma palavra de 8 bits (byte).
Essa memória pode ser esquematizada como na figura a seguir:
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14

Pré-visualização parcial do texto

Baixe Memórias e Microcontroladores 1 e outras Notas de estudo em PDF para Cultura, somente na Docsity!

Construção de bancos de memórias

BANCOS DE MEMÓRIAS

Frequentemente quando lidamos com sistemas microprocessados torna-se de especial relevância o conhecimento a respeito de bancos de memória e faixas de endereçamento.

Comecemos imaginando uma memória 2764 (EPROM de uso geral):

prefixo 27

64 Kbits

2764

Como a memória possui 64 Kbits e está organizada em palavras de 8 bits, ela possui, na verdade, _____________=________ KBytes.

A afirmação acima nos diz que existem 8K=____________ endereços distintos.

Sendo assim, a memória possui 2 n^ =__________, n=_______ pinos de endereçamento. É através desses pinos de endereçamento que informamos à memória a localização exata da informação que será lida ou escrita na memória. Esses pinos são nomeados de _____ até _____.

Essa memória possui o seguinte mapeamento de endereços:

A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 HEXA 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 .. .

.. . 1 1 1 1 1 1 1 1 1 1 1 1 1

Em cada um desses endereços cabe uma palavra de 8 bits (byte).

Essa memória pode ser esquematizada como na figura a seguir:

D 4

D 5

D 6

D 7

CS RD

A 0

A 1

A (^2)

A (^3)

A (^4)

A (^5)

A (^6)

A 7

A 8

A 9

A 10

A 11

A 12

D 0

D 1

D 2

D 3

Figura 1 – Direção dos sinais de uma memória 2764

EXERCÍCIOS:

Construa o mapeamento das memórias a seguir:

  1. 27256
  2. 6016 (RAM)

MAPEANDO VÁRIAS MEMÓRIAS

Quando um sistema possui mais memórias compartilhando o mesmo barramento de dados, torna-se necessário fazer um mapeamento tal que as memórias não se sobreponham, ou seja, que nunca aconteça de duas ou mais estarem ativas simultaneamente. Vejamos um exemplo:

Deseja-se construir um sistema que possua uma EPROM 2716 e uma

2716 6064 16 Kbits ÷ 8 = 2 Kbytes 64 Kbits ÷ 8 = 8 Kbytes 2 n^ = 2048 ⇒ n = 11 2 n^ = 8192 ⇒ n = 13 ( A 0 até A 10 ) ( A 0 até A 12 )

A 13 A 12 A 11 A 10 A 9 A 8 A 7 A 6 A 5 A 4 A 3 A 2 A 1 A 0 HEXA 0 X X 0 0 0 0 0 0 0 0 0 0 0 .. .

.. .

.. . 0 X X 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 .. .

.. .

.. . 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Observe que a EPROM não irá utilizar A 11 e A 12 , sendo esses valores irrelevantes para a formação do endereço. Desse modo, pode-se acessar

EPROM

RAM

Circuitos lógicos programáveis

Programmable Logic Array (PLA)

Até então, vimos diversos tipos de circuitos lógicos (portas AND, OR, NAND, NOR, XOR, NOT, Flip-flops, Contadores, etc.) com os quais podemos contruir muitos circuitos digitais. Entretanto, não são circuitos programáveis. Sempre que desejarmos uma função um pouco diferente do circuito, é necessário alterar ligações elétricas ou até mesmo trocar circuitos integrados. Dizemos que o circuito digital é alterável por Hardware, ou seja, as alterações são físicas.

O desenvolvimento da tecnologia tornou possível a construção de dispositivos com muitas portas lógicas integradas e fossem programáveis, ou seja, para realizar alterações na lógica do sistema digital basta programar o mesmo tipo de dispositivo (PLA) com outra função lógica.

Normalmente, as PLA possuem todas as portas lógicas que permitem ao dispositivo realizar qualquer soma de produtos com suas entradas.

Imaginemos uma PLA bastante elementar com 3 entradas e 1 saída:

C

L

A B SINAIS DE PROGRAMAÇÃO

UNIDADE DE PROGRAMAÇÃO

Figura 3 – Exemplo esquemático de uma PLA elementar

As saídas das portas AND estão todas originalmente ligadas à porta OR. Através de um dispositivo programador especial, o usuário tem a

possibilidade de “queimar” algumas dessas ligações (fusíveis) deixando outras intactas. Com isso, é possível programar qualquer função lógica de 3 entradas no dispositivo.

Imagine que o usuário deseje programar a PLA acima com a função lógica

A+BC.

Em primeiro lugar, deve expandir a função nos mintermos equivalentes.

A(B+B)(C+C) + (A+A)BC ABC + ABC + ABC + ABC + ABC + ABC ABC + ABC + ABC + ABC + ABC

Com isso pode-se verificar que, para programar a função desejada, o usuário precisa realizar algumas ligações à porta OR. Essa programação é feita com a ajuda de equipamentos especiais.

C

L

A B SINAIS DE PROGRAMAÇÃO

UNIDADE DE PROGRAMAÇÃO

Fusível queimado

Figura 4 – PAL elementar programada com a função A+BC

Não é difícil de imaginar como iria ficar uma PLA semelhante à anterior só que para 4 entradas A, B, C e D. Seriam ___ portas AND, cada uma com ___ entradas e uma porta OR com ___ entradas ao final.

Dependendo do tipo da função desejada, podem haver PLAs mais específicas. Por exemplo, se desejássemos uma PLA que gerasse apenas 1 mintermo entre 16, seria muito desvantajoso utilizarmos uma PLA de 4

entradas e uma porta AND ao final. Esse arranjo traz grande economia de portas para o circuito final, embora não seja capaz de gerar todos os mintermos.

No segundo caso, observamos que a PLA com arranjo matricial possui ___ portas AND, cada uma com ___ entradas e ___ portas OR com ___ entradas. Embora utilize muitas portas, esse arranjo emprega portas mais simples.

Comercialmente, encontramos PLA’s com um número muito maior de entradas e saídas. É o caso da PLA 16L8 que possui 10 entradas, 2 saídas e 6 entradas ou saídas definíveis pelo usuário. O seu esquema pode ser visto na figura a seguir.

I

I

I

I

I

I

I

I

I

I

I/O

I/O

I/O

I/O

I/O

I/O

O

PLA 16L

O

Figura 7 – PLA 16L

Essa PLA, por possuir até 16 entradas, teria 2 16 =65536 portas AND, cada uma com 16 entradas. Essas saídas programáveis estão todas inicialmente conectadas à porta OR podendo o usuário escolher quais delas deseja desconectar (processo inverso ao que foi visto no exemplo).

Arquiteturas de microprocessadores

1. ARQUITETURA C.I.S.C. VERSUS R.I.S.C.

A partir do 4004, com 46 instruções, começava a escalada dos microprocessadores (serão, daqui para frente, referidos apenas como μP) rumo a μP’s mais complexos e com maior número de instruções. O 8008 possui 48 instruções. O 8080, 78 instruções. O 8085, aprox. 150 instruções, o Z80, mais de 500, o 8086/8088 já possui mais de 700 instruções e o 80386, mais de 1500 instruções.

Isso nos mostra que, com o aumento do número de instruções, também crescia o número e a complexidade dos circuitos internos do μP. Alguns μP de arquitetura CISC atuais possuem um gigantesco volume de transistores incorporados no CHIP. Os μP’s 80x86 da Intel, utilizados nos PCs são um exemplo típico de processadores CISC. Há algum tempo, a preocupação nos projetos de μP’s passou a ser a velocidade de processamento e não a sua complexidade. Por isso, foram criados μPs com conjunto reduzido de instruções (menos de 250 instruções) , mas com alta velocidade de processamento (RISC).

CISC = Complex Instruction Set Code RISC = Reduced Instruction Set Code

O ciclo de projeto de um μP CISC é muito longo e difícil. O volume de testes para certificação do seu funcionamento é muito grande e a preocupação com a otimização do circuito para ganhar velocidade só vem depois do pleno estabelecimento do novo μP. Em contrapartida, μPs RISC tem um ciclo de projeto bem mais curto. Além disso, o enfoque é dado à elevação das taxas de “clock” e uso de barramentos “largos” ( bits ou 128 bits). Em geral, o desempenho de μPs RISC costuma ser melhor que μPs CISC.

Outro aspecto importante é o tamanho dos programas. Imagine um programa que faça uma movimentação de dados de 1000 bytes de uma parte da memória para outra. Em um μP CISC esse programa é curto (podemos supor algo em torno de 5 ou 6 bytes). Isso porque utiliza instruções complexas. Em um μP RISC, a mesma tarefa pode ser desempenhada por um programa maior (algo em torno de 10 a 15 bytes). Esse μP possui instruções muito simples e certamente precisaria de várias instruções para uma tarefa feita por uma única instrução complexa. Isso nos permite concluir: os programas de μP RISC são maiores.

vantagem 1: facilidade na implementação do projeto do CHIP: ___________. vantagem 2: tamanho dos programas: _____________. vantagem 3: velocidade de processamento: _______________.

barramento mas não pode efetuar acessos simultâneos às memórias.

Alguns processadores possuem uma arquitetura mista: Os 8051 possuem apenas um barramento, mas utilizam sinais de requisição de leitura de memória independentes, um para programa, outro para dados.

Fluxo de dados em barramentos

O diagrama esquemático abaixo exemplifica o funcionamento de um barramento.

RAIN RAOUTRBIN RBOUT R1 (^) IN R2 (^) IN RSOUT

Figura 10 – Barramento com registradores A, B, 1, 2 e somador

Para realizar a transferência simples de dados do registrador RA para o registrador RB, fazemos o sinal RAOUT=1 para conectar a saída do registrador RA ao barramento. Com isso, temos certeza que os bits presentes em RA são levados a todo o barramento. Para completar a transferência, aplicamos um pulso de CLOCK na entrada RBIN.

Até mesmo nas operações matemáticas e lógicas são usadas transferências.

No sistema acima, podemos perceber que o fluxo dos dados dos registradores é comandado exclusivamente pelos “sinais de controle”. No sistema acima os sinais de controle são: ___________________________ __________________________________________________________.

O conjunto de todos os sinais de controle de um sistema compõe o que chamamos MICROINSTRUÇÃO. A seqüência correta das microinstruções pode realizar diversas tarefas dentro do sistema digital. Imaginemos que o sistema deva somar RA com RB e armazenar o resultado em RA.

RA IN RA OU T

RB IN RB OU T

R1IN R2IN Rs OUT OBS. 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0

Arquitetura interna de um microprocessador

Embora cada μP tenha suas peculiaridades, a grande maioria deles guarda grandes semelhanças quanto ao seu modo geral de funcionamento. A figura a seguir ilustra a arquitetura básica de um microprocessador:

acumulador

U.L.A.

REG temp

REG D

REG C

REG B

REG A

unidade de deslocamento

PC

REG. de instrução

lado externo do μP

REG barramento de dados

REG barramento de endereço

decodificador de instrução e unidade de controle

Figura 12 – Arquitetura interna genérica de microprocessadores

Registradores de propósito geral

São os registradores nomeados de Reg. A até Reg. D. O número desses registradores varia de μP para μP: no 8085, são 8 registradores de 8 bits; no Z80, são 16 de 8 bits; no 8031, são 8 de 8 bits, no MCS6502, são 3 de 8 bits, e assim por diante.

Unidade Lógica e Aritmética (ULA)

Essa unidade possui somador, subtrator (em alguns μP’s, multiplicador e divisor), operações AND, OR e XOR bit a bit, incrementador e decrementador tudo integrado em uma única unidade. Portanto, todas as operações lógicas e aritméticas do μP passam obrigatoriamente por esta unidade.

Registrador temporário

Serve apenas para armazenar um dos operandos da ULA. Acumulador

Trata-se de um registrador especial dedicado às operações envolvendo a ULA. Esse registrador é um dos operandos envolvidos nas operações da ULA e também é o registrador que guarda o resultado dessa operação. Assim como os registradores de propósito geral, admite transferência bidirecional.

Program Counter (PC)

É nesse registrador que o μP guarda o endereço de memória de onde está lendo as instruções do programa. O μP usa esse conteúdo para informar à memória o endereço onde está a instrução, faz a leitura dessa instrução e guarda a instrução lida no REGISTRADOR DE INSTRUÇÃO. Logo após ter lido a instrução, o conteúdo do registrador PC é automaticamente incrementado para que o μP possa ler a próxima instrução.

Registrador de instrução

É nesse registrador que o μP guarda a instrução lida da memória para que possa ser decodificada e executada.

Decodificador de instrução e unidade de controle

Quando uma instrução é lida da memória, ela não passa de um byte qualquer lido da memória. Como saber qual a instrução que corresponde a esse byte e como tomar as devidas providências (microinstruções) para fazer o que a instrução está mandando? Como foi visto anteriormente, cada registrador precisa ser conduzido pelos seus sinais de controle R (^) IN e R (^) OUT. Não só os registradores mas todo o sistema precisa ser comandado pelos sinais de controle para que o sistema possa funcionar. Esses sinais de controle precisam obedecer a uma seqüência adequada para que não ocorram conflitos. A instrução lida passa por uma unidade com um número imenso de portas lógicas que geram os sinais de controle de todo o sistema. Pode-se dizer que essa unidade é realmente o cérebro de todo o sistema.

Unidade de Deslocamento

Essa unidade contém um registrador de deslocamento série bidirecional e é capaz de realizar um deslocamento dos bits à esquerda ou à direita, ou então, não realizar deslocamento nenhum.

0 1 0 0 1 0 1 1

1 0 0 1 0 1 1 0

Um exemplo de um byte genérico 01001011 após sofrer um deslocamento à esquerda.

0 1 0 0 1 0 1 1

1 0 0

0

1 0 1 1 0

Costuma-se diferenciar deslocamento de rotação (do inglês: SHIFT e ROTATE). Rotação faz com que o último bit ocupe o lugar do primeiro.

descartado

Deslocamento faz com que um o último bit no sentido da rotação seja descartado e um valor predeterminado (normalmente 0) seja introduzido no primeiro bit. 0 1 0 0 1 0 1 1

1 0 0 1 0 1 1 0

2 o) O μP requisita que a memória coloque no barramento o byte apontado no barramento de endereço. Para isso, faz RD=0. 3 o) O μP lê o barramento de dados (ex.: 75H) e, logo a seguir, desativa a requisição de leitura: RD=1.

Como o endereço já não é mais necessário, o μP libera o barramento de endereços.

Para a leitura, o processo é semelhante:

A13A

μP memória

A

CS A A

D

WR

RD

D

D

WR

RD

D

Exemplo de escrita de dados na memória

1 o) O μP coloca o endereço no barramento de endereços. (ex. 1019H). 2 o) O μP coloca a informação que deseja escrever na memória no barramento de dados 3 o) O μP lê o barramento de dados (ex.: 75H) e, logo a seguir, desativa a requisição de leitura: RD=1.

Dos dois exemplos acima, podemos tirar alguma conclusões:

À exceção dos sinais de dados (D 0 ...D 7 ), todos os demais sinais são sempre gerados pelo μP; portanto, esses sinais são passivos na memória. Mesmo os sinais de dados são passivos durante o processo de escrita.

FAMÍLIA DE MICROPROCESSADORES 8051

Lançado no mercado em 1980, esse microcontrolador ainda é um dos mais utilizados em projetos de sistemas digitais em todo o mundo. Por ter sido tão utilizado, seu bom funcionamento está mais do que comprovado e por ter produção em larga escala, seu preço é bem baixo (em torno de US$ 2,00).

A família é composta basicamente pelos μPs:

8031 – microprocessador de 8 bits com RAM de trabalho interna de 256 bytes. 8051 – 8031 + PROM interna de 4Kbytes (para os programas) 8751 – 8031 + EPROM interna de 4Kbytes 8951 – 8031 + E^2 PROM interna de 4Kbytes

Com o sucesso desses processadores, logo surgiram variantes com algumas modificações:

80C31 – construído com tecnologia CMOS 80HC31 – High Speed CMOS 80C51, 80HC51, 87C51, 87HC51, 89C51, 89HC 8032 – possui 1 timer a mais que o 8031 e possui Watch Dog. 8052 – 8032 com 8Kbytes de PROM 8051XA – versão 16 bits do 8031 com várias modificações na estrutura interna

O maior fabricante de processadores dessa família na atualidade é a Phillips Semiconductors.

As memórias de um sistema 8051

Os 8051 possuem três tipos de memórias:

  • Memória RAM de dados interna, cuja capacidade é de 128 bytes ou 256 bytes.
  • Memória (E)EPROM interna (depende do μP) de programa, cuja capacidade é de 4 Kbytes. Essa memória somente está disponível se o sinal EA=1.
  • Memória (E)EPROM externa de programa. Essa memória somente está disponível se o sinal EA=0.
  • Memória RAM de dados externa.

A memória de programa ou é interna ou externa, não ambas.

PINAGEM DOS 8051

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

P1. P1. P1. P1. P1. P1. P1. P1. RST (RXD) P3. (TXD) P3. (INT0) P3. (INT1) P3. (T0) P3. (T1) P3. (WR) P3. (RD) P3. XTAL XTAL VDD

VSS P0. P0. P0. P0. P0. P0. P0. P0. EA ALE/PROG PSEN P2. P2. P2. P2. P2. P2. P2. P2.

O μp 8051 possui 4 portas de 8 bits: P0, P1, P2 e P3.

Essas portas podem ter seus bits acessados individualmente ou acessados em grupo de 8 bits formando um byte.

A porta P3 possui sinais especiais: RD e WR para comunicação com memórias externas, T0 e T1 são entradas pra os timers, INT0 e INT1 são entradas de interrupção e TXD (transmit) e RXD (Receive) para a comunicação serial. Caso se tenha certeza que um desses sinais nunca será usado, o seu respectivo bit pode ser usado pelo projetista para outro fim. Normalmente, evita-se isso.

Onde vão os 8 bits de barramento de dados? A porta P0 contém 8 bits usados no barramento de dados.

Onde vão os 16 bits do barramento de endereços? São usados as portas P e P2 que formam, juntos, os 16 bits usados no barramento de endereços.

Mas como pode P0 ser o barramento de dados e parte do barramento de endereços ao mesmo tempo? O μP 8051 resolve isso através de um sinal especial: ALE (Adress Latch Enable).

Quando P0 contém bits de endereço, é gerado um pulso na saída de controle ALE ( ). Quando P0 contém bits de dados, esse pulso não é gerado. Quando conectamos os 8 bits de P0 às entradas de um latch (ex: 74LS373) e conectamos o sinal ALE à entrada de CLOCK do latch, podemos nos assegurar que somente bits de endereço serão armazenados no latch.

A porta P1 não possui nenhuma função associada e pode ser utilizada pelo projetista. Costuma-se usar individualmente os bits dessa porta: Pode-se acionar lâmpadas, relés, chaves, outros CIs, gerar sinalizações ou receber sinais.

Quando o μP está executando um porgrama (software) que se encontra em uma memória EPROM externa, ele busca os bytes de instrução dessa EPROM fazendo uso das portas P0 e P2 para se comunicar com a memória mais os sinais de controle ALE e PSEN.

O sinal PSEN funciona como um sinal de requisição de leitura (uma espécie de READ ou RD) só que é usado somente para leitura de intruções.