Ich habe von 8-Bit-Mikrocontrollern und 16-Bit-Mikrocontrollern gehört. Ich habe sogar von 7-Bit- Mikrocontrollern und 1-Bit- Mikrocontrollern gehört.
Was sind die allgemeinen Attribute dieser Gruppen? Wie wähle ich den Typ aus, der für ein Projekt verwendet werden soll?
microcontroller
architecture
Jacob Harding
quelle
quelle
Antworten:
Es gibt auch 4-Bit- und 32-Bit-Mikrocontroller. In PCs werden 64-Bit-Mikroprozessoren verwendet.
Die Nummer bezieht sich auf die Registerbreite . Die Register sind das Herzstück des Mikrocontrollers. Viele Operationen verwenden Register, entweder um Daten zu verschieben oder um arithmische oder logische Operationen auszuführen. Diese Operationen finden in der ALU , der Arithmetik- und Logikeinheit, statt.
4-Bit-Controller verfügen über 4-Bit-Register, die nur 16 verschiedene Werte von 0 bis hexadezimal 0xF darstellen können. Das ist nicht viel, aber es reicht aus, mit den Ziffern einer Digitaluhr zu arbeiten, und das ist eine Domäne, in der sie verwendet werden.
8-Bit-Controller sind seit einigen Jahrzehnten das Arbeitstier der Branche. In 8 Bits können Sie eine Zahl zwischen 0 und 255 speichern. Diese Zahlen können auch Buchstaben und andere Zeichen darstellen. So können Sie mit Text arbeiten. Manchmal können 2 Register zu einem 16-Bit-Register kombiniert werden, das Zahlen bis zu 65535 zulässt. In vielen Controllern müssen jedoch große Zahlen in Software verarbeitet werden. In diesem Fall sind sogar 32-Bit-Zahlen möglich.
Die meisten 8-Bit-Controller verfügen über einen 16-Bit-Programmzähler. Dies bedeutet, dass maximal 64 KByte Speicher adressiert werden können. Für viele eingebettete Anwendungen, die ausreichen, benötigen einige sogar nur wenige kByte.
Ein Parkplatzmonitor, bei dem Sie beispielsweise die Anzahl der Autos zählen und diese auf einem LCD anzeigen müssen, ist etwas, was Sie normalerweise mit einem 8-Bit-Controller tun würden. :-)
16-Bit ist ein nächster Schritt. Aus irgendeinem Grund hatten sie nie den Erfolg, den 8-Bitter oder 32-Bitter hatten. Ich erinnere mich, dass die Motorola HC12-Serie unerschwinglich teuer war und nicht mit 32-Bit-Controllern konkurrieren konnte.
32-Bit ist das Wort des Tages. Mit einem 32-Bit-Programmzähler können Sie 4 GByte adressieren. ARM ist ein beliebter 32-Bit-Controller. Es gibt Dutzende von Herstellern, die ARMs in allen Größen anbieten. Es handelt sich um leistungsstarke Controller, die häufig viele spezielle Funktionen an Bord haben, z. B. USB- oder komplette LCD-Bildschirmtreiber.
ARMs erfordern häufig große Pakete, entweder um einen großen Chip mit viel Flash aufzunehmen, oder weil die verschiedenen Funktionen viele E / A-Pins erfordern. Dieses Paket zeigt jedoch die Möglichkeiten, die ARM bietet.
Dies ist ein 16-poliger ARM in einer Verpackung von nur 2,17 mm x 2,32 mm.
quelle
Die einfache Antwort: Ein N-Bit-Mikrocontroller verfügt über einen Datenpfad und eine ALU , die Daten in N-Bit-Blöcken verarbeiten können.
Lange Antwort: Die kurze Antwort ist in 95% der Fälle richtig. Die lange Antwort wird verwirrend. Einige CPU / MPUs haben Teile, die meistens N-Bits sind, aber einige Teile sind M-Bits. Beispielsweise könnte es sich um eine 8-Bit-CPU mit einem ganzzahligen Multiplikator handeln, der mit 16-Bit-Daten arbeitet. Die Intel-CPU-Serie (8088 bis zum aktuellen i7) kann häufig verschiedene 8- und 16-Bit-Register kombinieren, um 16 oder 32 Bit zu erhalten. Dann erhalten die Marketingmitarbeiter diese Nummern und entscheiden sich, sie in ihren Marketingmaterialien zu verwenden. Am Ende erhalten Sie 8-Bit-MPUs mit der Bezeichnung 16 Bit usw.
Es wird noch seltsamer. Einige Marketingmitarbeiter fördern die Anweisungsgröße der MPU. Die Microchip PICs sind ein gutes Beispiel dafür. Wenn Sie nicht vorsichtig sind, können Sie dies mit der Anzahl der Bits im Datenpfad verwechseln.
quelle
Was bedeutet "N-Bit"?
Ein Mikrocontroller oder Prozessor wird als "N-Bit" bezeichnet, da Controller und Prozessoren eine grundlegende Datenbreite haben. Jedes Register kann N Bits sein, jeder Befehl kann N Bits sein, der Datenbus kann N Bits sein, der Speicher kann mit N Bits adressiert sein. Insbesondere auf der unteren Ebene gibt es Ausnahmen von dieser Regel: Beispielsweise verfügt ein 8-Bit-Controller möglicherweise über einen 12-Bit-Speicherbus. Wie Sie vielleicht vermuten, ist dies jedoch schwierig, wenn Ihre Register nur 8 Bit enthalten. Alle Prozessoren haben jedoch eine grundlegende native Datentypbreite. Betrachten Sie den folgenden Code:
Wenn Sie nur 8-Bit-Zahlen hinzufügen können, wie würden Sie diesen Vorgang ausführen? Sie müssten jede Variable in 4 8-Bit-Zahlen aufteilen, die Additionen und Übertragungen einzeln vornehmen und sie dann zusammenführen, um das Ergebnis zu erhalten. Dies würde mindestens 16 Anweisungen erfordern! Auf einem 32-Bit-Prozessor ist es jedoch eine einzelne Anweisung, die so einfach ist wie
mul r0, r1, r2
. Wie Sie diesem einfachen Beispiel entnehmen können, können größere Prozessorbitbreiten mehr Daten schneller verarbeiten.Historische Notizen
Der Trend im Laufe der Geschichte ging von kleineren Bitbreiten zu größeren. Bereits in den frühen 1970er Jahren veröffentlichte Intel den 4004, den ersten Single-Chip-Controller. Es war ein 4-Bit-Prozessor. Da Transistoren groß und leistungshungrig waren und das Design revolutionär und kompliziert war, war dies alles, was auf den Chip gedrückt werden konnte. Kurz darauf veröffentlichten sie den 8008, einen 8-Bit-Prozessor. Es werden nur noch wenige 4-Bit-Prozessoren verwendet, aber es gibt viele 8-Bit-Controller. PIC und AVR sind zeitgemäße Beispiele, die noch häufig verwendet werden. Es wurden mehr 8-Bit-Prozessoren hergestellt als bei jedem anderen Typ! Sie sind immer noch die beliebtesten Controller für kleine, einfache und kostensensitive Aufgaben. Der nächste offensichtliche Übergang war zu 16-Bit-Controllern, aber diese hatten nicht die Reichweite ihrer 8-Bit- oder 32-Bit-Brüder. Stattdessen, Es gab einen Sprung zu 32-Bit-Prozessoren, wie sie von ARM entwickelt und vor einigen Jahren in die PC-CPUs integriert wurden. Es gibt keine bedeutenden 64-Bit-Mikrocontroller, die mir bekannt sind, obwohl sie jetzt in PCs eine herausragende Rolle spielen.
8-Bit vs. 32-Bit
Die mit Abstand beliebtesten Typen sind die 8-Bit- und 32-Bit-Prozessoren. Die 32-Bit-Prozessoren werden immer beliebter. Jedes Jahr oder so veröffentlicht ein Fachmagazin einen Artikel mit dem Titel "Ist 8-Bit tot?" 32-Bit-Prozessoren werden immer beliebter, leistungsfähiger und billiger, so dass nur drei Gründe für die Wahl eines 8-Bit-Prozessors übrig bleiben:
32-Bit-Prozessoren werden immer allgegenwärtiger, aber es gibt kaum Anzeichen dafür, dass der 8-Bit-Prozessor aus diesen drei Gründen wie die antiken 4-Bit-Prozessoren verschwindet.
Arduino als Beispiel
Betrachten Sie eine Anwendung wie das Arduino .
Der Arduino verwendet einen Atmel-Controller, einen 8-Bit- ATmega32 . Der ATmega läuft mit 20 MHz, verfügt über 4 KB RAM, SPI-, I2C- und UART-Kommunikation, einige Hardware-Interrupts und 8 10-Bit-ADCs. Dieser Chip kostet $ 3,90 in Mengen von 100.
Ein ähnlicher 32-Bit-Chip könnte ein weiterer Atmel-Teil sein, ein 32-Bit- AT-SAM3 , der den gemeinsam genutzten ARM Cortex-M3-Kern verwendet. Dieser Chip läuft mit 64 MHz (3x so schnell, aber denken Sie daran, dass der ATmega 16 Anweisungen benötigt, um eine einzelne 32-Bit-Addition durchzuführen). Es verfügt über 16 KB RAM, viermal so viel wie das ATmega. Es verfügt über I²C-, MMC-, SPI-, SSC-, UART- und sogar USB-Peripheriegeräte. Es verfügt über DMA (direkter Speicherzugriff, macht es auch schneller und effizienter), einen flexiblen, leistungsstarken Satz von Interrupts, 10 12-Bit-ADCs und 2 DACs. Es übertrifft den ATmega einfach in allen Kategorien. Ich habe versucht, einen 32-Bit-Controller mit vergleichbaren Funktionen zu finden, und dies war das Beste, was ich tun konnte. Wie viel kostet dieser Chip? Es sind 2,34 US-Dollar in Mengen von 100: Sie erhalten mehr Leistung für weniger Geld. Sollte eine einfache Entscheidung sein.
Was ist mit deinem Beispiel?
Für Ihre Beispielsituation hier ,
Sie haben einige sehr einfache Berechnungen mit kleinen Zahlen und einer einfachen Anzeige auf einem LCD (oder wirklich, ein großes Zeichen aus 7-Segment-LED-beleuchteten Zahlen wäre sichtbarer und billiger). Ein 8-Bit-Controller ist für diese Aufgabe wahrscheinlich vollkommen ausreichend. Was aber, wenn Sie wirklich tun ein LCD wollen? Der 8-Bit-Controller kann selbst ein VGA-Display mit niedriger Auflösung nur schwer betreiben, während Sie problemlos Entwicklungsplatinen für 32-Bit-Controller mit HDMI-Ausgängen erhalten können. Was ist, wenn Sie es vorerst auf einem Bildschirm anzeigen möchten, es aber später an ein Ethernet-Kabel im LAN Ihres Unternehmens anschließen und die Ergebnisse auf dem Computer des Vorgesetzten im Parkbüro anzeigen möchten? Mit integrierten Ethernet-Kommunikationsbussen können Sie problemlos 32-Bit-Controller erwerben. Mit einem 8-Bit-Controller ist dies nicht möglich.Xport , aber das enthält einen 32-Bit-Prozessor.
Für einmalige Projekte würde ich jedes Mal einen 32-Bit-Controller empfehlen. Ihre Zeit ist einfach wertvoller als der Preisunterschied zwischen 8- und 32-Bit-Controllern.
In Bezug auf die von Ihnen erwähnten 7-Bit-Prozessoren gab und wird es wahrscheinlich nie solche Maschinen geben. Aus architektonischer Sicht ist es sinnvoller, Bitbreiten zu verwenden, die Potenzen von 2 sind.
quelle
Die Bitgröße einer CPU bezieht sich auf einige Merkmale, die im Allgemeinen zusammenpassen:
Bei einigen Prozessoren haben alle diese Mengen den gleichen Wert. Für andere können sie unterschiedliche Werte haben. Obwohl der Z80 einige 16-Bit-Register enthält, verwendet er für den größten Teil seines Befehlssatzes 8-Bit-Register und benötigt zusätzliche Zyklen für fast alle Befehle, die mit 16-Bit-Mengen arbeiten (die einzige Ausnahme ist EX DE, HL). Es ist eine 8-Bit-CPU. So etwas wie der 68008 kann jedoch nicht mit nur einem sehr gut beschrieben werden
N
: Er verfügt über einen Befehlssatz, der hauptsächlich mit 32-Bit-Mengen arbeiten kann, und er kann IIRC-Daten zwischen Registern mit jeweils 32 Bit verschieben, seine primäre ALU ist dies jedoch nur 16 Bit, und sein Speicherbus ist nur 8 Bit. Je nachdem, was gemessen wird, kann es sich um eine 32-Bit-, 16-Bit- oder 8-Bit-CPU handeln.quelle