O que é um microcontrolador?
Basicamente, um microcontrolador é um dispositivo que integra um certo número de componentes de um sistema de microprocessador num único circuito integrado e optimizado para interagir com o mundo exterior, por meio de interfaces de bordo, ou seja, é um pequeno dispositivo que aloja um microprocessador, ROM (Read Only Memory), memória RAM (Random Access Memory), I / O (Input Output funções), e vários outros circuitos especializados em um único pacote.
Por outro lado, um microprocessador normalmente é otimizado para coordenar o fluxo de informações entre a memória separado e os dispositivos periféricos que estão localizados fora de si. Conexões com um microprocessador incluir o endereço, controle e barramentos de dados que lhe permitem selecionar um de seus periféricos e enviar para ou recuperar dados a partir dele. . Porque um processador de microcontroladores e periféricos são construídas no mesmo silício, os dispositivos são auto-suficientes e raramente têm qualquer estrutura que se estende de ônibus fora de seus pacotes
Então um microcontrolador incorpora no mesmo microchip o seguinte:
- O núcleo da CPU
- Memória (ambos ROM e RAM)
- Alguns digitais paralelo / O
Microcontrolador c fundamentais omponentes
Microcontroladores também combinar outros dispositivos, tais como:
- Um módulo temporizador para permitir que o microcontrolador para executar tarefas para determinados períodos de tempo.
- Uma porta serial I / O para permitir que os dados fluam entre o microcontrolador e outros dispositivos, como um PC ou outro microcontrolador.
- Um ADC para permitir que o microcontrolador a aceitar dados de entrada analógicos para processamento.
Arquitetura microcontrolador básico |
Blocos de construção do microcontrolador explicou
Para ilustrar as funções e interconectividade dos blocos de construção do microcontrolador, que iremos construir o bloco microcontrolador por bloco:
Unidade de memória
A memória é a parte do microcontrolador cuja função é armazenar dados.
A maneira mais fácil de explicar é descrevê-la como um grande armário com muitas gavetas. Se supusermos que marcamos as gavetas de tal forma que eles não podem ser confundidos, qualquer dos seus conteúdos, então, ser facilmente acessível. É o suficiente para saber a designação da gaveta e assim o seu conteúdo será conhecido por nós, com certeza.
Componentes de memória são exatamente assim. Para uma determinada entrada temos o conteúdo de uma determinada posição de memória endereçada e isso é tudo. Dois novos conceitos são apresentadas a nós: endereçamento e localização de memória. Memória é composto por todas as posições de memória, e endereçamento nada mais é que selecionar um deles. Isto significa que precisamos de selecionar o local de memória desejado por um lado, e por outro lado temos de esperar para que o conteúdo dessa localização.Além de ler a partir de um local de memória, a memória também deve fornecer para escrever sobre ele. Isso é feito por fornecimento de uma linha adicional chamada linha de controle. Vamos designar esta linha por R / W (read / write). A linha de controlo é utilizado da seguinte maneira: se r / w = 1, a leitura é feita e, em caso contrário é verdadeiro, então a escrita é feita no local de memória. A memória é o primeiro elemento, e precisamos de algumas funcionamento do nosso microcontrolador.
Unidade central de processamento
O bloco, que terá um construído em capacidade de multiplicar, dividir, subtrair e mover o seu conteúdo a partir de um local de memória para outro é chamado de “unidade central de processamento” (CPU). Suas posições de memória são chamados de registradores. Registradores são, portanto, locais de memória cujo papel é ajudar com a realização de várias operações matemáticas ou quaisquer outras operações com dados de onde os dados podem ser encontrados. Olhe para a situação atual. Nós temos duas entidades independentes (memória e CPU) que são interligados e, portanto, qualquer troca de dados é prejudicada, assim como a sua funcionalidade. Se, por exemplo, queremos adicionar os conteúdos de dois locais de memória e retornar o resultado mais uma vez de volta à memória, seria necessário uma conexão entre memória e CPU. Simplificando, temos de ter algum “caminho” através de dados vai de um bloco para outro.
Bus
Esse “caminho” é chamado de “bus”. Fisicamente, representa um grupo de 8, 16, ou mais fios
Existem dois tipos de bus: endereço e barramento de dados. O primeiro consiste em tantas linhas como a quantidade de memória que desejamos tratar, eo outro é tão grande como de dados, no nosso caso, 8 bits ou a linha de conexão. O primeiro serve para transmitir o endereço de memória da CPU, eo segundo para ligar todos os blocos dentro do microcontrolador. Quanto a funcionalidade, a situação melhorou, mas um novo problema também apareceu: nós temos uma unidade que é capaz de trabalhar por si só, mas que não tem qualquer contato com o mundo exterior, ou com a gente! De modo a remover esta deficiência, vamos adicionar um bloco que contém vários locais de memória, cuja uma extremidade está ligada ao barramento de dados, e o outro tem ligação com as linhas de saída no microcontrolador, que pode ser visto como pinos no componente electrónico.
Unidade de insumo-produto
Esses locais que acabamos de adicionar os chamados “portos”. Existem vários tipos de portas: entrada, saída ou portas bidirecionais. Ao trabalhar com os portos, em primeiro lugar, é necessário escolher qual a porta que precisamos trabalhar, e, em seguida, para enviar dados para, ou levá-la a partir do porto. Ao trabalhar com ele os atos de porta, como um local de memória. Algo está simplesmente sendo escrito em ou ler a partir dele, e que poderia ser notado nos pinos do microcontrolador.
Comunicação serial
Ao lado dito acima nós adicionamos à unidade já existente a possibilidade de comunicação com o mundo exterior. No entanto, esta forma de comunicação tem suas desvantagens. Um dos inconvenientes de base é o número de linhas que precisam de ser usados para transferir dados. E se ele está sendo transferido para uma distância de vários quilómetros? O número de linhas vezes o número de quilometros não promete a economia do projeto. Deixa-nos ter de reduzir o número de linhas de tal forma que não diminui a sua funcionalidade.Suponhamos que estamos a trabalhar com apenas três linhas, e que uma linha é usado para o envio de dados, para a recepção de outros, e o terceiro é utilizado como uma linha de referência para a entrada e o lado de saída. Para que isso funcione, é preciso definir as regras de troca de dados. Essas regras são chamadas de protocolo. Portanto protocolo é definido com antecedência de modo que não haveria qualquer mal-entendido entre os lados que estão se comunicando uns com os outros. Por exemplo, se um homem está falando em francês, e outro em Inglês, é altamente improvável que eles vão rapidamente e efetivamente compreender o outro. Vamos supor que temos o seguinte protocolo. A unidade lógica “1” é definido em cima da linha de transmissão até a transferência começa. Uma vez que a transferência de iniciado, se baixar a linha de transmissão para “0” lógico para um período de tempo (que designaremos por T), de modo que o lado de recepção vai saber que está a receber dados e, portanto, irá ativar o mecanismo de recepção . Vamos voltar agora para o lado de transmissão e começar a colocar zeros lógicos e os para a linha transmissor na ordem de um pouco de valor mais baixo para um pouco de mais alto valor. Que cada bit permanecer na fila por um período de tempo que é igual a T, e, no final, ou após o oitavo bit, vamos trazer a unidade lógica “1” de volta na linha que irá marcar o fim da transmissão de um dados. O protocolo que acabamos de descrever é chamado na literatura profissional NRZ (Non-Return to Zero). Como temos linhas separadas para receber e enviar, é possível receber e enviar dados (Inf.) ao mesmo tempo. Assim chamado bloco modo full-duplex que permite que esta forma de comunicação é chamado de bloco de comunicação serial. Ao contrário da transmissão em paralelo, aqui os dados se movem pouco a pouco, ou em uma série de bits que define a comunicação serial termo vem. Após a recepção dos dados que precisamos para lê-lo a partir do local de recepção e armazená-lo na memória, em oposição ao envio de onde o processo se inverte. Dados vai de memória através do bus para o local de origem, e depois para a unidade de recepção de acordo com o protocolo.
Unidade de temporização
Uma vez que temos a comunicação serial explicou, podemos receber, enviar e processar dados.
No entanto, a fim de utilizá-lo na indústria precisamos de alguns adicionalmente blocos. Um deles é o bloco temporizador que é significativo para nós porque pode dar-nos informações sobre o tempo, duração, protocolo, etc A unidade básica do temporizador é um contador livre de executar o que é, de facto, um registo cujo valor numérico vai de um em intervalos regulares, de modo que, tendo o seu valor durante tempos T1 e T2 e em função da sua diferença que pode determinar a quantidade de tempo decorrido. Esta é uma parte muito importante do microcontrolador cuja compreensão exige a maioria de nosso tempo.
Watchdog
Só mais uma coisa está exigindo a nossa atenção é um perfeito funcionamento do microcontrolador
durante a sua run-time. Suponha-se que, como resultado de alguma interferência (que muitas vezes ocorre na indústria), o nosso microcontrolador pára de executar o programa, ou pior, ele começa a trabalhar de forma incorreta.
Naturalmente, quando isso acontece com um computador, nós simplesmente redefini-lo e ele vai continuar trabalhando . No entanto, não há botão de reset que pode empurrar o microcontrolador e, assim, resolver o nosso problema. Para superar esse obstáculo, precisamos de introduzir mais um bloco chamado watchdog.Este bloco é de fato outro contador free-run, onde o nosso programa tem de escrever um zero em cada vez que ele executa corretamente. No caso de que o programa fica “preso”, o zero não será escrito, e contra si só irá redefinir o microcontrolador após atingir seu valor máximo. Isto irá resultar na execução do programa de novo, e correctamente desta vez. Esse é um elemento importante de qualquer programa para ser confiável sem a supervisão do homem.
Conversor analógico-digital (ADC)
Como os sinais periféricos são substancialmente diferentes das que o microcontrolador pode compreender (zero e um), têm de ser convertidos em um padrão que pode ser compreendido por um microcontrolador.Esta tarefa é realizada por um bloco de conversão de analógico para digital ou por um ADC. Este bloco é responsável pela conversão de uma informação sobre algum valor analógico para um número binário e para segui-lo através de um bloco de CPU para que bloco do processador pode processar-lo ainda mais.Finalmente, o microcontrolador está concluído, e tudo o que precisamos fazer agora é para montá-lo em um componente eletrônico onde ele vai acessar blocos internos através dos pinos externos. A imagem abaixo mostra o que um microcontrolador é por dentro.
As linhas finas, que conduzem a partir do centro para os lados do microcontrolador representam fios de ligação blocos internos, com os pinos da caixa do microcontrolador assim chamadas linhas de ligação. Gráfico na página seguinte representa a seção central de um microcontrolador. Para uma aplicação real, um microcontrolador por si só não é suficiente. Ao lado de um microcontrolador, precisamos de um programa que seria executado, e mais alguns elementos que compõem a lógica de interface para os elementos de regulação.
Programa
Escrita Programa é um campo especial do trabalho com microcontroladores e é chamado de “programação”.Tente escrever um pequeno programa em uma linguagem que vamos fazer até nós mesmos em primeiro lugar e, em seguida, iria ser compreendida por qualquer pessoa. INICIAR REGISTO1 = MEMÓRIA LOCATION_A register2 = MEMÓRIA LOCATION_B PORTA = REGISTO1 + register2 FIM O programa adiciona os conteúdos de dois locais de memória e vê a sua soma na porta A. A primeira linha do programa está para mover o conteúdo do local de memória “A” em um dos registros da unidade de processamento central. Como precisamos dos outros dados, bem como, também vamos movê-lo para outro registo da unidade de processamento central. A próxima instrução instrui a unidade central de processamento para adicionar os conteúdos desses dois registos e enviar o resultado para o porto A, de modo que soma de que a adição seria visível para o mundo exterior. Para um problema mais complexo, programa que funciona em sua solução será maior. programação pode ser feita em várias línguas como o Assembler, C e Basic que são mais comumente usados idiomas. Assembler pertence a diminuir linguagens de nível que estão programados lentamente, mas ocupam o mínimo de espaço na memória e dá os melhores resultados, onde a velocidade de execução do programa está em causa. Como é a língua mais comumente usada na programação de microcontroladores será discutido em um capítulo posterior. Programas em linguagem C são mais fáceis de ser escrita, mais fácil de ser compreendido, mas são mais lentos na execução dos programas do montador.Basic é a mais fácil de aprender, e suas instruções estão mais próximos a maneira de um homem de raciocínio, mas como linguagem de programação C também é mais lento que o assembler. Em qualquer caso, antes de fazer a sua mente sobre um desses idiomas, você precisa considerar com cuidado as exigências de velocidade de execução, para o tamanho da memória e para a quantidade de tempo disponível para a sua montagem. Depois que o programa é escrito, teríamos instalar o microcontrolador em um dispositivo e executá-lo. Para fazer isso, precisamos adicionar mais alguns componentes externos necessários para o seu trabalho. Primeiro temos que dar vida a um microcontrolador, ligando-o a uma fonte de alimentação (energia necessária para o funcionamento de todos os instrumentos eletrônicos) e oscilador cujo papel é semelhante ao papel que desempenha no coração de um corpo humano. Com base nos seus relógios microcontrolador executa as instruções de um programa. Como ele recebe a oferta microcontrolador irá realizar um pequeno check-up em si mesmo, olhar para cima no início do programa e começar a executá-lo. Como o dispositivo vai trabalhar depende de muitos parâmetros, o mais importante dos quais é a perícia do desenvolvedor de hardware, e na experiência do programador em obter o máximo proveito do aparelho com o seu programa.
Microcontroladores versus microprocessadores:
Microcontrolador difere de um microprocessador de muitas maneiras. Primeiro e o mais importante é a sua funcionalidade. A fim de que um microprocessador para ser usado, outros componentes, tais como a memória, ou componentes para a recepção e envio de dados deve ser adicionada a ele. Em resumo, isso significa que o microprocessador é o verdadeiro coração do computador. Por outro lado, o microcontrolador é concebido para ser tudo isso em um. Não há outros componentes externos são necessários para a sua aplicação, porque todos os periféricos necessários já estão incorporada.