Baixe o app para aproveitar ainda mais
Prévia do material em texto
MicrocontroladoresMicrocontroladores Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br Conceito final será constituído de duas avaliações: 1ª – Conceito avaliação teórica 2ª – Conceito dividido em duas partes - Desenvolvimento do projeto - Implementação do projeto No caso de não execução do projeto em tempo hábil, uma avaliação teórica/prática poderá ser feita para substituir o conceito 2ª. Projeto em equipe MicrocontroladoresMicrocontroladores Prof. Nivaldo T. Schiefler Jr. M.Eng Homepage: www.joinville.ifsc.edu.br/~nivaldo Email: nivaldo@ifsc.edu.br BIBLIOGRAFIA David José de Souza, Desbravando o PIC - Ampliado e Atualizado para PIC 16F628A. Erica. David José de Souza e Nicolás César Lavinia, Conectando o PIC - Recursos Avançados. Erica Fábio Pereira, Microcontroladores PIC - Técnicas Avançadas. Erica. Fábio Pereira, Microcontroladores PIC – Programação em C. Erica. Wagner da Silva Zanco, Microcontroladores PIC - Técnicas de Software e Hardware para Projetos de Circuitos Eletrônicos. Erica. MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores Por que usar ???? Onde usar ???? Custo ???? Qual tipo de microcontrolador usar ???? Tipo de programação ???? Tem material de consulta ???? MicrocontroladoresMicrocontroladores Exemplo Imagine em um sistema de controle de acesso de pessoas a uma área restrita. Para entrar no local a pessoa terá que digitar um senha. Se for usado um computador como seria o sistema ???? Quais os problemas que poderiam acontecer ???? MicrocontroladoresMicrocontroladores Um microcontrolador difere de um microprocessador em vários aspectos. Para que um microprocessador possa ser usado, outros componentes devem ser adicionados, tais como memória, AD, componentes para receber e enviar dados, etc. Em resumo, isso significa que o microprocessador é o verdadeiro coração do computador gerenciando todos os periféricos. Por outro lado, o microcontrolador foi projetado para ter tudo num só. Nos microcontroladores, nenhum outro componente externo é necessário, porque os principais periféricos necessários já estão contidos nele. Assim, nós poupamos tempo e espaço na construção dos dispositivos. Microcontroladores versus Microprocessadores MicrocontroladoresMicrocontroladores Introdução: Um microcontrolador (C) é um componente eletrônico que possui integrado na mesma pastilha um microprocessador mais uma série de periféricos que são úteis para o controle de um processo. Memória de programa Memória de dados Portas de entrada e saída Timers Conversor AD etc... Desta forma, conectando-se o mínimo de hardware ao dispositivo obtém-se o sistema microprocessado desejado. MicrocontroladoresMicrocontroladores Arquitetura Harvard x Von Neumann Os microcontroladores existentes no mercado usam em sua maioria o tipo de arquitetura de Von Neumann e os microcontroladores da microchip que será estudado, usam a arquitetura de Harvard. MicrocontroladoresMicrocontroladores Arquitetura Harvard Na arquitetura de Harvard, a memória de dados está separada da memória de programa. Assim, é possível uma maior fluência de dados através da unidade central de processamento e claro, uma maior velocidade de funcionamento do dispositivo. São designados por "microcontroladores RISC". RISC provém de Computador com um Conjunto Reduzido de Instruções (Reduced Instruction Set Computer) MicrocontroladoresMicrocontroladores Arquitetura Von Neumann Na arquitetura de Von Neumann, há um único barramento onde os dados e endereços são usados. Os microcontroladores com uma arquitetura von-Neumann são designados por 'microcontroladores CISC'. O nome CISC deriva de Computador com um Conjunto Complexo de Instruções (Complex Instruction Set Computer) Diagrama interno MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores Unidade de Memória A memória é a parte do microcontrolador cuja função é guardar dados. Para um determinado endereço, há um conteúdo desse endereço. MicrocontroladoresMicrocontroladores Unidade Central de Processamento CPU Bloco para executar operações aritmética e lógica. Desta maneira é possível multiplicar, dividir, subtrair e mover o seus conteúdos de um local de memória para outro. Os locais de memória da CPU chamam-se registros. Estes 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. MicrocontroladoresMicrocontroladores Barramento Bus O barramento fisicamente falando corresponde a um grupo de 8, 16 ou mais fios. Existem dois tipos de barramento: Barramento de dados Barramento de endereço. 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. MicrocontroladoresMicrocontroladores Unidade de entrada/saída As entradas e saídas são chamadas de portas I/O, que podem ser configuradas como entrada e saídas. I significa input ou seja entrada O significa output ou seja saída MicrocontroladoresMicrocontroladores Porta de comunicação serial MicrocontroladoresMicrocontroladores Unidade de temporização Bloco de temporização dar informação acerca da hora, duração, protocolo, etc. A unidade básica do temporizador é um contador, que é na realidade um registro cujo conteúdo aumenta de uma unidade num intervalo de tempo fixo. Desta forma o seu valor durante os instantes de tempo T1 e T2 se sabe a quantidade de tempo decorrida. Esta parte do microcontrolador, requer um domínio muito grande MicrocontroladoresMicrocontroladores Watchdog cão de guarda Este bloco de um contador continuo por um clock interno e que o programa põe a zero sempre que é executado corretamente. No caso de o programa travar, o zero não vai será escrito e o contador, por si só, se encarregar de fazer o reset do microcontrolador, quando o contador alcançar o seu valor máximo. Isto vai fazer com que o programa corra de novo e desta vez corretamente. Não está acessível ao programador MicrocontroladoresMicrocontroladores Conversor analógico - digital Como os sinais dos periféricos são substancialmente diferentes daqueles que o microcontrolador pode entender (zero e um), eles devem ser convertidos num formato que possa ser compreendido pelo microcontrolador. Esta tarefa é executada por intermédio de um bloco destinado à conversão analógica-digital (A/D). Este bloco vai ser responsável pela conversão de uma informação de valor analógico para um número binário e pelo seu trajeto através do bloco da CPU, de modo a que este o possa processar de imediato. MicrocontroladoresMicrocontroladores Diagrama interno de um microcontrolador MicrocontroladoresMicrocontroladores Microcontrolador PIC16F84 O PIC 16F84 pertence a uma classe de microcontroladores de 8 bits, com uma arquitetura RISC. O PIC é um circuito integrado produzido pela Microchip Technology Inc. O PIC esta disponível em uma ampla gama de modelos para melhor adaptar-se as exigências de projetos específicos, diferenciando-se pelo numero de linha de I/O e pelo conteúdo do dispositivo. MicrocontroladoresMicrocontroladores Características : 16F84 • 18 pinos; • 13 pinos de I/O configuráveis; • 1 K de memória de programa; • 64 bytes de EEPROM para dados; • 35 instruções; • 4 interrupções Timer de 8 bits (TMR0) Externa Mudança de estado Finalização da EEPROM • Stack com 8 níveis; • Interrupções externas disponíveis; • Memória de programa protegida contra cópias .... MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 EEPROM – (Electrical Erasable Programmable Read Only Memory) memória somente de leitura programável e apagável eletricamente. Esta é a memória de programa.Capacidade de memorização é de 1024 locações e que poderão conter somente um opcode de 14 bit. É onde se coloca o programa. Memória de programa MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 Mapa de Memória de programa Tipo : 14 bits Tamanho : 1024 palavras 1K x 14 Vetor de reset: 000h Vetor de interrupção: 004h MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 O REGISTER FILE é uma parte da locação de memória RAM denominada REGISTRO. Pode-se escrever, ler, ou modificar tranqüilamente qualquer endereço do REGISTER FILE no programa a qualquer momento em que for necessário. Tamanho de 68 x 8. EEPROM Memória de dados do sistema é uma RAM, ou seja a outra parte que juntamente com o REGISTER FILE completa uma RAM. É utilizada para guardar todas as variáveis e registradores utilizados pelo programa. É uma memória de 64 x 8 bits. Memória de dados MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 A memória EEPROM consiste em 64 posições para palavras de oito bits e cujos conteúdos não se perdem durante uma falha na alimentação. A memória EEPROM não faz parte diretamente do espaço de memória mas é acessada indiretamente através dos registros EEADR e EEDATA. Como a memória EEPROM serve usualmente para guardar parâmetros importantes (por exemplo, de uma dada temperatura em reguladores de temperatura), existe um procedimento estrito para escrever na EEPROM que tem que ser seguido de modo a evitar uma escrita acidental. Desta forma é possível gravar dados na EEPROM durante o processo. MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 Memória de Dados Register File Memória de dados Tipo : 8 bits Tamanho : 68 bytes Início: 0Ch ou 8Ch Fim: 4Fh ou CFh Dividida em 2 bancos de memórias Os endereços 50h a 7Fh e D0h a FFh são locais não implementados, se forem lidos retornam valor “zero” Dividido em: - register file (registradores especiais) - região de dados de uso geral. MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 Memória de Dados MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 A ALU (Arithmetic and Logic Unit) unidade aritmética e lógica) contém todos os circuitos destinados a desenvolver as funções de calculo e manipulação de dados durante a execução de um programa. A ALU do PIC16F84 esta preparada para operar com 8 bits, até 255. Registro W (Work) acumulador. Este registro consiste de uma locação de memória destinada a conter um só valor de 8 bits. MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 PC – (Program Counter) contador de programa. É o registrador especial que guarda o endereço da instrução na memória de programa, que será executada. No reset o PC será sempre zerado, determinando o início da execução no endereço 0000h. Stack (cascata) de 8 níveis usada nas instruções de chamada de subrotinas (call). Esta subrotina desvia o programa para um local especificado e executará a mesma, e só retornara a execução da instrução imediatamente após a chamada call, o valor será armazenado em uma área particular da memória denominada Stack. MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 O PIC16F84 dispões de um total de 13 linhas de I/O digitais organizadas em duas portas denominadas de PORTA A e PORTA B. A PORTA A dispõe de 5 linhas configuráveis tanto em entrada como em saída identificadas pelas siglas RA0, RA1, RA2, RA3 e RA4. A PORTA B dispõe de 8 linhas também configuráveis seja em entrada ou em saída identificadas pelas siglas RB0, RB1, RB2, RB3, RB4, RB5, RB6 e RB7. MicrocontroladoresMicrocontroladores Diagrama de blocos do microcontrolador PIC16F84 O registro TMR0 é um contador, ou seja um registro particular, na qual, seu conteúdo é incrementado com cadencia regular e programada diretamente pelo hardware do PIC. Na pratica, a diferença de outro registro, é que o TMR0 não mantém inalterado o valor que é memorizado, mas o incrementa continuamente O registrador irá contar até 255, quando irá recomeçar a contagem no valor zero, se não for programado outro valor novamente MicrocontroladoresMicrocontroladores Diagrama de blocos geral do microcontrolador PIC16F84 MicrocontroladoresMicrocontroladores Ciclos de máquina Clock interno é dividido por 4. Portanto, para um clock externo de 4MHz, temos um clock interno de 1MHz, logo um ciclo de maquina de 1us. A divisão é feita pelas fases Q1, Q2, Q3 e Q4. O contador de programa é incrementado automaticamente na fase Q1 do ciclo de maquina e a instrução seguinte é buscada da memória de programa e armazenada no registrador de instruções no ciclo Q4. ela é decodificada e executada no novo ciclo Q1 a Q4. MicrocontroladoresMicrocontroladores Pipeline Quando uma instrução está sendo executada em um ciclo de maquina, e uma outra instrução é buscada no mesmo ciclo de maquina e executa no próximo ciclo a chamamos de Pipeline. Desta maneira as instruções são executadas mais rapidamente e em maior quantidade. Pipeline é implementado na arquitetura Harvard MicrocontroladoresMicrocontroladores Pipeline OBS: nem todas as instruções podem ser realizadas usando a pipeline. As instruções de saltos no contador de programa, levam o contador de programa a ser zerado, pois estas instruções levam 2 ciclos de maquinas. MicrocontroladoresMicrocontroladores Características : 16F877A • 40 pinos; • 33 pinos de I/O configuráveis; • 8 K de memória de programa; • 256 bytes de EEPROM para dados; • 368 bytes de Ram; • 35 instruções; • interrupções; • Serial; • 8 Canais analógicos de 10 bit; • comparadores; • Stack com 8 níveis; • Interrupções externas disponíveis; • Memória de programa protegida contra cópias .... MicrocontroladoresMicrocontroladores • 40 pinos; • 33 pinos de I/O configuráveis; • 8 K de memória de programa; • 256 bytes de EEPROM para dados; • 368 bytes de Ram; • 35 instruções; • interrupções; • Serial; • 8 Canais analógicos de 10 bit; • comparadores; • Stack com 8 níveis; • Interrupções externas disponíveis; • Memória de programa protegida contra cópias .... Comparativo : 16F84 X 16F877A • 18 pinos; • 13 pinos de I/O configuráveis; • 1 K de memória de programa; • 64 bytes de EEPROM para dados; • 35 instruções; • 4 interrupções Timer de 8 bits (TMR0) Externa Mudança de estado Finalização da EEPROM • Stack com 8 níveis; • Interrupções externas disponíveis; • Memória de programa protegida contra cópias .... MicrocontroladoresMicrocontroladores Pinagem do 16F877 MicrocontroladoresMicrocontroladores Pinagem do 16F877 MicrocontroladoresMicrocontroladores 16F877 OSC2 / CLKOUT OSC1 / CLKIN MCLR Vdd Vss RD0 a RD7 RC0 a RC7 Memória de Programa EEPROM 8k x 14 STACK PC W Registros Especiais e memória de dados RAM 368 x 8 ALU Timing Memória de Dados EEPROM 256 x 8 Watchdog Power on reset Start-up timer Power-up timer Unid. Programação Dec.Instrução TIMER 1 (16 bits) TIMER 2 (8 bits) Comparador CCP1 USART Brown-out detect PORTAS DE E/S BA C D RB0 a RB7 RA0 a RA5 TIMER 0 CCP2 Conv.A/D 10bits SSP E RE0 a RE3 P S P MicrocontroladoresMicrocontroladores 16F877 – Mapeamento da memória MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores MicrocontroladoresMicrocontroladores
Compartilhar