Helpcenter  
Senden einer Nachricht
Öffnungszeiten: 9:00-21:00 (GMT+8)
Service-Hotlines

9:00 -18:00, Mo. - Fr. (GMT+8)

9:00 -12:00, Sa. (GMT+8)

(Außer an chinesischen Feiertagen)

X

FPGA vs. Mikrocontroller – Die wichtigsten Unterschiede

2119

Mikrocontroller und Field Programmable Gate Arrays (FPGAs) werden häufig im digitalen Systemdesign eingesetzt. Mikrocontrollerbasierte Systeme erfreuen sich zunehmender Beliebtheit. Ihre niedrigen Kosten, ihr geringer Stromverbrauch und ihre Eignung für grundlegende Steuerungsaufgaben machen sie zu einer naheliegenden Wahl. Die rasant wachsende Beliebtheit von FPGAs, die Verfügbarkeit robuster Entwicklungstools sowie ihre erhöhte Parallelverarbeitungskapazität und -dichte machen FPGA-basierte Systeme zudem zu einer attraktiven Option.


Für den Embedded-Markt sind heute verschiedene Mikrocontroller-Kerne erhältlich, von konventionellen Designs wie dem 8051 bis hin zu RISC- oder DSP-Rechnern. Die Entscheidung zwischen verschiedenen Designs wird durch Kriterien wie Geschwindigkeit, Leistung, installierte Basis, Wiederverwendungspotenzial und andere technische Aspekte bestimmt. Embedded-Anwendungen sind ein immer wichtigeres Forschungsgebiet in der Computertechnik. Die große Anzahl an Kommunikationsanschlüssen, Pulsweitenmodulationseinheiten (PWM) und Analog-Digital-Wandlern (ADC) der MCU, die auf einem einzigen Chip untergebracht sind, machen sie ideal für industrielle Anwendungen.



In verschiedenen Bereichen der Elektrotechnik werden MCUs typischerweise für grundlegende Steuerungs-, Kommunikations- und Aufgaben mit geringer Komplexität eingesetzt, während Field Programmable Gate Arrays (FPGAs) für schnelle, zeitkritische Verarbeitungsaufgaben eingesetzt werden. Anwendungen, die auf in Unterhaltungselektronik integrierten Bausteinen basieren, unterliegen jedoch verschiedenen Designbeschränkungen. In diesem Fall können Stromverbrauch, Codedichte und Peripherieintegration Vorrang vor Leistungsanforderungen haben. Andererseits ermöglichen die zunehmende Dichte von FPGAs und deren Preisrückgang aufgrund hoher Produktionsmengen aus technologischer Sicht die Integration eingebetteter Systeme in einem einzigen FPGA-Chip.

 

Was ist ein Mikrocontroller?

 

Ein Mikrocontroller ist ein elektronisches Gerät aus der Familie der Mikrocomputer. Die Komponenten des Mikrocontrollers werden mithilfe von Very Large Scale Integration (VLSI) zu einem einzigen Chip zusammengefügt. Sie werden auch als Computer-on-Chip bezeichnet. Ein Mikrocontroller verfügt über eine bestimmte Menge an RAM und ROM (EEPROM, EPROM usw.) oder Flash-Speicher zur Speicherung von Programmcodes. Weitere Funktionen sind Timer, parallele und serielle Schnittstellen, Interrupt-Ports, ADC, PWM und DAC. Ein Mikrocontroller ist ein Mikroprozessor mit Speicher- und E/A-Funktionen. Mikrocontroller werden aufgrund ihrer Integration von CPU, Speicher und E/A-Peripheriegeräten in einem einzigen Chip häufig in eingebetteten Systemen eingesetzt.

 



Ein PC oder Laptop ist ein Allzweckgerät (für verschiedene Aufgaben wie Spiele, Surfen im Internet, Musik, Textverarbeitung usw.). Im Gegensatz dazu sind eingebettete Systeme typischerweise Einzelfunktionsgeräte, die für bestimmte Aufgaben entwickelt wurden. Ein wesentliches Merkmal von Mikrocontrollersystemen ist, dass sie oft dedizierte Aufgaben ausführen, ohne ein vollwertiges Betriebssystem (z. B. Windows, Linux, macOS, iOS) zu benötigen. Uhren, MP3-Player, Verkaufsautomaten und andere elektronische Geräte enthalten eingebettete Systeme. Ein vollständiger Computer würde manchmal die Funktionalität des Geräts beeinträchtigen. Stellen Sie sich vor, Sie müssten Windows starten, um einen Geschirrspüler zu bedienen. Abbildung 2 zeigt die Architektur eines Mikrocontrollers.

 



Compiler überprüfen die Gültigkeit von Code in höheren Programmiersprachen, sowohl hinsichtlich der Grammatik als auch der Speicherzuweisung. In diesem Fall werden häufig Fehler oder Warnungen angezeigt, und fehlerhafter Code wird nicht auf dem Mikrocontroller gespeichert. Sobald der Code korrekt ist, wandelt der Compiler ihn in Maschinencode um und gibt eine HEX-Datei aus, die in den Speicher des Mikrocontrollers geladen wird.

 

Was ist ein FPGA (Field Programmable Gate Array)?

 

Field Programmable Gate Arrays (FPGAFPGAs sind digitale integrierte Schaltkreise (ICs), die veränderbare (programmierbare) Logikblöcke und Verbindungen enthalten. Konstrukteure können solche Geräte so programmieren, dass sie eine Vielzahl von Funktionen ausführen. Je nach Aufbau können bestimmte FPGAs nur einmal, andere wiederholt programmiert werden. Daher wird ein Baustein, der nur einmal programmiert werden kann, als „One-Time Programmable“ bezeichnet.

 

Der Teil „feldprogrammierbar“ im FPGA-Namen weist darauf hin, dass die Programmierung „im Feld“ erfolgt (im Gegensatz zu Geräten, deren Kernfunktionalität vom Hersteller fest verdrahtet wird). Dies gilt beispielsweise für die Konfiguration von FPGAs im Labor oder für die Änderung der Funktionsweise eines Geräts in einem bereits im Einsatz befindlichen elektronischen System. Kann ein Gerät programmiert werden, während es sich in einem übergeordneten System befindet, gilt es als systemintern programmierbar. Abbildung 3 zeigt die Entwicklungsplatine für das FPGA.

 



FPGAs werden häufig als Coprozessoren für bestehende Prozessoren eingesetzt, um zeitkritische Aufgaben zu beschleunigen oder die Funktionalität typischer ALUs zu erweitern. Beispielsweise erfordert die Berechnung von Gleichungen mit mehr als zwei Termen bei Mikrocontrollern eine Reihe arithmetischer und/oder logischer Operationen, und oft muss eine temporäre Variable zugewiesen werden. FPGAs können die Leistung solcher Systeme verbessern, indem sie solche Berechnungen parallel durchführen und dabei einen hohen Anteil kombinatorischer Logik verwenden.

 

Sie werden auch häufig in kundenspezifischen Computersystemen eingesetzt, bei denen ein komplettes Rechengerät erstellt und in einem FPGA implementiert wird. Ein-Chip-Mikrocontroller werden häufig verwendet und reichen für bestimmte Anwendungsanforderungen aus. In diesem Fall muss lediglich die Software für die gewünschte Anwendung geschrieben werden. Die Hardwareschnittstelle ist für die Entwicklung solcher Systeme unerlässlich und wird oft mit Standard-Spezialchips implementiert. Dies führt zu einem festen System, das ohne ein Hardware-Redesign nicht geändert werden kann. FPGAs bieten in diesen Anwendungen erhebliche Flexibilität und ermöglichen Hardware-Anpassung und Parallelverarbeitung. Abbildung 4 zeigt das interne Blockdiagramm einer FPGA-Entwicklungskarte.

 



Hauptunterschiede zwischen Mikrocontrollern und FPGA

 

Kennzahlen

 

Da Mikrocontroller von der Taktfrequenz abhängig sind, weisen sie in der Regel eine geringere Leistung als FPGAs auf, da ihre Frequenz konstruktionsabhängig ist. Die meisten dieser Anwendungen dienen der Bild- und Videoverarbeitung.

 

Energieverbrauch

 

Mikrocontroller (MCUs) verbrauchen aufgrund ihrer kompakten Größe weniger Strom als FPGAs. Mikrocontroller eignen sich ideal für den Betrieb von Batterien, Wechselrichtern und Konvertern. FPGAs eignen sich hingegen besser für die digitale Bild- und Videoverarbeitung.

 

Flexibilität und Anpassung

 

Der Hardware-Aufbau ist bei FPGAs flexibel, während bei Mikrocontrollern alle Änderungen durch Softwareentwicklung erfolgen. Dadurch sind Mikrocontroller weniger flexibel als FPGAs. Softwarebasierte Anpassungen sind bei MCUs vorteilhaft, während hardwarebasierte Anpassungen bei FPGAs einfacher sind.

 

Entwicklungszeit und Komplexität

 

MCUs und FPGAs unterscheiden sich hinsichtlich Speicherarchitektur und Leistungsmerkmalen. Ein Mikrocontroller verfügt über einen nichtflüchtigen Speicher, d. h. MCUs behalten ihren Speicher auch nach dem Ausschalten. Bei FPGAs fehlt diese Funktion aufgrund des Direktzugriffsspeichers. Mikrocontroller werden typischerweise mit höheren Programmiersprachen wie C/C++ programmiert, während die FPGA-Entwicklung Hardwarebeschreibungssprachen wie Verilog oder VHDL erfordert. Verilog und FPGAs sind hardwareunterstützt, während C/C++ softwareunterstützte Sprachen sind.

 

Ähnlichkeiten zwischen Mikrocontroller und FPGA?

 

Grundlegende Komponenten

 

Ein Mikrocontroller ist nichts, solange er in integrierte Schaltkreise (ICs) integriert ist, während FPGAs meist ICs und andere integrierte Schaltkreise enthalten. Kurz gesagt: Beide Technologien sind eine Mischung aus integrierten Schaltkreisen und einer höheren Programmiersprache.

 

Maßgeschneidert

 

Sowohl FPGAs als auch Mikrocontroller sind nach der Herstellung neu programmierbar, und Funktionsänderungen können nach dem Aufbau der Infrastruktur vorgenommen werden. FPGAs eignen sich jedoch vor allem für anspruchsvolle Anwendungen, während MCUs wie Arduino auch für einfachere Anwendungen gut geeignet sind.

 

Anwendungen für FPGAs und Mikrocontroller

 

Mikrocontroller sind weit verbreitet und kostengünstig erhältlich und bieten eine breite Palette an Funktionen für Energie- und Elektronikanwendungen. Die Verwendung von MCUs erfordert jedoch Kenntnisse in höheren Programmiersprachen wie C/C++. FPGAs hingegen sind teurer, aber deutlich benutzerfreundlicher. Mikrocontroller arbeiten effizient mit geringem Stromverbrauch, was den Energiebedarf senkt. FPGAs hingegen benötigen viel Strom, was wiederum den Energieverbrauch erhöht. Softwarebasierte Lösungen sind nicht direkt kundenspezifisch, hardwarebasierte hingegen direkt. Wechselrichter, USVs und Konverter sind ideale Anwendungen für MCUs, während sich FPGAs aufgrund ihrer parallelen Verarbeitungsfähigkeiten besser für die Video- und Bildverarbeitung eignen.

 

Wann werden FPGAs und Mikrocontroller eingesetzt?

 

Beide sind jedoch anwendungsabhängig. Designer und Ingenieure fanden MCUs aufgrund ihrer kompakten Größe in eingebetteten Systemen ausgereifter, und die meisten Anwendungen unterliegen Größenbeschränkungen, wie z. B. DC-DC-Wandler und viele andere Leistungselektronikanwendungen. FPGAs hingegen sind langlebig und effizient in den Bereichen künstliche Intelligenz, Bildverarbeitung und Videoverarbeitung. FPGAs sind benutzerfreundlich und können umfangreiche Berechnungen deutlich schneller durchführen als MCUs. Der Benutzer benötigt für die Verwendung von FPGAs weniger Fachwissen als für MCUs.

 

FPGA im Vergleich zu anderen

 

In diesem Abschnitt werden die Unterschiede zwischen FPGA, CPLD und MCUs beschrieben.

 

FPGA vs. CPLD

 

Vergleichsaspekt

FPGA

CPLD

Interne Struktur

Hals Look-Up-Tabellen

Has geringere Komplexität und kleinere Logikblöcke

Einschaltzeit

Tbraucht keine Zeit

Tbraucht Zeit

Energieverbrauch

Hoher Stromverbrauch

Geringer Stromverbrauch


FPGA vs. Mikroprozessor

 

Vergleichsaspekt

FPGA

Mikroprozessor

Funktionalität und Flexibilität

Ein Programmfähiges Logik-Array, das mehrere Aufgaben ausführen kann, einschließlich Verarbeitung, Verschlüsselung und Vernetzung, und bietet hohe Flexibilität

Führt Anweisungen für allgemeine Aufgaben aus, die für bestimmte Funktionen konzipiert sind und denen es an Flexibilität mangelt

Aufgabenausführung

Führt Aufgaben parallel aus und verarbeitet große Datensätze effizient

Führt Aufgaben sequenziell aus

Speichertyp

Verwendet flüchtigen Speicher und muss nach einem Stromausfall neu programmiert werden

Verwendet nichtflüchtigen Speicher, der die Daten auch nach dem Ausschalten behält

Anwendungen

Geeignet für Hochgeschwindigkeitsberechnungen, Datenstromverarbeitung und benutzerdefinierte Hardwareaufgaben

Wird für allgemeine Computeranwendungen verwendet, z. B. Betriebssystemsteuerung und E/A-Verwaltung


Fazit

 

Sowohl MCUs als auch FPGAs sind für viele digitale, elektrische und stromsparende Anwendungen von Vorteil. Mikrocontroller sind wirtschaftlich, verbrauchen wenig Strom und sind softwarefreundlich. FPGAs hingegen sind teuer, verbrauchen viel Strom und sind hardwarefreundlich, bieten aber gleichzeitig hohe Leistung und ermöglichen eine einfache Parallelverarbeitung. MCUs behalten ihre Funktionen auch bei ausgeschalteter Stromversorgung dank RAM, während diese Funktion bei FPGAs aufgrund des flüchtigen Speichers fehlt. Obwohl beide für designbasierte Technologien gelten, kann ein Anwender Stromverbrauch, Entwicklungszeit, Parallelverarbeitung und Flexibilität für eine Anwendung berücksichtigen, bei der sowohl MCUs als auch FPGAs eingesetzt werden können.

Über den Autor

Emily Carter

Steven konzentriert sich auf die Forschung und Entwicklung sowie die Herstellung hochpräziser Leiterplatten. Er ist mit den neuesten Design- und Produktionsprozessen der Branche vertraut und hat mehrere PCB-Produktionsprojekte international renommierter Marken geleitet. Seine Artikel über neue Technologien und Trends im Leiterplattenbereich bieten Branchenexperten fundierte technische Einblicke.

Bestücken Sie 20 Leiterplatten für $0

Montageanfrage

Datei hochladen

Sofortiges Zitat

Datei hochladen

E-Mail

Preisanfrage