Mikrocontroller
A Mikrocontroller (MCU zum Mikrocontroller -Einheit) ist ein kleiner Computer auf einer einzigen VLSI Integrierter Schaltkreis (IC) Chip. Ein Mikrocontroller enthält einen oder mehrere CPUs (Prozessorkerne) zusammen mit Erinnerung und programmierbar Input-Output Peripheriegeräte. Programmspeicher in Form von ferroelektrischer RAM, Noch Blitz oder OTP ROM wird auch oft auch auf Chip sowie eine kleine Menge von Menge enthalten RAM. Mikrocontroller sind für eingebettet Anwendungen im Gegensatz zu der Mikroprozessoren benutzt in persönliche Computer oder andere allgemeine Anwendungen, die aus verschiedenen diskreten Chips bestehen.
In der modernen Terminologie ist ein Mikrocontroller ähnlich, aber weniger raffiniert als, a System auf einem Chip (SOC). Ein SOC kann die externen Mikrocontroller -Chips als Motherboard -Komponenten anschließen, aber ein SOC integriert normalerweise die fortschrittlichen Peripheriegeräte wie Grafikkarte (GPU) und W-lan Schnittstellencontroller als interne Schaltkreise für Mikrocontroller -Einheiten.
Mikrocontroller werden in verwendet automatisch gesteuert Produkte und Geräte wie Automobilmotorsteuerungssysteme, implantierbare medizinische Geräte, Fernbedienungen, Büromaschinen, Geräte, Elektrowerkzeuge, Spielzeug und andere eingebettete Systeme. Durch die Reduzierung der Größe und der Kosten im Vergleich zu einem Design, das ein separates verwendet Mikroprozessor, Speicher- und Eingangs-/Ausgangsgeräte, Mikrocontroller machen es wirtschaftlich, noch mehr Geräte und Prozesse digital zu steuern. Gemischtes Signal Mikrocontroller sind häufig und integrieren analoge Komponenten, die zur Steuerung nicht digitaler elektronischer Systeme erforderlich sind. Im Kontext der Internet der Dinge, Mikrocontroller sind ein wirtschaftliches und beliebtes Mittel von Datensammlung, Sensing und Betätigung die physische Welt als Kantengeräte.
Einige Mikrocontroller verwenden möglicherweise vier Bit Wörter und bei Frequenzen von so niedrig wie möglich arbeiten wie 4 kHz für niedrig Energieverbrauch (einzelne Ziffer Milliwatt oder Mikrowatt). Sie haben im Allgemeinen die Fähigkeit, die Funktionalität während der Beibehaltung zu behalten warten für ein Veranstaltung wie eine Taste drücken oder andere unterbrechen; Der Stromverbrauch beim Schlafen (CPU -Uhr und die meisten Peripheriegeräte) können nur Nanowatt sein, was viele von ihnen gut für langlebige Batterieanwendungen eignet. Andere Mikrocontroller können leistungskritische Rollen dienen, in denen sie möglicherweise eher wie a handeln müssen digitaler Signalprozessor (DSP) mit höheren Taktgeschwindigkeiten und Stromverbrauch.
Geschichte
Hintergrund
Die ersten Multi-Chip-Mikroprozessoren, die Vier-Phasen-Systeme Al1 im Jahr 1969 und die Garrett AiResearch MP944 1970 wurden mit mehreren MOS -LSI -Chips entwickelt. Der erste Single-Chip-Mikroprozessor war der Intel 4004, veröffentlicht auf einem einzigen Mos LSI -Chip 1971. Es wurde von entwickelt von Federico Fagginmit seinem Silizium-Gate MOS -Technologie zusammen mit Intel Ingenieure Marcian Hoff und Stan Mazor, und Bussicom Techniker Masatoshi Shima.[1] Es folgte die 4-Bit Intel 4040, das 8 Bit Intel 8008und der 8-Bit Intel 8080. Alle diese Prozessoren benötigten mehrere externe Chips, um ein Arbeitssystem zu implementieren, einschließlich Speicher- und peripherer Schnittstellenchips. Infolgedessen betrugen die Gesamtkosten für mehrere hundert US -Dollar (US -Dollar) Dollar, was es unmöglich macht, kleine Geräte wirtschaftlich zu computerisieren.
MOS -Technologie stellte 1975 seine Mikroprozessoren unter $ 100, die 6501 und im Jahr 1975 ein 6502. Ihr Hauptziel war es, diese Kostenbarriere zu senken, aber diese Mikroprozessoren erforderten immer noch externe Unterstützung, Speicher und periphere Chips, die die Gesamtkosten in Hunderten von Dollar hielten.
Entwicklung
Ein Buch Credits Ti Ingenieure Gary Boone und Michael Cochran mit der erfolgreichen Schaffung des ersten Mikrocontroller im Jahr 1971. Das Ergebnis ihrer Arbeit war die TMS 1000, das 1974 im Handel erhältlich wurde. Es kombinierte schreibgeschützte Speicher, Lese-/Schreibspeicher, Prozessor und Uhr auf einem Chip und wurde auf eingebettete Systeme ausgerichtet.[2]
In den frühen bis mid-1970er Jahren begannen die Hersteller von japanischen Elektronik, Mikrocontroller für Automobile zu produzieren, einschließlich 4-Bit-MCUs für Unterhaltung im Auto, Automatische Scheibenwischer, elektronische Schlösser und Armaturenbrett sowie 8-Bit-MCUs für die Motorsteuerung.[3]
Teilweise als Reaktion auf die Existenz des Single-Chip-TMS 1000,[4] Intel entwickelte ein Computersystem auf einem für Steuerungsanwendungen optimierten Chip. Intel 8048, mit kommerziellen Teilen erste Schifffahrt im Jahr 1977.[4] Es kombinierte sich RAM und Rom auf demselben Chip mit einem Mikroprozessor. Unter zahlreichen Anwendungen würde dieser Chip schließlich seinen Weg in über eine Milliarde PC -Tastaturen finden. Zu dieser Zeit erklärte der Präsident von Intel, Luke J. Valenter, dass der Mikrocontroller eines der erfolgreichsten Produkte in der Geschichte des Unternehmens sei, und er erweiterte das Budget der Mikrocontroller -Abteilung um über 25%.
Die meisten Mikrocontroller hatten zu dieser Zeit gleichzeitige Varianten. Man hatte Eprom Programmspeicher mit einem transparenten Quarzfenster im Deckel des Pakets, damit es durch Exposition zugelassen werden kann Ultraviolett hell. Diese löschbaren Chips wurden häufig zum Prototyping verwendet. Die andere Variante war entweder eine Maske programmierte ROM oder a ABSCHLUSSBALL Variante, die nur einmal programmierbar war. Für letztere wurde die Bezeichnung OTP manchmal für "einmalige programmierbare" verwendet. In einem OTP -Mikrocontroller war der PROM normalerweise von identischer Art wie das EPROM, aber das Chip -Paket hatte kein Quarzfenster. Da es keine Möglichkeit gab, das EPROM dem ultravioletten Licht auszusetzen, konnte es nicht gelöscht werden. Da die löschbaren Versionen Keramikpakete mit Quarzfenstern erforderten, waren sie deutlich teurer als die OTP-Versionen, die in niedrigeren undurchsichtigen Plastikpaketen hergestellt werden konnten. Für die löschbaren Varianten war Quarz anstelle von weniger teurem Glas erforderlich für seine Transparenz zu ultraviolettem Licht - für welches Glas weitgehend undurchsichtig ist -, aber der Hauptkostenunterscheidungsmerkmal war das Keramikpaket selbst.
Im Jahr 1993 die Einführung von Eeprom Speicher ermöglichte Mikrocontroller (beginnend mit dem Mikrochip PIC16C84)[5] Elektrisch schnell ohne teure Paket nach Bedarf erforderlich zu machen Epromsowohl schnelles Prototyping als auch zulassen In-System-Programmierung. (EEPROM -Technologie war vor dieser Zeit verfügbar gewesen,[6] Das frühere EEPROM war jedoch teurer und weniger langlebiger und machte es für kostengünstige Massenproduktionsmikrocontroller nicht geeignet.) Im selben Jahr führte Atmel den ersten Mikrocontroller mit Verwendung ein Flash-Speicher, eine besondere Art von EEPROM.[7] Andere Unternehmen folgten schnell mit beiden Speichertypen.
Heutzutage sind Mikrocontroller billig und für Hobbyisten mit großen Online -Communities in Bezug auf bestimmte Prozessoren leicht erhältlich.
Volumen und Kosten
Im Jahr 2002 rund 55% aller CPUs In der Welt wurden 8-Bit-Mikrocontroller und Mikroprozessoren verkauft.[8]
Über zwei Milliarden 8-Bit-Mikrocontroller wurden 1997 verkauft,[9] Und laut Semico wurden 2006 über vier Milliarden 8-Bit-Mikrocontroller verkauft.[10] In jüngerer Zeit hat Semico behauptet, der MCU -Markt sei 2010 und 2011 um 12% um 36,5% gestiegen.[11]
Ein typisches Haus in einem entwickelten Land hat wahrscheinlich nur vier allgemeine Mikroprozessoren, aber etwa drei Dutzend Mikrocontroller. Ein typisches Automobil mit mittlerer Reichweite verfügt über etwa 30 Mikrocontroller. Sie können auch in vielen elektrischen Geräten wie Waschmaschinen, Mikrowellenöfen und Telefonen gefunden werden.
Historisch gesehen hat das 8-Bit-Segment den 16-Bit Der MCU-Markt wird in den nächsten fünf Jahren erhebliche Veränderungen unterziehen, wobei 32-Bit-Geräte stetig einen größeren Anteil an Umsatz- und Einheitsvolumen erzielen. Bis 2017 wird erwartet, dass 32-Bit-MCUs 55% des Umsatzs von Mikrocontroller [..] in Bezug auf die Einheitsvolumina ausmachen, werden 32-Bit-MCUs im Jahr 2017 38% der Microcontroller-Sendungen ausmachen, während 16-Bit-Geräte vertreten werden 34% der Gesamt- und 4-/8-Bit-Designs werden von 28% der in diesem Jahr verkauften Einheiten prognostiziert. Der 32-Bit-MCU-Markt wird voraussichtlich aufgrund der zunehmenden Nachfrage nach höheren Genauigkeitsniveaus der eingebetteten Verarbeitungssysteme und des Wachstums der Konnektivität mithilfe des Internets schnell wachsen. [..] In den nächsten Jahren wird erwartet, dass ein komplexer 32-Bit-MCUs über 25% der Verarbeitungsleistung in Fahrzeugen ausmachen.
-IC Insights, MCU-Markt für Migrationspfad zu 32-Bit- und Armbasisgeräten[12]
Kosten für die Herstellung können unterhalb sein US $ 0,10 pro Einheit.
Die Kosten sind im Laufe der Zeit mit dem billigsten gesunken 8 Bit Mikrocontroller sind verfügbar für unter US $ 0,03 im Jahr 2018,[13] und einige 32-Bit Mikrocontroller herum US $ 1 für ähnliche Mengen.
Im Jahr 2012 war der Durchschnittspreis für einen Mikrocontroller nach einer weltweiten Krise-ein schlechtester jährlicher Umsatzrückgang und -erholung sowie der durchschnittliche Verkaufspreis von 17%-die größte Reduzierung seit den 1980er Jahren-der Durchschnittspreis für einen Mikrocontroller US $ 0,88 (US $ 0,69 für 4-/8-Bit, US $ 0,59 für 16-Bit, US $ 1,76 für 32-Bit).[12]
Im Jahr 2012 waren weltweite Verkäufe von 8-Bit-Mikrocontrollern in der Nähe 4 Milliarden US -Dollar, während 4-Bit Mikrocontroller verzeichneten ebenfalls erhebliche Umsätze.[14]
Im Jahr 2015 könnten 8-Bit-Mikrocontroller für gekauft werden US $ 0,311 (1.000 Einheiten),[15] 16-Bit für US $ 0,385 (1.000 Einheiten),[16] und 32-Bit für US $ 0,378 (1.000 Einheiten, aber bei US $ 0,35 für 5.000).[17]
Im Jahr 2018 könnten 8-Bit-Mikrocontroller für gekauft werden US $ 0,03,[13] 16-Bit für US $ 0,393 (1.000 Einheiten, aber bei US $ 0,563 für 100 oder US $ 0,349 für volle Rolle von 2.000),[18] und 32-Bit für US $ 0,503 (1.000 Einheiten, aber bei US $ 0,466 für 5.000).[19]
Im Jahr 2018 waren die oben genannten mikrocontrollischen Mikrocontroller aus dem Jahr 2015 alle teurer (mit der Inflation zwischen den Preisen 2018 und 2015 für diese spezifischen Einheiten) bei: Der 8-Bit-Mikrocontroller könnte für gekauft werden US $ 0,319 (1.000 Einheiten) oder 2,6% höher,[15] der 16-Bit für US $ 0,464 (1.000 Einheiten) oder 21% höher,[16] und der 32-Bit für US $ 0,503 (1.000 Einheiten, aber bei US $ 0,466 für 5.000) oder 33% höher.[17]
Kleinster Computer
Am 21. Juni 2018 wurde der "kleinste Computer der Welt" von der angekündigt Universität von Michigan. Das Gerät ist ein "0,04mm3 16NW drahtloses und batteriebetloses Sensorsystem mit integriert Cortex-M0+ Prozessor und optische Kommunikation für die Messung der Zelltemperatur. " 0,3 mm auf eine Seite - von einem Reiskörnern gestützt. [...] zusätzlich zum RAM und PhotovoltaikDie neuen Computergeräte haben Prozessoren und drahtlose Sender und Empfänger. Da sie zu klein sind, um herkömmliche Funkantennen zu haben, empfangen und senden sie Daten mit sichtbarem Licht. Eine Basisstation bietet Licht für Strom und Programmierung und erhält die Daten. "[20] Das Gerät ist 1⁄10Die Größe von IBMs zuvor behaupteten Computer-Rekord-Computer von Monaten im März im März 2018,[21] das ist "kleiner als ein Körnchen Salz",[22] hat eine Million Transistoren, kostet weniger als $ 0,10 herstellen und, kombiniert mit Blockchain Technologie ist für Logistik und "Crypto-Anchors" vorgesehen-digitaler Fingerabdruck Anwendungen.[23]
Eingebettetes Design
Ein Mikrocontroller kann als in sich geschlossenes System mit Prozessor, Speicher und Peripheriegeräten angesehen werden und kann als als verwendet werden Eingebettetes System.[24] Die Mehrheit der heute verwendeten Mikrocontroller ist in andere Maschinen eingebettet, z. B. Automobile, Telefone, Geräte und Peripheriegeräte für Computersysteme.
Während einige eingebettete Systeme sehr hoch entwickelt sind, haben viele minimale Anforderungen an Speicher- und Programmlänge ohne Nr. Betriebssystemund geringe Software -Komplexität. Typische Eingangs- und Ausgangsgeräte umfassen Schalter, Relais, Magnetoide, LED's, klein oder individuell Flüssigkristallanzeigen, Funkfrequenzgeräte und Sensoren für Daten wie Temperatur, Luftfeuchtigkeit, Lichtniveau usw. Eingebettete Systeme haben normalerweise keine Tastatur, Bildschirm, Scheiben, Drucker oder andere erkennbare E/A -Geräte von a persönlicher Computerund kann keine menschlichen Interaktionsgeräte jeglicher Art haben.
Interrupts
Mikrocontroller müssen bereitstellen Echtzeit (Vorhersehbar, wenn auch nicht unbedingt schnell) Reaktion auf Ereignisse im eingebetteten System, das sie kontrollieren. Wenn bestimmte Ereignisse auftreten, eine unterbrechen Das System kann dem Prozessor signalisieren, die Verarbeitung der aktuellen Anweisungssequenz auszusetzen und eine zu beginnen Service Routine unterbrechen (ISR oder "Interrupt -Handler"), die die erforderliche Verarbeitung basierend auf der Quelle des Interrupts durchführen, bevor sie zur ursprünglichen Anweisungssequenz zurückkehrt. Mögliche Interrupt -Quellen sind Geräte abhängig und umfassen häufig Ereignisse wie einen internen Timer -Überlauf, eine Analog- bis digitale Konvertierung, eine Änderung einer Logikebene bei einer Eingabe, wie z. Wenn der Stromverbrauch wie bei Batteriegeräten wichtig ist, können Interrupts auch einen Mikrocontroller aus einem Schlafzustand mit geringer Leistung wecken, in dem der Prozessor gestoppt wird, bis er durch ein peripheres Ereignis etwas erforderlich ist.
Programme
In der Regel müssen Mikrokontroller-Programme in den verfügbaren On-Chip-Speicher passen, da es kostspielig wäre, einem System einen externen, erweiterbaren Speicher zu bieten. Compiler und Abbauler werden verwendet, um beide zu konvertieren hohes Level und Montagesprache Code in einen kompakten Code Maschinensprache zur Speicherung im Speicher des Mikrokontrollers. Abhängig vom Gerät kann der Programmspeicher dauerhaft sein. Nur-Lese-Speicher Das kann nur in der Fabrik programmiert werden oder es kann feldveränderlich sein Blitz oder löschbare schreibgeschützte Speicher.
Hersteller haben häufig spezielle Versionen ihrer Mikrokontroller hergestellt, um der Hardware und der Hardware zu helfen Software-Entwicklung des Zielsystems. Ursprünglich enthalten diese Eprom Versionen mit einem "Fenster" oben auf dem Gerät, über das der Programmspeicher nach gelöscht werden kann Ultraviolett Licht, bereit für die Neuprogrammierung nach einer Programmierung ("Verbrennung") und Testzyklus. Seit 1998 sind EPROM -Versionen selten und wurden durch ersetzt durch Eeprom und Flash, die einfacher zu bedienen sind (können elektronisch gelöscht werden) und billiger herzustellen.
Andere Versionen können verfügbar sein, wenn das ROM als externes Gerät und nicht als interner Speicher zugegriffen wird. Diese sind jedoch aufgrund der weit verbreiteten Verfügbarkeit billiger Mikrocontroller -Programmierer selten.
Die Verwendung von feldprogrammierbaren Geräten auf einem Mikrocontroller kann die Feldaktualisierung der Feld ermöglichen Firmware Oder erlauben Sie verspätete Fabrikrevisionen für Produkte, die zusammengestellt, aber noch nicht versendet wurden. Der programmierbare Speicher verkürzt auch die Vorlaufzeit für die Bereitstellung eines neuen Produkts.
Wenn Hunderttausende identischer Geräte erforderlich sind, kann die zum Zeitpunkt der Herstellung programmierte Teile wirtschaftlich sein. Diese "Maske programmiert"Teile haben das Programm gleichzeitig auf die gleiche Weise wie die Logik des Chips festgelegt.
Ein maßgeschneiderter Mikrokontroller enthält einen Block digitaler Logik, der für zusätzliche Verarbeitungsfunktionen personalisiert werden kann. Peripheriegeräte und Schnittstellen die an die Anforderungen der Anwendung angepasst werden. Ein Beispiel ist das AT91CAP aus Atmel.
Andere Microcontroller -Funktionen
Mikrocontroller enthalten normalerweise von mehreren bis Dutzenden von Eingangs-/Ausgangsnadeln (Allzweck) (Gpio). GPIO -Stifte sind software -konfigurierbar für einen Eingang oder einen Ausgangszustand. Wenn GPIO -Stifte in einem Eingabestatus konfiguriert werden, werden sie häufig zum Lesen von Sensoren oder externen Signalen verwendet. GPIO -Stifte konfiguriert am Ausgangszustand und können externe Geräte wie LEDs oder Motoren häufig indirekt durch externe Leistungselektronik treiben.
Viele eingebettete Systeme müssen Sensoren lesen, die analoge Signale erzeugen. Dies ist der Zweck der Analog-Digital-Wandler (ADC). Da Prozessoren so erstellt wurden, dass digitale Daten interpretiert und verarbeitet werden, d. H. 1S und 0S, können sie nichts mit den analogen Signalen tun, die von einem Gerät an sie gesendet werden können. Daher wird der analoge zu digitale Konverter verwendet, um die eingehenden Daten in ein Formular umzuwandeln, das der Prozessor erkennen kann. Eine weniger häufige Funktion bei einigen Mikrocontrollern ist a Digital-Analog-Wandler (DAC), das es dem Prozessor ermöglicht, analoge Signale oder Spannungsstufen auszugeben.
Zusätzlich zu den Konverter enthalten viele eingebettete Mikroprozessoren auch eine Vielzahl von Timern. Eine der häufigsten Arten von Timern ist die Programmierbares Intervall -Timer (GRUBE). Eine Grube kann entweder von einem Wert auf Null oder bis zur Kapazität des Zählregisters abzählen, was auf Null überfüllt ist. Sobald es Null erreicht, sendet es einen Interrupt an den Prozessor, der angibt, dass es fertig ist. Dies ist nützlich für Geräte wie Thermostate, die die Temperatur regelmäßig um sie herum testen, um festzustellen, ob sie die Klimaanlagen ein- und ausschalten müssen, die Heizung ein- und ausgeschaltet usw.
Ein dedizierter Pulsweitenmodulation (PWM) Block ermöglicht es der CPU zu kontrollieren Power -Konverter, Widerstand Ladungen, Motorenusw. ohne viele CPU -Ressourcen in engen Timer zu verwenden Schleifen.
A Universal Asynchronous Receiver / Transmitter (UART) Block ermöglicht es, Daten über eine serielle Linie mit sehr geringer Last der CPU zu empfangen und zu übertragen. Dedizierte On-Chip-Hardware umfasst häufig auch Funktionen zur Kommunikation mit anderen Geräten (Chips) in digitalen Formaten wie interintegrierten Schaltkreisen (Circua (Circua)I²c), Serielle periphere Grenzfläche (Spi), Universeller Serienbus (USB), und Ethernet.[25]
Höhere Integration
Mikrokontroller implementieren möglicherweise keine externe Adresse oder Datenbus, da sie RAM integrieren und Nichtflüchtiger Gedächtnis auf dem gleichen Chip wie die CPU. Mit weniger Stiften kann der Chip in ein viel kleineres, billigeres Paket platziert werden.
Die Integration des Speichers und anderer Peripheriegeräte in einen einzelnen Chip und das Testen als Einheit erhöht die Kosten dieses Chips, führt jedoch häufig zu verringerten Nettokosten des eingebetteten Systems als Ganzes. Auch wenn die Kosten einer CPU, die Peripheriegeräte integriert hat Ergänzung zum Verringern der Defektrate für die fertige Montage.
Ein Mikrokontroller ist ein einziges Integrierter Schaltkreishäufig mit den folgenden Merkmalen:
- Zentrale Verarbeitungseinheit- von klein und einfach reichen 4-Bit Prozessoren zu komplex 32-Bit oder 64-Bit Prozessoren
- flüchtiger Speicher (RAM) Für die Datenspeicherung
- Rom, Eprom, Eeprom oder Flash-Speicher zum Programm und Betriebsparameterspeicher
- Diskrete Eingangs- und Ausgangsbits, die die Steuerung oder Erkennung des logischen Status eines einzelnen PaketpIN ermöglichen
- Serie Input-Output wie zum Beispiel serielle Ports (Uarts)
- Sonstiges Serienkommunikation Schnittstellen wie I²c, Serielle periphere Schnittstelle und Controller Area Network Für Systemverbindungen
- Peripheriegeräte wie zum Beispiel Timer, Ereigniszähler, PWM -Generatoren, und Wachhund
- Uhrengenerator- Oft ein Oszillator für einen Quarz -Timing -Kristall, Resonator oder RC -Schaltung
- Viele umfassen analog-digitale Konverter, einige enthalten Digital-Analog-Konverter
- In-Circuit-Programmierung und In-Circuit-Debugging Unterstützung
Diese Integration reduziert drastisch die Anzahl der Chips und die Menge der Verkabelung und Leiterplatte Raum, der benötigt wird, um äquivalente Systeme mit separaten Chips zu erstellen. Darüber hinaus kann insbesondere auf Geräten mit niedrigem Pin -Zählgeräten jeder Pin zu mehreren internen Peripheriegeräten mit der von der Software ausgewählten PIN -Funktion ausgewählt. Auf diese Weise kann ein Teil in einer größeren Vielfalt von Anwendungen verwendet werden, als wenn Stifte dedizierte Funktionen hätten.
Mikrokontroller haben sich als sehr beliebt erwiesen eingebettete Systeme seit ihrer Einführung in den 1970er Jahren.
Einige Mikrocontroller verwenden a Harvard Architektur: Separate Speicherbusse für Anweisungen und Daten, sodass der Zugriff gleichzeitig stattfinden kann. Wenn eine Harvard -Architektur verwendet wird, können Anweisungswörter für den Prozessor eine andere Bitgröße haben als die Länge des internen Speichers und die Register. Zum Beispiel: 12-Bit-Anweisungen mit 8-Bit-Datenregistern.
Die Entscheidung, die periphere Integration zu integrieren ist, ist oft schwierig. Die Microcontroller-Anbieter handeln häufig Betriebsfrequenzen und Flexibilität des Systemdesigns gegen Zeitanforderungen ihrer Kunden und insgesamt niedrigere Systemkosten. Hersteller müssen die Notwendigkeit ausgleichen, die Chipgröße gegen zusätzliche Funktionen zu minimieren.
Mikrocontroller -Architekturen variieren stark. Einige Designs umfassen allgemeine Mikroprozessor-Kerne mit einem oder mehreren ROM-, RAM- oder E/A-Funktionen, die in das Paket integriert sind. Andere Designs sind Zwecke für Kontrollanwendungen. Ein Mikrokontroller-Befehlssatz enthält normalerweise viele Anweisungen für Bitmanipulation (Bit-Wise Operations), um Steuerungsprogramme kompakter zu gestalten.[26] Beispielsweise benötigt ein Allzweckprozessor möglicherweise mehrere Anweisungen, um ein bisschen in einem Register und in einem Zweig zu testen, wenn das Bit festgelegt ist, wobei ein Mikrokontroller eine einzige Anweisung haben kann, um diese häufig erforderliche Funktion zu erteilen.
Mikrocontroller haben traditionell keine Mathematik Coprozessor, Also schwimmende Punktarithmetik wird von Software durchgeführt. Einige neuere Designs umfassen jedoch eine FPU- und DSP -optimierte Funktionen. Ein Beispiel wäre Microchips PIC32 MIPS -basierter Linie.
Programmierumgebungen
Mikrocontroller wurden ursprünglich nur in programmiert Montagesprache, aber verschiedene hochrangige Programmiersprachen, wie zum Beispiel C, Python und JavaScript, werden jetzt auch gemeinsam verwendet, um Mikrocontroller zu zielen und eingebettete Systeme.[27] Compiler Für allgemeine Zwecke verfügen Sprachen in der Regel sowohl einige Einschränkungen als auch Verbesserungen, um die einzigartigen Eigenschaften von Mikrocontrollern besser zu unterstützen. Einige Mikrocontroller verfügen über Umgebungen, um bestimmte Arten von Anwendungen zu entwickeln. Mikrocontroller -Anbieter stellen häufig Tools frei zur Verfügung, um die Übernahme ihrer Hardware zu erleichtern.
Mikrocontroller mit Spezialhardware erfordern möglicherweise ihre eigenen nicht standardmäßigen Dialekte von C, wie z. SDCC für den 8051, die verhindern, dass die Verwendung von Standard -Tools (z. B. Codebibliotheken oder statische Analyse -Tools) auch für Code, das nicht mit Hardwarefunktionen zu tun hat,. Dolmetscher kann auch nicht standardmäßige Funktionen enthalten, wie z. Mikropython, obwohl eine Gabel, Circuitpython, hat versucht, Hardwareabhängigkeiten in Bibliotheken zu verschieben und die Sprache mehr einzuhalten Cpython Standard.
Interpreter Firmware ist auch für einige Mikrocontroller verfügbar. Zum Beispiel, BASIC Auf den frühen Mikrocontrollern Intel 8052;[28] Einfach und Weiter auf der Zilog Z8[29] sowie einige moderne Geräte. Normalerweise unterstützen diese Dolmetscher Interaktive Programmierung.
Simulatoren sind für einige Mikrocontroller verfügbar. Diese ermöglichen es einem Entwickler, zu analysieren, was das Verhalten des Mikrocontrollers und seines Programms sein sollte, wenn er den tatsächlichen Teil verwendet hat. EIN Simulator Zeigt den internen Prozessorzustand und auch den der Ausgänge an und ermöglicht die Erstellung von Eingabesignalen. Während die meisten Simulatoren einerseits nicht in der Lage sind, in einem System nicht viel andere Hardware zu simulieren, können sie Bedingungen ausüben, die ansonsten bei der physischen Implementierung schwer zu reproduzieren sind und die schnellste Möglichkeit sein können, zu debuggen und zu analysieren Probleme.
Neuere Mikrocontroller werden häufig in den On-Chip integriert debuggen Schaltkreise, wenn er von einem zugegriffen wird In-Circuit-Emulator (Eis) über JtagErmöglichen Sie das Debuggen der Firmware mit a Debugger. Ein Echtzeiteis kann das Betrachten und/oder Manipulieren interner Zustände während des Laufens ermöglichen. Ein nach/nach einem Triggerpunkt aufgenommene Programme und MCU -Zustände von MCU erfassen.
Typen
Ab 2008[aktualisieren]Es gibt mehrere Dutzend Mikrocontroller -Architekturen und -verkäufer, darunter:
- ARM Kernprozessoren (viele Anbieter)
- Arm Cortex-M Kerne sind speziell auf Mikrocontroller -Anwendungen abzielen
- Mikrochip -Technologie Atmel Avr (8 Bit), AVR32 (32-Bit) und At91sam (32-Bit)
- Cypress Semiconductor's M8C -Kern, das in ihrem verwendet wird PSOC (programmierbares System-on-Chip)
- Freescale Coldfire (32-Bit) und S08 (8 Bit)
- Freescale 68HC11 (8-Bit) und andere Basierend auf der Familie Motorola 6800
- Intel 8051, auch hergestellt von NXP -Halbleiter, Infineon und viele andere
- Infineon: 8-Bit XC800, 16-Bit XE166, 32-Bit XMC4000 (ARM -Basis -Kortex M4F), 32-Bit Tricore und, 32-Bit Aurix Tricore Bit Microcontroller[30]
- Maxim integriert Max32600, Max32620, Max32625, Max32630, Max32650, Max32640
- MIPS
- Mikrochip -Technologie Bild, (8-Bit PIC16, PIC18, 16-Bit DSPIC33 / PIC24), (32-Bit PIC32)
- NXP -Halbleiter LPC1000, LPC2000, LPC3000, LPC4000 (32-Bit), LPC900, LPC700 (8-Bit)
- Parallaxe Propeller
- Powerpc Ise
- Kaninchen 2000 (8 Bit)
- Renesas Electronics: RL78 16-Bit MCU; RX 32-Bit MCU; Superh; V850 32-Bit MCU; H8; R8C 16-Bit MCU
- Siliziumlabors Pipeline 8-Bit 8051-Mikrocontroller und 32-Bit-Mikrocontroller mit gemischter Signal-Signal-Signal
- Stmicroelectronics STM8 (8 Bit), ST10 (16-Bit), STM32 (32-Bit), SPC5 (Automobil 32-Bit)
- Texas Instrumente Ti Msp430 (16-Bit), MSP432 (32-Bit), C2000 (32-Bit)
- Toshiba TLCS-870 (8-Bit/16-Bit)
Es gibt viele andere, von denen einige in sehr engen Anwendungsbereiche verwendet werden oder eher wie Anwendungsprozessoren als Mikrocontroller. Der Mikrocontroller -Markt ist extrem fragmentiert und zahlreiche Anbieter, Technologien und Märkte. Beachten Sie, dass viele Anbieter mehrere Architekturen verkaufen oder verkauft haben.
Latenz unterbrechen
Im Gegensatz zu allgemeinen Computern versuchen Mikrocontroller, die in eingebetteten Systemen verwendet werden, häufig zu optimieren Latenz unterbrechen Überleitungsdurchsatz. Zu den Problemen gehören sowohl die Reduzierung der Latenz als auch die Verringerung der Latenz (um die Echtzeitkontrolle zu unterstützen).
Wenn ein elektronisches Gerät während des Kontextschalter Die Zwischenergebnisse (Register) müssen gespeichert werden, bevor die Software für den Umgang mit dem Interrupt ausgeführt werden kann. Danach müssen sie auch wiederhergestellt werden Interrupt Handler ist fertig. Wenn es mehr gibt ProzessorregisterDieser Speicher- und Wiederherstellungsprozess kann mehr Zeit in Anspruch nehmen und die Latenz erhöhen. (Wenn ein ISR nicht die Verwendung einiger Register erfordert, kann sie einfach in Ruhe gelassen, anstatt sie zu retten und wiederherzustellen. In diesem Fall sind diese Register nicht an der Latenz beteiligt.) Wege, um einen solchen Kontext/Wiederherstellungslatenz zu reduzieren Relativ wenige Register in ihren zentralen Verarbeitungseinheiten (unerwünscht, weil es die meisten nicht-störenden Verarbeitung verlangsamt) oder zumindest die Hardware nicht alle speichern (dies schlägt fehl, wenn die Software dann ausgleichen muss, indem er den Rest "manuell" speichert)) . Eine andere Technik besteht darin, Siliziumtore für "Schattenregister" auszugeben: ein oder mehrere doppelte Register, die nur von der Interrupt -Software verwendet werden und möglicherweise einen speziellen Stapel unterstützen.
Weitere Faktoren, die die Interrupt -Latenz beeinflussen, sind:
- Zyklen, die zur Vervollständigung der aktuellen CPU -Aktivitäten erforderlich sind. Um diese Kosten zu minimieren, haben Mikrocontroller tendenziell kurze Pipelines (häufig drei Anweisungen oder weniger), kleine Schreibpuffer und stellen sicher, dass längere Anweisungen kontinuierlich oder neu startbar sind. RISC Entwurfsprinzipien stellen sicher, dass die meisten Anweisungen die gleiche Anzahl von Zyklen erfordern und die Notwendigkeit der meisten derartigen Fortsetzung/Neustart -Logik vermeiden.
- Die Länge von jeder Kritischer Abschnitt Das muss unterbrochen werden. Der Eintritt in einen kritischen Abschnitt schränkt den gleichzeitigen Zugriff auf die Datenstruktur ein. Wenn eine Datenstruktur von einem Interrupt -Handler zugegriffen werden muss, muss der kritische Abschnitt diesen Interrupt blockieren. Dementsprechend wird die Interrupt -Latenz um so lange erhöht, dass der Interrupt blockiert wird. Wenn es harte externe Einschränkungen für die Systemlatenz gibt, benötigen Entwickler häufig Tools, um Interrupt -Latenzen zu messen und nachzuverfolgen, welche kritischen Abschnitte Verlangsamungen verursachen.
- Eine gemeinsame Technik blockiert nur alle Interrupts für die Dauer des kritischen Abschnitts. Dies ist leicht zu implementieren, aber manchmal werden kritische Abschnitte unangenehm lang.
- Eine komplexere Technik blockiert nur die Interrupts, die den Zugriff auf diese Datenstruktur auslösen können. Dies basiert häufig auf Interrupt -Prioritäten, die tendenziell nicht gut den relevanten Systemdatenstrukturen entsprechen. Dementsprechend wird diese Technik hauptsächlich in sehr eingeschränkten Umgebungen verwendet.
- Prozessoren unterstützen möglicherweise Hardware -Unterstützung für einige kritische Abschnitte. Beispiele sind die Unterstützung des Atomzugriffs zu Bits oder Bytes innerhalb eines Wortes oder andere atomare Zugriffsprimitive wie die Ldrex/strex exklusive Zugriffsprimitive eingeführt in der ARMV6 die Architektur.
- Unterbrechung der Nistung. Einige Mikrocontroller ermöglichen eine höhere Prioritätstörungen, um niedrigere Priorität zu unterbrechen. Auf diese Weise kann die Software die Latenz verwalten, indem zeitkritische Interrupts höhere Priorität (und damit eine niedrigere und vorhersehbare Latenz) als weniger kritische Angaben gewährt.
- Auslöserrate. Wenn Interrupts hintereinander auftreten, können Mikrocontroller einen zusätzlichen Kontext-Speichern/Wiederherstellenzyklus durch eine Form von vermeiden Schwanzanruf Optimierung.
Niedrigere Mikrocontroller unterstützen tendenziell weniger Interrupt -Latenzkontrollen als höhere Endstoffe.
Speichertechnologie
Zwei verschiedene Arten von Speicher werden üblicherweise bei Mikrocontrollern, einem nichtflüchtigen Speicher zum Speichern von Firmware und einem Leseschreiberspeicher für temporäre Daten verwendet.
Daten
Von den frühesten Mikrocontrollern bis heute wird Sechs-Transsistor-SRAM fast immer als Lesen-/Schreibarbeitspeicher verwendet, wobei ein paar weitere Transistoren pro Bit in der verwendet werden Datei registrieren.
Zusätzlich zum SRAM haben einige Mikrocontroller auch interne EEPROM für die Datenspeicherung. und selbst solche, die keine (oder nicht genug) haben Grundstempel) oder externer serieller Flash -Speicherchip.
Einige Mikrocontroller ab 2003 haben einen "selbstprogrammierbaren" Flash-Speicher.[7]
Firmware
Die frühesten Mikrocontroller verwendeten Masken -ROM, um Firmware zu speichern. Spätere Mikrocontroller (wie die frühen Versionen der Freescale 68HC11 und früh PIC -Mikrocontroller) hatte Eprom Speicher, das ein durchscheinendes Fenster verwendete, um das Löschen durch UV-Licht zu ermöglichen, während Produktionsversionen kein solches Fenster hatten, war OTP (einmalige programmierbar). Firmware -Updates waren gleichbedeutend mit dem Austausch des Mikrocontrollers selbst, daher waren viele Produkte nicht aufgerüstbar.
Motorola MC68HC805[6] war der erste Mikrocontroller, der verwendet wurde Eeprom die Firmware speichern. EEPROM -Mikrocontroller wurden 1993 immer beliebter, als Microchip eingeführt wurde PIC16C84[5] und Atmel führte eine vor 8051-Kern Mikrocontroller, der zuerst verwendet wurde Noch Flash -Speicher die Firmware speichern.[7] Die heutigen Mikrocontroller verwenden fast alle den Flash-Speicher, wobei einige Modelle mit Fram und einigen ultra-niedrigen Teilen, die noch OTP- oder Mask-ROM verwenden, verwenden.
Siehe auch
- Liste der gängigen Mikrocontroller
- Liste der Wi-Fi-Mikrocontroller
- Liste der Open-Source-Hardwareprojekte
- Mikrobotik
- Programmierbare Steuerung
- Single-Board-Mikrocontroller
Verweise
- ^ "1971: Mikroprozessor integriert die CPU -Funktion in einen einzelnen Chip". Der Siliziummotor. Computergeschichte Museum. Abgerufen 22. Juli 2019.
- ^ Augarten, Stan (1983). Der am häufigsten verwendete Computer auf einem Chip: die TMS 1000. Stand der Technik: Eine fotografische Geschichte der integrierten Schaltung. New Haven und New York: Ticknor & Fields. ISBN 978-0-89919-195-9. Abgerufen 2009-12-23.
- ^ "Trends in der Halbleiterindustrie". Semiconductor History Museum Japans. Archiviert von das Original Am 2019-06-27. Abgerufen 2019-06-27.
- ^ a b "Oral History Panel zur Entwicklung und Förderung des Intel 8048 -Mikrocontroller" (PDF). Musikmuseum für Computergeschichte Oral History, 2008. p. 4. Abgerufen 2016-04-04.
- ^ a b "Chip Hall of Fame: Microchip -Technologie PIC 16C84 Mikrocontroller". IEEE. 2017-06-30. Abgerufen 16. September, 2018.
- ^ a b Motorola. Vorabinformationen, 8-Bit-Mikrocomputer MC68HC05B6, MC68HC05B4, MC68HC805B6, Motorola-Dokument EADI0054RI. Motorola Ltd., 1988.
- ^ a b c "Atmel's selbstprogrammierende Flash-Mikrocontroller" (PDF). 2012-01-24. Abgerufen 2008-10-25. von Odd Jostein Svendsli 2003
- ^ Turley, Jim (2002). "Die zwei Prozent Lösung". Eingebettet. Abgerufen 2018-07-11.
- ^ Cantrell, Tom (1998). "Mikrochip auf dem Marsch". Schaltkeller. Archiviert von das Original am 2007-09-27. Abgerufen 2018-07-11.
- ^ "Semico Research".
- ^ "Momentum führt MCUs in die Semikoforschung von 2011". semico.com. Abgerufen 2018-07-11.
- ^ a b "MCU-Markt für Migrationspfad zu 32-Bit- und ARM-basierten Geräten". 25. April 2013.
In der Regel benötigt es eine globale Wirtschaftsrezession, um den vielfältigen MCU-Markt zu verärgern, und genau das ist 2009 stattgefunden, als das Mikrocontroller-Geschäft den schlechtesten Jahresumsatzrückgang von 22% auf 11,1 Milliarden US-Dollar erlitt.
- ^ a b "Der wirklich kostengünstige McUs". www.additude.se. Abgerufen 2019-01-16.
- ^ Bill Giovino. "Zilog kauft Mikrocontroller -Produktlinien von Samsung". 2013.
- ^ a b "Efm8bb10f2g-a-qfn20 Silicon Labs | Mouser".
- ^ a b "MSP430G2001IPW14R Texas Instrumente | Mouser".
- ^ a b "CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser -Elektronik. Archiviert von das Original Am 2015-02-18.
- ^ "MSP430FR2000IPW16R Texas Instrumente | Mouser".
- ^ "CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser -Elektronik. Abgerufen 2018-07-11.
- ^ U-M-Forscher schaffen den kleinsten "Computer" der weltweiten "Computer", Universität von Michigan, 2018-06-21
- ^ Die Universität von Michigan übertrifft IBM mit dem kleinsten "Computer" der Welt ", CNET, 2018-06-22
- ^ IBM kämpft gegen Fälscher mit dem kleinsten Computer der Welt, CNET, 2018-03-19
- ^ IBM baute einen Computer von der Größe eines Salzkörners. Hier ist, wofür es ist., Reichtum, 2018-03-19
- ^ Heath, Steve (2003). Design eingebetteter Systeme. EDN -Serie für Designingenieure (2. ed.). Newnes. pp.11–12. ISBN 9780750655460.
- ^ David Harris & Sarah Harris (2012). Digitales Design und Computerarchitektur, zweite Ausgabe, p. 515. Morgan Kaufmann. ISBN0123944244.
- ^ Einfache Möglichkeit, ein Mikrocontroller -Projekt zu erstellen
- ^ Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). "Ändern des Programmierparadigmas für die eingebetteten in die IoT -Domäne". 2015 IEEE 2. World Forum im Internet der Dinge (WF-Iot). Internet of Things (WF-Iot), 2015 IEEE 2. World Forum on. Mailand: IEEE. S. 239–244. doi:10.1109/wf-iot.2015.7389059. ISBN 978-1-5090-0366-2.
- ^ "8052-Basic-Mikrocontroller" von Jan Axelson 1994
- ^ Edwards, Robert (1987). "Optimierung des Zilog Z8 Forth Mikrocontroller für schnelle Prototypen" (PDF). Martin Marietta: 3. Abgerufen 9. Dezember 2012.
{{}}
: Journal zitieren erfordert|journal=
(Hilfe) - ^ www.infineon.com/mcu