Volume global de mixage élevé et haute vitesse PCBA fabricant
9h00 - 18h00, lundi. - Ven. (GMT+8)
9h00 - 12h00, sam. (GMT+8)
(Sauf les jours fériés chinois)
Accueil > Blog > Base de connaissances > FPGA vs. Microcontrôleur : Comprendre les principales différences
Les microcontrôleurs et les réseaux de portes programmables (FPGA) sont souvent utilisés dans la conception de systèmes numériques. Les systèmes à base de microcontrôleurs connaissent un succès croissant. D'une part, leur faible coût, leur faible consommation d'énergie et leur adéquation aux tâches de contrôle de base en font un choix évident. D'autre part, la popularité croissante des FPGA, la disponibilité d'outils de développement robustes et leur capacité et densité de traitement parallèle accrues font des systèmes à base de FPGA une option attractive.
Plusieurs cœurs de microcontrôleurs sont aujourd'hui disponibles pour le marché de l'embarqué, allant des conceptions conventionnelles comme le 8051 aux machines RISC ou DSP. Le choix entre différentes conceptions est déterminé par des critères tels que la vitesse, la puissance, le parc installé, le potentiel de réutilisation et d'autres considérations techniques. Les applications embarquées constituent un sujet d'étude en constante expansion dans les systèmes informatiques. Le grand nombre de ports de communication, d'unités de modulation de largeur d'impulsion (MLI) et de convertisseurs analogique-numérique (CAN) du MCU, regroupés sur une seule puce, en fait un produit idéal pour les applications industrielles.
Dans divers domaines de l'électrotechnique, les microcontrôleurs (MCU) sont généralement utilisés pour les tâches de contrôle, de communication et de faible complexité, tandis que les réseaux de portes programmables (FPGA) sont employés pour les tâches de traitement rapides et critiques. Cependant, les applications basées sur des dispositifs intégrés à l'électronique grand public présentent diverses restrictions de conception. Dans ce cas, la consommation d'énergie, la densité du code et l'intégration des périphériques peuvent prendre le pas sur les exigences de performance. D'un point de vue technologique, la densité croissante des FPGA et la baisse de leur prix due à la forte production permettent l'intégration de systèmes embarqués sur une seule puce FPGA.
Un microcontrôleur est un appareil électronique appartenant à la famille des micro-ordinateurs. Ses composants sont fabriqués par intégration à très grande échelle (VLSI) pour former une puce unique. On les appelle aussi « ordinateur sur puce ». Un microcontrôleur dispose d'une certaine quantité de RAM et de ROM (EEPROM, EPROM, etc.) ou de mémoires flash pour stocker les codes de programme. Il est également équipé de temporisateurs, de ports parallèles, de ports série, de ports d'interruption, d'un convertisseur analogique-numérique (CAN), d'un PWM (modulation d'impulsions en largeur) et d'un convertisseur numérique-analogique (CNA). Un microcontrôleur est un microprocesseur doté de mémoire et de capacités d'E/S. Les microcontrôleurs sont largement utilisés dans les systèmes embarqués grâce à l'intégration du processeur, de la mémoire et des périphériques d'E/S dans une seule puce.
Un PC ou un ordinateur portable est une machine polyvalente (utilisée pour diverses tâches telles que les jeux, la navigation sur Internet, la musique, le traitement de texte, etc.). En revanche, les systèmes embarqués sont généralement des appareils monofonctionnels conçus pour des tâches spécifiques. Une caractéristique clé des systèmes à microcontrôleurs est qu'ils effectuent souvent des tâches dédiées sans nécessiter de système d'exploitation complet (par exemple, Windows, Linux, macOS, iOS). Les montres, les lecteurs MP3, les distributeurs automatiques et autres appareils électroniques contiennent des systèmes embarqués. Un ordinateur complet interférerait parfois avec le fonctionnement de l'appareil. Imaginez qu'il faille démarrer Windows pour faire fonctionner un lave-vaisselle. La figure 2 illustre l'architecture d'un microcontrôleur.
Les compilateurs vérifient la validité du code d'un langage de programmation de haut niveau, tant au niveau de la grammaire que de l'allocation mémoire. Dans ce cas, des erreurs ou des avertissements sont souvent générés, et les codes contenant des erreurs ne sont pas stockés sur le microcontrôleur. Une fois le code correct, le compilateur le transforme en code machine et génère un fichier HEX chargé dans la mémoire du microcontrôleur.
Réseaux de portes programmables sur site (FPGALes FPGA sont des circuits intégrés numériques (CI) comprenant des blocs logiques et des interconnexions modifiables (programmables). Les ingénieurs concepteurs peuvent programmer ces dispositifs pour exécuter un large éventail de fonctions. Selon leur conception, certains FPGA ne peuvent être programmés qu'une seule fois, tandis que d'autres peuvent l'être de manière répétée. Sans surprise, un dispositif ne pouvant être programmé qu'une seule fois est dit programmable une seule fois.
La partie « programmable sur le terrain » du nom du FPGA fait référence au fait que la programmation s'effectue « sur le terrain » (contrairement aux dispositifs dont les fonctionnalités principales sont programmées en dur par le fabricant). Cela peut s'appliquer à la configuration de FPGA en laboratoire ou à la modification du fonctionnement d'un dispositif dans un système électronique déjà déployé en conditions réelles. Si un dispositif peut être programmé tout en restant dans un système de niveau supérieur, on dit qu'il est programmable in-system. La figure 3 illustre la carte de développement du FPGA.
Les FPGA sont fréquemment utilisés comme coprocesseurs pour les processeurs existants, soit pour accélérer les tâches critiques, soit pour étendre les fonctionnalités des UAL classiques. Par exemple, avec des microcontrôleurs, le calcul d'équations à plus de deux termes nécessite une série d'opérations arithmétiques et/ou logiques, et dans de nombreux cas, une variable temporaire doit être affectée. Les FPGA peuvent améliorer les performances de ces systèmes en effectuant ces calculs en parallèle tout en utilisant une bonne dose de logique combinatoire.
Ils sont également couramment utilisés dans les systèmes informatiques personnalisés, où un dispositif de calcul complet est créé et implémenté dans un FPGA. Les microcontrôleurs monopuces sont souvent utilisés et suffisent à certains besoins applicatifs. Dans ce cas, seul le logiciel de l'application souhaitée doit être écrit. L'interface matérielle est essentielle à la conception de tels systèmes et est souvent implémentée à l'aide de puces spécialisées standard. Il en résulte un système figé, impossible à modifier sans reconception matérielle. Les FPGA offrent une flexibilité significative dans ces applications, permettant la personnalisation matérielle et le traitement parallèle. La figure 4 représente le schéma fonctionnel interne d'une carte de développement FPGA.
Performances
Les microcontrôleurs dépendant de la fréquence d'horloge, leurs performances sont généralement inférieures à celles des FPGA, leur fréquence dépendant de la conception. La plupart de ces applications concernent le traitement d'images et de vidéos.
Consommation d'énergie
Les microcontrôleurs (MCU) consomment moins d'énergie que les FPGA grâce à leur taille compacte. Ils sont parfaits pour alimenter des batteries, des onduleurs et des convertisseurs. En revanche, les FPGA sont plus performants en traitement numérique d'images et de vidéos.
Flexibilité et personnalisation
La configuration matérielle est flexible sur les FPGA, tandis que sur les microcontrôleurs, toutes les modifications sont réalisées par développement logiciel. Ce phénomène rend les microcontrôleurs moins flexibles que les FPGA. La personnalisation logicielle est avantageuse sur les MCU, tandis que la personnalisation matérielle est plus simple sur les FPGA.
Temps de développement et complexité
Les microcontrôleurs et les FPGA diffèrent en termes d'architecture mémoire et de performances. Un microcontrôleur possède une mémoire non volatile, ce qui signifie qu'après une mise hors tension, les microcontrôleurs conservent leur mémoire, tandis que cette fonctionnalité est absente des FPGA en raison de leur mémoire vive (RAM). Les microcontrôleurs sont généralement programmés à l'aide de langages de haut niveau comme C/C++, tandis que le développement des FPGA nécessite des langages de description matérielle comme Verilog ou VHDL. Verilog et les FPGA sont pris en charge matériellement, tandis que C/C++ sont pris en charge logiciellement.
Composants de base
Un microcontrôleur n'est rien s'il est intégré à des circuits intégrés (CI), tandis que les FPGA contiennent principalement des CI et d'autres circuits intégrés. En bref, ces deux technologies associent circuits intégrés et langage de haut niveau.
Personnalisation
Après fabrication, les FPGA et les microcontrôleurs sont reprogrammables, et leur fonctionnement peut être modifié après la construction de l'infrastructure. Cependant, les FPGA sont principalement adaptés aux applications exigeantes, tandis que les microcontrôleurs comme Arduino conviennent également aux applications plus simples.
Les microcontrôleurs sont largement disponibles à bas prix et offrent une large gamme de fonctionnalités pour les applications de puissance et d'électronique. Cependant, leur utilisation requiert une maîtrise des langages de haut niveau tels que C/C++. En revanche, les FPGA sont plus chers, mais beaucoup plus conviviaux. Les microcontrôleurs fonctionnent efficacement à faible consommation, ce qui réduit les besoins énergétiques. En revanche, les FPGA nécessitent une puissance élevée, ce qui nécessite davantage d'énergie pour fonctionner. Les solutions logicielles ne sont pas directement personnalisables, contrairement aux solutions matérielles. Les onduleurs, les onduleurs et les convertisseurs sont des applications idéales pour les microcontrôleurs, tandis que le traitement vidéo et d'images est plus adapté aux FPGA grâce à leurs capacités de traitement parallèle.
Cependant, les deux dépendent de l'application. Les concepteurs et les ingénieurs ont trouvé les microcontrôleurs plus sophistiqués dans les systèmes embarqués en raison de leur taille compacte, et la plupart des applications, comme les convertisseurs CC-CC et de nombreuses autres applications d'électronique de puissance, ont des contraintes de taille. En revanche, les FPGA sont durables et efficaces en intelligence artificielle, en traitement d'images et en traitement vidéo. Conviviaux, ils peuvent gérer des calculs lourds beaucoup plus rapidement que les microcontrôleurs. Leur utilisation requiert moins d'expertise de la part de l'utilisateur que celle des microcontrôleurs.
Les différences entre FPGA, CPLD et MCU sont décrites dans cette section.
FPGA contre CPLD
|
Aspect de comparaison |
FPGA |
CPLD |
|
Structure interne |
Hcomme tables de consultation |
Has complexité moindre et blocs logiques plus petits |
|
Temps de mise sous tension |
Tne prend pas de temps |
Tprend du temps |
|
Consommation d'énergie |
Exigence de consommation d'énergie élevée |
Exigence de faible consommation d'énergie |
FPGA contre microprocesseur
|
Aspect de comparaison |
FPGA |
Microprocesseur |
|
Fonctionnalité et flexibilité |
Un programmeréseau logique capable d'effectuer plusieurs tâches, notamment le traitement, le cryptage et la mise en réseau, offrant une grande flexibilité |
Exécute des instructions pour des tâches générales, conçues pour des fonctions spécifiques et manque de flexibilité |
|
Exécution de la tâche |
Exécute des tâches en parallèle, en gérant efficacement de grands ensembles de données |
Exécute les tâches de manière séquentielle |
|
Type de mémoire |
Utilise une mémoire volatile et nécessite une reprogrammation après une panne de courant |
Utilise une mémoire non volatile, conservant les données après la mise hors tension |
|
Cas d'usage |
Adapté au calcul à grande vitesse, au traitement de flux de données et aux tâches matérielles personnalisées |
Utilisé pour l'informatique à usage général, comme le contrôle du système d'exploitation et la gestion des E/S |
Les microcontrôleurs et les FPGA sont tous deux utiles pour de nombreuses applications numériques, électriques et de puissance. Les microcontrôleurs sont économiques, consomment peu d'énergie et sont optimisés pour les logiciels, tandis que les FPGA sont coûteux, consomment beaucoup d'énergie et sont faciles à utiliser sur le plan matériel, tout en offrant des performances élevées et une facilité de traitement parallèle. Les microcontrôleurs conservent leurs fonctions même hors tension grâce à la RAM, tandis que les FPGA n'ont pas cette fonctionnalité en raison de leur mémoire volatile. Bien que ces deux technologies s'appliquent aux technologies de conception, l'utilisateur peut prendre en compte la consommation d'énergie, le temps de développement, le traitement parallèle et la flexibilité d'une application où les microcontrôleurs et les FPGA peuvent être utilisés.
Enquête sur l'Assemblée
Citation instantanée





Contact téléphonique
+86-755-27218592
De plus, nous avons préparé un Centre d'aide. Nous vous recommandons de le vérifier avant de nous contacter, car votre question et sa réponse y sont peut-être déjà clairement expliquées.
Assistance WeChat
De plus, nous avons préparé un Centre d'aide. Nous vous recommandons de le vérifier avant de nous contacter, car votre question et sa réponse y sont peut-être déjà clairement expliquées.
Assistance WhatsApp
De plus, nous avons préparé un Centre d'aide. Nous vous recommandons de le vérifier avant de nous contacter, car votre question et sa réponse y sont peut-être déjà clairement expliquées.