AULA2 – Introdução a Microcontrolador Disciplina: Aplicações Avançadas de Microprocessadores (AAM) Profa. Ana T. Y. Watanabe [email protected] AULA2 – Introdução a Microcontrolador “Se algum de vocês tem falta de sabedoria, peça-a a Deus, que a todos dá livremente, de boa vontade; e lhe será concedida. “ Tiago 1:5 Profa. Ana T. Y. Watanabe [email protected] Tópicos: • Microcontroladores - Evolução • Principais características dos Microcontroladores • Fabricantes de Microcontroladores • HC08/HCS08 • Perguntas MICROCONTROLADORES - Evolução Na década de 70 surgiram os primeiros microcomputadores encapsulados num chip, que mais tarde seria chamado de microcontroladores. Empresas como a Freescale (HCS08), ATMEL(AVR), Intel(8051), Microchip (PICs), National (COP8), Zilog (Z8), entre outros, têm uma forte concorrência na inovação e na produção em dispositivos microcontrolados. A competição ocorre em questões como a capacidade de migração bit, velocidade, variedade de periféricos de baixo consumo, entre outros. MICROCONTROLADORES - Evolução Capacidade em bits Os microcontroladores cresceram ao lado dos microprocessadores e, assim, têm sido desenvolvidos em 8, 16 e até 32 bits. MICROCONTROLADORES - Evolução Tecnologia de programação Inicialmente, o programa era gravado em ROM pelo fabricante. Havia a desvantagem no grande volume de produção para justificar a sua produção a partir do ponto de vista econômico. Depois tem as versões em OTP (One Time Programmable) de muito baixo custo, e a programação é feita pelo usuário, mas também só pode ser feito uma vez. MICROCONTROLADORES - Evolução Tecnologia de programação Surgiu depois uma programação alternativa em EPROM. A grande desvantagem é o apagamento dos dados nas lâmpadas de luz UV; A tecnologia acima é reforçada pela EEPROM, que permite a gravação e apagamento dados eletricamente, mas à custa da velocidade de processamento. Finalmente, temos a tecnologia Flash com baixo custo, velocidade e facilidade de manuseio na programação. A vantagem de ser possível reprogramar milhares de vezes (até mais do que a EEPROM). MICROCONTROLADORES - Evolução Velocidade Ao contrário de microprocessadores, o objetivo fundamental de um microcontrolador não é executar as operações em velocidades de centenas de MHz. O interessante é a de executar as operações na velocidade máxima com o mais baixo consumo de energia a um custo razoável. MICROCONTROLADORES - Evolução Memória Como o código é o fator determinante no desenvolvimento do microcontrolador, a quantidade de memória disponível se torna um fator importante na escolha da máquina. Normalmente os sistemas suportados por um microcontrolador não exigem grandes quantidades de memória para código e dados (FLASH-RAM). Para código até 1MB e para dados até 128KB. MICROCONTROLADORES - Evolução Periféricos Os microcontroladores normalmente são classificados em famílias, dependendo da aplicação a que se destinam. A partir da aplicação que a família de microcontroladores se destina, um conjunto de periféricos específicos é escolhido e integrado a um determinado microprocessador. MICROCONTROLADORES - Evolução Periféricos Temporizadores (PWM, OUTPUT COMPARE, INPUT CAPTURE) Conversor Analógico/Digital Entradas/saídas de propósito geral Relógio de Tempo Real Sistema de proteção de fluxo de programa (WDT, COP) Porta de Comunicação Assíncrona (UART, CAN) Porta de Comunicação Síncrona (IIC, SPI) Universal Serial Bus (USB) Porta de Depuração (BDM – Background Debug Mode: ferramenta para depuração e programação da interface para Freescale, JTAG - Joint Test Access Group: interface de programação e teste de circuitos digitais) MICROCONTROLADORES - Evolução Periféricos especiais(não p/ V1) Controladores Ethernet; Geração criptográfica; Geração de números aleatórios ou geração e verificação de código de redundância cíclica O CRC é calculado e anexado à informação a transmitir (ou armazenar) e verificada após a recepção ou acesso, para confirmar se não ocorreram alterações; Tratamento de aritmética (ponto flutuante); Controle de acesso direto à memória (DMA) the CPU initiates the transfer, does other operations while the transfer is in progress, and receives an interrupt from the DMA controller when the operation is done. MICROCONTROLADORES - Evolução Linguagem de programação As línguas mais populares para programação de microcontroladores são: • Assembly: É a linguagem nativa que tem uma abordagem direta ao seu núcleo. É muito importante conhecer mesmo com o melhor compilador em outras linguagens, pois possibilita desenvolver códigos com melhor eficiência, ou seja, mais rápido, melhor utilização dos recursos e menor consumo de memória. MICROCONTROLADORES - Evolução Linguagem de programação C / C + +: Por excelência, é a linguagem da engenharia por causa de sua estrutura, portabilidade e reutilização de recursos de processamento. Os compiladores dessa linguagem estão cada vez mais otimizadas. MICROCONTROLADORES - Evolução Linguagem de programação Felizmente, muitos aplicativos permitem a mistura de da linguagem assembly e outras linguagens de alto nível, dando ao usuário a possibilidade de código otimizado. MICROCONTROLADORES - Evolução • Montador Assembler. Este é o programa que transforma o código escrito na linguagem Assembly em linguagem de máquina, substituindo as instruções, variáveis pelos códigos binários e endereços de memória correspondentes. • Os compiladores de várias linguagens de alto nível fazem a compilação dos programas em duas etapas, na primeira transformando o código fonte em código Assembly e em seguida gerando o binário com a ajuda de um Assembler. MICROCONTROLADORES - Evolução O FUTURO A evolução dos microcontroladores é ligada à evolução dos microprocessadores: velocidade de execução, baixo consumo de energia, um elevado grau de miniaturização, aumento da capacidade de manipulação de dados e a capacidade de dispositivos de memória e periféricos. O futuro prevê uma migração acelerada de máquinas de 8 e 16 bits para 32-bits e superior. O fator preponderante é o fenômeno de mercado, o que provoca a queda de preço da capacidade em bits. Principais características dos Microcontroladores: Memória e periféricos integrados no chip Bus de endereços estreito só permitindo o gerenciamento de pequena quantidade de memória Tratamento de poucos formatos de dados (tipicamente 8 ou 16 bits) Ausência de co-processador e com unidade aritmética e lógica limitada Limitados modos de endereçamento (tratamento ineficiente de funções de linguagens de alto nível) Baixo custo Baixo consumo Pequena área de silício Fabricantes de Microcontroladores: •Microchip •Atmel •Freescale Fabricantes de Microcontroladores: MICROCHIP Aplicações: Tem se destacado no mercado de microcontroladores, pois oferece uma gama muito grande destes. Existem microcontroladores para pequenos, médios e grandes projetos com aproveitamento tanto pela indústria quanto pelo hobbista e estudante. Isso atraiu a atenção de desenvolvedores que criaram muitos dispositivos como gravadores e emuladores para o microcontrolador. Fabricantes de Microcontroladores:Microchip • Arquitetura Harvard • RISC • Possui 35 instruções • Barramento de dados separados para memória de dados e memória de programa. Fabricantes de Microcontroladores:Microchip Compilador “C” Vantagens: portabilidade: maior velocidade no desenvolvimento; maior aproveitamento de rotinas e subrotinas específicas (bibliotecas próprias) gerando maior agilidade no desenvolvimento do trabalho (homem/hora); Fabricantes de Microcontroladores:Microchip Compilador “C” Desvantagens: A maioria dos compiladores para linha Microchip devem ser registrados, ou seja, não são distribuídos gratuitamente; O tamanho do código HEX final gerado é sempre maior que o gerado pelo compilador “Assembler” (em média 10% a 30%); Velocidade de execução do programa gerado pelo compilador “C” é inferior do que do “Assembly”. Fabricantes de Microcontroladores: Atmega (AVR) • Microcontrolador RISC • Arquitetura Harvard • Licença Atmel (http://www.atmel.com) • Projetado para atender aplicações específicas • Operação com consumo bastante reduzido de energia • 118 instruções • Uma instrução por ciclo para maioria das instruções (pipeline) • Operações registrador-registrador • Projetado para implementar soluções “single chip” Fabricantes de Microcontroladores: Atmega (AVR) • Core RISC com ~100 instruções • Velocidades de clock modestas (4-16 MHz) • Barramento de 8 bits • 32 registradores de uso geral de 8 bits • Flash programável in-circuit • Pequena quantidade de EEPROM e SRAM • Diversos periféricos embarcados (UART, SPI, ADC, PWM, WDT) Fabricantes de Microcontroladores:Freescale Aplicações: A Freescale Semicondutores é líder global em design e manufatura de semicondutores para os mercados automotivo (sistema de luz, sistema eletrônico, sistema de controle de combustível, sistema de suspensão, F1- Ferrari, etc.), de bens de consumo, industrial, de rede e de comunicação sem fio. Empresas no Brasil como Magnetti Marelli, Visteon, Whirlpool, Motorola, Electrolux, Continental, Kostal, Delphi dentre outros, são clientes da Freescale Semicondutores. MICROCONTROLADORES Arquitetura: Alguns exemplos de microcontroladores que utilizam microprocessadores com arquitetura RISC: O PIC (Microchip) e o MSP430 (Texas Instruments), AVR(Atmel). arquitetura CISC: MC68HC08 e HCS08 (Freescale) e o 8051 (Intel). Arquitetura do HC08/HCS08 As CPUs HCS08 são aprimoramentos das da familia HC08, portanto como o 68000, os microcontroladores HCS08 se baseiam na arquitetura Von Neumann (programa armazenado em memória junto com os dados), com um conjunto de instruções CISC (instruções complexas e especializadas). HC08/HCS08 PRINCIPAIS CARACTERÍSTICAS DO HC08: • Frequência de Barramento: até 8MHz; • 64kBytes de endereços de memória para programa (até 4096 bytes) , dados (128 bytes) e periféricos; • Modo de baixo consumo Stop e Wait; • Registrador de 16 bits para SP e HX; HC08/HCS08 PRINCIPAIS CARACTERÍSTICAS DO HC08: • 16 modos de endereçamento; Instrução rápida Multiplicação (8 bits) e Divisão (16 por 8 bits); • 4 canais A/D de 8 bits; HC08/HCS08 PRINCIPAIS CARACTERÍSTICAS DO HCS08: • Frequência de Barramento: até 20MHz; • São até 2,5 vezes mais rápidos que os HC08; • 64kBytes de endereços de memória para programa (até 8112 bytes) , dados (512 bytes) e periféricos; • Modo de baixo consumo: Além do Wait, temse Stop1(até 20nA), Stop2 e Stop3; HC08/HCS08 PRINCIPAIS CARACTERÍSTICAS DO HCS08: • Além dos 16 modos de endereçamento (novos modos de endereçamento para: CPHX, LDHX, STHX) => privilegia o uso de compilador C; • 8 canais A/D de 8 e 10 bits; HC08/HCS08 PRINCIPAIS CARACTERÍSTICAS DO HCS08: • Interrupção de tempo real (RTI); • Contador/Temporizador de 8 e 16 bits; • Comunicação Serial Assincrona: SCI • Comunicação Serial Síncrono (mestre/escravo): SPI => memória e conversores A/D; • Comunicação Serial IIC (mestre/escravo) => Memórias, relógios de tempo real, etc; HC08/HCS08 (Diagrama de Blocos) HC08 HCS08 HC08/HCS08 HC08/HCS08 Característica HC08 HCS08 pinagem 8/16 pinos 8/16/28 DIP Até 64 LQFP Tensão de operação 3 ou 5V 1,8 à 3,6V A/D 4 canais 8bits 8 canais 10 bits Interrupção de Tempo Real ----------- 1 módulo (relógio) Baixo consumo 2 Modos 5 Modos Frequência 8MHz (5V) 4MHz (3V) Até 40MHz Corrente de saída 15 a 25mA 2 a 10mA HC08/HCS08 PRINCIPAIS CARACTERÍSTICAS DO HCS08: Perguntas: 1) Quais são os recursos de microcontroladores discutidos neste texto? 2) Por que é importante o conceito de microcontrolador de baixo consumo? 3) Qual é a razão para a baixa quantidade de memória implementada em um microcontrolador? 4) Cite três periféricos de microcontroladores. 5) Por que a linguagem C é muito utilizada em programação de microcontroladores? 6) Cite uma razão para migrar para máquinas de maior número de bits. 7) Cite algumas diferenças do microcontrolador HC08 e HCS08? 8) Em que memórias são alocadas os dados e as instruções?