Baixe o app para aproveitar ainda mais
Prévia do material em texto
TIPOS DE MICROCONTROLADORES Prof.: Marcos Santana Farias Introdução Um microcontrolador de n bits possui uma ALU (Unidade Lógica e Aritmética) capaz de processar operandos com n bits de cada vez. Ou seja, seus registradores são de n bits e 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, mas isso não é verdadeiro para todos os casos. Considerando um microcontrolador de 8 bits, temos que um intervalo que varia de 0 a 255 para um inteiro sem sinal e de -128 a 127 para um inteiro com sinal. Adicionar ou subtrair números dentro desse intervalo é bastante simples e pode ser feito em um ciclo de processamento. No entanto, quando o operando fornecido ultrapassa o intervalo da ALU, ainda é possível, mas o processo fica um pouco mais complexo. Digamos que gostaríamos de adicionar 640 a 150. O primeiro operando (640) está além da capacidade de uma ALU de 8 bits. Então, ao invés de obter o resultado em apenas um ciclo processamento, ele levará mais tempo, já que somente 8 bits podem ser processados por vez pela ALU. O programador precisa quebrar os dados para o número maior. Portanto, nos microcontroladores de 8 bits, números maiores precisam ser processados no software. Nesse caso, até mesmo números de 32 bits são possíveis. A mesma operação pode ser realizada em apenas um ciclo de processamento para um microcontrolador de 16 bits. A maioria dos microcontroladores de 8 bits tem um contador de programa de 16 bits. Isso significa que ele pode endereçar no máximo 64kBytes de memória. Para muitas aplicações embutidas este número é suficiente, o que permite o uso de microcontroladores de 8 bits ainda em larga escala. Arquiteturas de 8 bits vs. 16 e 32 bits Além da vantagem de maior desempenho na realização de cálculos e transferências de dados mais rápidas, quais são as vantagens de trabalhar com um microcontrolador que possui uma largura de barramento maior? Microcontroladores com larguras de barramento de dados maiores desfrutam de maior desempenho em termos de operações mais rápidas, geralmente ferramentas de desenvolvimento mais poderosas, mais recursos e melhor eficiência de energia. 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. 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. • Custo Microcontroladores de 8 bits ainda prevalecem e, em algumas aplicações, é a opção computacional mais barata em relação ao custo do chip. No entanto, os chips microcontroladores de 32 bits podem ser tão baratos quanto alguns chips de 8 bits. Quando cortar centésimos de centavo é importante, como em produtos de alto volume, a decisão será tomada com base nos requisitos mínimos do projeto que são atendidos pelo chip mais barato. Pode não ser uma consideração para produtos preparados para o futuro adicionar mais recursos. Com relação aos conjuntos de habilidades, uma vez que os engenheiros dominam a curva de aprendizado para dispositivos de 32 bits, o valor se estende a um alcance mais amplo em aplicativos. O escopo de um microcontrolador de 8 bits é significativamente limitado em relação aos microcontroladores de 32 bits. Os custos de mão de obra também podem ser menores trabalhando com um microcontrolador de 32 bits, à medida que mais opções, recursos, ferramentas e um corpo maior de código existente se desenvolvem em torno do ecossistema de 32 bits. A tecnologia de ponta não evolui mais em torno dos 8 bits. • Tamanho do código Quanto maior a largura, mais denso será o código. Uma redução de 30% no tamanho do código é uma estimativa aproximada do benefício que o código escrito para 32 bits oferece em relação ao código de 8 bits. Programar com 32 bits é muito mais desafiador em código assembly do que em 8 bits, é claro, mas as ferramentas de desenvolvimento modernas permitem que os engenheiros trabalhem em C/C ++, uma linguagem frequentemente portátil entre arquiteturas e com cadeias de ferramentas e IDEs semelhantes entre arquiteturas. No entanto, os microcontroladores de 8 bits podem ser codificados com mais eficiência com o código de montagem para engenheiros que dedicam tempo para pensar na eficiência das operações. • Recursos Existem mais recursos para aproveitar as arquiteturas de maior largura de barramento de dados. A escala de recursos pode aumentar significativamente com dispositivos de 32 bits, com uma taxa muito maior de integração de periféricos conforme a largura de bits aumenta. O desempenho em tempo real é mais fácil de alcançar em dispositivos de 32 bits com acesso direto à memória para ignorar totalmente a CPU. No entanto, há uma seleção maior de microcontroladores de 8 bits disponível do que microcontroladores de 32 bits. Parte do motivo para isso é que as arquiteturas de 8 bits existem há muito mais tempo do que as arquiteturas de 16 e 32 bits. Muitos microcontroladores de 8 bits são escolhidos principalmente com base no custo por microcontrolador, reutilização de código legado e familiaridade pessoal com arquiteturas de 8 bits. Os microcontroladores de 8 bits podem realizar o trabalho com requisitos mínimos, mas o conjunto de habilidades necessárias para desenvolver produtos com microcontroladores de 8 bits é diferente, mais perceptível quando se trabalha no nível mais baixo de programação, o código em assembly. O código em assembly pode ser escrito com muito mais eficiência do que um compilador pode produzir em programação de nível superior em C / C ++, por exemplo. 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 e da mão de obra de desenvolvimento, da necessidade de preparar os recursos da aplicação para o futuro e quanto tempo se possui para pôr o produto no mercado. Muitos desenvolvedores são fãs fervorosos de microcontroladores de 8 bits e podem fazer coisas incríveis com eles. Produtos de muito alto volume levarão em direção à opção de dispositivo de menor custo, independentemente dos custos de mão de obra. No final das contas, a escolha depende de compensações. Como uma decisão para o desenvolvimento pessoal, é aconselhável estar familiarizado com ambos. A visibilidade das operações centrais de um microcontrolador no nível de 8 bits oferece uma experiência educacional que muitas vezes é escondida por camadas de abstração com 32 bits. No entanto, os lugares que você irá com habilidades de desenvolvimento de 32 bits superam o que os de 8 bits podem oferecer quando você considera a complexidade crescente da tecnologia moderna. Microcontroladores de 8 bits têm sido o carro-chefe da indústria há algumas décadas, mas é esperado que em alguns anos sejam ultrapassados pelos de 32 bits, como pode visto na figura 1. Os microcontroladores de 32 bits possuem uso crescente em aplicações como a automobilística e internet das coisas. Figura 1 – Mercado de microcontroladores por tipo. Fonte: Sharma, Komal - Microcontroller Market by Product Type (8-Bit, 16 Bit, and 32 Bit) and Application (Industrial, Consumer Goods, Automotive, Communication, and Computers)- Global Opportunity Analysis and Industry Forecast, 2014-2022). Allied Market Research. Famílias principais de microcontroladores Microcontrolador 8051 O conjunto de microcontroladores mais universalmente empregado vem da família 8051 de arquitetura CISC. Microcontroladores 8051 ainda persistem como escolha para um grande grupo de entusiastas e especialistas. Ele original foi inicialmente inventado pela Intel em 1981. Possui variantes, mas basicamente se oferece com 8 bits, 4kb de memória ROM (espaço programável no chip), 128 bytes de espaço RAM e, se desejado, 64KB de memória externa pode ser associada ao 8051. Existem quatro portas paralelas de 8 bits que são facilmente programáveis e endereçáveis. Um oscilador de cristal integrado no microcontrolador possui frequência de cristal de 12MHz. No microcontrolador existe uma porta serial de entrada/saída. Dois temporizadores de 16 bits também são incorporados a ele; esses temporizadores podem ser empregados como temporizadores para o funcionamento interno, bem como para o funcionamento externo. O microcontrolador é composto por 5 fontes de interrupção, nomeadamente: Interrupção da porta serial, Interrupção do temporizador 1, Interrupção externa 0, Interrupção do temporizador 0, Interrupção externa 1. O modo de programação deste microcontrolador inclui GPRs (registros de uso geral), SFRs (registros de função especial) e SPRs (registradores de propósito especial). Microcontroladores AVR O microcontrolador AVR foi desenvolvido na Atmel Corporation. Os microcontroladores AVR são arquiteturas Harvard RISC modificadas com memórias separadas para dados e programa e com velocidade alta quando comparada com 8051 e PIC. O AVR significa Advanced Virtual RISC. A popular plataforma Arduino emprega microcontroladores AVR. • Diferenças entre 8051 e AVR 8051 são microcontroladores de 8 bits baseados na arquitetura CISC, os AVRs são microcontroladores de 8 bits baseados na arquitetura RISC. 8051 consome mais energia do que o microcontrolador AVR Em 8051, podemos programar mais facilmente do que o microcontrolador AVR A velocidade do AVR é maior do que a do microcontrolador 8051. • Classificação dos controladores AVR Os microcontroladores AVR são classificados em três tipos: TinyAVR - menos memória, tamanho pequeno, adequado apenas para aplicações mais simples. MegaAVR - São os mais populares, com boa quantidade de memória (até 256 KB), maior número de periféricos embutidos e adequados para aplicações moderadas a complexas. XmegaAVR - Usado comercialmente para aplicações complexas, que requerem grande memória de programa e alta velocidade. Dentro da família megaAVR está o ATmega328 de 8 bits, comumente usado em muitos projetos e sistemas autônomos onde é necessário um microcontrolador simples, de baixo consumo e baixo custo. A implementação mais comum conhecida deste chip está na popular plataforma de desenvolvimento Arduino, nos modelos Arduino Uno e Arduino Nano. Alguns dos recursos do ATmega328 de 28 pinos são: • Memória de programa flash de 32kbytes • Memória de dados EEPROM de 1kbytes • Memória de dados SRAM de 2kbytes • 23 Pinos de E/S • Dois temporizadores de 8 bits • Conversor A/D • PWM de seis canais • Porta serial USART • Suporta oscilador externo de até 20 MHz Microcontroladores PIC Peripheral Interface Controller (PIC) é fornecido pela Microchip Technology a partir de 1993. Estes microcontroladores foram extremamente bem-sucedidos dentre os de 8 bits. A principal causa por trás disso é que a Microchip tem atualizado constantemente a arquitetura do dispositivo e incluído muitos periféricos para atender às necessidades dos desenvolvedores. Microcontroladores PIC são muito populares entre amadores e na indústria, causa de ampla disponibilidade, baixo custo, grande base de usuários e capacidade de programação serial. Existem muitos PICs, iniciados com PIC16F84 e PIC16C84. Mas esses eram os únicos PICs flash acessíveis. A Microchip lançou depois chips flash com tipos atraentes entre 8 e 16 bits, como 16F628, 16F877 e 18F452. O 16F877 tem cerca de duas vezes o preço do antigo 16F84, mas tem oito vezes mais espaço para código, muito mais RAM, muito mais pinos de E/S, uma UART e conversor A/D. • Características principais do PIC16F877: • CPU RISC de alto desempenho. • Até 8K x 14 palavras de memória de programa FLASH. • 35 Instruções (codificação de comprimento fixo de 14 bits). • 368 × 8 memória de dados baseada em RAM estática. • Até 256 x 8 bytes de memória de dados EEPROM. • Capacidade de interrupção (até 14 fontes). • Três modos de endereçamento (direto, indireto, relativo). • Arquitetura de memória Harvard. • Modo SLEEP de economia de energia. • Ampla faixa de tensão de operação: 2,0 V a 5,5 V. Microcontroladores ARM ARM é o nome de uma empresa que projeta a arquitetura de microprocessadores, licenciando os produtos para vários fabricantes. O microcontrolador ARM é uma arquitetura RISC genuína de 32 bits. São diversas famílias de ARM. A série de núcleos ARM Cortex engloba uma ampla gama de opções de desempenho escaláveis oferecendo aos projetistas uma grande variedade de opções e a oportunidade de usar o núcleo de melhor ajuste para sua aplicação sem ser forçado a uma solução de tamanho único. O portfólio do ARM Cortex é dividido em três principais categorias: 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 microcontroladores para uma ampla gama de aplicações embutidas. O ARM um dispositivo sensível ao custo e de alto desempenho que tem sido usado em uma ampla gama de aplicações, como sistemas de controle de instrumentos industriais, redes, sensores sem fio e sistemas automotivos. Microcontroladores MSP MSP significa Mixed Signal Processor. É a família da Texas Instruments. Construído em torno de uma CPU de 16 bits, o MSP foi projetado para instruções incorporadas de baixo custo e baixíssima dissipação de energia, a característica principal do microcontrolador. Outras vantagens estão diretamente relacionadas ao barramento de dados de 16 bits e aos sete modos de endereçamento e ao conjunto de instruções reduzido, o que permite um código de programação mais curto e denso para desempenho rápido. Microcontrolador ESP32 Criado pela Espressif Systems, o ESP32 é um sistema de baixo custo e baixo consumo de energia em um chip com recursos de Wi-Fi e Bluetooth de modo duplo. Em seu coração há um microprocessador Tensilica Xtensa LX6 de núcleo único ou dual com uma frequência de até 240 MHz. O ESP32 é altamente integrado com antena embutida, amplificador de potência, amplificador de recepção de baixo ruído, filtros e módulos de gerenciamento de energia. Projetado para dispositivos móveis, eletrônicos vestíveis e aplicativos de Internet da Coisas, o ESP32 atinge um consumo de energia ultrabaixo por meio de recursos de economia de energia, modos de energia múltiplos e dimensionamento dinâmico de energia. Referências OLIVEIRA, André Schneider de; ANDRADE, Fernando Souza de. Sistemas Embarcados - Hardware e Firmware na Prática. 1 Ed. São Paulo: Érica, 2010. ZANCO, Wagner da Silva. Microcontroladores PIC18 com Linguagem C - Uma Abordagem Prática e Objetiva. São Paulo: Érica, 2010. Monk, Simon. Programação com Arduino: Começando com Sketches. 1 Ed. Porto Alegre: Bookman, 2017. Peckol, J. K. Embedded Systems: A Contemporary Design Tool. 1 ed. Nova Jersey, EUA: Wiley, 2019.
Compartilhar