FPGA vs microcontroladores: outra abordagem para design embarcado

FPGA vs microcontroladores: outra abordagem para design embarcado

A maioria dos engenheiros começa o treinamento em sistemas embarcados aprendendo sobre microcontroladores. Os microcontroladores envolvem um sistema de computação em miniatura completo em um único circuito integrado. A CPU, RAM, ROM e periféricos de entrada/saída estão em um único sistema em um chip (SoC) do tamanho de um polegar – o circuito integrado que compreende todos ou a maioria dos componentes eletrônicos.

Além dos componentes, outra parte do design embarcado está relacionada ao desenvolvimento de software. Microcontroladores (e microprocessadores) possuem um conjunto de instruções que permanece fixo em tamanho e operação, o que significa que um engenheiro usa as mesmas instruções via linguagem assembly ou C incorporado para resolver uma tarefa de computação, normalmente para uma aplicação do mundo real.

A boa notícia é que trabalhar com microcontroladores é relativamente simples de aprender, dada a experiência com linguagens de programação. Versões populares, como AVR, 8051, PIC e ARM expõem os engenheiros ao aspecto de desenvolvimento de software de sistemas embarcados. Então, existem várias opções.

No entanto, há também outra abordagem para o desenvolvimento de software embarcado para a qual os microcontroladores não têm capacidade: design embarcado baseado em hardware. Para isso, é necessário um array de portas programáveis ​​em campo (FPGA).

Os FPGAs foram inventados pela Xilinx em 1984. Eles são circuitos integrados que contêm milhões de portas lógicas que são configuradas eletronicamente para executar tarefas específicas (ou seja, as portas são programáveis ​​em campo).

Vamos comparar um FPGA a um computador. O computador (que pode ser um microcontrolador, microprocessador ou processador gráfico) é um circuito eletrônico digital que executa tarefas com base em um conjunto de instruções. Essas instruções contêm códigos de máquina que são implementados pelo circuito digital do computador em dados, onde os dados são armazenados e manipulados em registradores ou chips de memória.

Alternativamente, um FPGA leva o projeto para o hardware, para que um engenheiro possa projetar um dispositivo de computação (simples) no nível da arquitetura para executar tarefas ou aplicações específicas.

Matriz de portas programáveis ​​em campo (FPGA)

Microcontroladores versus FPGAs

Embora um FPGA seja frequentemente usado para projetar circuitos digitais para executar tarefas computacionais simples, ele não se compara a um microcontrolador em termos de computação. Microcontroladores e microprocessadores são verdadeiros dispositivos de computação com arquitetura complexa.

Um FPGA é comparável e pode funcionar com circuitos integrados de aplicação específica (ASICs). Um ASIC é personalizado para uma tarefa específica, e não para uso geral. Na verdade, qualquer função ASIC pode ser projetada e fabricada de forma personalizada em um FPGA.

Enquanto os microcontroladores permitem que engenheiros com experiência em montagem ou software de design de linguagem de programação de alto nível para um computador, um FPGA permite o projeto de um dispositivo de computação simples. Este projeto embarcado baseado em hardware requer conhecimento detalhado de circuitos digitais e arquitetura de computadores.

Algumas diferenças no idioma:

  • Os microcontroladores são programados usando um assembly ou uma linguagem de alto nível (como 'C'), que é convertida em código de máquina para execução em uma CPU.
  • Os chips FPGA são programados usando Verilog ou linguagem de descrição de hardware de circuito integrado de alta velocidade (VHDL). VHDL é convertido em blocos lógicos digitais fabricados em chips FPGA para projetar um computador personalizado para aplicações específicas. Usando VHDL ou Verilog, um engenheiro projeta o caminho de dados e o hardware da unidade lógica aritmética (ALU) a partir do nível raiz. Até mesmo um microcontrolador pode ser projetado em um FPGA, desde que haja blocos lógicos suficientes para suportar o projeto.

Faz sentido aprender primeiro sobre microcontroladores e microprocessadores porque é importante compreender como os computadores funcionam e são programados para executar tarefas específicas. Microcontroladores, FPGAs e CPLDs (dispositivos lógicos programáveis ​​complexos) são sistemas embarcados independentes com suas próprias vantagens e desvantagens.

Os FPGAs estendem esse conhecimento aos circuitos de hardware, com conhecimento sobre como os computadores são construídos.

Vantagens dos FPGAs
Os FPGAs não servem apenas como uma forma de aprender sobre design digital e arquitetura de computadores, mas esses chips também oferecem aplicações reais em engenharia de sistemas embarcados. Eles fornecem uma alternativa aos ASICs, com certas vantagens…

Multi-threading. FPGAs podem processar múltiplas instruções ao mesmo tempo ou em paralelo. Esta é uma grande vantagem sobre os microcontroladores, que só podem executar uma instrução por vez, sequencialmente. Isso significa que os FPGAs são normalmente muito mais rápidos nas tarefas de processamento. Como esses processos são codificados logicamente no nível do hardware, os chips FPGA são ideais para aplicações dedicadas ou especializadas, incluindo pré-processamento de dados de sensores, criptografia, projeto de circuitos lógicos, aplicações de áudio digital, streaming de vídeo e muito mais.

Os microcontroladores, por outro lado, possuem uma arquitetura genérica com um conjunto de instruções dedicado, o que os torna mais adequados para resolver tarefas computacionais complexas em velocidades mais lentas que podem exigir interfaces padrão.

No geral, os FPGAs têm uma vantagem quando o volume de dados a serem processados ​​em uma aplicação é alto, graças a esse recurso multithreading. Hoje, as placas FPGA estão disponíveis com CPUs integradas, portanto, apenas a lógica do projeto é necessária para o processamento específico da aplicação.

Flexibilidade e escopo de design. Qualquer circuito digital, independentemente da complexidade, pode ser projetado em um FPGA, desde que o chip contenha um número suficiente de blocos lógicos para emular o projeto. Portanto, tecnicamente, os FPGAs podem ser usados ​​para projetar qualquer periférico ou executar qualquer tarefa computacional.

Eles também podem ser programados para ter vários temporizadores, UARTs de canal ou geradores de modulação de largura de pulso de canal (PWM) — ao contrário dos microcontroladores, que não oferecem essa flexibilidade. Isso ocorre porque não há como alterar o chipset de um microcontrolador para se adequar a uma aplicação. Em vez disso, eles têm uma unidade de computação genérica e periféricos integrados (como temporizadores, GPIO, interrupções e interfaces seriais).

Essa flexibilidade dos FPGAs dá maior poder aos engenheiros para projetos especializados.

Fator analógico. Normalmente, em qualquer sistema embarcado, o controlador ou processador é acoplado a sensores que fornecem entrada analógica ou atuadores que requerem saída analógica do controlador ou processador.

Matrizes analógicas programáveis ​​em campo (FPAA) também são uma opção que permite aos projetistas programar circuitos analógicos complexos. Muitos chips FPGA incluem FPAAs, portanto o chip pode ser programado para um circuito digital e processar sinais analógicos. Esses chips de sinal misto contêm periféricos de conversor analógico para digital (ADC) ou conversor digital para analógico (DAC), acoplados a blocos de condicionamento de sinal analógico.

Os pinos de saída em tais dispositivos podem ser programados para força de acionamento e taxa de variação conforme exigido pela carga naquele pino. Este é outro exemplo de como os FPGAs oferecem maior flexibilidade, com a capacidade de oferecer programação analógica para aplicações específicas.

Reutilização. Os FPGAs podem ser reprogramados para emular qualquer outro circuito digital (ou analógico), portanto um circuito nunca é fixo. Quando o chip é ligado, o design digital de acordo com os dados de configuração é carregado no chip. Isso acontece sempre que o chip é ligado.

Os dados de configuração podem ser alterados para a próxima partida com um novo design. Como o chip é reutilizável, um engenheiro pode experimentar infinitamente diferentes designs digitais no mesmo chip.

Solução de chip único. FPGAs oferecem uma solução de chip único para uma aplicação. Isso é diferente dos microcontroladores que normalmente devem fazer interface com outros periféricos (que podem não estar integrados), interfaces ou ASICs.

Processamento em tempo real. FPGAs não são ICs de computação genéricos, mas são usados ​​para projetar um dispositivo de computação dedicado no chip. Ao contrário dos microcontroladores, que executam um programa (código de máquina), os caminhos de dados e ALU são fabricados no FPGA para resolver uma tarefa computacional.

Isto significa que em vez de executar um programa, o FPGA é programado para operar para uma tarefa específica. Esta execução da lógica no nível do hardware permite o processamento de dados e informações em tempo real. É por isso que os FPGAs são frequentemente usados ​​para aplicações críticas de alta velocidade, onde um microcontrolador pode falhar devido à sua dependência do código para ser executado em uma arquitetura fixa com um conjunto de instruções limitado.

~

Dadas essas vantagens, os FPGAs são ideais para processamento paralelo de alta velocidade onde o volume de dados a serem processados ​​é grande ou o chip de processamento requer periféricos customizados, saída analógica configurável ou uma aplicação dedicada de tempo crítico (o que de outra forma não seria possível em uma CPU genérica).

Os FPGAs fornecem acesso a projetos integrados complexos que, de outra forma, só estariam disponíveis a um alto custo de engenharia. Este chip é como uma fundição de mini semicondutores em uma placa do tamanho de um cartão de crédito.

Em aplicações do mundo real, os FPGAs são usados ​​em verticais específicas onde o volume de produção é baixo. É amplamente utilizado na prototipagem de projetos ASIC, normalmente oferecendo um rápido lançamento no mercado sem um longo processo de fabricação.

As aplicações comuns incluem processamento de sinais digitais, processamento de imagens, bioinformática, criptografia, rádios projetados por software, imagens médicas, reconhecimento de voz, telecomunicações, data centers, eletrônica aeroespacial e sistemas de segurança.

Em comparação, os microcontroladores são usados ​​em aplicações embarcadas gerais, como eletrônica automotiva, de consumo e industrial, sistemas de comunicação e outros.

Desvantagens dos FPGAs
Existem algumas desvantagens significativas relacionadas aos FPGAs, dependendo da aplicação. Isso inclui a complexidade, os altos requisitos de energia e o preço.

Custo – As placas FPGA são mais caras que os microcontroladores (cerca de US$ 50 em comparação com US$ 10 ou menos). Esse é um dos motivos pelos quais os chips FPGA normalmente não são discutidos no início de um curso de treinamento sobre design embarcado.

No entanto, os FPGAs são reutilizáveis, o que lhes confere maior valor a longo prazo, especialmente para fins de pesquisa e desenvolvimento ou protótipos. Em outros casos, apesar das baixas velocidades e da arquitetura genérica dos microcontroladores, eles geralmente são apenas mais acessíveis.

Placa de desenvolvimento FPGA

Uma placa de desenvolvimento FPGA.

Requisito de alta potência. A maioria das placas FPGA é alimentada por um backplane de 48 V. Infelizmente, o requisito de alta potência os torna inadequados para diversas aplicações embarcadas. Compare isso com placas microcontroladoras, que normalmente requerem apenas uma fonte de 5 ou 3,3 V para operação. Eles são a escolha óbvia para o design de qualquer dispositivo embarcado portátil alimentado por bateria.

Volatilidade. O design digital de um FPGA é passado para ele por meio de dados de configuração. Quando ligada, a placa é configurada adequadamente e começa a operar. Os dados de configuração devem ser armazenados na memória flash no modo mestre ou passados ​​por um processador através de uma interface de varredura de limite (JTAG) no modo escravo. Esses dados são perdidos quando a placa é desligada.

A natureza volátil da maioria dos FPGAs os torna inadequados para aplicações onde há risco de perda ou interrupção de energia.

Hora de inicialização. Os FPGAs devem carregar dados de configuração sempre que são ligados. Isso adiciona um tempo de inicialização significativo à sua operação. No entanto, uma vez carregados os dados de configuração, uma placa FPGA normalmente opera muito mais rápido que um microcontrolador.

O tempo de inicialização pode ser um problema para determinados aplicativos críticos que exigem ação imediata após a ativação. Os FPGAs não são adequados para aplicações onde o dispositivo embarcado liga e desliga com frequência. Também não é possível manter esses chips continuamente ligados em um dispositivo embarcado devido ao seu alto consumo de energia.

Alta contagem de pinos. Em geral, a maioria dos FPGAs possui vários pinos. Portanto, esses chips não são ideais para espaços pequenos ou aplicações embarcadas restritas onde o processador ou controlador de computação deve ser compacto. Em contraste, existem muitos microcontroladores com oito pinos ou menos, que cabem facilmente em dispositivos pequenos.

Complexidade. Trabalhar com FPGAs requer conhecimento detalhado sobre design digital e arquitetura de computadores. Não é tão simples como com microcontroladores. As linguagens para FPGAs – VHDL ou Verilog – são bastante complexas de aprender em comparação com a programação de alto nível ou linguagem assembly necessária para o desenvolvimento de software.

Embora a maioria das ferramentas para desenvolvimento de FPGA estejam disponíveis gratuitamente, elas são complexas de usar e pode ser difícil escolher a placa ideal. Existem também muitas complicações, armadilhas e cuidados no design digital que só podem ser aprendidos com o tempo e com experiência prática.

Limitações de projeto. Só é possível interligar os blocos lógicos para um projeto digital com FPGAs. Também não há controle no nível do portão e, normalmente, a síntese não é padrão. No entanto, os FPGAs são excelentes para testar arquitetura ou para um projeto ASIC em estágio inicial.

Durabilidade. Os ICs FPGA têm uma vida útil curta em comparação com os microcontroladores. Embora os microcontroladores possam durar décadas em um dispositivo, um chip FPGA em um dispositivo incorporado normalmente requer substituição a cada dois a cinco anos.

O alto custo, a quantidade de pinos, a contagem e os requisitos de energia, bem como a complexidade, a volatilidade e as limitações de design fizeram com que os FPGAs fossem menos comuns em aplicações embarcadas. Atualmente, eles são usados ​​apenas em dispositivos de alta potência que exigem uma arquitetura dedicada, periféricos personalizados ou execução crítica de código de máquina por meio de processamento paralelo.

Conclusão
FPGAs têm vantagens e desvantagens. Depende da aplicação. Em geral, proporcionam aos engenheiros maior acesso ao projeto de hardware e capacidade de explorar circuitos integrados, o que é impossível com microcontroladores. Mas isso requer um certo nível de conhecimento e experiência. Pode valer a pena obter uma compreensão completa da engenharia de design embarcada.

Enquanto microcontroladores e processadores oferecem experiência de software, FPGAs fornecem conhecimento de hardware. E assim como depois de criar o código do zero, a experiência torna tudo mais fácil com o tempo.

Conteúdo Relacionado

Qual o papel dos sensores automotivos nos veículos modernos?
Uma rede de sensores é incorporada em todos os...
Como escolher um controlador de e-bike
O controlador do motor é um dos componentes mais...
Como solucionar problemas comuns do ESP32-CAM
ESP32-CAM é um módulo de câmera compacto que combina...
Um guia para padrões USB de 1.0 a USB4
A evolução dos padrões USB foi fundamental para moldar...
Schurter aprimora série de seletores de tensão com revestimento prateado
A SCHURTER anuncia um aprimoramento para sua conhecida série...
A interface serial PCI fornece conectividade confiável em ambientes extremos
A Sealevel Systems anuncia o lançamento da Interface Serial...
STMicroelectronics expande portfólio de conversão de energia com diodos Trench Schottky de 100 V
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
O que são Sistemas Globais de Navegação por Satélite (GNSS) e como são usados?
Determinar uma localização precisa é necessário em várias indústrias...
O conversor GaN de 50 W da STMicroelectronics permite projetos de energia de alta eficiência
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
Samsung e Red Hat farão parceria em software de memória de próxima geração
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
Primeiro MPU single-core com interface de câmera MIPI CSI-2 e áudio
O mercado embarcado tem uma necessidade de soluções de...
A influência de diferentes enrolamentos de armadura CC no desempenho
O impacto dos enrolamentos da armadura CC no desempenho...
Decodificação de fluência no motor de indução para melhor desempenho
Você provavelmente já se deparou com o termo 'arrastar'...
Compreendendo os isoladores de suporte em sistemas elétricos
Você provavelmente tem um Isolador de suporte Se você...
Explore Stay Insulator – segurança, instalação e manutenção
Você provavelmente já viu permanecer um isolante sente-se em...
Mais segurança e eficiência com o isolador de manilha
Você provavelmente já viu Isoladores de manilha entronizados em...
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。