Você está na página 1de 13

ETEPAM

Microcontrolador
Aluno: Bruno Souto de Albuquerque

Recife, 29 de setembro de 2011.

ndice

Introduo Histria Microprocessador versus Microcontrolador O que um microcontrolador Memria Unidade Central de Processamento (CPU) Barramento de comunicao (Bus) Entrada/Sada (I/O Input/Output) Temporizador ou Contador Livre Arquitetura Mquina Von Neumann Mquina Harvard Concluso Bibliografia

1. Introduo
As circunstncias que se apresentam hoje no campo dos microcontroladores tm os seus primrdios no desenvolvimento da tecnologia dos circuitos integrados. Este desenvolvimento tornou possvel colocar centenas de milhares de transistores num nico chip. Isso constituiu um pr-requisito para a produo de microprocessadores, e os primeiros computadores foram construdos adicionando perifricos externos tais como memria, linhas de entrada e sada, temporizadores e outros. Um crescente aumento do nvel de integrao permitiu o aparecimento de circuitos integrados contendo simultaneamente processador e perifricos. Foi assim que apareceu o primeiro chip contendo um microcomputador e que mais tarde haveria de ser designado por microcontrolador

2. Histria
O primeiro microprocessador foi desenvolvido por uma ento pequena empresa chamada Intel (acrnimo de Integrated Electronics) nos primrdios dos anos 1970. O cliente era uma companhia japonesa de nome Busicon, que no comprou a ideia. Como a Intel teve que arcar com os custos do desenvolvimento e no tinha um cliente que comprasse o produto, resolveu coloc-lo no mercado como um sistema microprocessador de uso geral (ou, como chamam em ingls, general purpose) para aplicaes onde componentes discretos de lgica digital eram empregados. O componente foi um sucesso e logo a Intel desenvolveu um novo microprocessador de 4 bits chamado 4004. Em 1974, um microprocessador mais poderoso de segunda gerao (denominado 8008) foi anunciado e fornecido como um componente simples, que foi rapidamente seguido pelo Intel 8080. Ambos, o 8008 e o 8080 eram alimentados a partir de uma fonte de 5 VCC, usando tecnologia N-MOS. No mesmo perodo, a Motorola lanou o seu primeiro microprocessador, denominado 6800, que possua um processador de 8 bits com a mesma capacidade de processamento do Intel 8080. Nesta ocasio, a arquitetura interna usada no Intel 8080 e no Motorola 6800 era muito diferente. O Intel 8080 utilizava uma arquitetura de registros AX, BX, CX, DX e HL, todos de 16 bits, porm, capazes de serem utilizados como pares de registros de 8 bits, isto , o registro AX poderia ser usado como dois registros separados AH e AL onde AH era a parte alta (H = high) do byte do registro AX, e AL era a parte baixa (L = low) do byte do registroAX. Desta forma, os registros de 16 bits AX, BX, CX, DX e HL poderiam ser utilizados como AH, AL, BH, BL, CH, CL, DH, DL, H e L, todos de 8 bits. O Intel 8080 possua o mapa de I/O (Input/Output Entrada/Sada) separado da memria de dados. Isto significa que, para comandar entrada/sada do dispositivo, instrues especiais deveriam ser implementadas tais como IN para instruo de entrada e OUT para instruo de sada. O acesso memria de dados (que possua um mapa diferente) utilizava a instruo MOV. O Motorola 6800 utilizava o que se chamava de Memory Mapped I/O (memria mapeada como I/O), o que significa que tanto a memria de dados quanto de Entrada/Sada dividiam o mesmo mapa. O conjunto de registros era muito menor, consistindo em dois acumuladores de 8 bits (A e B) e um registro indexador de 16 bits chamado X. Estes registros podem suportar uma gama de modos de endereamento totalmente voltados para um nmero pequeno de registros (o que torna a programao tambm mais simples). Para se ter acesso a dados da memria ou das Entradas/Sadas necessrio utilizar uma instruo do tipo LDAA; para escrever dados na memria ou nas Entradas/Sadas necessrio utilizar uma instruo do tipo STAA. O acesso ao registro X dever ser via suas prprias instrues, isto , LDX e STX. Intel e Motorola mantiveram as diferenas fundamentais na arquitetura de seus processadores mesmo nos modelos mais modernos.

No caso dos processadores desenvolvidos pela Intel, o modelo 8080 evoluiu no modelo 8085 (tambm com registros de 8 bits como no modelo 8080) at o processador de terceira gerao (com registro de 16 bits), o modelo 8086 que, na sua forma de pseudo-16 bits 8088, foi empregado na construo dos primeiros IBM PC (IBM Personal Computer). O modelo 8088 era o modelo 8086 com um barramento de dados de 8 bits, o que tornava fcil a interligao com os dispositivos de 8 bits existentes naquela ocasio. Na sequencia, foram seguidos pelos modelos 80286, 80386 (com processador de 32 bits), e o 80486, chegando aos modelos Pentium (com processadores de 64 bits) existentes atualmente. A famlia 80x86 e Pentium foram desenvolvidos para aplicaes em computadores pessoais e possuem um vasto mapa de memria. Os processadores da Motorola seguiram caminho semelhante com o modelo 6800 que foi substitudo pelo 6809 (8 bits), o 68000 (16 bits), os 68010,68020 e 68030, utilizados em muitas estaes de trabalho e principalmente no modelos Apple MAC. O ncleo do processador Intel 8080 foi utilizado na linha de microcontroladores 8048 e 8051, que sobrevive at os dias atuais. A Intel, hoje, desenvolve uma gama de microcontroladores muito mais complexa que os modelos bsicos originais. Motorola seguiu pelo mesmo caminho com os microcontroladores baseados no modelo 6800 (6805,6808 e 6811, utilizado atualmente). Logo, muitos dos atuais microcontroladores so originrios nas famlias 8080 e 6800. Outros fabricantes, como a Rockwell que produziu microprocessadores com arquitetura 6800 (6502), enquanto que a Zilog desenvolveu o famoso Z80 (com arquitetura 8080). O desenvolvimento dos modelos mais recentes de microcontroladores utilizando a arquitetura Harvard e o uso de Instrues Reduzidas (RISC Reduced Instruction Set Computers) levou aos componentes comercializados pela Microchip (PIC), Motorola (MSP), STMicroelectronics (ST7) e outros.

3. Microprocessador versus Microcontrolador


Um microcontrolador difere de um microprocessador em vrios aspectos e o mais importante, a sua funcionalidade. Para que um microprocessador possa ser usado, outros componentes devem ser adicionados, tais como memria e componentes para receber e enviar dados (Entradas/Sadas). Em resumo, isso significa que o microprocessador o verdadeiro corao do computador.

Fig. 3.1 - Estrutura bsica do microprocessador A fig.3.1 mostra a interconexo entre o microprocessador e a unidade externa de memria. Se houver a incluso de unidades de Entrada/Sada (I/O), novos componentes e interconexes devero ser acrescentadas. Por outro lado, o microcontrolador foi projetado para ter tudo num s. Nenhum outro componente externo necessrio nas aplicaes, uma vez que todos os perifricos necessrios j esto contidos nele.

Fig.3 2 - Estrutura bsica do microcontrolador A fig.3 2 mostra a estrutura interna de um microcontrolador (no expandido) contendo todas as interfaces e memrias necessrias dentro de um nico encapsulamento, reduzindo drasticamente o nmero de componentes externos na aplicao.

4. O que um Microcontrolador
Um microcontrolador um computador em um nico chip otimizado para controlar dispositivos externos enfatizando a autossuficincia e baixo custo. Inclui um ncleo contendo a Unidade Central de Processamento (CPU Central Processing Unit), memria de programa normalmente do tipo Flash, memria para dados dos tipos RAM e EEPROM, um ou mais temporizadores, entrada/sadas para ligao com elementos perifricos externos, tudo isto dentro de um nico circuito integrado. Na sequencia, vamos descrever alguns elementos do microcontrolador: 4.1. Memria Memria a parte do microcontrolador que tem a funo de guardar dados. Pode-se imaginar que uma memria como um armrio com diversas gavetas onde, em cada gaveta so guardadas diversas informaes. Se identificarmos cada gaveta do armrio com um nome especfico e nico para cada uma, ento o contedo de cada gaveta ser conhecido atravs do nome daquela gaveta. As memrias so componentes semelhantes ao armrio - para um determinado endereo, possvel obter o contedo deste endereo, portanto, uma memria nada mais do que o conjunto de todos os locais de memria (gavetas) e endereamento nada mais que selecionar um deles. Isto significa que precisamos selecionar o endereo desejado (gaveta) e esperar que o contedo desse endereo seja apresentado (abrir a gaveta). Alm de ler um local de memria (ler o contedo da gaveta), tambm possvel escrever num endereo de memria (introduzir um contedo na gaveta). Isto feito utilizando uma linha adicional chamada linha de controle. A memria de um controlador utiliza trs tipos bsicos: Memria de Programa: armazena o programa que o controlador utiliza quando em operao. Esta memria do tipo FLASH, isto , mesmo quando o dispositivo for desligado da fonte de alimentao, os dados armazenados nesta memria no so perdidos (apagados). Permite ser apagada e gravada inmeras vezes (cerca de 10.000 ciclos de gravao) o que torna seu uso de extrema importncia em microcontroladores. RAM (Randomic Access Memory): armazena os registros especiais bem como os resultados das operaes realizadas pelo programa. Uma vez desligada a fonte de alimentao, os valores contidos nesta memria so perdidos (apagados). EEPROM (Electrally Erasable Programable Read Only Memory): os registros que no devem ou no podem ser perdidos quando a fonte desligada so armazenados neste tipo de memria, que s pode ser gravada/apagada mediante comandos especficos.

4.2. Unidade Central de Processamento (CPU) Admitindo que existam 3 localizaes de memria em um bloco especfico para que se possa ter a capacidade de realizar operaes de somar, multiplicar, dividir, subtrair e mover os seus contedos de um local de memria para outro, este bloco recebe o nome de "Central Processing Unit" (CPU) ou Unidade Central de Processamento, e os locais de memria nela contidos chamam-se registros, conforme se pode ver na fig. 4.1.

Fig. 4.1 Exemplo de CPU

4.3. Barramento de Comunicao (Bus) Com dois blocos independentes (Memria e CPU), existe a necessidade de interligao entre eles para que, por exemplo, uma operao que some os contedos de dois locais da memria e guarde o resultado em outro local da memria seja realizada, isto , precisa de um caminho atravs do qual os dados possam passar de um bloco para outro. Esta interligao designada Barramento (Bus) que corresponde a um grupo de 8, 16 ou mais condutores que interliga eletricamente um bloco a outro. Existem dois tipos de barramento: Barramento de dados: interliga todos os blocos dentro do microcontrolador, o nmero de linhas depende do comprimento da palavra de dados. Barramento de endereos: interliga a CPU com a Memria, o nmero de linhas depende da quantidade de memrias que devem ser endereadas.

A fig.4.2 mostra a conexo entre a Memria e a CPU utilizando barramentos para ganhar funcionalidade.

Fig.4.2 Barramento interligando CPU com Memria Os registros so locais de memria cujo papel ajudar a executar as vrias operaes matemticas ou quaisquer outras operaes com dados, quaisquer que sejam os locais em que estes se encontrem. 4.4. Entrada/Sada (I/O Input/Output) A Entrada/Sada (I/O) a porta de comunicao do microcontrolador com o mundo exterior. So designadas como PORT e podem reunir, de acordo com o modelo do controlador, diversas funes: Entrada Digital Sada Digital Entrada e Sada Digital Entrada Analgica Entrada/Sada de Comunicao Serial Outras de diversas aplicaes e complexidades

Fsica e eletricamente, o PORT est conectado com os pinos de conexo do circuito integrado logo, os circuitos externos podem enviar sinais e informaes ao microcontrolador bem como receber sinais e informaes do microcontrolador. Um PORT funciona como uma posio de memria, isto , possvel realizar uma operao de escrita bem como realizar uma operao de leitura desta posio de memria. Como est interligado ao exterior pelos pinos do circuito integrado, o resultado das operaes permitem controlar dispositivos externos e ler o estado dos dispositivos externos.

A fig.4.3 mostra o diagrama simplificado de uma unidade de I/O para comunicao com o mundo externo ao microcontrolador.

Fig.4.3 Diagrama Simplificado da Unidade I/O I/O digitais so comumente agrupadas no comprimento equivalente de um registro de 8 bits, que corresponde a um PORT, que pode ser configurado tanto como entrada como sada. Existem excees, que dependem do tamanho e da capacidade do microcontrolador onde um PORT pode conter apenas 1 bit, 4 bits ou 6 bits, considerando os modelos de mdia capacidade. 4.5. Temporizador ou Contador Livre Os microcontroladores possuem um registro cujo valor numrico incrementa automaticamente uma unidade em intervalos de tempo definidos. Portanto, este registro pode ser utilizado como uma base de tempo precisa e independente de um programa especfico para que seja realizado, podendo ser considerada a mais poderosa ferramenta existente em um controlador. O entendimento do correto funcionamento deste temporizador ou contador livre permite controle sobre variveis cclicas tais como sinais de tenso senoidal da rede de energia que devem ser sincronizados com elementos de controle (Triac) para acionamentos externos. A fig.4.4 mostra o diagrama simplificado do temporizador onde se pode visualizar um sinal de sada de controle.

Fig.4.4 Diagrama Simplificado do Temporizador ou Contador Livre

5. Arquitetura
5.1. Mquina Von Neumann No comeo dos anos 1950, John Von Neumann props o conceito de computador com programa armazenado, que veio a ser o fundamento dos processadores mais modernos atualmente. Na Mquina Von Neumann o programa e os dados ocupam a mesma memria e utilizam o mesmo barramento de comunicao. O tamanho da palavra utilizada para a instruo o mesmo tamanho do dado, isto , 8 bits. Para a realizao de uma operao, o processador l uma instruo para, na sequencia, movimentar o dado na memria at a posio solicitada pela instruo. Enquanto o dado no ocupar a posio da memria, o processador no pode ler a instruo seguinte, uma vez que a atualizao dos endereos ocorre passo a passo. Consequentemente, a sequencia lgica de processamento consiste em: Ler instruo Movimentar dado Ler instruo Movimentar dado

E assim sucessivamente. Logo, pelo barramento de comunicao circulam dados e instrues alternadamente. 5.2. Mquina Harvard O conceito Harvard mais recente que o Von Neumann e surgiu da necessidade de aumentar a velocidade dos processadores sem aumentar significativamente seu tamanho ou oscilador. Para tanto, foram alocadas duas reas de memria uma para armazenar o programa e outra para armazenar os dados. Ao mesmo tempo, dividiram-se os barramentos de comunicao de tal forma que em um barramento circulam somente dados enquanto no outro circula somente endereos. Esta separao permitiu que o tamanho da palavra no ficasse limitado a apenas 8 bits, aumentando para 14 bits dividido em OPCODE (cdigo operacional), que especifica o tipo de instruo e um ou mais operadores (colocado nos 6 bits mais significativos), enquanto os demais 8 bits armazenam o dado. Como o nmero de bits reservados para a instruo pequeno, o nmero de instrues para operar um microcontrolador tambm pequeno. A fig.5.1 mostra um diagrama comparativo entre as duas mquinas:

Fig.5.1 Comparao entre Arquiteturas

6. Concluso

7. Bibliografia