• Nenhum resultado encontrado

Introdução A diferença primordial entre um microprocessador e um microcontrolador é que este é capaz de executar inúmeras tarefas sem depender de

N/A
N/A
Protected

Academic year: 2021

Share "Introdução A diferença primordial entre um microprocessador e um microcontrolador é que este é capaz de executar inúmeras tarefas sem depender de"

Copied!
18
0
0

Texto

(1)

a

Conteúdo

Introdução ... 1 Fabricantes de microcontroladores ... 2 Microprocessadores ... 3 Sistemas de microprocessador ... 3

Microcomputadores de um único chip ... 3

Microcontroladores ... 3

Microcontroladores PIC ... 3

Dispositivos lógicos programados ... 4

Controladores lógicos programáveis ... 4

Sistemas de microprocessador ... 4

Representação dos dados ... 5

Tipos de dados ... 6 Armazenamento de dados ... 6 O microprocessador ... 7 Operação do microprocessador ... 11 Um programa de exemplo ... 13 Um sistema de microcontrolador ... 15

(2)

1

Introdução

A diferença primordial entre um microprocessador e um microcontrolador é que este é capaz de executar inúmeras tarefas sem depender de periféricos externos. Para que um microprocessador possa funcionar, são necessários periféricos externos (chipsets, memórias, controladores, etc.), enquanto o microcontrolador é capaz de ter todos estes periféricos dentro de um só chip. Desta forma, poderíamos definir urn microcontrolador como um computador em um só chip. Obviamente, os microprocessadores conseguem um desempenho muito maior que o dos microcontroladores, chegando hoje a processar na casa dos GHz, enquanto os microcontroladores ainda processam em poucos MHz. A utilização dos microcontroladores em nosso cotidiano, no entanto, é muito maior que a dos microprocessadores, pois eles são utilizados em aparelhos eletrodomésticos como: TV; DVDs, máquinas de lavar, etc.

Atualmente, o microcontroladores são utilizados em diversos projetos eletrônicos. Apenas para citar, os microcontroladores atuam nas seguintes aplicações hoje em dia:

• automação; • robótica; • mecatrônicr • área médica • aviação; • entretenimento; • etc.

Veja que microcontroladores com características parecidas podem ser utilizados em aplicações bem distintas. O que diferencia uma aplicação da outra é a maneira como o microcontrolador está ordenado, ou seja, programado. Um microcontrolador funciona de acordo com um programa que fica salvo dentro de sua memória. Quando energizado, o microcontrolador é capaz de ler esta memória e saber o que deve fazer de acordo com o que está salvo dentro dela. Existem diversos tipos de memórias e estas são divididas em dois grupos: voláteis e não-voláteis. As memórias do tipo volátil são chamadas de RAM (Randon Access Memory) e dividem-se em dois grupos principais:

• memórias estáticas; • memórias dinâmicas.

As memórias estáticas são mais velozes que as dinâmicas, porém, também são mais caras. Nos PCs, elas são usadas na memória cache do computador, enquanto as memórias dinâmicas são usadas para armazenar grandes quantidades de dados.

A principal característica de uma memória do tipo RAM é a incapacidade de reter dados na ausência de alimentação no PC ou no microcontroiador. Já as memórias do tipo não-volátil conseguem armazenar dados na ausência de alimentação. Estas memórias estão divididas nas seguintes categorias:

• ROM (Read Only Memory);

• EPROM (Eraseble Programable Read Only Memory);

• EEPROM (Electrically Eraseble Programable Read Only Memory).

A memória do tipo ROM ou PROM consegue ser gravada uma única vez. Normalmente, esta memória já sai gravada de fábrica, e, caso haja a necessidade de salvar um novo dado, será necessário descartá-la e substitui-la por uma nova.

Já as memórias do tipo EPROM podem ser apagadas e regravadas, porém, um incoveniente deste tipo de memória é o fato dela ser apagada através de luz ultravioleta. As memórias, têm uma janela central, através da qual o apagador de memória consegue injetar o sinal ultravioleta para apagar o conteúdo interno, permitindo que elas sejam regravadas.

Já as memórias EEPROM não têm este inconveniente, pois elas são apagadas eletricamente, o que facilita a sua utilização.

(3)

2

Fabricantes de microcontroladores

Existem diversos fabricantes de microcontroladores, dentre eles podemos destacar: • National; • ATMEL; • Microchip; • Philips; • Intel; • Cypress; • etc.

Cada um destes fabricantes tem as suas famílias de microcontroladores. A National, por exemplo, conta com a família COP8, enquanto a Philips conta com a família ARM.

A Microchip tem diversas famílias de microcontroladores, dentre elas podemos citar: • família PIC10; • família PIC10; • família P1C16; • família PIC18; • família PIC24; • família dsPIC.

(4)

3

Microprocessadores

Muitos dos sistemas eletrônicos complexos atuais baseiam-se no uso de um microprocessador ou microcontrolador. Tais sistemas constituem-se em hardware controlado por software. Se for necessário modificar o modo com que o sistema se comporta, é o software (em vez do hardware) que sofre alterações.

Sistemas de microprocessador

É comum que os sistemas de microprocessador sejam montados em um quadro de circuito impresso que consiste em uma CPU de microprocessador com vários chips especializados de apoio. Esses dispositivos integrados em escala muito grande (VLSI) proporcionam entrada e saída ao sistema, controle e temporização, bem como armazenamento para programas e dados.

Aplicações comuns dos sistemas de microprocessador incluem o controle de processos industriais complexos. Os exemplos típicos baseiam-se nas famílias de chips como Z80CPU, além de Z80PIO, Z80CTC e Z80SIO.

Microcomputadores de um único chip

Um microcomputador de um único chip é um sistema de computador completo (consistindo em CPU, RAM e ROM etc) em um invólucro VLSI único. Um computador de um único chip requer muito poucos circuitos externos adicionais para fornecer todas as funções associadas com um sistema de computador completo (porém, em geral, com capacidade de entrada e saída limitada).

Os microcomputadores de um único chip podem ser programados usando memórias programáveis internas ou através de chips de memória externos. As aplicações típicas dos microcomputadores de um único chip incluem as impressoras, os controladores de instrumento e os monitores. Um exemplo típico é Z84C.

Microcontroladores

Um microcontrolador é um computador de um único chip projetado especificamente para as aplicações de controle, em vez de aplicações gerais. Eles são usados muitas vezes para satisfazer um determinado requisito de controle, tal como controlar o comando de um motor. Os microcomputadores de um único chip, por outro lado, costumam executar várias funções diferentes e podem controlar diversos processos ao mesmo tempo.

Aplicações frequentes incluem o controle de dispositivos periféricos, tais como motores, acionadores, impressoras e componentes menos importantes do subsistema. Exemplos típicos são o Z86E, 8051, 68705 e 89C51.

Microcontroladores PIC

O microcontrolador PIC é um dispositivo microcontrolador de propósito geral que costuma ser usado em uma aplicação não-integrada para executar lógica simples, temporização e controle de entrada/saída. Os dispositivos PIC proporcionam uma solução flexível de baixo custo que preenche com eficácia a lacuna entres os microcomputadores de um único chip e o uso de chips lógicos e de temporização separados.

(5)

4 Figura 1 Diagrama em blocos de um sistema de microprocessador.

Vários dispositivos PIC e microcontroladores foram produzidos incorporando um interpretador de linguagem de alto nível. O interpretador residente permite aos desenvolvedores criar as linguagens de programação, como a linguagem C, em vez de ter de recorrer à complexa linguagem de máquina. Essa característica torna os microeontroladores PIC muito fáceis de usar. Os microcontroladores PIC são usados em aplicações "autocontidas" que envolvem lógica, temporizacão e conversão simples de analógico para digital e de digital para analógico. Exemplos comuns são o PIC12C508 e PIC16C620.

Dispositivos lógicos programados

Mesmo não sendo um exemplo de dispositivo microprocessado, um dispositivo lógico programado (PLD) é um chip programável que pode lidar com operações lógicas complexas. Para sermos mais completos, incluímos aqui uma referência a tais dispositivos. Os PLDs são capazes de substituir uma grande quantidade de portas lógicas convencionais, minimizando, assim, o total de chips e reduzindo os tamanhos das placas de circuito impresso. A programação é relativamente objetiva e requer apenas a derivação das funções lógicas complexas usando a álgebra booleana ou as tabelas verdade.

Controladores lógicos programáveis

Os controladores lógicos programáveis (PLC) são sistemas baseados em microprocessador utilizados para controlar uma grande variedade de processos automáticos, da operação de um sistema aeroportuário de manipulação de bagagens até o controle da fermentação de sua cerveja favorita. Os PLCs são resistentes e modulares, sendo projetados especilicamente para operar no ambiente de controle de processos.

O programa de controle de um PLC, em geral, é armazenado em um ou mais dispositivos semicondutores de memória. O programa pode ser inserido (ou modificado) por meio de um simples programador manual, um controlador laptop ou copiado de uma rede local (LAN). Entre os fabricantes de PLC estão Allen Bradley, Siemens e Mitsubishi.

Sistemas de microprocessador

Os componentes básicos de qualquer sistema de microprocessador são: (a) uma unidade central de processamento (CPU)

(b) uma memória, consistindo em dispositivos tanto de “leitura/gravação” quanto de "apenas-leitura" (em geral, chamados RAM e ROM, respectivamente)

(c) um meio de proporcionar entrada e saída (E/S). Por exemplo, um teclado para a entrada e um monitor de vídeo para a saída.

Em um sistema de microprocessador as funções da CPU são proporcionadas por um único chip microprocessador integrado em grande escala (VLSI). Esse chip equivale a muitos milhares de transistores individuais. Os dispositivos semicondutores também são usados para viabilizar as memórias de leitura/gravação e apenas-leitura. Ambos os tipos de memória permitem “acesso aleatório”, já que qualquer item de dados pode ser recuperado com igual facilidade, independente de sua localização real dentro da memória. Independente disso, esse termo “RAM tornou-se sinônimo de memória semicondutora de leitura/gravação”.

(6)

5 Os componentes básicos do sistema (CPU, RAM, ROM e E/S) são interligados usando-se um sistema de conexão de múltiplos lios conhecido como barramento. Estão presentes três barramentos diferentes:

o barramento de endereço usado para especificar as localizacões de memória; o barramento de dados, no qual os dados são transferidos entre os dispositivos; e

o barramento de controle que provê os sinais de temporização e controle por todo o sistema.

A quantidade de linhas individuais existentes em um barramento de endereço e em um barramento de dados depende do microprocessador empregado. Os sinais em todas as linhas, não importando se eles são utilizados para endereçamento, dados ou controle, podem existir em apenas dois estados básicos: 0 lógico (baixo) ou 1 lógico (alto). Os dados e os endereços são representados por

números binários (uma sequência de 1s e 0s) que aparecem respectivamente nos barramentos de dados

e endereço.

Muitos microprocessadores projetados para aplicações de controle e instrumentação usam um barramento de dados de 8 bits e um barramento de endereço de 16 bits. Outros possuem barramentos de dados e endereço que podem operar com até 128 bits de uma vez.

O maior número binário que pode aparecer em um barramento de dados de 8 bits corresponde à condição em que todas as oito linhas estão no 1 lógico. Portanto, o maior valor de dados que pode estar presente no barramento a qualquer momento equivale ao número binário 11111111 (ou 255). Da mesma forma, o endereço mais alto que pode aparecer em um barramento de dados de 16 bits é 1111111111111111 (ou 65.535). O intervalo completo de valores de dados e endereços de um microprocessador simples desse tipo é:

Dados de 00000000 a 11111111

Endereços de 0000000000000000 a 111111111111111

Representação dos dados

Os números binários, em particular os grandes, não são muito convenientes. Para torná-los mais fáceis de lidar convertemos com frequência os números binários em hexadecimal (base 16). Esse formato é mais fácil para simples humanos compreenderem e apresenta vantagem sobre os decimais (base 10), já que pode ser convertido de/para binário com facilidade. Os primeiros dezesseis números em binário, decimal e hexadecimal são mostrados na tabela a seguir. Um único caractere hexadecimal (no intervalo de 0 a F) é usado para representar um grupo de quatro dígitos binários (bits). Esse grupo de quatro bits (ou caractere hexadecimal único) é chamado às vezes de sequência.

Um byte de dados consiste em um grupo de oito bits. Assim, um byte pode ser representado por apenas dois caracteres hexadecimais (hex). Um grupo de dezesseis bits (uma palavra) pode ser representado por quatro caracteres hex, trinta e dois bits (uma palavra dupla por oito caracteres hex e assim por diante).

O valor de um byte expresso em binário pode ser convertido facilmcnte para hex colocando os bits em grupos de quatro e convertendo cada sequência em hexadecimal usando a tabela mostrada a seguir:

(7)

6 Observe que, para evitar confusão sobre se o um número é hexadecimal ou decimal, colocamos um símbolo $ antes de um número hexadecimal, ou adicionamos um H ao final do número. Por exemplo, 64 signitica o decimal "sessenta e quatro", enquanto $64 signitica "seis-quatro" hexadecimal, o qual é equivalente ao decimal 100. Da mesma torma, 7FH significa "sete F" hexadecimal, o que equivale ao decimal 127.

Exemplo 1

Converta o hexadecimal A3 em binário.

Exemplo 2

Converta o binário 11101000 para hexadecimal.

Tipos de dados

Um byte de dados pode ser armazenado em cada endereço dentro do espaço total de memória de um sistema de microprocessador. Portanto, um byte pode ser armazenado em cada uma das 65536 localizações de memória dentro de um sistema de microprocessador com barramcnto de endereço de 16 bits.

Os bits individuais dentro de um byte são numerados de 0(bit menos significativo) a 7 (bit mais significativo). No caso das palavras de 16 bits, esses bits são numerados de 0 (bit menos significativo) a 15 (bit mais significativo).

Os números negativos (ou com sinal) podem ser representados usando-se a notação complemento de dois, na qual o bit da frente (mais significativo) indica o sinal do número (1 = negativo, 0 = positivo). Por exemplo, o número de 8 bits com sinal 10000001 representa o número decimal -1 .

O intervalo de valores inteiros dos dados que podem ser representados como bytes, palavras (word) e palavras longas (long word) são mostrados na Tabela Abaixo

Armazenamento de dados

A ROM do semicondutor dentro de um sistema de microprocessador proporciona armazenamento para o código do programa, bem como a quaisquer dados permanentes que requeiram armazenamento. Todos esses dados são classificados como não-voláteis porque permanecem intactos quando a fonte de alimentação é desconectada.

A RAM do semicondutor dentro de um sistema de microprocessador proporciona armazenamento para os dados e variáveis temporários usados pelos programas. Parte da RAM também é utilizada pelos microprocessadores como depósito temporário de dados enquanto executa as suas tarefas normais de processamento.

É importante observar que quaisquer programas ou dados armazenados na RAM serão perdidos quando a fonte de alimentação for desligada ou desconectada. A única exceção a isso é a RAM CMOS, que é mantida em atividade por uma pequena bateria. Essa memória suportada por bateria é usada para reter os dados importantes, tais como hora e data.

Quando expressamos a quantidade de armazenamento proporcionada por um dispositivo de memória, utilizamos, em geral, Quilobytes (Kbyte). É importante ressaltar que um Quilobyte de memória tem, na verdade, 1.024 bytes (não 1.000 bytes). A razão da escolha do Kbyte no lugar do kbyte (1.000 bytes) é que 1.024 é a potência de 2 mais próxima (repare que 210= 1.024).

A capacidade de uma ROM de semicondutor costuma ser especificada em termos de um intervalo de endereços e da quantidade de bits armazenados em cada endereço, por exemplo, 2K x 8 bits (capacidade = 2 Kbytes), 4 K x 8 bits (capacidade = 4 Kbytes) e assim por diante. Observe que nem sempre é necessário (ou desejável) que um espaço de memória inteiro de um microprocessador seja povoado por dispositivos de memória.

(8)

7

O microprocessador

A unidade central de processamento (CPU) do microprocessador é o cerne de qualquer sistema de microprocessador ou microcomputador e, portanto, sua operação é crucial para o sistema inteiro.

A função primária do microprocessador é buscar, decodificar e executar instruções residentes na memória. Como tal, ele deve ser capaz de transferir dados da memória externa para seus próprios registradores internos e vice-versa. Além disso, ele deve operar de forma previsível distinguindo, por exemplo, entre uma operação contida dentro de uma instrução e quaisquer endereços que a acompanham ou localizações de memória de leitura/gravação. Além do mais, várias tarefas de manutenção do sistema precisam ser executadas, incluindo a capacidade de suspensão do processamento normal, de modo a responder a um dispositivo externo que requeira atenção.

As partes principais da CPU de um microprocessador, são:

• registradores para o armazenamento temporário de endereços e dados;

• uma unidade lógica e aritmética (ALU) que executa operações aritméticas e lógicas; • uma unidade que recebe e decodifica instruções; e

• um meio de controlar e temporizar as operações dentro do sistema.

A figura abaixo mostra os aspectos internos principais de um microprocessador típico de 8 bits. Explicaremos cada um desses aspectos, de forma resumida:

Figura 2 Arquitetura interna do uma CPU do um microprocessador de 8 bits típico.

Acumulador

O acumulador funciona como um registrador origem e destino de muitas das operações básicas do microprocessador. Como registrador origem, ele contém os dados que serão usados em uma determinada operação, enquanto como registrador destino ele será usado para guardar o resultado de uma determinada operação. O acumulador (ou registrador A) aparece em uma quantidade muito grande de operações do microprocessador e, portanto, são feitas mais referências a esse registrador do que a quaisquer outros.

Registrador de instruções

O registrador de instruções proporciona uma localização de armazenamento temporário na qual a instrução atual do microprocessador é mantida enquanto é processada. As instruções de programação são passadas para o microprocessador, uma de cada vez, através do barramento de dados.

(9)

8 Na primeira parte de cada ciclo de máquina, a instrução é buscada e decodificada. A instrução é executada no segundo ciclo de máquina (e nos subsequentes). Cada ciclo de máquina gasta um tempo finito (em geral menos de 1 microssegundo), dependendo da frequência do relógio do microprocessador.

Barramento de dados (D0 a D7)

O barramento de dados externo provê uma via para os dados que interliga todos os componentes do sistema (como a memória de acesso aleatório, a memória de apenas-leitura e os dispositivos de entrada/saída). Em um sistema de 8 bits, o barramento de dados possui oito linhas de dados, com nomes que vão de D0 (o bit menos significativo) a D7 (o bit mais significativo), e os dados são movimentados em grupos de oito bits, ou bytes. Em um barramento de dados de dezesseis bits, as linhas têm nomes que vão de D0 a D15, e assim por diante.

Buffer do barramento de dado

O buffer do barramento de dados é um registrador temporário através do qual os bytes ou dados passam em seu caminho para dentro ou para fora do microprocessador. O bufter é classificado, portanto, como bidirecional, com os dados passando para fora do microprocessador em uma operação de gravação e para dentro do processador durante uma operação de leitura. O sentido da transferência de dados é determinado pela unidade de controle conforme ela responde a cada instrução individual do programa.

Barramento de dados interno

O barramento de dados interno é uma via de dados de alta velocidade que interliga todos os elementos internos do microprocessador. O fluxo de dados para trás e para frente ao longo das linhas do barramento de dados interno é constante.

Registradores de propósito geral

Muitas operações de microprocessador (por exemplo, somar números de 8 bits) requerem o uso de mais de um registrador. Há também uma necessidade de armaenar por um tempo o resultado parcial de uma operação enquanto as demais operações acontecem. Ambas essas necessidades podem ser satisfeitas fornecendo vários registradores de propósito geral. O uso atribuído a esses registradores é deixado por conta do programador.

Apontador da pilha

Quando chega o momento de suspender uma determinada tarefa para atender por um breve período a algum outro evento, a maioria dos microproeessadores usa uma região da memória de acesso aleatório externa (RAM) conhecida como pilha. Quando o programa principal é interrompido, o microprocessador coloca o conteúdo dos registradores internos temporariamente na pilha, junto com o endereço da próxima instrução do programa principal. Quando a interrupção tiver sido atendida, o microprocessador recupera os dados que foram armazenados por um tempo na pilha junto com o endereço da próxima instrução no programa principal. Assim, ele está apto a retornar ao programa principal exatamente onde parou de executá-lo e com todos os dados preservados em seus registradores. O apontador da pilha nada mais é que um registrador que contém o endereço da última localizacão da pilha utilizada.

Contador de programa

Os programas consistem em uma sequência de instruções executadas pelo microprocessador. Essas instruções são armazenadas na memória de acesso aleatório externa (RAM) ou na memória de apenas-leitura (ROM). As instruções devem ser buscadas e executadas pelo microprocessador em uma sequência rigorosa. Ao armazenar o endereço da próxima instrução a ser executada, o contador de

(10)

9 programa permite que o processador sempre saiba em que ponto do programa ele se encontra. O contador de programa é incrementado de forma automática quando cada instrução é executada.

Buffer do barramento de endereço

O buffer do barramento de endereço é um registrador temporário através do qual os endereços (nesse caso, consistindo em 16 bits) seguem seu caminho para fora do microprocessador. Em um microprocessador simples o buffer de endereço é unidirecional, com os endereços sendo colocados no barramento de endereço durante as operações tanto de leitura quanto de gravação. As linhas do barramento de endereço têm nomes de A0 a A15, onde A0 é a linha menos significativa do barramento de endereço e A16 é a mais significativa. Repare que o barramento de endereço de 16 bits pode ser usado para o acesso a 65.536 posições de memória diferentes. Um único byte de dados é armazenado em cada posição.

Barramento de controle

O barramento de controle é um conjunto de linhas de sinal usadas tanto para o controle dos dados em torno do sistema quanto para a interação com dispositivos externos. Os sinais de controle usados pelos microprocessadores tendem a ter tipos diferentes, porém os mais encontrados são os seguintes:

 READ um sinal de saída do microprocessador indicando que a operação atual é de leitura.  WRITE um sinal de saída do microprocessador indicando que a operação atual é de gravação.  RESET um sinal que restabelece os registradores internos e zera o contador de programa, de

modo que o programa possa ser reiniciado a partir do início.

 IRQ pedido de interrupção a partir de um dispositivo externo tentando ganhar a atenção do microprocessador (o pedido pode ser atendido ou ignorado, de acordo com o estado do microprocessador no momento em que o pedido de interrupção foi recebido).

 NMI interrupção não-mascanível (isto é, um sinal de interrupção que não pode ser ignorado pelo microprocessador).

Barramento de enderaço (A0 a A15)

O barramento de endereço proporciona uma via para os endereços que liga todos os componentes do sistema (como a memória de acesso aleatório, a memória de apenas-leitura e os dispositivos de entrada/saída). Em um sistema com um barramento de endereço de 16 bits existem dezesseis linhas de endereço com nomes que vão de A0 (bit menos sigmlicativo) a A15 (bit mais significativo). Em um sistema com um barramento de endereço de 42 bits existem 32 linhas de endereço com nomes de A0 a A31 e assim por diante.

Decodificador de instrução

O decodilicador de instrução nada mais é do que um arranjo de portas lógicas que age nos bits armazenados no registrador de instrução e que determina qual instrução eslá sendo referenciada no momento. O decodilicador de instrução fornece sinais de saída para a unidade de controle do microprocessador.

Unidade de controle

A unidade de controle é responsável por organizar o fluxo ordenado de dados dentro do microprocessador, bem como por gerar e responder aos sinais no barramento de controle. A unidade de controle também é responsável por controlar o tempo de todas as transferências de dados. Esse processo é sincronizado usando um sinal de relógio interno ou externo.

(11)

10 Como seu nome sugere, a ALU executa operações aritméticas e lógicas. A ALU tem duas entradas (nesse caso, ambas são de 8 bits). Uma dessas entradas deriva do Acumulador, enquanto a outra é tirada do barramento de dados interno através de um registrador temporário. As operações proporcionadas pela ALU incluem a adição, subtração, AND lógico, OR lógico, OR-exclusivo lógico, deslocamento para a esquerda, deslocamento para a direita etc. O resultado da maioria das operações da ALU aparece no acumulador.

Registrador de flag (ou registrador de estado)

O resultado de uma operação da ALU às vezes é importante para determinar que ação subsequente deve ocorrer. O registrador de flag contém vários bits individuais que são setados ou resetados de acordo com o resultado da operação da ALU. Esses bits são chamados de flags. Os seguintes flags estão disponíveis na maioria dos microprocessadores:

o ZERO – o flag zero é estabelecido quando o resultado de uma operação da ALU é zero (isto é, um valor de byte igual a 00000000)

o CARRY - o flag carry é estabelecido sempre que o resultado de uma operação da ALU (como a adição) gera um bit de transporte (em outras palavras, quando o resultado não cabe dentro de um registrador de 8 bits)

o INTERRUPT - o flag interrupt indica se as interrupções externas estão habilitadas ou desabilitadas no momento.

Relógios

O relógio utilizado em um sistema de microprocessador é um gerador de onda quadrada preciso e estável. Na maioria dos casos, a frequência do gerador de onda quadrada é determinada por um cristal de quartzo. Um oscilador simples de relógio de onda quadrada com 4MHz (junto com a forma de onda de relógio que ele produz) é mostrado na Figura Abaixo. Observe que um ciclo de relógio completo é designado quase sempre como estado T

Figura 3 (a) um circuito típico de relógio do microprocessador (b) em forma de onda produzida pelo circuito do relógio.

Os microprocessadores têm às vezes um circuito de relógio interno em que o cristal de quartzo (ou outro dispositivo ressonante) é conectado diretamente aos pinos no chip do microprocessador.

(12)

11 Figura 4 (a) Um relógio de CPU externo e (b) um relógio de CPU interno.

Operação do microprocessador

A maioria das operações realizadas por um microprocessador envolve o movimento de dados. Na realidade, o próprio código do programa (um conjunto de instruções armazenadas na ROM ou na RAM) deve ser trazido da memória antes da execução. Assim, o microprocessador executa uma sequência contínua de ciclos de busca e execução de instrução. A ação de trazer um código de instrução (ou operando/valor de dados) da memória envolve uma operação de leitura, enquanto a ação de mover os dados do microprocessador para a posição de memória envolve uma operação de gravação.

Cada ciclo de operação da CPU é conhecido como um ciclo de máquina. As instruções do programa podem requerer diversos ciclos de máquina (em geral, entre dois e cinco). O primeiro ciclo de máquina em qualquer ciclo consiste em uma busca de instrução (o código de instrução é lido da memoria) e é conhecido como ciclo M1. Os ciclos subsequentes, M2, M3 e assim por diante, dependem do tipo da instrução que está sendo executada. Essa sequência busca-execução é exibida na Figura Abaixo.

Figura 5 Operações de (a) leitura e (b) gravação.

Os microprocessadores determinam a origem dos dados (quando estão sendo lidos) e o destino dos dados (quando estão sendo gravados) colocando um único endereço no barramento de endereço. O endereço no qual os dados devem ser colocados (durante uma operação de gravação) ou onde os dados devem ser buscados (durante uma operação de leitura) pode fazer parte da memória do sistema (situação na qual podem estar na ROM ou na RAM) ou pode estar associado com a entrada/saída (E/S).

Uma vez que o barramento de dados está conectado a vários dispositivos VLSI, um requisito essencial de tais chips (por exemplo, ROM e RAM) é que suas saídas de dados devem ter a capacidade de ficar isoladas do barramento sempre que for necessário. Esses chips são ajustados com entradas de seleção ou habilitação acionadas pela lógica de decodificação de endereço. Essa lógica assegura que a ROM, a RAM e os dispositivos de E/S nunca tentem colocar dados no barramento ao mesmo tempo!

(13)

12 Figura 6 Um diagrama de tempo típico do ciclo de busca-execução de um microprocessador.

As entradas da lógica de decodificacão de endereço derivam de uma ou mais linhas do barramento de endereço. O decodificador de endereço divide a memória disponível em blocos que correspondem a uma determinada Função (ROM, RAM, E/S etc). Logo, esteja o processador lendo ou gravando na RAM, por exemplo, a lógica de decodificação de endereço irá assegurar que apenas a RAM seja selecionada, enquanto a ROM e a E/S permanecem isoladas do barramento de dados.

Dentro da CPU os dados são armazenados em vários registradores. Os registradores em si podem ser vistos como um escaninho que pode armazenar tantos bits quanto possível nas vagas disponíveis. Em geral, esses dispositivos podem armazenar grupos de dezesseis ou trinta e dois bits. Além disso, alguns registradores podem ser configurados como um registrador de dezesseis bits ou como dois registradores de trinta e dois bits.

Alguns registradores do microprocessador são acessíveis ao programador, enquanto outros são usados pelo próprio microprocessador. Os registradores podem ser classificados como de propósito geral ou dedicados. No último caso, uma determinada função é associada ao registrador, tal como preservar o resultado de uma operação ou sinalizar o resultado de uma comparação. Um microprocessador comum e seu modelo de registrador são exibidos na Figura Abaixo.

A unidade lógica e aritmética

A ALU pode realizar operações aritméticas (adição e subtração) e lógicas (cornplementação, AND lógico, OR lógico etc). A ALU opera em duas entradas (com dezesseis ou trinta e dois bits de tamanho, dependendo do tipo de CPU) e proporciona uma saída (novamente com dezesseis ou trinta e dois bits). Além disso, o estado da ALU é preservado no registrador-flag de modo que, por exemplo, um resultado de excesso (carry), zero ou negativo possa ser detectado.

A unidade de controle é responsável pelo movimento dos dados dentro da CPU e pelo gerenciamento dos sinais de controle, tanto internos quanto externos. A unidade de controle reivindica que os sinais necessários leiam ou gravem os dados de acordo com a instrução atual.

Entrada e saída

A transferência de dados dentro de um sistema de microprocessador envolve a movimentação de grupo de 8, 16 ou 32 bits usando a arquitetura de barramento descrita aqui. Portanto,é relativamente simples transferir dados para dentro e para fora do sistema na forma paralela. Esse processo é simplificado pelo uso de um dispositivo de E/S Paralela Programável (um Z80PI0, 8255 ou chip VLSI equivalente). Esse dispositivo fornece registradores para o armazenamento temporário dos dados que não apenas os separa, mas também proporciona um grau de isolamento elétrico do barramento de dados do sistema.

(14)

13 Figura 7 O microprocessador Z80 (exibindo alguns dos sinais de controle mais importantes) junto com seu modelo de registrador.

A transferência de dados em paralelo é adequada à operação de alta velocidade por distâncias relativamente curtas, sendo um exemplo típico a ligação de um microcomputador a uma impressora matricial adjacente.

Entretanto, há algumas aplicações nas quais a transferência de dados em paralelo é inapropriada, sendo o exemplo mais comum a comunicação de dados por meio de linhas telefônicas. Emtais casos, os dados devem ser enviados de forma serial (um bit após o outro) e não de forma paralela.

Para transmitir dados na forma serial, os dados em paralelo do microprocessador devem ser reorganizados em um fluxo de bits. Essa tarefa é bastante simplificada pelo uso de um dispositivo de interface LSI que contem um registrador de deslocamento que é carregado com os dados em paralelo do barramento de dados. Esses dados são lidos então como um fluxo serial de bits através do deslocamento sucessivo. O processo inverso, a conversão de serial para paralelo, também usa um registrador de deslocamento. Aqui os dados são carregados na forma serial, cada bit deslocando-se adiante no registrador até que ele fique cheio. Então, os dados são colocados simultaneamente nas linhas de saída paralelas. Os princípios básicos da conversão de dados de paralelo para serial e de serial para paralelo estão ilustrados na figura abaixo.

Um programa de exemplo

O programa de exemplo a seguir (tabela abaixo) está escrito em código de máquina. O programa transfere dados de 8 bits de uma porta de entrada (Porta A), complementa (isto é, inverte) os dados (mudando os 0s para 1s e os 1s para 0s em cada posição de bit) e depois envia o resulta do para uma porta de saída (Porta B). O programa repete o processo indefinidamente.

Figura 8 Conversão (a) de serial para paralelo e (b) de paralelo para serial. Um programa simples de exemplo

(15)

14 Figura 9 (a) Fluxograma do programa de exemplo e (b) os oito bytes de código de programa armazenados na memória.

Apenas três instruções do microprocessador são necessárias para executar essa tarefa junto com uma quarta instrução (salto) que provoca a repelição das três instruções indefinidamente. É mais fácil escrever um programa curto como esse em linguagem de máquina, a qual consiste em uma série de mnemônicos fáceis de lembrar. O fluxograma do programa é mostrado na figura abaixo (a).

O programa ocupa um total de oito bytes de memória, começando em um endereço hexadecimal 2000, como mostrado na figura abaixo (b). Você também devia observar que as duas portas, A e B, têm cada uma um endereço único; a Porta A está no endereço hexadecimal FF, enquanto a Poria B está no endereço hexadecimal FE.

Interrupções

Um programa que executa um loop indefinidamente tem uma aplicação prática um tanto limitada. Na maioria dos sistemas de microprocessador, desejamos ser capazes de interromper a sequência normal de fluxo do programa para alertar o microprocessador quanto à necessidade de algo. Podemos fazê-lo com um sinal conhecido como interrupção. Existem dois tipos de interrupção: mascarável e não-mascarável.

Quando é reivindicada uma interrupção não-mascarável, o processador deve suspender a execução da instrução atual e responder á interrupção de forma imediata. No caso da interrupção mascarável, a resposta do processador dependerá se as interrupções estão habilitadas no momento ou se estão desabililadas (quando habilitadas, a CPU suspenderá sua tarefa atual e executará a rotina de serviço da interrupção requisitada).

A resposta ás interrupções pode ser habilitada ou desabilitada através de instruções de programa apropriadas. Na prática, os sinais de interrupção podem ser gerados a partir de várias origens e, já que vão necessitar de sua própria resposta personalizada, deve ser fornecido um mecanismo para identificar a origem da interrupção e para chamar a rotina de serviço apropriada da interrupção. Para auxiliar nessa tarefa, o microprocessador pode usar um chip controlador de interrupção programável dedicado.

(16)

15

Um sistema de microcontrolador

A figura abaixo mostra o arranjo de um sistema de microcontrolador típico. As quantidades captadas (temperatura, posição ele) são convertidas em sinais elétricos correspondentes através de vários sensores. As saídas dos sensores (na forma digital ou analógica) são transmitidas como sinais de entrada para o microcontrolador. O microcontrolador também aceita entradas do usuário. Essas opções colocadas pelo usuário costumam incluir os valores-alvo para as variáveis (tal como uma temperatura ambiente desejada), os valores-limite (tal como a velocidade máxima de um eixo) ou restrições de tempo (tal como a hora de “ligar” e a de “desligar”, o tempo de atraso etc).

Figura 10 Um sistema de microcontrolador com entradas e saídas típicas.

A operação do microcontrolador é controlada por uma sequência de instruções de software conhecida como programa de controle. O programa de controle opera de forma contínua, examinando as entradas dos sensores, os parâmetros do usuário e os dados de tempo antes de efetuar mudanças nos sinais de saída enviados a um ou mais dispositivos controlados.

As quantidades controladas são produzidas pelos dispositivos controlados em resposta aos sinais de saída do microcontrolador. Em geral, o dispositivo controlado converte energia de uma forma para outra. Por exemplo, o dispositivo controlado poderia ser um aquecedor elétrico que converte energia elétrica de uma alimentação CA em calor, produzindo assim uma determinada temperatura (a quantidade controlada).

Na maioria dos sistemas reais há uma necessidade de que o sistema seja automático ou auto-regulador. Uma vez configurados, esses sistemas continuarão a operar sem a intervenção permanente do operador. A saída de um sistema auto-regulador e realimentada na sua entrada para produzir o que chamamos de sistema de circuito fechado. Um bom exemplo de sistema de circuito fechado é um sistema de controle de aquecimento projetado para manter constantes a temperatura ambiente e a umidade em um recinto, independente das variações nas condições externas.

Simplificando, um microcontrolador deve produzir um estado específico em cada uma das linhas conectadas a suas portas de saída em resposta a uma determinada combinação de estados presentes em cada uma das linhas conectadas a suas portas de entrada (figura abaixo). Os microcontroladores também devem ter uma unidade central de processamento (CPU) capaz de realizar operações aritméticas, lógicas e de temporização simples.

Os sinais da porta de entrada podem ter várias origens:  chaves (incluindo os botões de pressão de ação momentânea)  sensores (produzindo saídas compatíveis ao nível lógico)

(17)

16 Os sinais da porta de saída podem ser conectados a vários dispositivos:

 indicadores LED (de ambos os tipos, individual e múltiplo)

 displays com sete segmentos de LED (através de uma interface adequada)

 motores e atuadores (dos tipos linear e rotativo) através de um buffer/acionador adequado ou de uma interface dedicada

 relês (tanto do tipo eletromagnêtico convencional quanto do tipo estado sólido com acoplamento ótico)

 acionadores de transistor e outros dispositivos comutadores de estado sólido

Dispositivos de entrada

Os dispositivos de entrada fornecem informação ao sistema de computador a partir do mundo exterior. Em um computador pessoal comum o dispositivo de entrada mais óbvio é o teclado. Outros dispositivos de entrada disponíveis no PC são o mouse (dispositivo apontador), o scanner e o modem. Os microcontroladores usam dispositivos de entrada muito mais simples. Eles não precisam ser mais do que chaves individuais ou contatos que se fazem e desfazem, mas muitos outros tipos de dispositivo também são utilizados, incluindo muitos tipos de sensor que proporcionam saídas de nível lógico (como os comutadores de flutuação, os detectores de proximidade, os sensores de luz etc).

É importante observar que, para estar conectado diretamente com a porta de entrada e um microcontrolador, um dispositivo de entrada deve fornecer um sinal lógico compatível. Isso se deve ao fato de as entradas do microcontrolador poderem aceitar apenas sinais de entrada digitais com os mesmos níveis de voltagem que a fonte de alimentação lógica. O nível básico de 0 V (que costuma ser classificado como Vss no caso do controlador CMOS) e a alimentação positiva (VDD no caso de um microcontrolador CMOS) é invariavelmente de 5V±5%. Um nível de cerca de 0V indica um sinal 0 lógico, e uma voltagem aproximadamente igual à fonte de alimentação positiva indica um sinal 1 lógico.

Outros dispositivos de entrada podem sentir quantidades analógicas (como a velocidade), mas usam código digital para representar seus valores como uma entrada para o sistema de microcontrolador. Alguns microcontroladores proporcionam um conversor analógico digital interno (ADC) para simplificar bastante a conexão dos sensores analógicos como dispositivos de entrada, mas onde não houver essa facilida-de será necessário usar um ADC externo que costuma ter a forma de urn único circuito integrado. A resolução do ADC dependerá do número de bits usados, sendo comuns nas aplicações de controle os dispositivos de 8, 10 e 12 bits.

Dispositivos de saída

Os dispositivos de saída são usados para transmitir informações ou ações de um sistema de computador para o mundo exterior. Em um sistema de computação pessoal, o dispositivo de saída mais comum e o monitor CRT (tubo de raios catódicos). Outros dispositivos de saída incluem as impressoras e os modems. Como ocorre nos dispositivos de entrada, os sistemas de microconlrolador usam com frequência os dispositivos de saída mais simples. Eles podem ser nada mais do que LEDs, sonorizadores piezelétricos, relês e motores. Para que possa ser conectado diretamente à porta de saída de um microcontrolador, um dispositivo de saída deve mais uma vez, ser capaz de aceitar um sinal lógico compatível.

Quando as quantidades analógicas (e não a operação digital liga/desliga simples) forem exigidas na saída será necessário um conversor digital-analógico (DAC). Todas as funções associadas com um DAC podem ser proporcionadas por um único circuito integrado. Como ocorre no ADC, a resolução de saída de um DAC depende do número de bits, sendo comuns nas aplicações de controle 8, 10 e 12 bits.

Circuitos de interface

Por fim, quando os sinais de entrada e saída não forem logicamente compatíveis (isto é, quando eles estão fora do intervalo de sinais que podem ser conectados diretamente ao microcontrolador) alguns componentes de circuito de interface são necessários para deslocar os níveis de voltagem ou para proporcionar o acionamenlo de corrente adicional. Os circuitos adicionais também podem ser necessários quando uma carga (como um relê ou motor) requer mais corrente do que a disponívela partir de um dispositivo lógico padrão ou de uma porta de saída. Por exemplo, está disponível um conjunto comum de

(18)

17 circuitos de interface (relês de estado sólido) que facilitará que um microcontrolador seja interfaceado com uma carga CA conectada à alimentação. Então, torna-se possível para um pequeno microcontrolador (operando a partir de uma alimentação de apenas 5V CC controlar um sistema de aquecimento central operando a partir de uma alimentação de 240V CC.

Figura 11 Um sinal de entrada analógico pode ser conectado a uma porta de entrada do microcontrolador através de um conversor analógico-digital. (ADC)

Referências

Documentos relacionados

O gráfico mostra as medidas das temperaturas (máxima e mínima) previstas para um mesmo dia do mês de novembro em duas capitais brasileiras: Porto Alegre e Salvador... Uma

2016: SEMINÁRIO EM ANTA GORDA: INÍCIO DO PLEITO PARA CÂMARA SETORIAL E PROGRAMA Seminário e reuniões na SEAPI para construção.. do

Desta maneira, observando a figura 2A e 2C para os genótipos 6 e 8, nota-se que os valores de captura da energia luminosa (TRo/RC) são maiores que o de absorção (ABS/RC) e

Os dados serão adicionados no fim do arquivo (“append“) se ele já existir, ou um novo arquivo será criado, no caso de arquivo não existente anteriormente. • “rb“: Abre

As três velhas conversaram por largo tempo, não porque muitas coisas se tivessem a dizer a respeito do que se acabava de passar, porém porque a comadre, remontando ao mais

ABSTRACT: The toxicological effects of crude ethanolic extracts (CEE) of the seed and bark of Persea americana have been analyzed on larvae and pupae of

Para identificar quais treinamentos serão necessários para cada trabalhador ou equipe dentro de uma organização desenvolver um programa eficaz de T&D, pode-se buscar

Neste artigo busco pensar Américo de Castro como empresário concessionário de companhias ferro carril e em outras atividades relacionadas à construção civil e que de- pendiam