FPGA vs. Mikrocontroller: Welches ist das Beste?
Globaler Lieferant elektronischer Komponenten AMPHEO PTY LTD: Umfangreiches Inventar für One-Stop-Shopping. Einfache Anfragen, schnelle, individuelle Lösungen und Angebote.
Was ist FPGA?
Ein Mikrocontroller und ein Field-Programmable Gate or Grid Array (FPGA) sind vergleichbare, aber unterschiedliche Geräte. Beide sind im Wesentlichen integrierte Schaltkreise oder „kleine Computer“, die in vielen Produkten und Geräten verwendet werden. Der Hauptunterschied liegt in der Bezeichnung. FPGAs sind „feldprogrammierbar“, da Benutzer ihre Schaltkreise nach der Herstellung ändern können, während Mikrocontroller nur minimale Anpassungen zulassen. FPGAs können auch parallele Eingänge verwalten, während Mikrocontroller nur jeweils eine Codezeile lesen können. FPGAs sind teurer und schwieriger zu programmieren, da sie einen höheren Grad an Anpassung ermöglichen. Mikrocontroller hingegen sind weniger konfigurierbar, aber günstiger. Erfahren Sie mehr über die Parallelitäten und Unterschiede zwischen FPGAs und Mikrocontrollern.
FPGA-Programmierung ist die Technik zum Erstellen von Computerlösungen mithilfe eines FPGA. Die Entwicklungsvorgänge umfassen das Planen, Entwickeln und Ausführen der Architektur von Gattern, um eine funktionierende Schaltung zu erstellen, die den Spezifikationen der Designer entspricht. Ein FPGA kann so programmiert werden, dass es ein Hardware-Schaltkreisdesign erstellt, das bei Stromversorgung eine bestimmte Ausgabe erzeugt. Zur Programmierung von FPGAs werden fast immer Hardwarebeschreibungssprachen oder HDLs verwendet.
Wie funktionieren FPGAs?
FPGAs entstanden als halbkundenspezifische Schaltkreise im ASIC-Bereich, d. h., um die Mängel kundenspezifischer Schaltkreise zu beheben und die Mängel ursprünglicher programmierbarer Geräte mit begrenzten Gate-Schaltkreisen zu überwinden. Da FPGAs wiederholt gebrannt werden müssen, ist es nicht möglich, die grundlegende Struktur der kombinatorischen Logik wie bei ASICs durch ein festes Mit- und Ohne-Gate zu realisieren, sondern kann nur eine leicht wiederholt konfigurierbare Struktur verwenden. Lookup-Tabellen können diese Anforderung sehr gut erfüllen. Die derzeit gängigen FPGAs basieren auf der Lookup-Tabellenstruktur des SRAM-Prozesses. Es gibt auch einige FPGAs für Militär und Luftfahrt, die eine Lookup-Tabellenstruktur des Flash- oder Fuse- und Anti-Fuse-Prozesses verwenden. Die wiederholte Konfiguration des FPGA wird durch Brennen einer Datei zum Ändern des Inhalts der Nachschlagetabelle realisiert. Dasselbe Prinzip gilt für FPGAs, die eine Datei brennen, um den Inhalt der Nachschlagetabelle zu konfigurieren und so unterschiedliche Logikfunktionen in derselben Schaltungssituation realisieren. Look-Up-Table (LUT) wird als LUT abgekürzt und ist im Wesentlichen ein RAM. In FPGAs werden meist 4-Eingangs-LUTs verwendet, sodass jede LUT als RAM mit einer 4-Bit-Adressleitung betrachtet werden kann. Die PLD/FPGA-Entwicklungssoftware berechnet automatisch alle möglichen Ergebnisse der Logikschaltung und schreibt die Wahrheitstabelle (d. h. das Ergebnis) im Voraus in den RAM, sodass jedes Eingangssignal für die logische Operation dem Eingeben einer Adresse zum Nachschlagen in der Tabelle entspricht, um herauszufinden, was die Adresse entspricht, und sie dann auszugeben.
Was ist MCU?
Im Wesentlichen ist ein Mikrocontroller (MCU) ein kleiner Computer. Er verfügt über eine Zentrale Verarbeitungseinheit (CPU), etwas Arbeitsspeicher (RAM) sowie Eingabe- und Ausgabegeräte, genau wie herkömmliche Computer. Ein Mikrocontroller ist ein spezialisiertes Gerät, das nur ein Programm ausführt, im Gegensatz zu einem Desktop-Computer, der Tausende verschiedener Programme ausführen kann. Er ist darauf ausgelegt, eine einzelne Aufgabe wiederholt, automatisch oder auf Benutzerbefehl auszuführen. Er ist in ein anderes Produkt irgendeiner Art integriert, sei es ein Verbraucher-, Fertigungs-, Medizin- oder anderes Produkt. Er verbraucht wenig Energie; sein Stromverbrauch im Milliamperebereich ist quantifizierbar. Daher sind Mikrocontroller häufig preiswert. Der Preis des integrierten Geräts kann jedoch erheblich variieren.
Mikrocontrollertypen
AVR MCU
AVR steht für den RISC-Prozessor von Alf und Vegard. Es handelte sich um eine modifizierte Maschine mit Harvard-Architektur und separaten physischen Speichersystemen für Daten und Programme, die in unterschiedlichen Adressräumen erscheinen, sowie der Fähigkeit, mithilfe bestimmter Tastenkombinationen durch Informationselemente aus dem Programmspeicher zu navigieren. Weder ein bestimmtes Symbol noch die Bedeutung eines Associate Degree ist im Akronym AVR zu finden.
MSP MCU
Ein Akronym für diesen Begriff ist MSP. Es ist die Familie von Texas Instruments. Der MSP basiert auf einer 16-Bit-CPU und ist für kostengünstige und damit stromsparende eingebettete Anweisungen ausgelegt. Das Erscheinungsbild des Controllers hängt direkt mit seinem 16-Bit-Datenbus, sieben Adressierungsmodi und einem reduzierten Befehlssatz zusammen, die alle kürzere, dichtere Programmiercodes für eine schnelle Leistung ermöglichen. Programme werden auf einem Mikrocontroller ausgeführt, einem IC-Chip, der andere Maschinen oder Geräte steuert. Mikrocontroller-Programmierung ist der Prozess der Einrichtung eines Mikrogeräts zur Steuerung anderer Maschinen.
PIC MCU
Eine Art von Mikrocontroller-Komponente, bekannt als PIC oder Peripheral Interface Controller, wurde zum Bau elektronischer Geräte, Computerrobotik und ähnlicher Hardware verwendet. Obwohl der PIC von Microchip Technology entwickelt wurde und auf Hardware-Computerarchitektur basiert, werden Code und Daten hier in separaten Registern abgelegt, um Eingabe und Ausgabe zu erhöhen. Pic ist mit einer dedizierten CPU, einem Datenbus und einem internen Datenspeicher ausgestattet, um alle E/A-Methoden und -Zwecke vorzubereiten.
ARM MCU
ARM steht für Advanced RISC Machine. Es ist die beliebteste Mikrocontroller-Programmierung im Bereich digitaler eingebetteter Systeme, und die Mehrheit der Unternehmen verwendet nur ARM-Mikrocontroller, da sie über wichtige Funktionen verfügen, die die Erstellung von Produkten mit einem höheren Maß an ästhetischer Anziehungskraft ermöglichen. Es handelt sich um eine leistungsstarke, kostenbewusste Technologie, die in zahlreichen Anwendungen eingesetzt wurde, darunter drahtlose Netzwerk- und Sensorsysteme, Karosseriesysteme und industrielle Instrumentensteuerungssysteme.
Wie funktionieren Mikrocontroller?
Mikrocontroller werden in ein anderes Gerät (normalerweise ein Verbraucherprodukt) „eingebettet“, damit sie die Funktion oder den Betrieb des Produkts steuern können. Daher gibt es für Mikrocontroller auch den Begriff „eingebettete Controller“. Ein Mikrocontroller ist einer Aufgabe gewidmet und führt ein bestimmtes Programm aus. Das Programm wird im ROM (Nur-Lese-Speicher) gespeichert und im Allgemeinen nicht geändert. Mikrocontroller sind normalerweise Geräte mit geringem Stromverbrauch. Desktop-Computer sind fast immer an eine Steckdose angeschlossen und verbrauchen bis zu 50 Watt Strom. Batteriebetriebene Mikrocontroller verbrauchen bis zu 50 Milliwatt. Mikrocontroller verfügen über dedizierte Eingabegeräte und oft, aber nicht immer, über kleine LED- oder LCD-Displays für die Ausgabe. Der Mikrocontroller nimmt auch Eingaben von dem Gerät entgegen, das er steuert, und steuert das Gerät, indem er Signale an verschiedene Komponenten im Gerät sendet. Beispielsweise nimmt der Mikrocontroller in einem Fernsehgerät Eingaben von der Fernbedienung entgegen und zeigt die Ausgaben auf dem Fernsehbildschirm an. Der Controller steuert Kanalwähler, das Lautsprechersystem und bestimmte Einstellungen des Bildschirms, wie Farbton und Helligkeit. Ein Motorcontroller in einem Auto nimmt Eingaben von Sensoren wie Sauerstoff- und Klopfsensoren entgegen und steuert Dinge wie Kraftstoffmischung und Zündkerzeneinstellung. Ein Mikrowellenherd-Controller nimmt Eingaben von einer Tastatur entgegen, zeigt Ausgaben auf einem LCD-Display an und steuert Relais, um den Mikrowellengenerator ein- und auszuschalten.
Video zum Thema FPGA vs. Mikrocontroller
FPGA-Board vs. MCU-Anwendungen
FPGA-Anwendungen
- Luft- und Raumfahrt & Verteidigung
- Hochleistungsrechnen und Datenspeicherung
- Video & Bildverarbeitung
- Kabelgebundene Kommunikation
- Drahtlose Kommunikation
Mikrocontroller-Anwendungen
- Tastaturen
- Monitore
- Drucker
- Kopierer
- Faxgeräte
- Telefone
- Fernsehfernbedienungen
- Mikrowellen
- Waschmaschinen und Trockner
- Rasensprenger
Vor- und Nachteile von FPGA-Chips
- Um ein FPGA zu programmieren, brauchen Sie mehr als nur grundlegende Kenntnisse im Programmieren. Sie müssen eine Programmiersprache beherrschen und in der Lage sein, eine große Anzahl von Variablen im Auge zu behalten. Darüber hinaus müssen Sie die Hardwarebeschreibungssprache verstehen. Hardwaredesign und -neugestaltung sind keine Aufgabe für Anfänger.
- Ein FPGA besteht aus Tausenden von Logikblöcken, und jeder einzelne kann programmiert werden. Da Prozesse unabhängig voneinander gemacht werden können, sind Engpässe weniger wahrscheinlich als bei Mikrocontrollern.
- Einfach ausgedrückt können Sie mit einem FPGA viel mehr erreichen als mit einem Mikrocontroller, wenn Sie wissen, was Sie tun. Ein Mikrocontroller bietet nicht die Art von Anpassungsmöglichkeiten, die Sie zum Erstellen anspruchsvoller Programme benötigen.
- FPGAs sind tendenziell teurer als Mikrocontroller, was einer ihrer Nachteile ist. In Bereichen, in denen möglicherweise nachträglich Änderungen vorgenommen werden müssen, können sie trotz höherer Vorlaufkosten Geld sparen; denken Sie an das Beispiel der Rückfahrkamera.
- Sie können mit einem FPGA mehr Eingänge integrieren als mit einem Mikrocontroller, ohne dass es zu Engpässen kommt, da FPGAs parallele Prozesse unterstützen. Sie eignen sich daher perfekt für komplexere Prozesse.
- Einer der Hauptvorteile eines FPGA besteht darin, dass die Hardware nach der ersten Programmierung selbst geändert werden kann. So können Sie die Funktionalität eines Geräts ändern, ohne die Hardware komplett überholen zu müssen. Die langfristige Kosteneffizienz spricht dafür, insbesondere für Branchen, die Waren in großen Mengen produzieren.
Vor- und Nachteile von MCU
- Ein Mikrocontroller kann von jedem programmiert werden, der über Grundkenntnisse im Programmieren verfügt. In Online-Kursen können Sie lernen, wie Sie einen Mikrocontroller mit einer Assemblersprache wie Javascript oder Python programmieren.
- Ein Mikrocontroller ist in der Anschaffung weniger teuer als ein FPGA, da er einfacher in Massenproduktion hergestellt werden kann.
- Die dedizierte CPU eines Mikrocontrollers steuert alle Ein- und Ausgänge. Da auf die Fertigstellung anderer Prozesse gewartet werden muss, können Engpässe entstehen. Mikrocontroller eignen sich für einfachere Anwendungen, da sie keine gleichzeitigen Funktionen unterstützen.
- Denken Sie an Ihre Waschmaschine. Nachdem Sie Ihre Wäsche angezogen haben, passen Sie zwei oder drei Einstellungen an, bevor Sie den Startknopf drücken. Ebenso muss Ihre Computermaus nur wenige Eingaben interpretieren können – nach oben scrollen, nach unten scrollen, Linksklick und Rechtsklick. Für einfache, unveränderliche Anwendungen wie diese ist ein Mikrocontroller ideal.
MPU vs. MCU-Eigenschaften
MPU | MCU |
Es muss viele Anweisungen verarbeiten, ist teuer und komplex. | Es ist einfach zu verwenden, billig und erfordert weniger Anweisungen zur Verarbeitung. |
Die Technologie hinter mikroprozessorbasierten Systemen ermöglicht ihnen, mit sehr hohen Geschwindigkeiten zu arbeiten. | Abhängig von der Architektur können mikrocontrollerbasierte Geräte mit 200 MHz oder sogar mehr betrieben werden. |
Für die Verbindung mit RAM, ROM und anderen Peripheriegeräten wird ein externer Bus verwendet. | Es wird ein interner Steuerbus verwendet. |
Auf dem Chip befinden sich keine Timer, Timereinheiten, Eingabe-/Ausgabeeinheiten, RAM, ROM oder andere Peripheriegeräte. | Auf einem einzigen Chip befinden sich eine CPU, RAM, ROM und andere Peripheriegeräte. |
Es handelt sich um einen integrierten, auf Silizium basierenden Zentralprozessorchip. | Er ist das Ergebnis der Weiterentwicklung von Mikroprozessoren, die über eine CPU und zusätzliche Peripheriegeräte verfügen. |
Da es auf einem Mikroprozessor weniger Register gibt, sind mehr Operationen auf den Speicher angewiesen. | Das Register auf einem Mikrocontroller ist größer. Folglich ist das Schreiben der Programme einfacher. |
Die meisten Mikroprozessoren haben keine Energiesparfunktionen. | Die meisten Mikrocontroller verfügen über einen Energiesparmodus. |
Der Gesamtstromverbrauch ist aufgrund der externen Komponenten beträchtlich. Für Geräte, die Batterien oder andere Formen gespeicherter Energie verwenden, ist es daher nicht geeignet. | Der Gesamtstromverbrauch ist geringer, da weniger externe Komponenten vorhanden sind. Es kann daher mit Elektronik verwendet werden, die Batterien oder andere Formen gespeicherter Energie verwendet. |
Die Größe der Schaltung nimmt zu, da externe Anschlüsse für Speicher und E/A erforderlich sind. | Die interne Schaltung ist bescheiden und es sind bereits Speicher und E/A vorhanden. |
Da es sich lediglich um einen Prozessor handelt, sind externe Anschlüsse für die Speicher- und E/A-Komponenten erforderlich. | Ein Mikrocontroller umfasst neben einem Prozessor auch einen internen Speicher und ein E/A-System. |
Unterschied zwischen MPU und MCU
Mikroprozessoren sind integrierte Schaltungen (ICs), die eine CPU oder einen Computer enthalten und über Verarbeitungskapazität verfügen. Beispiele hierfür sind Pentium 3, 4, i5, Core 2 Duos und andere Prozessoren, die in PCs zu finden sind. Auf dem Chip befinden sich keine Peripheriegeräte wie RAM oder ROM. Um die Funktionalität zu erreichen, integriert der Entwickler Peripheriegeräte in den Chip. Ein Computer mit RAM, ROM, Timern, E/A-Ports und anderen Peripheriegeräten ist ein Mikrocontroller. Aus diesem Grund werden sie auch als Minicomputer oder Computer auf einem einzigen Chip bezeichnet. Heute ist eine große Auswahl an Mikrocontrollern mit unterschiedlichen Funktionen und Versionen erhältlich. Mikrocontroller sind kleiner als Mikroprozessoren, die aufgrund der externen Peripheriegeräte sperriger sind. Mikrocontroller betreiben eingebettete Systeme, während Mikroprozessoren das Gehirn von Computersystemen sind.
CPU vs. FPGA
FPGA-basierte Systeme können neben CPU-basierten Systemen auch herkömmliche Systemarchitekturen optimieren, indem sie die beste Hardware für eine Aufgabe auswählen. Während ein FPGA-basiertes System Tausende von Threads gleichzeitig ausführen kann, ist ein CPU-basiertes System möglicherweise nicht in der Lage, viele Threads gleichzeitigen Codes zu unterstützen.
FPGA vs. MCU-Eigenschaften
MCU | FPGA | |
Anpassungskurve | Die Lernkurve bei einigen Tool-Überschneidungen (wie z. B. gemeinsame Sprachen, die zunehmend verwendete Eclipse IDE). | Zunehmende Lernkurve |
Verfügbare Festkomma- und Gleitkommaoperationen | Es gibt viele Ressourcen sowohl für Festkomma- als auch für Gleitkommazahlen. | Meistens Festkomma. Die Kompatibilität mit Gleitkommazahlen ist eine Herausforderung. |
Dringende Verarbeitung | Je nach Bedarf kann die MCU dies möglicherweise berücksichtigen. eingeschränkter Bereich. | Fähigkeit, komplexe Signale zeitnah zu interpretieren und gleichzeitig strenge Durchsatz- und Latenzstandards einzuhalten. |
Portabler Stil | C/C++-Sprache vereinfacht das Portieren von Designs zwischen MCUs. | Keine universelle Designmethode, die portierbar ist. |
Vollständige Vielseitigkeit | Nur Software-Neuprogrammierung. | Überragende anpassbare Freiheit bei Hardware und Software. Eine dynamische Neukonfiguration ist möglich. |
Entwicklungs-Angst | Bei einem einfachen Entwicklungsprozess können Code-Änderungen häufig nach der Kompilierung wie ein Patch eingeführt werden, ohne dass eine Neukompilierung erforderlich ist. | Da FPGAs während der Entwicklung verschoben und umgeleitet werden müssen, dauern die Iterationen länger. |
Tools | Die Portabilität des Entwicklungsprozesses zwischen Plattformen wird durch Open-Source-Technologien erhöht. | Keine Übertragbarkeit zwischen Tools. Es gibt keine universellen Designmethoden. |
Unterschiede zwischen FPGA und Mikrocontroller
Das Design eines Mikrocontrollers kann mit dem eines Computers verglichen werden, der alle erforderlichen Peripheriegeräte enthält, einschließlich Speicher, Ein-/Ausgabeports und Timer. Ein FPGA ist ein integrierter Schaltkreis mit Millionen von Logikgattern, die für die Ausführung bestimmter Aufgaben programmiert werden können. Für die Verwendung benötigen FPGAs externe Peripheriegeräte wie RAM und ROM. Der Mikrocontroller verwendet ein Softwareprogramm wie C oder C++, um Befehle sequenziell auszuführen. Die Programmierverbindung des FPGA befindet sich auf dem Logikschaltkreis und verwendet Programmiersprachen wie VHDL und Verilog. Die Verarbeitungsleistung des Mikrocontrollers ist zeitlich begrenzt und hängt von der Zyklusleistung des Prozessors ab. FPGAs sind platzbeschränkt; Sie müssen mehr Logikschaltkreise erstellen, um den gewünschten Codierungsumfang zu erreichen. FPGAs sind aufgrund ihrer Beschaffenheit vielseitiger und flexibler. Sie sind „feldprogrammierbar“ – Sie können das FPGA neu programmieren, um jede Logikaufgabe auszuführen, die innerhalb der verfügbaren Logikgatter untergebracht werden kann. Mikrocontroller können Programme ausführen und Routineaktivitäten durchführen. Wenn Sie den Befehlssatz der Platine ändern möchten, müssen Sie das Layout des Silizium-ICs ändern. FPGAs bieten ein hohes Maß an Anpassbarkeit und eignen sich hervorragend für die Verarbeitung paralleler Daten bei hohen Geschwindigkeiten. Sie haben jedoch auch die Nachteile einer schwierigen Konfiguration und eines Prototypbetriebs. Das Erstellen einer FPGA-Funktion nimmt Zeit in Anspruch, da Sie von vorne beginnen und alle Programme in Maschinensprache kompilieren müssen.
Fazit zu FPGA vs. MCU
Mikrocontroller werden von Embedded-Ingenieuren häufig in Embedded-Geräten verwendet, da sie einfacher zu programmieren, leichter zu debuggen und zu entwerfen und häufig weniger teuer in der Implementierung sind. In Bezug auf die Anpassungsfähigkeit sind sie jedoch nicht sehr gut. Mikrocontroller erlauben nur die Neuprogrammierung der Firmware, was ihre Möglichkeiten für Änderungen stark einschränkt, im Gegensatz zu FPGAs, die die Neuprogrammierung von Hardware/Firmware ermöglichen. Die Fähigkeit von FPGAs, identische Prozesse parallel auszuführen, ist ein weiterer Vorteil dieser Geräte. Anwendungen wie Bildverarbeitung oder künstliche Intelligenz sind praktischer, da Hunderte oder Tausende von CLBs gleichzeitig verarbeitet werden. Mikrocontroller können auch sequentielle Verarbeitung durchführen, bei der jede Zeile des Programms einzeln gelesen und verarbeitet wird, was jedoch weniger effizient ist. Während jeder als einziger Prozessor dienen kann, ist es auch denkbar, ein FPGA und einen Mikrocontroller gleichzeitig in derselben Architektur zu verwenden. Beispielsweise kann das FPGA die Funktionen und die Schwerstarbeit übernehmen, während der Mikrocontroller komplizierte Controller handhabt. Zusammen ermöglichen diese beiden es Programmierern, die Vorteile der Prozessoren optimal zu nutzen und solide Architekturen zu erstellen, die komplexe Funktionen ausführen können.