Apostila de Microcontroladores Industriais Prof. Vitor Dias Introdução Nos dias de hoje temos percebido o quanto estamos ao redor de controles automáticos das mais diversas aplicações no dia-a-dia. Isto se deve ao fato de que os microcontroladores estão presentes nestes circuitos e são capazes de realizar controle de vários equipamentos. Por exemplo, podemos considerar um circuito de senha que seja utilizado ao acesso de uma área restrita com uma senha pré-estabelecida. Este tipo de circuito pode conter um microcontrolador que é responsável por este tipo de controle. Outro exemplo que podemos considerar, seria o controle do acendimento e desligamento de lâmpadas de um shopping que pode ser utilizado um microcontrolador. A vantagem que um microcontrolador tem em relação a um microprocessador é que sua aplicação não depende do uso de periféricos e memórias como nós observamos em computadores que utilizam microprocessadores pois em seu interior já contém todas estas atribuições internas e isso o faz um circuito integrado muito particular. Portanto um microcontrolador contém uma série de periféricos que são úteis para o controle de qualquer processo, sendo eles: • Memória de programa • Memória de dados • Portas de entrada e saída • Timers (Contadores) • Conversor Analógio/Digital (A/D) • Etc. 1. Arquitetura de Microcontroladores A arquitetura dos microcontroladores é composta, como já vimos, por componentes essenciais ao seu funcionamento. Dessa forma podemos descrever vários exemplos que podem ser utilizado os microcontroladores de forma eficiente. Assim sendo, apresentaremos a seguir um diagrama em blocos de um microcontrolador em quem se apresentam todos os componentes utilizados nele e descreveremos um exemplo em que utilizamos esses componentes. Fonte: http://www.mzeditora.com.br/artigos/mic_modernos.htm , 09/02/2012 às 15:47h Para um projeto de controle de um elevador necessitaremos de vários componentes, como memória ROM para o programa, memória RAM para os dados, PORTA PARALELA para realizar os acionamentos, PORTA SERIAL para receber os sinais digitais dos sensores e realizarmos as configurações e rodarmos diagnósticos, um conversor AD para ler o sensor de carga que informa o peso total das pessoas que entraram no elevador, um temporizador para controlar o tempo de abertura das portas, dentre outros componentes que poderíamos utilizar. Isso nos faz chegar ao diagrama acima apresentado e que todos estes componentes se concentram em uma única pastilha que pode realizar o controle desse sistema. Os Microcontroladores que encontramos no mercado utilizam dois tipos de arquitetura que são a de Von Neumann e a de Harvard. A arquitetura de Von Neumann é muito comum nos microcontroladores já existentes no mercado e a arquitetura Harvard corresponde àquela utilizada pela microchip. Abaixo, apresentamos um exemplo em blocos dos dois tipos de arquitetura e a sua devida descrição: 1.1. Arquitetura Harvard Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Percebemos já pela observação da figura esquemática deste tipo de arquitetura que a memória de dados é separada da memória do programa e isto garante um fluxo de informações bem mais eficiente através da CPU (Unidade Central de Processamento) e conseqüentemente no dispositivo a ser controlado. Estes tipos de microcontroladores são chamados de “RISC” que provém de Computador com um conjunto Reduzido de Instruções (Reduced Instruction Set Computer). 1.2. Arquitetura Von Neumann Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Neste tipo de arquitetura, observamos pelo diagrama esquemático que há somente um único barramento onde os dados e endereços são utilizados e isso faz com que o fluxo de dados entre a CPU e a memória de dados fique mais comprometida em termos de velocidade. Este tipo de arquitetura é chamado de “CISC” que origina de Computador com um Conjunto Complexo de Instruções (Complex Instruction Set Computer). Dessa forma, através da observação do esquema em blocos dos componentes que compõem um microcontrolador, descreveremos a utilidade de cada componente do microcontrolador em seu processo de ação no sistema. Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h 1.3. Componentes principais do Microcontrolador 1.3.1. Unidade de Memória Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h A memória corresponde a parte responsável por guardar os dados no microcontroldador de acordo com o endereço determinado. 1.3.2. Unidade Central de Processamento (CPU) Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Este bloco executa as diversas operações matemáticas em um microcontrolador. No interior da CPU se encontram os registros que ajudam a executar com maior rapidez várias operações desejadas. 1.3.3. Barramento Bus Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h O barramento é composto por 8, 16 ou mais fios. Como podemos perceber pela figura existem dois tipos de barramento que são o de dados e o de endereços e que tem funções específicas. O número de linhas do barramento de dados depende da quantidade de memória que se deseja endereçar e o número de linhas do barramento de endereço depende da largura da palavra de dados. 1.3.4. Unidade de entrada/saída Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h As entradas e saídas são denominadas I/O em que “I” significa entrada (input) e “O” significa saída (output). 1.3.5. Porta de comunicação serial Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Este controle a partir da porta serial tem por objetivo realizar controles adicionais para verificação do status dos dispositivos e até diagnosticar devidos problemas no circuito. 1.3.6. Unidade de Temporização Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h O bloco de temporização concede informações referentes ao tempo (hora, duração de um evento). A unidade básica do temporizador é o contador que incrementa ou decrementa um valor fixo de acordo com o intervalo de tempo estabelecido. Com isso podemos conhecer intervalos de tempo decorridos contendo dois marcos de tempo. 1.3.7. Watchdog (cão de guarda) Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Este bloco ser refere a um contador interno que o programa sempre põe a zero quando ele é executado corretamente. No caso de o programa travar, o zero não vai ser escrito e o contador fará o reset sozinho quando chegar ao seu valor máximo. 1.3.8. Conversor analógico – digital (A/D) Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Como os sinais dos periféricos de entrada de dados como por exemplo sensores analógicos não podem ser entendidos pelos microcontroladores da forma como sinais digitais (0 ou 1), estes sinais ou variações analógicas precisam ser convertidos em sinais digitais para que possa ser compreendido pelo microcontrolador. Esta operação será executada por este bloco (conversor A/D) que será convertido para um valor binário e com isso poderá ser processado pela CPU rapidamente. 1.3.9. Esquema detalhado de um Microcontrolador Dessa forma conhecendo todos os componentes um pouco melhor que compõem o microcontrolador, podemos apresentar a seguir um diagrama mais detalhado dos componentes internos já observados de um microcontrolador. Logo após apresentamos uma figura que inclue todos estes blocos incluídos em um circuito integrado. Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Fonte:http://www.roboticalivre.com/index.php? option=com_flexicontent&view=items&cid=58&id=70 , 09/02/2012 às 15:55h Exercícios 1) Qual alternativa representa corretamente os componentes principais pertencentes a um microcontrolador? 2) Qual alternativa representa corretamente os dois tipos de arquitetura em um microcontrolador? 3) Qual é a principal característica da arquitetura Harvard? 4) Qual o bloco do microcontrolador que executa as operações matemáticas? 5) Qual a unidade responsável por guardar os dados no microcontrolador? 6) Qual a função do Conversor A/D no microcontrolador? 7) Qual a função da Porta Paralela? 8) Qual o componente que se encontra no interior da CPU que ajuda a realizar as operações desejadas com maior rapidez? 2. Programação de Microcontroladores Os microcontroladores em geral podem ser classificados em programáveis e reprogramáveis. Ilustramos os dois tipos logo abaixo: Fonte: http://pt.wikipedia.org/wiki/Microcontrolador_PIC , 20/03/2012 às 16:00h Além disso podemos expressar a performance de um microcontrolador com relação as funcionalidades existentes através do gráfico abaixo: Fonte: http://www.roboticalivre.com/index.php? option=com_flexicontent&view=items&cid=58&id=70 Com isso, os microcontroladores se estendem a várias aplicações com inúmeras funcionalidades. Alguns exemplos de aplicações podem ser apresentados abaixo: Fonte:http://www.roboticalivre.com/index.php? option=com_flexicontent&view=items&cid=58&id=70 , 15:55h 09/02/2012 às Fonte:http://www.roboticalivre.com/index.php? option=com_flexicontent&view=items&cid=58&id=70 , 09/02/2012 às 15:55h 3. Conjunto de Instruções As instruções que são compreendidas pelo microcontrolador, são conhecidas como o “Conjunto de Instruções”. Quando se escreve um programa na linguagem Assembler, está a se “contar uma estória”, especificando as instruções pela ordem que as mesmas devem ser executadas. Abaixo apresentamos um conjunto de instruções de um microcontrolador PIC com os respectivos blocos de operações divididos: Fonte: http://www.baixebr.org/cursos-e-apostilas/apostila/apostilamicrocontroladores-pic-senac/, 20/03/2012 às 15:20h 4. Modos de Endereçamento Os seguintes modos de endereçamento podem variar de microcontrolador para microcontrolador. Dessa forma podemos apresentar como são representados os modos de endereçamento no microcontrolador 8051. Para acessar um dado, as instruções do microcontrolador 8051 contam com seis tipos de endereçamentos: Direto, Indireto, por Registradores, por Registrador Específico, Imediato e Indexado. • Endereçamento Direto: nesse modo, o endereço do operando é especificado por um campo de 8bits na instrução. Somente RAM de dados interna e a região SFR pode ser diretamente endereçadas. • Endereçamento Indireto: a instrução especifica um registrador que contém o endereço do operando. Ambas externa e interna RAM’s podem ser indiretamente acessadas. Se tal endereço possui 8bits, seu valor é armazenado em R0 ou R1, do respectivo banco selecionado, ou no Stack Pointer. Por outro lado, se tal endereço possui 16bits, seu valor é armazenado no registrador DPTR. • Endereçamento por Registradores: instruções que suportam um espaço de três bits em seu opcode podem acessar registradores de R0 a R7 dos bancos de registradores. Tais instruções são eficientes por eliminarem um byte de endereço. Quando uma instrução desse tipo é executada, um dos quatro bancos de registradores é selecionado pelos bits RS0 e RS1 de PSW em tempo de execução. • Endereçamento por Registrador Específico: algumas instruções são específicas a certos registradores. Por exemplo, algumas instruções sempre operam no Acumulador e, para elas, não é necessário um ponteiro. O próprio opcode é capaz de realizar tal tarefa. • Endereçamento Imediato: quando uma constante segue o opcode. • Endereçamento Indexado: somente a Memória de Programas, cuja única operação é leitura, pode ser acessada por esse modo. É usado para fazer leituras em tabelas na Memória de Programas. Um registrador de 16bits (DPTR ou PC) aponta para o início da tabela enquanto o Acumulador é ajustado para a n-ésima posição da mesma. O endereço de uma entrada para a tabela é formado pela soma entre o Acumulador e o registrador de 16bits. Uma outra aplicação desse tipo de endereçamento é na formação do endereço destino de jumps pela soma do índice e do valor do Acumulador. Exercícios: 1) Quais são as principais instruções de um microcontrolador? 2) Quais são os três principais tipos de endereçamento? Fonte: http://www.joiville.ifsc.edu.br/~nivaldo/Microcontroladores/Aulas/Introdu cao_ao_PIC.pdf em 09/02/2012 às 15:45h Fonte:http://www.mzeditora.com.br/artigos/mic_modernos.htm , 09/02/2012 às 15:47h http://www.roboticalivre.com/index.php? option=com_flexicontent&view=items&cid=58&id=70 , 09/02/2012 às 15:55h http://members.fortunecity.com/fabiomed/microcontroladores/m8051.htm l, 20/03/2012 às 15:00h