Prévia do material em texto
ARA0301 PROGRAMAÇÃO DE MICROCONTROLADORS Aula 4: Tipos e Famílias de Microcontroladores Prof. Dr. Roney L. de S. Santos RONEY.LIRASALE@professores.estacio.br MICROCONTROLADORES 2 • Importante: saber especificar dispositivos com desempenho adequado para uma aplicação • Desempenho adequado ≠ Melhor Desempenho Possível – Microcontroladores vs Microprocessadores, concordam? • Quando se trata de sistemas que podem ser produzidos aos milhares, muitas vezes com necessidade de baixo consumo, o custo por unidade é muito relevante MICROCONTROLADORES 3 • Assim, especificar o microcontrolador adequado significa, muitas vezes, escolher o que atende a aplicação nas condições mínimas • Então, quais as características das famílias de microcontroladores existentes no mercado são importantes na escolha? TIPOS DE MICROCONTROLADORES 4 • Um microcontrolador de n bits possui uma ALU capaz de processar operandos com n bits de cada vez – Seus registradores podem manipular n bits por vez – Normalmente, o microcontrolador também terá n bits de barramento de dados e n bits de largura para endereçamento de memória TIPOS DE MICROCONTROLADORES 5 Limites dos microcontroladores de 8 e 32 bits TIPOS DE MICROCONTROLADORES 6 • Exemplo: considerando um microcontrolador de 8 bits – 0 a 255 (sem sinal) – -128 a 127 (com sinal) • Adicionar ou subtrair números dentro desse intervalo é bastante simples e pode ser feito em um clock TIPOS DE MICROCONTROLADORES 7 • No entanto, quando fornecido um operando que ultrapassa o intervalo da ALU, ainda é possível, mas o processo fica um pouco mais complexo... • 640 + 150? – O primeiro operando está além da capacidade de 8 bits • O microcontrolador ainda faz a operação, mas leva mais tempo TIPOS DE MICROCONTROLADORES 8 • No entanto, quando fornecido um operando que ultrapassa o intervalo da ALU, ainda é possível, mas o processo fica um pouco mais complexo... • 640 + 150? – O primeiro operando está além da capacidade de 8 bits • O microcontrolador ainda faz a operação, mas leva mais tempo • Nos microcontroladores de 8 bits, essa operação precisa ser processada no software, mas nos microcontroladores de 16 bits essa operação é realizada facilmente. TIPOS DE MICROCONTROLADORES 9 • ARQUITETURAS DE 8 BITS vs 16 E 32 BITS – Quais as vantagens de trabalhar com um microcontrolador que possui uma largura de barramento maior? – Maior desempenho em termos de operações mais rápidas – Ferramentas de desenvolvimento mais poderosas – Mais recursos – Melhor eficiência de energia TIPOS DE MICROCONTROLADORES 10 Arquitetura de um microcontrolador de 8 bits TIPOS DE MICROCONTROLADORES 11 Arquitetura de um microcontrolador de 32 bits TIPOS DE MICROCONTROLADORES 12 • Em geral, larguras de barramento menores limitam o desempenho em troca de um pequeno benefício de custo para o orçamento de um projeto. • O número de ciclos aumenta conforme a largura do barramento diminui – Larguras de bits menores requerem mais ciclos para completar cálculos maiores. • Assim, leva mais ciclos para um microcontrolador de 8 bits completar um grande cálculo do que os microcontrolador com uma largura de barramento de dados de 16 bits. – O uso de um microcontrolador de 32 bits pode reduzir ainda mais os ciclos computacionais. TIPOS DE MICROCONTROLADORES 13 • Além da velocidade na conclusão de cálculos e na taxa de transferência de dados, se houver uma interrupção ou falha no meio de uma transferência, o microcontrolador de 8 bits tem uma chance maior de não concluir a tarefa – Com vários ciclos necessários, em comparação com um microcontrolador de 32 bits que conclui a mesma tarefa em um ciclo. TIPOS DE MICROCONTROLADORES 14 • Fatores a se levar em conta: • Custo • Tamanho do código • Recursos TIPOS DE MICROCONTROLADORES 15 • Fatores a se levar em conta: • Custo – Microcontroladores de 8 bits ainda são os mais baratos, porém, os de 32 bits podem ser tão baratos quanto – Custos de mão de obra é menor nos componentes de 8 bits • Opções, recursos, ferramentas e um corpo maior de código é mais exigente • Tamanho do código • Recursos TIPOS DE MICROCONTROLADORES 16 • Fatores a se levar em conta: • Custo – Microcontroladores de 8 bits ainda são os mais baratos, porém, os de 32 bits podem ser tão baratos quanto – Custos de mão de obra é menor nos componentes de 8 bits • Opções, recursos, ferramentas e um corpo maior de código é mais exigente • Tamanho do código • Recursos TIPOS DE MICROCONTROLADORES 17 • Fatores a se levar em conta: • Custo – Microcontroladores de 8 bits ainda são os mais baratos, porém, os de 32 bits podem ser tão baratos quanto – Custos de mão de obra é menor nos componentes de 8 bits • Opções, recursos, ferramentas e um corpo maior de código é mais exigente • Tamanho do código • Recursos TIPOS DE MICROCONTROLADORES 18 • Fatores a se levar em conta: • Custo • Tamanho do código – Quanto maior a largura, mais denso será o código – Programar com 32 bits é muito mais desafiador em assembly do que 8 bits – Ferramentas modernas permitem que os desenvolvedores trabalhem em linguagens de alto nível, como C/C++ • Porém, microcontroladores de 8 bits podem ser codificados com mais eficiência com o código de máquina • Recursos TIPOS DE MICROCONTROLADORES 19 • Fatores a se levar em conta: • Custo • Tamanho do código • Recursos – Em um microcontrolador de 32 bits, a escala de recursos aumenta muito – Desempenho em tempo real é mais fácil de alcançar em dispositivos de 32 bits com acesso direto à memória TIPOS DE MICROCONTROLADORES 20 • Em resumo, a decisão de trabalhar em 8 bits ou 16 e 32 bits depende – do que a aplicação exige – do custo final do microcontrolador – da mão de obra de desenvolvimento – da necessidade de preparar os recursos da aplicação para o futuro – e de quanto tempo se possui para pôr o produto no mercado. TIPOS DE MICROCONTROLADORES 21 • No final das contas, a escolha depende de compensações. Como uma decisão para o desenvolvimento pessoal, é aconselhável estar familiarizado com ambos. FAMÍLIAS DE MICROCONTROLADORES 22 • Microcontrolador 8051 • Microcontroladores AVR – TinyAVR – MegaAVR • ATMega328, presentes nos modelos Arduino Uno e Nano – XmegaAVR • Microcontroladores PIC • Microcontroladores ARM • Microcontroladores MSP • Microcontrolador ESP32 FAMÍLIAS DE MICROCONTROLADORES 23 • Microcontrolador 8051 – Arquitetura CISC – Ainda persiste como escolha para um grande grupo de programadores – Originalmente inventado pela Intel em 1981 – Arquitetura 8 bits, 4KB de memória ROM, 128B de RAM (+ 64KB de memória externa, se desejado) FAMÍLIAS DE MICROCONTROLADORES 24 • Microcontroladores AVR – Desenvolvido pela Atmel Corporation – Advanced Virtual RISC – Arquiteturas Harvard RISC – TinyAVR: • Menos memória, tamanho pequeno, adequado para aplicações simples – MegaAVR • Boa quantidade de memória (até 256KB), maior número de periféricos embutidos e adequados para aplicações moderadas a complexas • ATMega328, presentes nos modelos Arduino Uno e Nano – XmegaAVR • Usado comercialmente para aplicações que requerem grande quantidade de memória de programa e alta velocidade FAMÍLIAS DE MICROCONTROLADORES 25 • Microcontroladores PIC – Peripheral Interface Controller – Populares entre usuários comuns e na indústria – Ampla disponibilidade, baixo custo, grande base de usuários e capacidade de programação serial – CPU RISC FAMÍLIAS DE MICROCONTROLADORES 26 • Microcontroladores ARM – Arquitetura RISC de 32 bits – Grande variedade de opções e oportunidades de uso • Cortex-A: núcleos de processador de aplicações para sistemas de alto desempenho, como smartphones e tablets. • Cortex-R: Núcleos de alto desempenho para aplicações em tempo real. • Cortex-M: Núcleos de microcontroladores para uma ampla gama de aplicações embutidas. – Sensível ao custo e de alto desempenho • Sistemas de controle de instrumentosindustriais • Redes • Sensores sem fio • Sistemas automotivos FAMÍLIAS DE MICROCONTROLADORES 27 • Microcontroladores MSP – Mixed Signal Processor – CPU de 16 bits – Instruções incorporadas de baixo custo e baixíssima dissipação de energia • Principal característica do microcontrolador – Arquitetura Von Neumann RISC • Códigos de programação mais curtos e densos para desempenho rápido FAMÍLIAS DE MICROCONTROLADORES 28 • Microcontrolador ESP32 – Chip com recursos Wi-Fi e Bluetooth – Núcleo único ou dual com frequência de até 240 MHz – Projetado para dispositivos móveis, eletrônicos e aplicativos IoT – Atinge um consumo de energia ultrabaixo por meio de recursos de economia de energia ATIVIDADE VERIFICADORA DE APRENDIZAGEM 1 29 1. É muito comum classificar microcontroladores pelo número de bits. Se um microcontrolador é dito de 8 bits significa que este possui: Quais as opções estão corretas? A) 8 bits de barramento para endereçamento de memória. B) 8 bits como tamanho da palavra de memória. C) 8 bits para os operandos da ALU (Unidade Lógica Aritmética). D) 8 bits como tamanho do contador de programa. E) 8 bits de barramento de dados. ATIVIDADE VERIFICADORA DE APRENDIZAGEM 1 30 1. É muito comum classificar microcontroladores pelo número de bits. Se um microcontrolador é dito de 8 bits significa que este possui: Quais as opções estão corretas? A) 8 bits de barramento para endereçamento de memória. B) 8 bits como tamanho da palavra de memória. C) 8 bits para os operandos da ALU (Unidade Lógica Aritmética). D) 8 bits como tamanho do contador de programa. E) 8 bits de barramento de dados. ATIVIDADE VERIFICADORA DE APRENDIZAGEM 1 31 2. Os Arduinos têm se tornado muito populares, muito em virtude da grande comunidade que sustenta uma IDE com muitas bibliotecas e muitos exemplos de aplicações, além de código aberto e hardware livre de licenças. Qual é o microcontrolador da plataforma de desenvolvimento Arduino Uno? Quais opções estão corretas? A) 80C51 B) ATmega328 C) ARM CortexM D) PIC16F877 E) Arduino ATIVIDADE VERIFICADORA DE APRENDIZAGEM 1 32 2. Os Arduinos têm se tornado muito populares, muito em virtude da grande comunidade que sustenta uma IDE com muitas bibliotecas e muitos exemplos de aplicações, além de código aberto e hardware livre de licenças. Qual é o microcontrolador da plataforma de desenvolvimento Arduino Uno? Quais opções estão corretas? A) 80C51 B) ATmega328 C) ARM CortexM D) PIC16F877 E) Arduino ARA0301 PROGRAMAÇÃO DE MICROCONTROLADORES 33 • Dúvidas? • Fiquem à vontade para entrar em contato no RONEY.LIRASALE@professores.estacio.br Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34