MICROCONTROLADOR
PIC
MAURICIO DOS SANTOS KASTER PONTA GROSSA - 2011
SUMRIO
Construo de bancos de memrias.................................................................................3 Bancos de memrias.........................................................................................................3 Exerccios..........................................................................................................................5 Mapeando vrias memrias..............................................................................................5 Exerccios..........................................................................................................................7 Circuitos lgicos programveis.........................................................................................9 Programmable Logic Array (PLA)......................................................................................9 Arquiteturas de microprocessadores..............................................................................17 1. Arquitetura C.I.S.C. versus R.I.S.C.............................................................................17 2. Arquiteturas Harvard versus Von Neumann...............................................................19 Fluxo de dados em barramentos.....................................................................................23 Arquitetura interna de um microprocessador................................................................27 Registradores de propsito geral....................................................................................27 Unidade Lgica e Aritmtica (ULA).................................................................................27 Registrador temporrio....................................................................................................29 Acumulador......................................................................................................................29 Program Counter (PC).....................................................................................................29 Registrador de instruo.................................................................................................29 Decodificador de instruo e unidade de controle..........................................................29 Unidade de Deslocamento..............................................................................................29 Pilha.................................................................................................................................31 SINAIS DE CONTROLE ENTRE P E MEMRIA.............................................................33 Processo de leitura..........................................................................................................33 Processo de escrita.........................................................................................................35 FAMLIA DE MICROPROCESSADORES PIC...................................................................37 Caractersticas de um Microcontrolador..........................................................................37
NDICE DE FIGURAS
Figura 1 Direo dos sinais de uma memria 2764...........................................................5 Figura 2 Circuito para mapeamento de RAM 6064 e EPROM 2716.................................7 Figura 3 Exemplo esquemtico de uma PLA elementar....................................................9 Figura 4 PAL elementar programada com a funo A+BC..............................................11 Figura 5 Exemplo de arranjo matricial para PLA para um produto elementar................13 Figura 6 Exemplo de arranjo matricial para PLA completa..............................................13 Figura 7 PLA 16L8............................................................................................................15 Figura 8 Arquitetura Harvard............................................................................................19 Figura 9 Arquitetura Von Neumann..................................................................................19 Figura 10 Barramento com registradores A, B, 1, 2 e somador......................................23 Figura 11 Registrador bidirecional conectado a um barramento.....................................25 Figura 12 Arquitetura interna genrica de microprocessadores......................................27
MICROPROCESSADORES
Para realizar a transferncia simples de dados do registrador RA para o registrador RB, fazemos o sinal RAOUT=1 para conectar a sada do registrador RA ao barramento. Com isso, temos certeza que os bits presentes em RA so levados a todo o barramento. Para completar a transferncia, aplicamos um pulso de CLOCK na entrada RBIN. At mesmo nas operaes matemticas e lgicas so usadas transferncias. No sistema da figura 1, podemos perceber que o fluxo dos dados dos registradores comandado exclusivamente pelos sinais de controle. Nesse sistema os sinais de controle so: ___________________________ __________________________________________________________. O conjunto de todos os sinais de controle de um sistema compe o que chamamos MICROINSTRUO. A sequncia correta das microinstrues pode realizar diversas tarefas dentro do sistema digital. Imaginemos que o RB R1 R2 Rs OBS. 0 0 0 0 sistema deva somar RA 0 0 0 0 com RB e armazenar o 0 1 0 0 resultado em RA.
OUT IN IN OUT
RAIN 0 0 0
RAOUT 0 1 1
RBIN 0 0 0
MICROPROCESSADORES Um Barramento como uma avenida de sinais que interconectam todos os registradores de um sistema digital. Para isso importante que um registrador tenha uma conexo bidirecional com o barramento podendo ler e escrever bits nele. Imaginemos um registrador simples de 4 bits e como poderia ter uma ligao bidirecional ao barramento:
Os dados podem ser transportados de um registrador para outro obedecendo os sinais de controle RIN e ROUT.Construo de bancos de memrias.
MICROPROCESSADORES
Rinstr
SINAIS DE CONTROLE
BARR. DADOS
BARR. ENDEREO
So os registradores nomeados de Reg. A at Reg. D. O nmero desses registradores varia de P para P: no 8085, so 8 registradores de 8 bits; no Z80, so 16 de 8 bits; no 8031, so 8 de 8 bits, no MCS6502, so 3 de 8 bits, no PIC tem um acumulador mais cada um dos endereos da memria RAM mapeados como registradores, todos de 8 bits nas famlias 12, 16.
Unidade Lgica e Aritmtica (ULA)
Essa unidade possui somador, subtrator (em alguns Ps, multiplicador e divisor), operaes AND, OR e XOR bit a bit, incrementador e decrementador tudo integrado em uma nica unidade. Portanto, todas as operaes lgicas e aritmticas do P passam obrigatoriamente por esta unidade.
Registrador temporrio
MICROPROCESSADORES
Acumulador
Trata-se de um registrador especial dedicado s operaes envolvendo a ULA. Esse registrador um dos operandos envolvidos nas operaes da ULA e tambm o registrador que guarda o resultado dessa operao. Assim como os registradores de propsito geral, admite transferncia bidirecional.
Program Counter (PC)
nesse registrador que o P guarda o endereo de memria de onde est lendo as instrues do programa. O P usa esse contedo para informar memria o endereo onde est a instruo, faz a leitura dessa instruo e guarda a instruo lida no REGISTRADOR DE INSTRUO. Logo aps ter lido a instruo, o contedo do registrador PC automaticamente incrementado para que o P possa ler a prxima instruo.
Stack Pointer (SP)
o registrador que auxilia no controle da pilha de sistema. A pilha uma estrutura de armazenamento temporrio de informaes. Normalmente implementada como uma estrutura LIFO na memria RAM interna. O SP contm o endereo atual da pilha. No 8051 e no 6502 ele incrementado quando uma informao colocada na pilha e decrementado quando ela retirada. No Z80, 8085 e 80x86 (todos com arquitetura Intel) acontece o contrrio. No PIC a estrutura separada e dedicada a apenas armazenar valores do registrador PC nas chamadas de subrotinas.
Decodificador de instruo e unidade de controle
Quando uma instruo lida da memria, ela no passa de um byte qualquer lido da memria. Como saber qual a instruo que corresponde a esse byte e como tomar as devidas providncias (microinstrues) para fazer o que a instruo est mandando? Como foi visto anteriormente, cada registrador precisa ser conduzido pelos seus sinais de controle R IN e ROUT. No 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 Um exemplo de um byte genrico 01001011 aps sofrer um deslocamento esquerda. obedecer a uma seqn cia adequada para que 0 1 0 0 1 0 1 1 no ocorram conflitos. A instruo lida passa por 1 0 0 1 0 1 1 0 uma unidade com um n mero imenso de portas Costuma-se diferenciar deslocamento de rotao (do ingls: SHIFT e ROTATE). lgicas que geram os si Deslocamento faz com que um o ltimo bit no sentido Rotao faz com que o ltimo bit ocupe o da rotao seja descartado e um valor predeterminado lugar do primeiro. nais de controle de todo (normalmente 0) seja introduzido no primeiro bit. o sistema. Pode-se dizer descartado 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 que essa unidade real mente o crebro de todo 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 o sistema.
MICROPROCESSADORES
Unidade de Deslocamento
Essa unidade contm um registrador de deslocamento srie bidirecional e capaz de realizar um deslocamento dos bits esquerda ou direita, ou ento, no realizar deslocamento nenhum.
MICROPROCESSADORES
Supondo que uma dada regio da memria contenha os bytes relacionados na tabela: ... 1017 1018 1019 101A ... ... 1F 61 75 C0 ...
A13 A12 A0
CS A12 A0
P
D7 D0 RD WR D7 D0 RD
memria
1o) O P coloca o endereo no barramento de endereos. (ex. 1019H). Note que a memria usa somente A0 at A13 e que A13=0 causa a ativao da memria.
MICROPROCESSADORES 2o) O P requisita que a memria coloque no barramento o byte apontado no barramento de endereo. Para isso, faz RD=0. 3o) O P l o barramento de dados (ex.: 75H) e, logo a seguir, desativa a requisio de leitura: RD=1. Como o endereo j no mais necessrio, o P libera o barramento de endereos.
Processo de escrita
A13 A12 A0
CS A12 A0
P
D7 D0 RD WR D7 D0 RD WR
memria
1o) O P coloca o endereo no barramento de endereos. (ex. 1019H). 2o) O P coloca a informao que deseja escrever na memria no barramento de dados (ex.: 6FH). 3o) O P ativa o sinal da requisio de escrita fazendo WR=0. Nesse momento, a memria escreve o valor 6FH no endereo 1019H sobrescrevendo o que havia antes nesse endereo. 4) O P deve aguardar o tempo necessrio para que a memria complete o ciclo de escrita (normalmente na casa de dezenas de nanossegundos) antes de outra solicitao memria. Ao final desse tempo, o P deasativa o sinal de escrita (WR=1). Dos dois exemplos acima, podemos tirar alguma concluses: exceo dos sinais de dados (D0...D7), todos os demais sinais so sempre gerados pelo P; portanto, esses sinais so passivos na memria. Mesmo os sinais de dados so passivos durante o processo de escrita.
MICROPROCESSADORES
Bancos de memrias
Frequentemente quando lidamos com sistemas microprocessados torna-se de especial relevncia o conhecimento a respeito de bancos de memria e faixas de endereamento. Comecemos imaginando uma memria 2764 (EPROM de uso geral):
2764
64 Kbits prefixo 27
Como a memria possui 64 Kbits e est organizada em palavras de 8 bits, ela possui, na verdade, _____________=________ KBytes. A afirmao acima nos diz que existem 8K=____________ endereos distintos. Sendo assim, a memria possui 2n=__________, n=_______ pinos de endereamento. atravs desses pinos de endereamento que informamos memria a localizao exata da informao que ser lida ou escrita na memria. Esses pinos so nomeados de _____ at _____. Essa memria possui o seguinte mapeamento de endereos:
A12 A11 A10 A9 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 A8 0 0 0 1 A7 0 0 0 1 A6 0 0 0 . . . 1 A5 0 0 0 1 A4 0 0 0 1 A3 0 0 0 1 A2 0 0 0 1 A1 0 0 1 1 A0 0 1 0 1 HEXA
. . .
Em cada um desses endereos cabe uma palavra de 8 bits (byte). Essa memria pode ser esquematizada como na figura a seguir:
10
MICROPROCESSADORES
Exerccios
Quando um sistema possui mais memrias compartilhando o mesmo barramento de dados, torna-se necessrio fazer um mapeamento tal que as memrias no se sobreponham, ou seja, que nunca acontea de duas ou mais estarem ativas simultaneamente. Vejamos um exemplo: Deseja-se construir um sistema que possua uma EPROM 2716 e uma 6064.
2716 16 Kbits 8 = 2 Kbytes 2n = 2048 n = 11 ( A0 at A10 ) A13 A12 A11 A10 A9 0 X X 0 0 . . . 0 X X 1 1 1 0 0 0 0 . . . 1 1 1 1 1 A8 0 1 0 1 A7 0 1 0 1 A6 0 . . . 1 0 . . . 1 A5 0 1 0 1 6064 64 Kbits 8 = 8 Kbytes 2n = 8192 n = 13 ( A0 at A12 ) A4 0 1 0 1 A3 0 1 0 1 A2 0 1 0 1 A1 0 1 0 1 A0 0 1 0 1 HEXA . . . . . . EPROM
RAM
Observe que a EPROM no ir utilizar A11 e A12, sendo esses valores irrelevantes para a formao do endereo. Desse modo, pode-se acessar 11
MICROPROCESSADORES toda a EPROM usando endereos entre 0000h e 07FFh, ou entre 0800h e 0FFFh, ou entre 1000h e 17FFh, ou finalmente, entre 1800h e 1FFFh. Todas essas 4 faixas de endereamento acessam a EPROM e so redundantes. As ligaes que permitem o mapeamento acima so:
A13 A12 A11 A10 A0
A0 D7
A10
D0
CS
RD
A0 D7
D0
Exerccios
3. No exemplo acima a EPROM foi mapeada antes da RAM. Reprojete o sistema para que ocorra o contrrio (a RAM antes da EPROM). 4. Projete um sistema que possua o seguinte mapeamento:
0000h a 3FFFh 7000h a 7FFFh 8000h a FFFFh EPROM 1 EPROM 2 RAM
12
MICROPROCESSADORES
At ento, vimos diversos tipos de circuitos lgicos (portas AND, OR, NAND, NOR, XOR, NOT, Flip-flops, Contadores, etc.) com os quais podemos contruir muitos circuitos digitais. Entretanto, no so circuitos programveis. Sempre que desejarmos uma funo um pouco diferente do circuito, necessrio alterar ligaes eltricas ou at mesmo trocar circuitos integrados. Dizemos que o circuito digital altervel por Hardware, ou seja, as alteraes so fsicas. O desenvolvimento da tecnologia tornou possvel a construo de dispositivos com muitas portas lgicas integradas e fossem programveis, ou seja, para realizar alteraes na lgica do sistema digital basta programar o mesmo tipo de dispositivo (PLA) com outra funo lgica. Normalmente, as PLA possuem todas as portas lgicas que permitem ao dispositivo realizar qualquer soma de produtos com suas entradas. Imaginemos uma PLA bastante elementar com 3 entradas e 1 sada:
A B C
SINAIS DE P ROGRAMA O
UNIDADE DE PROGRAMAO
As sadas das portas AND esto todas originalmente ligadas porta OR. Atravs de um dispositivo programador especial, o usurio tem a 13
MICROPROCESSADORES possibilidade de queimar algumas dessas ligaes (fusveis) deixando outras intactas. Com isso, possvel programar qualquer funo lgica de 3 entradas no dispositivo. Imagine que o usurio deseje programar a PLA acima com a funo lgica A+BC. Em primeiro lugar, deve expandir a funo 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 funo desejada, o usurio precisa realizar algumas ligaes porta OR. Essa programao feita com a ajuda de equipamentos especiais.
A B C
Fusvel queimado SINAIS DE P ROGRAMA O
UNIDADE DE PROGRAMAO
No difcil 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 funo desejada, podem haver PLAs mais especficas. Por exemplo, se desejssemos uma PLA que gerasse apenas 1 mintermo entre 16, seria muito desvantajoso utilizarmos uma PLA de 4 entradas como descrito no pargrafo acima. Em seu lugar podemos utilizar PLAs mais simples com arranjos matriciais. 14
MICROPROCESSADORES Pode-se tirar grande proveito dos arranjos matriciais para simplificar esse grande nmero de portas. A seguir temos uma figura de um arranjo matricial capaz de efetuar as mesmas operaes de uma PLA com 4 entradas:
No primeiro caso, observamos que a PLA com arranjo matricial possui ___ portas AND, cada uma com ___ entradas, ___ portas OR com ___ entradas e uma porta AND ao final. Esse arranjo traz grande economia de
15
MICROPROCESSADORES portas para o circuito final, embora no 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 PLAs com um nmero muito maior de entradas e sadas. o caso da PLA 16L8 que possui 10 entradas, 2 sadas e 6 entradas ou sadas definveis pelo usurio. O seu esquema pode ser visto na figura a seguir.
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 O8
PLA 16L8
Essa PLA, por possuir at 16 entradas, teria 2 16=65536 portas AND, cada uma com 16 entradas. Essas sadas programveis esto todas inicialmente conectadas porta OR podendo o usurio escolher quais delas deseja desconectar (processo inverso ao que foi visto no exemplo).
16
MICROPROCESSADORES
A partir do 4004, com 46 instrues, comeava a escalada dos microprocessadores (sero, daqui para frente, referidos apenas como P) rumo a Ps mais complexos e com maior nmero de instrues. O 8008 possui 48 instrues. O 8080, 78 instrues. O 8085, aprox. 150 instrues, o Z80, mais de 500, o 8086/8088 j possui mais de 700 instrues e o 80386, mais de 1500 instrues. Isso nos mostra que, com o aumento do nmero de instrues, tambm crescia o nmero e a complexidade dos circuitos internos do P. Alguns P de arquitetura CISC atuais possuem um gigantesco volume de transistores incorporados no CHIP. Os Ps 80x86 da Intel, utilizados nos PCs so um exemplo tpico de processadores CISC. H algum tempo, a preocupao nos projetos de Ps passou a ser a velocidade de processamento e no a sua complexidade. Por isso, foram criados Ps com conjunto reduzido de instrues (menos de 250 instrues), 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 difcil. O volume de testes para certificao do seu funcionamento muito grande e a preocupao com a otimizao 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. Alm disso, o enfoque dado elevao das taxas de clock e uso de barramentos largos (64 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 faa uma movimentao de dados de 1000 bytes de uma parte da memria para outra. Em um P CISC esse programa curto (podemos supor algo em torno de 5 ou 6 bytes). Isso porque utiliza instrues 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 instrues muito simples e certamente precisaria de vrias instrues para uma tarefa feita por uma nica instruo complexa. Isso nos permite concluir: os programas de P RISC so maiores.
vantagem 1: facilidade na implementao do projeto do CHIP: ___________. vantagem 2: tamanho dos programas: _____________. vantagem 3: velocidade de processamento: _______________.
17
MICROPROCESSADORES
2. Arquitetura Harvard versus Von Neumann
Na arquitetura Harvard, h dois barramentos de endereos independentes e dois de dados tambm independentes. Enquanto um desses barramentos serve para a leitura de instrues de um programa, o outro serve para a leitura e escrita de dados. Com isso, possvel operar simultaneamente uma instruo e um byte de dados. . Isso garante maior velocidade de processamento. Atualmente, os processadores de sinais digitais (DSP) utilizam essa arquitetura. So processadores especializados no processamento dos sinais em tempo real.
A0 DA 0 CA0 A0
CAN
CRD CD0
RD D0
D7
DD7
CD7
D7
A0
A0
AN
A15
D0
D7 RD WR
D7 CS RD
A0
Na arquitetura Von Neumann, h apenas um barramento de dados e um de endereos. Neste caso, as instrues estariam em uma faixa de endereos que ative a memria que possui as instrues e os dados esto em outra faixa de endereos que ative outra memria onde pode-se ler e escrever os dados. Por exemplo, qualquer endereo entre 0000h e 1FFFh ativa a memria de programas, e entre 8000h e FFFFh ativa a memria de dados. Nessa arquitetura s possvel o acesso a uma memria de cada vez. Comparando ambas, conclui-se que Harvard mais veloz mas exige mais de um barramento, Von Neumann utiliza apenas um
D7 CS RD WR
18
MICROPROCESSADORES barramento mas no pode efetuar acessos simultneos s memrias. Alguns processadores possuem uma arquitetura mista: Os 8051 possuem apenas um barramento, mas utilizam sinais de requisio de leitura de memria independentes, um para programa, outro para dados.
19
MICROPROCESSADORES
Os 8051 possuem trs tipos de memrias: Memria RAM de dados interna, cuja capacidade de 128 bytes ou 256 bytes. Memria (E)EPROM interna (depende do P) de programa, cuja capacidade de 4 Kbytes. Essa memria somente est disponvel se o sinal EA=1. Memria (E)EPROM externa de programa. Essa memria somente est disponvel se o sinal EA=0. Memria RAM de dados externa.
20