Bei elektronischen Geräten habe ich sehr schlechte Kaufgewohnheiten. Ich weiß nicht, ob ich mir einen neuen Laptop kaufen oder mein Tablet auf ein iPad Pro upgraden soll. Am Ende kaufe ich beides und kann mir endlose Vorträge von meinem Verlobten anhören.
Zum Glück bin ich etwas entscheidungsfreudiger, wenn es um die Frage 8‑Bit- vs. 32‑Bit-Microcontroller für meine Hardware-Designs geht. In Sachen Kosten unterscheiden sie sich nicht besonders, doch einer ist leistungsstärker als der andere. Doch um die richtige Auswahl zu treffen, muss man die grundlegenden Unterschiede zwischen 8‑Bit- und 32‑Bit-MCUs kennen.
Streng genommen verarbeitet ein 8‑Bit-Microcontroller zu jedem Zeitpunkt nur 8 Bit an Daten. Die Anzahl der Bits, die von einer MCU verwendet werden (diese wird manchmal als "Bittiefe" oder "Datenbreite" bezeichnet), definiert auch die Größe des Registers (8 Bit pro Register), die Anzahl der Speicheradressen (nur 28, also 256 Adressen) sowie die größte Zahl, die verarbeitet werden kann (auch hier 28, also 256 Ganzzahlen: 0 bis 255). Zwar verfügen 8‑Bit-Microcontroller nur über begrenzte Adressen, doch einige von ihnen verwenden Paging. Hierbei bestimmt der Inhalt des Seitenregisters, welche Onboard-Speicherbank verwendet wird.
32-Bit-Microcontroller können theoretisch Zahlen bis 232 verarbeiten. Sie verfügen über 32‑Bit-Arithmetik-Logikeinheiten, -Register und -Busbreite. Im Allgemeinen heißt das, dass ein 32‑Bit-Controller viermal so viele Daten verarbeiten kann wie sein 8‑Bit-Pendant, wodurch er technisch deutlich dateneffizienter ist. Es gibt jedoch weitere Unterschiede zwischen 8‑Bit- und 32‑Bit-Microcontrollern, die über Rechenoperationen hinausgehen.
Eine Einschränkung ist recht offensichtlich: die von Rechenoperationen. Ein 8‑Bit-Microcontroller unterstützt normalerweise nur Rechenoperationen, die Zahlen im Bereich von 0 bis 255 ergeben (oder von -127 bis 128). Größere Zahlen lassen sich jedoch in zwei Threads aufteilen. Hierdurch wird jedoch die Programmierung komplexer, da das Threading nicht automatisch auf Hardware-Ebene erfolgt.
Im Allgemeinen ermöglichen Microcontroller mit größerer Datenbreite Rechenoperationen mit höheren Zahlen. Ein 32‑Bit-Mikrocontroller kann vorzeichenlose Zahlen von 0 bis 4.294.967.295 verarbeiten (bzw. -2.147.483.647 bis 2.147.483.648 bei Zahlen mit Vorzeichen). Wenn Sie eine höhere Programmiersprache wie C oder eine spezielle IDE (z. B. AtmelStudio) verwenden, sollten Sie Zugang zu einer Bibliothek haben, die größere Zahlen oder die Verwendung wissenschaftlicher Schreibweisen unterstützt.
Es mag vielleicht so klingen, als würde der 32‑Bit-Microcontroller in jedem Fall ein größeres Gehäuse als die 8‑Bit-Variante brauchen. Das ist jedoch nicht immer so. Einige 8‑Bit-, 16‑Bit- und 32‑Bit-Microcontroller sind im selben Formfaktor verfügbar (Microchip bietet beispielsweise eine Reihe von Microcontrollern mit verschiedenen Bittiefen, die allesamt im TQFP-64-Format erhältlich sind). 8‑Bit-Microcontroller sind in DIP-Gehäusen verfügbar, wie es bei den beliebten Arduino-Leiterplatten der Fall ist.
Auf Software-Ebene bestimmen die in Ihrem Code verwendeten Datentypen, welche Art von Microcontroller Sie einsetzen sollten. Zum Beispiel nutzt eine vorzeichenlose Ganzzahl, die in einem 8‑Bit-Controller deklariert wird, nur 1 Byte an Daten. In einem 32‑Bit-Microcontroller belegt die gleiche Variable jedoch 4 Byte. Vielleicht denken Sie jetzt: "Moment! Eine 32‑Bit-MCU hat 16 Millionen Mal mehr Adressen. Was interessiert mich da, ob eine Zahl vier Byte belegt?" Die maximale Anzahl der verfügbaren eindeutigen Adressen sagt nichts über die tatsächliche Speichermenge in einem Microcontroller aus. Der On‑Chip-Speicher ist in der Regel im KB‑Bereich angesiedelt – es kommt also auf die Menge der Daten an, die in Ihrem Code erforderlich ist.
Bei der Entscheidung zwischen einem 8‑Bit- und einem 32‑Bit-Microcontroller müssen Sie mehr als nur die Datenbreite beachten. Indem Sie die größten Unterschiede zwischen 8‑Bit- und 32‑Bit-Microcontrollern berücksichtigen, können Sie fundierte Entscheidungen für Ihr Design treffen.
Einer der größten Vorteile von 32‑Bit-Microcontrollern gegenüber der 8‑Bit-Variante ist die deutlich überlegene Verarbeitungsgeschwindigkeit. Ein normaler 8‑Bit-Microcontroller läuft in der Regel mit 8 MHz, während die 32‑Bit-Version auf mehrere Hundert MHz getaktet werden kann. Vielleicht fällt Ihnen der Geschwindigkeitsunterschied bei der eingebetteten Datenverarbeitung nicht auf, wenn Sie den Microcontroller zum Einschalten eines mechanischen Relais verwenden. Er wird sich jedoch bemerkbar machen, wenn Sie Anwendungen ausführen, für die viele Daten verarbeitet werden müssen. Ein Türzugangs-Controller, der pro Tag Tausende von Transaktionen verarbeiten muss, benötigt beispielsweise einen 32‑Bit-Microcontroller-Prozessor.
8‑Bit-Controller sind günstig und einfach in der Anwendung. Und so sind sie auch vier Jahre nach ihrer Einführung noch äußerst beliebt. Wenn Sie jedoch an einem Produkt arbeiten, das einen großen internen Arbeitsspeicher (RAM) benötigt, müssen Sie den 8‑Bit-Microcontroller möglicherweise durch eine 32‑Bit-Variante ersetzen. 32‑Bit-Microcontroller haben oft achtmal mehr RAM als ihre 8‑Bit-Pendants. Wenn Sie einen großen Puffer zum Speichern von Audiodaten benötigen, ist ein 32‑Pin-Mikrocontroller die bessere Prozessoroption.
Zu den Grundlagen von Embedded-Systems-Designs zählt auch das Erstellen einer Liste erforderlicher Peripheriegeräte anhand der Projektanforderungen. Wenn Sie Ethernet, Universal Serial Bus (USB-Stack), mehrere UART-Geräte (Universal Asynchronous Receiver-Transmitter) und einen CAN-Bus (Controller Area Network) benötigen, reicht ein 8‑Bit-Microcontroller nicht aus. Möglicherweise müssten Sie zusätzliche Peripheriechips einsetzen, die mehr kosten können als ein 32‑Bit-Microcontroller allein.
Im Allgemeinen sind 32‑Bit-Microcontroller gegenüber 8‑Bit-Varianten mit einer Vielzahl von Funktionen ausgestattet. Dank seiner überragenden Verarbeitungsgeschwindigkeit kann ein 32‑Bit-Microcontroller effizient mehrere Peripheriegeräte verarbeiten. Bedenken Sie jedoch, dass 32‑Bit-Microcontroller mehr Strom verbrauchen, insbesondere wenn alle Embedded Systems und Peripheriegeräte eingeschaltet sind.
Eine Leiterplatte mit einem 32‑Bit-Microcontroller, der in der Regel über mehr als 100 Pins verfügt, ist definitiv komplexer als ein 8‑Bit-Mikrocontroller, der nur selten 30 Pins übersteigt. Was die Bestückung angeht, ist das Löten des SOIC-Formats auf jeden Fall einfacher als bei QFP- (Quad Flat Package) oder BGA-Gehäusen (Ball Grid Array). Außerdem gibt es auf SOIC-Gehäusen weniger Qualitätsprobleme mit breiteren Abständen. Wenn ein 8‑Bit-Mikrocontroller-Gerät für Ihr Projekt ausreicht, sollten Sie keinen 32‑Pin-Microcontroller verwenden. Verwenden Sie andernfalls vorgefertigte Footprints in der PCB-Designsoftware, um den Designaufwand zu minimieren.
Wenn Sie nach Tutorials für Microcontroller-Programmierung suchen, werden Sie feststellen, dass sich die meisten auf 8‑Bit-Mikrocontroller beziehen, wie z. B. 8051 oder Arduino, eine beliebte 8‑Bit-basierte Microcontroller-Leiterplatte. Das liegt daran, dass der Einstieg mit einem 8‑Bit-Microcontroller leichter fällt. Ein 32‑Bit-Microcontroller verfügt über eine komplexere Architektur, weshalb es länger dauert, bis Benutzer damit vertraut sind. Bei Projekten mit einfachem Code, wie z. B. einem Produktionszähler, ist es nicht besonders wirtschaftlich, dass Firmware-Entwickler eine Woche lang Microcontroller studieren, wenn sie die gesamte Firmware viel günstiger mit einem 8‑Bit-Mikrocontroller einrichten könnten.
Es gibt viele Anwendungen für 32‑Bit-Microcontroller. Wir konzentrieren uns jedoch darauf, wann sie nicht verwendet werden sollten. Im Allgemeinen gilt, dass Sie für jede Anwendung, die schnelle Berechnungen großer Zahlen erfordert, einen 16- oder 32‑Bit-Microcontroller verwenden sollten. Zu den Beispielen zählen FFT-Berechnungen, Bildverarbeitung, hochwertige Audio- oder Videoanwendungen und Edge Computing. Einige speicher- und verarbeitungsintensive Aufgaben, die maschinelles Lernen oder KI beinhalten, erfordern leistungsstärkere Hardware, wie z. B. eine ARM-MCU oder einen Einplatinencomputer.
Wenn Sie analoge Signale messen müssen, ist ein 32‑Bit-Microcontroller nicht unbedingt besser als eine 8‑Bit-Variante. Die Bittiefe, die bei Microcontrollern angegeben wird, entspricht nicht der Bittiefe des integrierten Analog-Digital-Wandlers (ADC). Handelsübliche Mikrocontroller beinhalten einen Onboard-ADC, der Raten von 8, 10, 12 oder 16 Bit erreicht.
Bei mobilen Anwendungen bieten 32‑Bit-Microcontroller eine höhere Rechenleistung, jedoch zu Lasten des Stromverbrauchs. Mit einem 32‑Bit-Microcontroller lassen sich wichtige Berechnungen zwar schneller durchführen, sodass die CPU mehr Zeit im Ruhemodus verbringen kann. Das bedeutet jedoch nicht, dass 32‑Bit-Microcontroller energieeffizienter sind. 8‑Bit-Mikrocontroller bieten in der Regel längere Akkulaufzeiten und ausgewogenere Peripheriefunktionen als vergleichbare 32‑Bit-Geräte.
Um den besten Microcontroller für Ihr Leiterplattendesign auszuwählen und gleichzeitig Aufwand und Kosten zu minimieren, müssen Sie die wichtigsten Vor- und Nachteile von 8‑Bit- und 32‑Bit-Microcontrollern sorgfältig abwägen. Indem Sie Designanforderungen wie Geschwindigkeit, Komplexität, Peripheriegeräte und Flash-Speicher berücksichtigen, können Sie bei der Auswahl des besten Microcontrollers für Ihr Design langwierige Entscheidungen vermeiden und potenzielle Rückschläge minimieren.
Mit einem professionellen Werkzeug für Leiterplattendesign, wie z. B. CircuitStudio® von Altium, können Sie die Designanforderungen im Voraus bestimmen und gleichzeitig Ihre Lernkurve optimieren.
Sie wissen immer noch nicht, ob Sie für Ihr Projekt einen 8‑Bit- oder einen 32‑Bit-Microcontroller verwenden sollten? Sprechen Sie mit einem Experten für Altium Designer.