Volume global de alta mistura e alta velocidade PCBA fabricante
9h00 -18h00, seg. - Sex. (GMT+8)
9:00 -12:00, sábado (GMT+8)
(Exceto feriados chineses)
Página inicial > Blog > Base de conhecimento > FPGA vs. Microcontrolador – Compreendendo as principais diferenças
Microcontroladores e matrizes de portas programáveis em campo (FPGAs) são frequentemente utilizados no projeto de sistemas digitais. Sistemas baseados em microcontroladores estão se tornando cada vez mais populares. Por um lado, seu baixo custo, baixo consumo de energia e adequação para tarefas básicas de controle os tornam uma escolha óbvia. Por outro lado, a rápida expansão da popularidade dos FPGAs, a disponibilidade de ferramentas de desenvolvimento robustas e sua maior capacidade e densidade de processamento paralelo tornam os sistemas baseados em FPGA uma opção atraente.
Diversos núcleos de microcontroladores estão disponíveis para o mercado embarcado atualmente, desde projetos convencionais, como o 8051, até máquinas RISC ou DSP. A decisão entre os diferentes projetos é determinada por critérios como velocidade, potência, base instalada, potencial de reutilização e outras considerações técnicas. Aplicações embarcadas são um tema de estudo em constante expansão em sistemas computacionais. O grande número de portas de comunicação, unidades de Modulação por Largura de Pulso (PWM) e Conversores Analógico-Digitais (ADC) do MCU, reunidos em um único chip, o tornam ideal para aplicações industriais.
Em vários campos da engenharia elétrica, MCUs são normalmente utilizados para controle básico, comunicação e tarefas de baixa complexidade, enquanto Field Programmable Gate Arrays (FPGAs) são empregados para tarefas de processamento de alta velocidade e tempo crítico. No entanto, aplicações baseadas em dispositivos integrados a eletrônicos de consumo apresentam diversas restrições de projeto. Nessas circunstâncias, o consumo de energia, a densidade do código e a integração de periféricos podem ter precedência sobre os requisitos de desempenho. Por outro lado, do ponto de vista tecnológico, a crescente densidade de FPGAs e a queda em seus preços devido ao alto volume de fabricação permitem a integração de sistemas embarcados em um único chip FPGA.
Um microcontrolador é um dispositivo eletrônico que pertence à família dos microcomputadores. Os componentes do microcontrolador são fabricados com a ajuda da Integração em Grande Escala (VLSI) para formar um único chip. Eles também são conhecidos como Computador em Chip (Computer-on-Chip). Um microcontrolador possui uma certa quantidade de RAM e ROM (EEPROM, EPROM, etc.) ou memórias flash para armazenar códigos de programa. Recursos adicionais são temporizadores, portas paralelas, portas seriais, portas de interrupção, ADC, PWM e DAC. Um microcontrolador é um microprocessador com memória e recursos de E/S. Os microcontroladores são amplamente utilizados em sistemas embarcados devido à integração de CPU, memória e periféricos de E/S em um único chip.
Um PC ou laptop é uma máquina de uso geral (usada para diversas tarefas, como jogos, navegação na internet, música, processamento de texto, etc.). Em contraste, sistemas embarcados são tipicamente dispositivos de função única, projetados para tarefas específicas. Uma característica fundamental dos sistemas microcontrolados é que eles frequentemente executam tarefas dedicadas sem a necessidade de um sistema operacional completo (por exemplo, Windows, Linux, macOS, iOS). Relógios, tocadores de MP3, máquinas de venda automática e outros dispositivos eletrônicos contêm sistemas embarcados. Um computador completo às vezes interferiria na funcionalidade do dispositivo. Imagine precisar iniciar o Windows para operar uma máquina de lavar louça. A Figura 2 ilustra a arquitetura de um microcontrolador.
Os compiladores verificam se o código da linguagem de programação de alto nível é válido, tanto em termos de gramática quanto de alocação de memória. Nessas circunstâncias, falhas ou avisos são frequentemente apresentados, e os códigos que contêm erros não são armazenados no microcontrolador. Uma vez que o código esteja correto, o compilador o transforma em código de máquina e gera um arquivo HEX que é carregado na memória do microcontrolador.
Matrizes de portas programáveis em campo (FPGAs) são circuitos integrados digitais (CIs) que incluem blocos lógicos intercambiáveis (programáveis) e interconexões. Engenheiros de projeto podem programar esses dispositivos para executar uma ampla gama de funções. Dependendo de como são construídos, certos FPGAs podem ser programados apenas uma vez, enquanto outros podem ser programados repetidamente. Não é de surpreender que um dispositivo que só pode ser programado uma vez seja conhecido como programável uma única vez.
A parte "programável em campo" do nome FPGA alude ao fato de que a programação ocorre "em campo" (ao contrário de dispositivos cuja funcionalidade principal é pré-programada pelo fabricante). Isso pode se aplicar à configuração de FPGAs em laboratório ou à alteração da operação de um dispositivo em um sistema eletrônico já implantado no mundo real. Se um dispositivo pode ser programado enquanto permanece em um sistema de nível superior, diz-se que é programável no sistema. A Figura 3 mostra a placa de desenvolvimento do FPGA.
FPGAs são frequentemente empregados como coprocessadores para processadores existentes, seja para acelerar tarefas com tempo crítico ou para estender a funcionalidade de ALUs típicas. Por exemplo, ao usar microcontroladores, o cálculo de equações com mais de dois termos exige uma série de operações aritméticas e/ou lógicas e, em muitas circunstâncias, uma variável temporária deve ser atribuída. FPGAs podem melhorar o desempenho desses sistemas, realizando esses cálculos em paralelo, utilizando uma boa quantidade de lógica combinacional.
Eles também são comumente empregados em sistemas de computação personalizados, onde um dispositivo computacional completo é criado e implementado em um FPGA. Microcontroladores de chip único são frequentemente utilizados e suficientes para determinadas necessidades de aplicação. Nesse caso, apenas o software para a aplicação desejada precisa ser escrito. A interface de hardware é essencial para o projeto desses sistemas e frequentemente é implementada usando chips especializados padrão. Isso resulta em um sistema fixo que não pode ser alterado sem um redesenho de hardware. FPGAs oferecem flexibilidade significativa nessas aplicações, permitindo personalização de hardware e processamento paralelo. A Figura 4 representa o diagrama de blocos interno de uma placa de desenvolvimento FPGA.
Desempenho
Como os microcontroladores dependem da velocidade do clock, eles geralmente apresentam desempenho inferior aos FPGAs, pois sua frequência depende do projeto. A maioria dessas aplicações envolve processamento de imagem e vídeo.
Consumo de energia
Microcontroladores (MCUs) consomem menos energia do que FPGAs devido ao seu tamanho compacto. Microcontroladores são ideais para alimentar baterias, inversores e conversores. Por outro lado, FPGAs são melhores em processamento digital para processamento de imagem e vídeo.
Flexibilidade e Customização
A configuração de hardware é flexível durante a execução em FPGAs, enquanto em microcontroladores todas as alterações são feitas por meio do desenvolvimento de software. Isso tornou os microcontroladores menos flexíveis do que os FPGAs. A personalização baseada em software é favorável em MCUs, enquanto a personalização baseada em hardware é mais fácil em FPGAs.
Tempo de desenvolvimento e complexidade
MCUs e FPGAs diferem em termos de arquitetura de memória e características de desempenho. Um microcontrolador possui memória não volátil, o que significa que, após o desligamento, os MCUs retêm sua memória, enquanto esse recurso está ausente em FPGAs devido à memória de acesso aleatório (RAM) presente em FPGAs. Os microcontroladores são normalmente programados usando linguagens de alto nível como C/C++, enquanto o desenvolvimento de FPGAs requer linguagens de descrição de hardware como Verilog ou VHDL. Verilog e FPGAs são suportados por hardware, enquanto C/C++ são linguagens suportadas por software.
Componentes básicos
Um microcontrolador não é nada quando integrado a circuitos integrados (CIs), enquanto FPGAs contêm principalmente CIs e outros circuitos integrados. Em suma, ambas as tecnologias são uma mistura de circuitos integrados e linguagem de alto nível.
Customização
Após a fabricação, tanto FPGAs quanto microcontroladores são reprogramáveis, e alterações em suas funções podem ser feitas após a construção da infraestrutura. No entanto, FPGAs são mais adequados para aplicações de alto desempenho, enquanto MCUs como o Arduino também são adequados para aplicações mais simples.
Microcontroladores estão amplamente disponíveis a baixo custo e oferecem uma ampla gama de recursos para aplicações de energia e eletrônica. No entanto, o uso de MCUs requer experiência em linguagens de alto nível, como C/C++. Por outro lado, os FPGAs têm um preço mais alto, mas são muito mais fáceis de usar. Os microcontroladores trabalham eficientemente com baixo consumo de energia, o que diminui a necessidade de energia. Por outro lado, os FPGAs exigem alta potência, o que demanda mais energia para operação. Soluções baseadas em software não são diretamente personalizadas, enquanto soluções baseadas em hardware são diretamente personalizadas. Inversores, UPS e conversores são aplicações ideais para MCUs, enquanto o processamento de vídeo e imagem é mais adequado para FPGAs devido às suas capacidades de processamento paralelo.
Embora ambos dependam da aplicação, projetistas e engenheiros consideram os MCUs mais sofisticados em sistemas embarcados devido ao seu tamanho compacto, e a maioria das aplicações tem restrições de tamanho, como conversores CC-CC e muitas outras aplicações de eletrônica de potência. Por outro lado, os FPGAs são duráveis e eficientes em inteligência artificial, processamento de imagem e vídeo. Os FPGAs são fáceis de usar e podem lidar com cálculos pesados muito mais rapidamente do que os MCUs. O usuário precisa de menos experiência para usar FPGAs do que MCUs.
As diferenças entre FPGA, CPLD e MCUs são descritas nesta seção.
FPGA x CPLD
|
Aspecto de Comparação |
FPGA |
CPLD |
|
Estrutura interna |
Hcomo tabelas de consulta |
Has menor complexidade e blocos lógicos menores |
|
Tempo de inicialização |
Tnão leva tempo |
Tleva tempo |
|
Consumo de energia |
Alto consumo de energia |
Baixo consumo de energia |
FPGA x Microprocessador
|
Aspecto de Comparação |
FPGA |
Microprocessador |
|
Funcionalidade e Flexibilidade |
Um programamatriz lógica capaz de executar múltiplas tarefas, incluindo processamento, criptografia e rede, oferecendo alta flexibilidade |
Executa instruções para tarefas gerais, projetadas para funções específicas e carece de flexibilidade |
|
Execução de tarefas |
Executa tarefas em paralelo, manipulando grandes conjuntos de dados com eficiência |
Executa tarefas sequencialmente |
|
Tipo de memória |
Utiliza memória volátil e precisa ser reprogramada após perda de energia |
Utiliza memória não volátil, retendo dados após desligamento |
|
Casos de uso |
Adequado para computação de alta velocidade, processamento de fluxo de dados e tarefas de hardware personalizadas |
Usado para computação de uso geral, como controle de sistema operacional e gerenciamento de E/S |
MCUs e FPGAs são benéficos para diversas aplicações digitais, elétricas e de energia. Microcontroladores são econômicos, consomem pouca energia e são compatíveis com software, enquanto FPGAs são caros, consomem muita energia e são amigáveis ao hardware, mas apresentam alto desempenho e facilidade de processamento paralelo. MCUs mantêm suas funções mesmo quando desligados devido à RAM, enquanto FPGAs não possuem esse recurso devido à sua memória volátil. Embora ambos se apliquem a tecnologias baseadas em design, um usuário pode considerar o consumo de energia, o tempo de desenvolvimento, o processamento paralelo e a flexibilidade para uma aplicação onde MCUs e FPGAs podem ser usados.
Inquérito de Assembleia
Cotação Instantânea
Contato telefônico
+86-755-27218592
Além disso, preparamos um Centro de ajuda. Recomendamos que você verifique antes de entrar em contato, pois sua pergunta e a resposta podem já estar claramente explicadas lá.
Suporte WeChat
Além disso, preparamos um Centro de ajuda. Recomendamos que você verifique antes de entrar em contato, pois sua pergunta e a resposta podem já estar claramente explicadas lá.
Suporte WhatsApp
Além disso, preparamos um Centro de ajuda. Recomendamos que você verifique antes de entrar em contato, pois sua pergunta e a resposta podem já estar claramente explicadas lá.