Mikrocontroller vs. System on Chip


24

Ich beginne mit der Programmierung von Mikrocontrollern und lese einige Dokumentationen und Lehrbücher. Ich bin ein wenig verwirrt, was der Unterschied zwischen einem Mikrocontroller und einem System on Chip ist.

Einige Dokumentationen verwenden diese beiden Begriffe synonym. Die meisten Lehrbücher weisen jedoch darauf hin, dass es NICHT richtig ist, die beiden Begriffe austauschbar zu verwenden. Es muss also einen bemerkenswerten Unterschied geben ...

Vielen Dank!


4
Vielen Dank, dass Sie meine Antwort akzeptiert haben, aber ich empfehle Ihnen wirklich, das nächste Mal länger zu warten, bevor Sie annehmen. Andere haben wahrscheinlich andere Ansichten und Einsichten, gehen aber oft über eine Frage hinweg, die bereits eine akzeptierte Antwort hat - ich weiß, dass ich es tue. Sie möchten etwas Zeit lassen, um einen Konsens zu erzielen, insbesondere für eine Frage, die sich mit einer Grauzone befasst.
Olin Lathrop

@Olin Cool, werde das nächste Mal im Hinterkopf behalten!
Rrazd

Antworten:


27

Ein Mikrocontroller ist ein Prozessor, in den Programm- und Datenspeicher integriert sind. Diese Chips sind für kleine eingebettete Steuerungsanwendungen vorgesehen. Daher ist es sehr nützlich, die Pins für E / A zu belassen und keinen externen Speicherbus zu benötigen. Einige Mikrocontroller haben nur 6 Pins und können nützliche Dinge tun. Vergleichen Sie dies mit einem Allzweck-Computerprozessor, der für einen PC vorgesehen ist. Diese Dinge haben Hunderte von Pins in einem Array und erfordern umfangreiche externe Schaltkreise.

Was das System auf einem Chip betrifft, so ist dies ein weniger gut definierter Begriff. Zypern nennt einige seiner Teile PSOC (Programmable System on Chip). Hierbei handelt es sich im Grunde genommen um einen Mikrocontroller mit kleinem FPGA auf demselben Chip. Anstatt Peripheriegeräte einzubauen, können Sie die verfügbaren Ressourcen des FPGAs nach Belieben nutzen.

Im Allgemeinen denke ich, dass ein System auf einem Chip ein Mikrocontroller ist, in den angeblich eine Logik auf Systemebene integriert ist. Natürlich ist es weniger wahrscheinlich, dass ein Satz zusätzlicher Hardware nützlich ist, je weiter Sie versuchen, in das System einzusteigen. Daher ist eine Art von Konfigurierbarkeit sehr nützlich. Derzeit ist "System on Chip" jedoch eher ein Marketingbegriff als ein realer.


20

System On a Chip (oder SoC) ist ein Schlagwort, das Marketingleute verwenden und das nicht wirklich viel bedeutet. Es gibt auch viele Variationen wie:

PSoC: Programmierbares System auf einem Chip von Cypress Semiconductor.

SOPC: System auf einem programmierbaren Chip von Altera

Im Wesentlichen ist ein SOC ein einzelner Chip, der alles tut, was zur Aufnahme mehrerer Chips verwendet wurde. Es gibt nichts, was besagt, dass es eine CPU oder einen RAM enthalten muss. Aufgrund der Tatsache, dass wir mehr Transistoren auf einem Chip haben können und immer mehr Funktionen auf unseren Chips haben - kann man im Vergleich zu dem, was wir vor 10 oder 20 Jahren gemacht haben, fast alles als SoC bezeichnen !

Um es noch schlimmer zu machen: Es gibt viele Beispiele für Dinge, die als SoC bezeichnet werden und für deren Verwendung immer noch mehrere Chips erforderlich sind. Oft haben Sie eine Form von CPU + -Peripheriegeräten, für die noch externer Flash-, RAM- und Stromverbrauch besteht. Selbst der Name des SoC ist irreführend.

Eine MCU ist wahrscheinlich das prägnanteste Beispiel dafür, was ein SoC sein sollte - aber es ist ein sehr begrenztes Beispiel.


@ David-kesner +1 für SoC als Marketingphrase.
Frank

12

Im Allgemeinen wird ein Mikrocontroller als eingebettetes Gerät angesehen, das intern für die Ausführung einer bestimmten Aufgabe programmiert ist. Es gibt nur minimale Benutzerinteraktion und wenig oder keine Flexibilität. Ein Mikrocontroller ist in der Regel relativ leistungsschwach und benötigt nur wenig Speicher und ROM (Flash).

Umgekehrt ist ein System-on-Chip das andere Ende des Spektrums. Es ist mehr auf vollständige Flexibilität und Benutzerinteraktion ausgerichtet. Es enthält häufig E / A-Treiber für größere Hardware (wie Festplatten usw.) und manchmal sogar einen Grafikadapter. Ein System-on-Chip ist eher ein komplettes Computersystem, ja, auf einem Chip.

Es gibt eine Menge Überkreuzungen zwischen den beiden - wann hört es auf, ein Mikrocontroller zu sein und beginnt, ein System-on-Chip zu sein? Woher kommt ein Großteil der Verwirrung?

Grundsätzlich ist es ein System-on-Chip, wenn es das kann, was ein Computer kann. Wenn es zum Beispiel darauf ausgerichtet ist, in einem Tischtelefon zu sitzen, das Ihre Kontaktliste verwaltet, oder in einem Tastatur-Eingabesystem oder die Motoren auf einer CNC-Maschine laufen zu lassen, dann ist es ein Mikrocontroller.

ps, zitiere mich nicht dazu - wie ich sage gibt es eine Menge Überkreuzungen zwischen den beiden.


5

Die Unterscheidung ist in gewisser Weise eher marketingbezogen als technisch, aber ich würde vorschlagen, dass der "programmierbare" Teil eines Mikrocontrollers im Allgemeinen auf einen einzigen, relativ engen "Bewusstseinsstrom" beschränkt ist. Grundsätzlich wird zu jedem Zeitpunkt die nächste relativ kleine Operation des Mikrocontrollers durch die Programmierung bestimmt, aber alle anderen Logikfunktionen im System sind fest verdrahtet und funktionieren so, wie sie erstellt wurden. Einige Dinge wie Timer bieten möglicherweise einige Konfigurationsoptionen (z. B. Zählen mit fester Rate im Vergleich zum Zählen von Impulsen an einem Eingang), aber im Allgemeinen ist die Verkabelung des Systems fest. Wenn ein Ausgangssignal als Reaktion auf ein Eingangssignal geändert werden soll und keine explizite Hardware dafür vorhanden ist, Das Programm muss in regelmäßigen Abständen das Eingangssignal überprüfen und, falls es sich geändert hat, das Ausgangssignal umschalten. Wenn eine Änderung der analogen Ausgangsspannung als Reaktion auf eine analoge Eingangsspannung gewünscht wird, kann der Prozessor die Eingangsspannung abtasten, die gewünschte Antwort berechnen und die gewünschte Ausgangsspannung anfordern. Praktisch kann die Art des gewünschten Reizes / der gewünschten Reaktion erzeugt werden, indem der Prozessor die Eingaben überprüft und die Ausgaben berechnet, aber die Reaktionszeiten sind im Allgemeinen um Größenordnungen langsamer als mit dedizierter Hardware.

Die allgemeine Idee bei einem System-on-Chip besteht darin, die Schaltung mit genügend Multiplexern und anderen Routing-Einrichtungen auszustatten, so dass die Signale durch die Schaltungen geleitet werden können, um viele nützliche Arten von Stimulus- / Antwortmustern ohne Eingreifen des Prozessors zu erzeugen. Solche Schaltungen können keine Stimulus- / Antwortmuster erzeugen, die annähernd so schnell sind, wie ein Prozessor es könnte, aber sie können in vielen Fällen um Größenordnungen schneller sein als alles, was ein Prozessor tun könnte.


2

Meiner Meinung nach ist SoC der Begriff mit vielen Definitionen, die sich in der Tat mit der Zeit ändern werden. Auf der anderen Seite wird der Mikrocontroller nach einem Jahrzehnt genauso definiert wie jetzt. Wenn Sie von einem Mikrocontroller sprechen, sind einige grundlegende Dinge auf einem einzelnen Chip enthalten, wie z. B. Speicher, E / A-Anschlüsse, Zeitgeber und Zähler usw. Wenn Sie jedoch einen SoC sagen, gibt es keinen spezifischen Standard für das, was Art der Schaltung sollte es enthalten. Die primäre Anwendung, in der versucht wird, SoC einzubinden, ist beispielsweise Smartphone. Im aktuellen Szenario sollte ein Smartphone einige grundlegende On-Board-Elemente enthalten, z.

  1. NFC
  2. GPS
  3. Beschleunigungsmesser und Gyro
  4. W-lan
  5. Eine CPU und eine GPU

Wenn ich in der aktuellen Situation ein Smartphone herstellen möchte, muss ich eine CPU und eine GPU abholen und alles daran anschließen. Aber SoC basiert auf dem Konzept eines einzelnen Chips, der alle oben genannten Eigenschaften aufweist und sich entwickeln kann (wenn auch auf sehr grundlegende Weise). Ich sagte auch, dass SoC eine sich ständig ändernde Definition hat, da die grundlegenden Anforderungen an ein Smartphone, einen Computer oder ein elektronisches Gerät von Tag zu Tag zunehmen und sich die Definition von SoC mit diesen Anforderungen ändern wird.


0

Ja, SoC ist im Grunde ein Marketing-Begriff, der häufiger verwendet wird. Es gibt Geräte- und Host-Terminologie. Es sind die großen PC-Hersteller wie Dell, HP, IBM usw. Sie verwenden die CPU in ihnen, die im Allgemeinen von Intel, AMD usw. hergestellt wird Grundsätzlich bietet CPU oder SoC auf der Hauptplatine (als CPU bezeichnet), einige bieten auch die CPU + SoC (für einen bestimmten Zweck, um die Aktivität der Peripheriegeräte zu entlasten - wie Sensoren oder GPS-Geräte, die ansonsten sehr leistungshungrig gewesen wären) sie wurden direkt mit der CPU verbunden). SoC wird manchmal auch ein Co-Prozessor genannt, dessen Job der gleiche ist wie der, den ich zuvor geschrieben habe. An die MotherBoards sind nun verschiedene Peripheriegeräte angeschlossen (die im Wesentlichen an eine CPU oder einen SoC angeschlossen sind). Diese Peripheriegeräte werden im Wesentlichen entweder direkt über den Summenbus (i2c, SPI, USB) mit ihnen verbunden (SOC oder CPU) oder sie werden im Allgemeinen an die MicroController angeschlossen . Controller-Hersteller) sowie die PC-Hersteller, da sie die besseren Geräte (Peripheriegeräte + Microcontroller) bekommen. Der springende Punkt ist also der Mikrocontroller-Begriff, den Sie häufiger auf der Geräteseite (derjenige, der mit dem SoC verbunden ist (Jetzt wissen Sie, was ein SOC ist? Nicht wahr?) Und dem SoC auf der Host-Seite (der PC-Seite) sehen ). Sie können sagen, CPU ist der Vater, der Soem seiner Arbeit an SoC delegiert, um die Stromversorgung der Geräte zu verbessern (Micro + -Peripheriegeräte). Socs verfügen im Grunde über mehr Speicher, um ein Betriebssystem zu hosten, das Mikrocontroller unterstützt, die höchstens die RTOs unterstützen.


1
WOW ! Wirklich wie die Ablehnung, wenn die Leute es tun, ohne viele notwendige Kommentare zu machen!
Raulp

3
Es ist sehr unklar. Ich kann in diesem Strom des Bewusstseins nicht das Hin und Her machen.
ivan_pozdeev

0

Fassen Sie das oben Gesagte zusammen, es scheint mir:

Eine MCU bietet viel Speicher, Schnittstellen wie VGA und Funktionen wie GPU, indem mehrere unterschiedliche Chips verwendet werden, die unterschiedliche Funktionen bereitstellen.

Eine MCU passt alles auf einen einzelnen Chip, indem nur minimaler Speicher, Schnittstellen usw. bereitgestellt werden.

Ein SoC passt alles auf einen einzelnen Chip, indem die Grenzen dessen, was auf einem Chip möglich ist, erweitert werden.

MCUs bieten einen Mehrwert durch Minimierung der Kosten, SoCs einen Mehrwert durch Maximierung der Funktionalität, beide auf einem einzigen Chip. Wenn es mit der TLL-Logik konkurriert, handelt es sich wahrscheinlich um eine MCU. Wenn es gegen Mikroprozessoren (AMD, Intel) geht, ist es wahrscheinlich ein SoC.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.