Central de Ajuda  
Enviando uma mensagem
Horário de funcionamento: 9h00-21h00 (GMT+8)
Linhas diretas de serviço

9h00 -18h00, seg. - Sex. (GMT+8)

9:00 -12:00, sábado (GMT+8)

(Exceto feriados chineses)

X

FPGA vs. Microcontrolador – Compreendendo as principais diferenças

7604

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.

 

O que é um microcontrolador?

 

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.

 

O que é um FPGA (Field Programmable Gate Array)?

 

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.

 



Principais diferenças entre microcontroladores e 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.

 

Semelhanças entre microcontrolador e FPGA?

 

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.

 

Aplicações para FPGAs e Microcontroladores

 

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.

 

Quando usar FPGAs e microcontroladores

 

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.

 

FPGA vs outros

 

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


Conclusão

 

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.

Sobre o autor

Emily Carter

Steven concentra-se em P&D e fabricação de placas de circuito de alta precisão, familiarizado com os mais recentes processos de design e produção da indústria, e gerenciou diversos projetos de produção de PCBs de marcas renomadas internacionalmente. Seus artigos sobre novas tecnologias e tendências em placas de circuito fornecem insights técnicos profundos para profissionais do setor.

Montar 20 PCBs para $0

Inquérito de Assembleia

Enviar arquivo

Cotação Instantânea

x
Enviar arquivo

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á.