![]() |
Microcontroladores PIC on-line GRÁTIS! |
|
Indice |
![]() |
|||
|
|
Sistema de desenvolvimento | ||||||
|
|
Contacte-nos | ||||||
|
|||||||
|
CAPÍTULO 1 Introdução aos Microcontroladores
Introdução As circunstâncias que se nos deparam hoje no campo dos microcontroladores têm os seus primórdios no desenvolvimento da tecnologia dos circuitos integrados. Este desenvolvimento tornou possível armazenar centenas de milhares de transístores num único chip. Isso constituiu um pré-requisito para a produção de microprocessadores e, os primeiros computadores foram construídos adicionando periféricos externos tais como memória, linhas de entrada e saída, temporizadores e outros. Um crescente aumento do nível de integração, permitiu o aparecimento de circuitos integrados contendo simultaneamente processador e periféricos. Foi assim que o primeiro chip contendo um microcomputador e que mais tarde haveria de ser designado por microcontrolador, apareceu. É no ano de 1969 que uma equipa de engenheiros japoneses pertencentes à
companhia BUSICOM chega aos Estados Unidos com a encomenda de alguns
circuitos integrados para calculadoras a serem implementados segundo os
seus projectos. A proposta foi entregue à INTEL e Marcian Hoff foi o
responsável pela sua concretização. Como ele tinha tido experiência de
trabalho com um computador (PC) PDP8, lembrou-se de apresentar uma solução
substancialmente diferente em vez da construção sugerida. Esta solução
pressupunha que a função do circuito integrado seria determinada por um
programa nele armazenado. Isso significava que a configuração deveria ser
mais simples, mas também era preciso muito mais memória que no caso do
projecto proposto pelos engenheiros japoneses. Depois de algum tempo,
embora os engenheiros japoneses tenham tentado encontrar uma solução mais
fácil, a ideia de Marcian venceu e o primeiro microprocessador nasceu. Ao
transformar esta ideia num produto concreto, Frederico Faggin foi de uma
grande utilidade para a INTEL. Ele transferiu-se para a INTEL e, em
somente 9 meses, teve sucesso na criação de um produto real a partir da
sua primeira concepção. Em 1971, a INTEL adquiriu os direitos sobre a
venda deste bloco integral. Primeiro eles compraram a licença à companhia
BUSICOM que não tinha a mínima percepção do tesouro que possuía. Neste
mesmo ano, apareceu no mercado um microprocessador designado por 4004.
Este foi o primeiro microprocessador de 4 bits e tinha a velocidade de 6
000 operações por segundo. Não muito tempo depois, a companhia Americana
CTC pediu à INTEL e à Texas Instruments um microprocessador de 8 bits para
usar em terminais. Mesmo apesar de a CTC acabar por desistir desta ideia,
tanto a Intel como a Texas Instruments continuaram a trabalhar no
microprocessador e, em Abril de 1972, os primeiros microprocessadores de 8
bits apareceram no mercado com o nome de 8008. Este podia endereçar 16KB
de memória, possuía 45 instruções e tinha a velocidade de 300 000
operações por segundo. Esse microprocessador foi o pioneiro de todos os
microprocessadores actuais. A Intel continuou com o desenvolvimento do
produto e, em Abril de 1974 pôs cá fora um processador de 8 bits com o
nome de 8080 com a capacidade de endereçar 64KB de memória, com 75
instruções e com preços a começarem em $360. Microcontroladores versus Microprocessadores Um microcontrolador difere de um microprocessador em vários aspectos. Primeiro e o mais importante, é a sua funcionalidade. Para que um microprocessador possa ser usado, outros componentes devem-lhe ser adicionados, tais como memória e componentes para receber e enviar dados. Em resumo, isso significa que o microprocessador é o verdadeiro coração do computador. Por outro lado, o microcontrolador foi projectado para ter tudo num só. Nenhuns outros componentes externos são necessários nas aplicações, uma vez que todos os periféricos necessários já estão contidos nele. Assim, nós poupamos tempo e espaço na construção dos dispositivos. A memória é a parte do microcontrolador cuja função é guardar dados.
Os componentes de memória
são exactamente a mesma coisa. Para um determinado endereço, nós obtemos o
conteúdo desse endereço. Dois novos conceitos foram apresentados:
endereçamento e memória. A memória é o conjunto de todos os locais de
memória (gavetas) e endereçamento nada mais é que seleccionar um deles.
Isto significa que precisamos de seleccionar o endereço desejado (gaveta)
e esperar que o conteúdo desse endereço nos seja apresentado (abrir a
gaveta). Além de ler de um local da memória (ler o conteúdo da gaveta),
também é possível escrever num endereço da memória (introduzir um conteúdo
na gaveta). Isto é feito utilizando uma linha adicional chamada linha de
controle. Nós iremos designar esta linha por R/W (read/write) - ler/escrever.
A linha de controle é usada do seguinte modo: se r/w=1, é executada uma
operação de leitura, caso contrário é executada uma operação de escrita no
endereço de memória. 1.2 Unidade Central de Processamento Vamos agora adicionar
mais 3 locais de memória a um bloco específico para que possamos ter as
capacidades de multiplicar, dividir, subtrair e mover o seus conteúdos de
um local de memória para outro. A parte que vamos acrescentar é chamada
"central processing unit" (CPU) ou Unidade Central de Processamento. Os
locais de memória nela contidos chamam-se registos.
Os registos são, portanto,
locais de memória cujo papel é ajudar a executar várias operações
matemáticas ou quaisquer outras operações com dados, quaisquer que sejam
os locais em que estes se encontrem.
Neste momento, a funcionalidade já aumentou mas um novo problema apareceu: nós temos uma unidade capaz de trabalhar sozinha, mas que não possui nenhum contacto com o mundo exterior, ou seja, conosco! De modo a remover esta deficiência, vamos adicionar um bloco que contém várias localizações de memória e que, de um lado, está ligado ao bus de dados e do outro às linhas de saída do microcontrolador que coincidem com pinos do circuito integrado e que, portanto, nós podemos ver com os nossos próprios olhos. Estas localizações que acabamos de adicionar, chamam-se "portos". Existem
vários tipos de portos: de entrada, de saída e de entrada/saída. Quando
trabalhamos com portos primeiro de tudo é necessário escolher o porto com
que queremos trabalhar e, em seguida, enviar ou receber dados para ou
desse porto.
Quando se está a trabalhar com ele, o porto funciona como um local de memória. Qualquer coisa de que se está a ler ou em que se está a escrever e que é possível identificar facilmente nos pinos do microcontrolador. Anteriormente, acrescentámos à unidade já existente a possibilidade de comunicar com o mundo exterior. Contudo, esta maneira de comunicar tem os seus inconvenientes. Um dos inconvenientes básicos é o número de linhas que é necessário usarmos para transferir dados. E se for necessário transferi-los a uma distância de vários quilómetros? O número de linhas vezes o número de quilómetros não atesta a economia do projecto. Isto leva-nos a ter que reduzir o número de linhas de modo a que a funcionalidade se mantenha. Suponha que estamos a trabalhar apenas com três linhas e que uma linha é usada para enviar dados, outra para os receber e a terceira é usada como linha de referência tanto do lado de entrada como do lado da saída. Para que isto trabalhe nós precisamos de definir as regras para a troca de dados. A este conjunto de regras chama-se protocolo. Este protocolo deve ser definido com antecedência de modo que não haja mal entendidos entre as partes que estão a comunicar entre si. Por exemplo, se um homem está a falar em francês e o outro em inglês, é altamente improvável que efectivamente e rapidamente, ambos se entendam. Vamos supor que temos o seguinte protocolo. A unidade lógica "1" é colocada na linha de transmissão até que a transferência se inicie. Assim que isto acontece, a linha passa para nível lógico '0' durante um certo período de tempo (que vamos designar por T), assim, do lado da recepção ficamos a saber que existem dados para receber e, o mecanismo de recepção, vai activar-se. Regressemos agora ao lado da emissão e comecemos a pôr zeros e uns lógicos na linha de transmissão correspondentes aos bits, primeiro o menos significativo e finalmente o mais significativo. Vamos esperar que cada bit permaneça na linha durante um período de tempo igual a T, e, finalmente, depois do oitavo bit, vamos pôr novamente na linha o nível lógico "1" , o que assinala a transmissão de um dado. O protocolo que acabamos de descrever é designado na literatura profissional por NRZ (Não Retorno a Zero).
Como nós temos linhas separadas para receber e enviar, é possível receber e enviar dados (informação) simultaneamente. O bloco que possibilita este tipo de comunicação é designado por bloco de comunicação série. Ao contrário da transmissão em paralelo, aqui os dados movem-se bit após bit em série, daqui provém o nome de comunicação série. Depois de receber dados nós precisamos de os ler e guardar na memória, no caso da transmissão de dados o processo é inverso. Os dados vêm da memória através do bus para o local de transmissão e dali para a unidade de recepção de acordo com o protocolo. Agora que já temos a unidade de comunicação série implementada, nós podemos receber, enviar e processar dados.
Contudo, para sermos capazes
de utilizar isto na indústria precisamos ainda de mais alguns blocos. Um
deles é o bloco de temporização que nos interessa bastante porque pode
dar-nos informações acerca da hora, duração, protocolo, etc. A unidade
básica do temporizador é um contador que é na realidade um registo cujo
conteúdo aumenta de uma unidade num intervalo de tempo fixo, assim,
anotando o seu valor durante os instantes de tempo T1 e T2 e calculando a
sua diferença, nós ficamos a saber a quantidade de tempo decorrida. Esta é
uma parte muito importante do microcontrolador, cujo domínio vai requerer
muita da nossa atenção.
Claro que, quando isto acontece com um computador, nós simplesmente carregamos no botão de reset e continuamos a trabalhar. Contudo, no caso do microcontrolador nós não podemos resolver o nosso problema deste modo, porque não temos botão. Para ultrapassar este obstáculo, precisamos de introduzir no nosso modelo um novo bloco chamado watchdog (cão de guarda). Este bloco é de facto outro contador que está continuamente a contar e que o nosso programa põe a zero sempre que é executado correctamente. No caso de o programa "encravar", o zero não vai ser escrito e o contador, por si só, encarregar-se-á de fazer o reset do microcontrolador quando alcançar o seu valor máximo. Isto vai fazer com que o programa corra de novo e desta vez correctamente. Este é um elemento importante para que qualquer programa se execute fiavelmente, sem precisar da intervenção do ser humano. 1.8 Conversor analógico - digital
Neste momento, a configuração do microcontrolador está já terminada, tudo o que falta é introduzi-la dentro de um aparelho electrónico que poderá aceder aos blocos internos através dos pinos deste componente. A figura a seguir, ilustra o aspecto interno de um microcontrolador.
Configuração física do
interior de um As linhas mais finas que partem do centro em direcção à periferia do microcontrolador correspondem aos fios que interligam os blocos interiores aos pinos do envólucro do microcontrolador. O gráfico que se segue representa a parte principal de um microcontrolador.
|
© Copyright 2003. mikroElektronika. All Rights Reserved. For any comments contact webmaster.