Der Chip stammt von einem Intel 8742, einem 8-Bit-Mikrocontroller mit einer 12 MHz getakteten CPU , 128 Byte RAM , 2048 Byte EPROM und I /O- Schnittstellen auf demselben Chip .
Zwei ATmega-Mikrocontroller

Ein Mikrocontroller ( MC , µC oder μC ) bzw. eine Mikrocontrollereinheit ( MCU ) ist ein kleiner Computer auf einem einzigen integrierten Schaltkreis . Er enthält einen oder mehrere Prozessorkerne sowie Speicher und programmierbare Ein-/Ausgabegeräte . Häufig ist auch ein Programmspeicher in Form von NOR-Flash , OTP-ROM oder ferroelektrischem RAM sowie ein kleiner Arbeitsspeicher (RAM) integriert. Mikrocontroller sind für eingebettete Systeme konzipiert , im Gegensatz zu den Mikroprozessoren in PCs oder anderen Allzweckanwendungen, die aus verschiedenen diskreten Chips bestehen.

In der modernen Terminologie ist ein Mikrocontroller ähnlich, aber weniger komplex als ein System-on-a-Chip (SoC). Ein SoC kann einen Mikrocontroller als eine seiner Komponenten enthalten, integriert diesen aber üblicherweise mit fortschrittlichen Peripheriegeräten wie einer Grafikprozessoreinheit (GPU), einem WLAN- Modul oder einem oder mehreren Koprozessoren .

Mikrocontroller werden in automatisch gesteuerten Produkten und Geräten eingesetzt , beispielsweise in Motorsteuerungen von Kraftfahrzeugen, implantierbaren medizinischen Geräten, Fernbedienungen, Büromaschinen, Haushaltsgeräten, Elektrowerkzeugen, Spielzeug und anderen eingebetteten Systemen . Durch die Reduzierung von Größe und Kosten im Vergleich zu Systemen mit separatem Mikroprozessor , Speicher und Ein-/Ausgabegeräten ermöglichen Mikrocontroller die praktische digitale Steuerung einer größeren Anzahl von Geräten und Prozessen. Mixed-Signal- Mikrocontroller sind weit verbreitet und integrieren analoge Komponenten zur Steuerung nicht-digitaler elektronischer Systeme. Im Kontext des Internets der Dinge (IoT) stellen Mikrocontroller als Edge-Geräte eine wirtschaftliche und beliebte Methode zur Datenerfassung , Sensorik und Aktorik in der physischen Welt dar .

Manche Mikrocontroller verwenden 4-Bit- Wörter und arbeiten mit Frequenzen bis hinunter zu 4 kHz, um einen geringen Stromverbrauch (einstellige Milliwatt- oder Mikrowatt-Werte) zu erzielen. Sie behalten ihre Funktionalität in der Regel auch dann bei, wenn sie auf ein Ereignis wie einen Tastendruck oder eine andere Unterbrechung warten . Der Stromverbrauch im Ruhemodus (bei abgeschalteter CPU und den meisten Peripheriegeräten) liegt oft nur im Nanowattbereich, wodurch sich viele von ihnen ideal für Anwendungen mit langer Akkulaufzeit eignen. Andere Mikrocontroller übernehmen anspruchsvolle Aufgaben und müssen daher eher wie ein digitaler Signalprozessor (DSP) mit höheren Taktraten und höherem Stromverbrauch agieren.

Geschichte

Hintergrund

Die ersten Multi-Chip-Mikroprozessoren, der Four-Phase Systems AL1 (1969) und der Garrett AiResearch MP944 (1970), wurden mit mehreren MOS-LSI-Chips entwickelt. Der erste Ein-Chip-Mikroprozessor war der Intel 4004 , der 1971 auf einem einzigen MOS-LSI-Chip erschien. Er wurde von Federico Faggin unter Verwendung seiner Silizium-Gate -MOS-Technologie zusammen mit den Intel -Ingenieuren Marcian Hoff und Stan Mazor sowie dem Busicom -Ingenieur Masatoshi Shima entwickelt . [ 1 ] Ihm folgten der 4-Bit-Prozessor Intel 4040 , der 8-Bit- Prozessor Intel 8008 und der 8-Bit- Prozessor Intel 8080. Alle diese Prozessoren benötigten mehrere externe Chips für ein funktionierendes System, darunter Speicher- und Peripherieschnittstellenchips. Dadurch beliefen sich die Gesamtsystemkosten auf mehrere hundert US-Dollar (1970er Jahre), was eine wirtschaftliche Computerisierung kleiner Haushaltsgeräte unmöglich machte.

MOS Technology brachte 1975 seine Mikroprozessoren unter 100 US-Dollar auf den Markt, die Modelle 6501 und 6502. Ihr Hauptziel war es, diese Kostenbarriere zu senken, aber diese Mikroprozessoren benötigten immer noch externe Unterstützung, Speicher und Peripheriechips, wodurch die Gesamtsystemkosten weiterhin mehrere hundert Dollar betrugen.

Entwicklung

Einem Buch zufolge gelang es den TI -Ingenieuren Gary Boone und Michael Cochran 1971, den ersten Mikrocontroller erfolgreich zu entwickeln. Das Ergebnis ihrer Arbeit war der TMS 1000 , der 1974 auf den Markt kam. Er vereinte Festwertspeicher, Lese-/Schreibspeicher, Prozessor und Taktgeber auf einem Chip und war für eingebettete Systeme konzipiert. [ 2 ]

In den frühen bis mittleren 1970er Jahren begannen japanische Elektronikhersteller mit der Produktion von Mikrocontrollern für Automobile, darunter 4-Bit-MCUs für Infotainmentsysteme , automatische Scheibenwischer, elektronische Türschlösser und Armaturenbretter sowie 8-Bit-MCUs für die Motorsteuerung. [ 3 ]

Teils als Reaktion auf den Ein-Chip - Mikrocontroller TMS 1000 [ 4 ] entwickelte Intel mit dem Intel 8048 ein für Steuerungsanwendungen optimiertes System-on-a-Chip , dessen erste kommerzielle Komponenten 1977 ausgeliefert wurden. [ 4 ] Er kombinierte RAM und ROM mit einem Mikroprozessor auf einem einzigen Chip. Unter anderem fand dieser Chip schließlich Verwendung in über einer Milliarde PC-Tastaturen. Intels damaliger Präsident, Luke J. Valenter, bezeichnete den Mikrocontroller als eines der erfolgreichsten Produkte in der Unternehmensgeschichte und erhöhte das Budget der Mikrocontroller-Abteilung um über 25 %.

Diverse PIC-Mikrocontroller mit integriertem EPROM
Piggyback-Mikrocontroller von MOSTEK

Die meisten Mikrocontroller dieser Zeit existierten in zwei parallelen Varianten. Eine Variante besaß einen EPROM -Programmspeicher mit einem transparenten Quarzfenster im Gehäusedeckel, das das Löschen durch UV- Licht ermöglichte. Diese löschbaren Chips wurden häufig für Prototypen verwendet. Die andere Variante war entweder ein maskenprogrammierter ROM oder ein PROM , der nur einmal programmierbar war. Letzterer wurde manchmal als OTP („one-time programmable“) bezeichnet. Bei einem OTP-Mikrocontroller war der PROM üblicherweise vom gleichen Typ wie der EPROM, das Chipgehäuse besaß jedoch kein Quarzfenster. Da der EPROM nicht UV-Licht ausgesetzt werden konnte, war er nicht löschbar. Da die löschbaren Versionen Keramikgehäuse mit Quarzfenstern benötigten, waren sie deutlich teurer als die OTP-Versionen, die in kostengünstigeren, undurchsichtigen Kunststoffgehäusen gefertigt werden konnten. Für die löschbaren Varianten war Quarz anstelle des günstigeren Glases erforderlich, da er UV-Licht durchlässig macht – Glas ist für UV-Licht weitgehend undurchsichtig. Der Hauptkostenunterschied lag jedoch im Keramikgehäuse selbst. Es wurden auch Piggyback-Mikrocontroller verwendet. [ 5 ] [ 6 ] [ 7 ]

In 1993, the introduction of EEPROM memory allowed microcontrollers (beginning with the Microchip PIC16C84)[8] to be electrically erased quickly without an expensive package as required for EPROM, allowing both rapid prototyping, and in-system programming. (EEPROM technology had been available prior to this time,[9] but the earlier EEPROM was more expensive and less durable, making it unsuitable for low-cost mass-produced microcontrollers.) The same year, Atmel introduced the first microcontroller using Flash memory, a special type of EEPROM.[10] Other companies rapidly followed suit, with both memory types.

Nowadays microcontrollers are cheap and readily available for hobbyists, with large online communities around certain processors.

Volume and cost

In 2002, about 55% of all CPUs sold in the world were 8-bit microcontrollers and microprocessors.[11]

Over two billion 8-bit microcontrollers were sold in 1997,[12] and according to Semico, over four billion 8-bit microcontrollers were sold in 2006.[13] More recently, Semico has claimed the MCU market grew 36.5% in 2010 and 12% in 2011.[14]

A typical home in a developed country is likely to have only four general-purpose microprocessors but around three dozen microcontrollers. A typical mid-range automobile has about 30 microcontrollers. They can also be found in many electrical devices such as washing machines, microwave ovens, and telephones.

Historically, the 8-bit segment has dominated the MCU market [..] 16-bit microcontrollers became the largest volume MCU category in 2011, overtaking 8-bit devices for the first time that year [..] IC Insights believes the makeup of the MCU market will undergo substantial changes in the next five years with 32-bit devices steadily grabbing a greater share of sales and unit volumes. By 2017, 32-bit MCUs are expected to account for 55% of microcontroller sales [..] In terms of unit volumes, 32-bit MCUs are expected account for 38% of microcontroller shipments in 2017, while 16-bit devices will represent 34% of the total, and 4-/8-bit designs are forecast to be 28% of units sold that year. The 32-bit MCU market is expected to grow rapidly due to increasing demand for higher levels of precision in embedded-processing systems and the growth in connectivity using the Internet. [..] In the next few years, complex 32-bit MCUs are expected to account for over 25% of the processing power in vehicles.

— IC Insights, MCU-Markt über den Migrationspfad zu 32-Bit- und ARM-basierten Geräten [ 15 ]

Die Herstellungskosten können unter 0,10 US-Dollar pro Einheit liegen.

Die Kosten sind im Laufe der Zeit drastisch gesunken. Die günstigsten 8-Bit- Mikrocontroller waren 2018 für unter 0,03 US-Dollar erhältlich [ 16 ] , und einige 32-Bit -Mikrocontroller kosteten bei ähnlichen Mengen etwa 1 US-Dollar .

Im Jahr 2012, nach einer globalen Krise – dem stärksten jährlichen Umsatzrückgang und der darauffolgenden Erholung sowie einem Einbruch des durchschnittlichen Verkaufspreises um 17 % im Vergleich zum Vorjahr – dem größten Rückgang seit den 1980er Jahren –, lag der Durchschnittspreis für einen Mikrocontroller bei 0,88 US-Dollar ( 0,69 US-Dollar für 4-/8-Bit, 0,59 US-Dollar für 16-Bit, 1,76 US-Dollar für 32-Bit). [ 15 ]

Im Jahr 2012 beliefen sich die weltweiten Umsätze mit 8-Bit-Mikrocontrollern auf rund 4 Milliarden US-Dollar , während auch 4-Bit -Mikrocontroller beachtliche Umsätze erzielten. [ 17 ]

Im Jahr 2015 konnten 8-Bit-Mikrocontroller für 0,311 US-Dollar (1.000 Stück) [ 18 ] , 16-Bit-Mikrocontroller für 0,385 US-Dollar (1.000 Stück) [ 19 ] und 32-Bit-Mikrocontroller für 0,378 US-Dollar (1.000 Stück, aber zu einem Preis von 0,35 US-Dollar für 5.000 Stück) [ 20 ] erworben werden.

Im Jahr 2018 waren 8-Bit-Mikrocontroller für 0,03 US-Dollar erhältlich [ 16 ] , 16-Bit-Mikrocontroller für 0,393 US-Dollar (1.000 Stück, aber 0,563 US-Dollar für 100 Stück bzw. 0,349 US-Dollar für eine ganze Rolle mit 2.000 Stück) [ 21 ] und 32-Bit-Mikrocontroller für 0,503 US-Dollar (1.000 Stück, aber 0,466 US-Dollar für 5.000 Stück) [ 22 ] .

Im Jahr 2018 waren die oben genannten, preisgünstigen Mikrocontroller aus dem Jahr 2015 allesamt teurer (berechnet unter Berücksichtigung der Inflation zwischen den Preisen von 2018 und 2015 für die jeweiligen Einheiten): Der 8-Bit-Mikrocontroller kostete 0,319 US-Dollar (bei 1.000 Stück) bzw. 2,6 % mehr [ 18 ] , der 16-Bit-Mikrocontroller 0,464 US-Dollar (bei 1.000 Stück) bzw. 21 % mehr [ 19 ] und der 32-Bit-Mikrocontroller 0,503 US-Dollar (bei 1.000 Stück, ab 5.000 Stück jedoch 0,466 US-Dollar ) bzw. 33 % mehr [ 20 ] .

Ein PIC 18F8720 Mikrocontroller in einem 80-poligen TQFP- Gehäuse

Kleinster Computer

Am 21. Juni 2018 kündigte die Universität Michigan den „kleinsten Computer der Welt“ an . Das Gerät ist ein „0,04  mm 3„16  nW drahtloses und batterieloses Sensorsystem mit integriertem Cortex-M0+ Prozessor und optischer Kommunikation für zellulare Temperaturmessung.“ Es „misst nur …“0,3 mm Kantenlänge – winzig im Vergleich zu einem Reiskorn. [...] Neben RAM und Photovoltaik verfügen die neuen Computergeräte über Prozessoren sowie drahtlose Sender und Empfänger . Da sie zu klein für herkömmliche Funkantennen sind, senden und empfangen sie Daten mit sichtbarem Licht. Eine Basisstation liefert Licht für die Stromversorgung und Programmierung und empfängt die Daten. [ 23 ] Das Gerät ist nur ein Zehntel so groß wie der von IBM im März 2018 als Weltrekordrechner gemeldete Computer [ 24 ] , der „kleiner als ein Salzkorn“ ist [ 25 ] , eine Million Transistoren besitzt, weniger als 0,10 US-Dollar in der Herstellung kostet und in Kombination mit Blockchain- Technologie für Logistik und „Krypto-Anker“ – Anwendungen für digitale Fingerabdrücke – vorgesehen ist . [ 26 ]

Eingebettetes Design

Ein Mikrocontroller kann als eigenständiges System mit Prozessor, Speicher und Peripheriegeräten betrachtet und als eingebettetes System eingesetzt werden . [ 27 ] Die meisten heute verwendeten Mikrocontroller sind in andere Maschinen wie Automobile, Telefone, Haushaltsgeräte und Peripheriegeräte für Computersysteme eingebettet.

Während einige eingebettete Systeme sehr komplex sind, benötigen viele nur minimalen Speicherplatz und kurze Programmlängen, kommen ohne Betriebssystem aus und weisen eine geringe Softwarekomplexität auf. Typische Ein- und Ausgabegeräte sind Schalter, Relais , Magnetventile , LEDs , kleine oder kundenspezifische Flüssigkristallanzeigen , Funkgeräte und Sensoren zur Erfassung von Daten wie Temperatur, Luftfeuchtigkeit, Lichtstärke usw. Eingebettete Systeme verfügen üblicherweise nicht über Tastatur, Bildschirm, Festplatten, Drucker oder andere bekannte Ein-/Ausgabegeräte eines PCs und bieten unter Umständen keinerlei Interaktionsmöglichkeiten mit dem Benutzer.

Unterbrechungen

Microcontrollers must provide real-time (predictable, though not necessarily fast) response to events in the embedded system they are controlling. When certain events occur, an interrupt system can signal the processor to suspend processing the current instruction sequence and to begin an interrupt service routine (ISR, or "interrupt handler") which will perform any processing required based on the source of the interrupt, before returning to the original instruction sequence. Possible interrupt sources are device-dependent and often include events such as an internal timer overflow, completing an analog-to-digital conversion, a logic-level change on an input such as from a button being pressed, and data received on a communication link. Where power consumption is important as in battery devices, interrupts may also wake a microcontroller from a low-power sleep state where the processor is halted until required to do something by a peripheral event.

Programs

Typically microcontroller programs must fit in the available on-chip memory, since it would be costly to provide a system with external, expandable memory. Compilers and assemblers are used to convert both high-level and assembly language code into a compact machine code for storage in the microcontroller's memory. Depending on the device, the program memory may be permanent, read-only memory that can only be programmed at the factory, or it may be field-alterable flash or erasable read-only memory.

Manufacturers have often produced special versions of their microcontrollers in order to help the hardware and software development of the target system. Originally these included EPROM versions that have a "window" on the top of the device through which program memory can be erased by ultraviolet light, ready for reprogramming after a programming ("burn") and test cycle. Since 1998, EPROM versions are rare and have been replaced by EEPROM and flash, which are easier to use (can be erased electronically) and cheaper to manufacture.

Other versions may be available where the ROM is accessed as an external device rather than as internal memory, however these are becoming rare due to the widespread availability of cheap microcontroller programmers.

The use of field-programmable devices on a microcontroller may allow field update of the firmware or permit late factory revisions to products that have been assembled but not yet shipped. Programmable memory also reduces the lead time required for deployment of a new product.

Where hundreds of thousands of identical devices are required, using parts programmed at the time of manufacture can be economical. These "mask-programmed" parts have the program laid down in the same way as the logic of the chip, at the same time.

A customized microcontroller incorporates a block of digital logic that can be personalized for additional processing capability, peripherals and interfaces that are adapted to the requirements of the application. One example is the AT91CAP from Atmel.

Other microcontroller features

Microcontrollers usually contain from several to dozens of general purpose input/output pins (GPIO). GPIO pins are software configurable to either an input or an output state. When GPIO pins are configured to an input state, they are often used to read sensors or external signals. Configured to the output state, GPIO pins can drive external devices such as LEDs or motors, often indirectly, through external power electronics.

Many embedded systems need to read sensors that produce analog signals. However, because they are built to interpret and process digital data, i.e. 1s and 0s, they are not able to do anything with the analog signals that may be sent to it by a device. So, an analog-to-digital converter (ADC) is used to convert the incoming data into a form that the processor can recognize. A less common feature on some microcontrollers is a digital-to-analog converter (DAC) that allows the processor to output analog signals or voltage levels.

In addition to the converters, many embedded microprocessors include a variety of timers as well. One of the most common types of timers is the programmable interval timer (PIT). A PIT may either count down from some value to zero, or up to the capacity of the count register, overflowing to zero. Once it reaches zero, it sends an interrupt to the processor indicating that it has finished counting. This is useful for devices such as thermostats, which periodically test the temperature around them to see if they need to turn the air conditioner on/off, the heater on/off, etc.

A dedicated pulse-width modulation (PWM) block makes it possible for the CPU to control power converters, resistive loads, motors, etc., without using many CPU resources in tight timer loops.

Ein universeller asynchroner Empfänger/Sender (UART) ermöglicht das Senden und Empfangen von Daten über eine serielle Schnittstelle bei sehr geringer CPU-Last. Dedizierte On-Chip-Hardware bietet häufig auch Funktionen zur Kommunikation mit anderen Geräten (Chips) in digitalen Formaten wie Inter-Integrated Circuit ( I²C ), Serial Peripheral Interface ( SPI ), Universal Serial Bus ( USB ) und Ethernet . [ 28 ]

Höhere Integration

Chip eines PIC12C508 8-Bit, vollständig statischen, EEPROM / EPROM / ROM -basierten CMOS- Mikrocontrollers, hergestellt von Microchip Technology im 1200- Nanometer -Verfahren
Chip eines STM32F100C4T6B ARM Cortex-M 3 Mikrocontrollers mit 16 Kilobyte Flash-Speicher , 24  MHz CPU , Motorsteuerungs- und Consumer Electronics Control (CEC)-Funktionen. Hergestellt von STMicroelectronics .

Mikrocontroller verzichten möglicherweise auf einen externen Adress- oder Datenbus, da sie RAM und nichtflüchtigen Speicher auf demselben Chip wie die CPU integrieren. Durch die geringere Anzahl an Pins kann der Chip in einem deutlich kleineren und kostengünstigeren Gehäuse untergebracht werden.

Die Integration von Speicher und anderen Peripheriegeräten auf einem einzigen Chip und deren Test als Einheit erhöhen zwar die Kosten des Chips, führen aber häufig zu geringeren Gesamtkosten des eingebetteten Systems. Selbst wenn die Kosten einer CPU mit integrierten Peripheriegeräten etwas höher sind als die Kosten einer CPU mit externen Peripheriegeräten, ermöglicht die geringere Anzahl an Chips in der Regel eine kleinere und kostengünstigere Leiterplatte. Zudem reduziert sie den Arbeitsaufwand für die Bestückung und Prüfung der Leiterplatte und senkt tendenziell die Fehlerrate der fertigen Baugruppe.

Ein Mikrocontroller ist ein einzelner integrierter Schaltkreis , der üblicherweise folgende Merkmale aufweist:

Diese Integration reduziert die Anzahl der benötigten Chips sowie den Verdrahtungs- und Leiterplattenplatzbedarf im Vergleich zu Systemen mit separaten Chips drastisch. Insbesondere bei Bauteilen mit geringer Pin-Anzahl kann jeder Pin mit mehreren internen Peripheriegeräten verbunden werden, wobei die Pin-Funktion per Software ausgewählt wird. Dadurch lässt sich ein Bauteil in einem breiteren Anwendungsspektrum einsetzen, als wenn die Pins feste Funktionen hätten.

Mikrocontroller haben sich seit ihrer Einführung in den 1970er Jahren in eingebetteten Systemen als äußerst beliebt erwiesen .

Einige Mikrocontroller nutzen eine Harvard-Architektur : separate Speicherbusse für Befehle und Daten ermöglichen gleichzeitige Zugriffe. Bei Verwendung einer Harvard-Architektur kann die Bitlänge der Befehlswörter des Prozessors von der Länge des internen Speichers und der Register abweichen; beispielsweise werden 12-Bit-Befehle mit 8-Bit-Datenregistern verwendet.

Die Entscheidung, welche Peripheriegeräte integriert werden sollen, ist oft schwierig. Mikrocontroller-Hersteller wägen häufig Betriebsfrequenzen und Systemdesignflexibilität gegen die Markteinführungszeiten ihrer Kunden und insgesamt niedrigere Systemkosten ab. Sie müssen die Notwendigkeit, die Chipgröße zu minimieren, mit dem Wunsch nach zusätzlicher Funktionalität in Einklang bringen.

Mikrocontroller-Architekturen unterscheiden sich stark. Einige Designs umfassen Allzweck-Mikroprozessorkerne mit einem oder mehreren integrierten ROM-, RAM- oder I/O-Funktionen. Andere Designs sind speziell für Steuerungsanwendungen entwickelt. Der Befehlssatz eines Mikrocontrollers enthält üblicherweise viele Befehle zur Bitmanipulation (Bitoperationen), um Steuerungsprogramme kompakter zu gestalten. [ 29 ] Beispielsweise benötigt ein Allzweckprozessor möglicherweise mehrere Befehle, um ein Bit in einem Register zu prüfen und gegebenenfalls eine Verzweigung auszulösen, während ein Mikrocontroller für diese häufig benötigte Funktion einen einzigen Befehl benötigt.

Mikrocontroller besaßen traditionell keine mathematischen Koprozessoren , daher wurde Gleitkommaarithmetik per Software durchgeführt. Einige neuere Designs beinhalten jedoch Gleitkommaeinheiten (FPUs) und DSP-optimierte Funktionen. Ein Beispiel hierfür ist die MIPS-basierte PIC32-Produktreihe von Microchip.

Programmierumgebungen

Mikrocontroller wurden ursprünglich ausschließlich in Assemblersprache programmiert , doch mittlerweile werden auch verschiedene höhere Programmiersprachen wie C , Python und JavaScript häufig für die Entwicklung von Mikrocontrollern und eingebetteten Systemen eingesetzt . [ 30 ] Compiler für Allzwecksprachen weisen typischerweise sowohl Einschränkungen als auch Erweiterungen auf, um die besonderen Eigenschaften von Mikrocontrollern besser zu unterstützen. Einige Mikrocontroller bieten Entwicklungsumgebungen für bestimmte Anwendungstypen. Mikrocontroller-Hersteller stellen häufig Tools kostenlos zur Verfügung, um die Einführung ihrer Hardware zu erleichtern.

Mikrocontroller mit spezieller Hardware benötigen unter Umständen eigene, nicht standardkonforme C-Dialekte, wie beispielsweise SDCC für den 8051. Dies verhindert die Verwendung gängiger Tools (wie Codebibliotheken oder statischer Analysetools) selbst für Code, der nicht direkt mit Hardwarefunktionen zusammenhängt. Auch Interpreter können nicht standardkonforme Funktionen enthalten, wie beispielsweise MicroPython . Ein Fork , CircuitPython , versucht jedoch , Hardwareabhängigkeiten in Bibliotheken auszulagern und die Sprache stärker an den CPython- Standard anzugleichen .

Für einige Mikrocontroller ist auch Interpreter-Firmware verfügbar. Beispiele hierfür sind BASIC auf dem frühen Mikrocontroller Intel 8052 [ 31 ] , BASIC und FORTH auf dem Zilog Z8 [ 32 ] sowie auf einigen modernen Geräten. Typischerweise unterstützen diese Interpreter interaktive Programmierung .

Für einige Mikrocontroller sind Simulatoren verfügbar. Diese ermöglichen es Entwicklern, das Verhalten des Mikrocontrollers und ihres Programms zu analysieren, als würden sie das reale Bauteil verwenden. Ein Simulator zeigt den internen Prozessorzustand sowie den der Ausgänge an und ermöglicht die Generierung von Eingangssignalen. Obwohl die meisten Simulatoren einerseits nur eingeschränkt andere Hardwarekomponenten eines Systems simulieren können, ermöglichen sie die Simulation von Zuständen, die in der physischen Implementierung sonst nur schwer reproduzierbar wären, und stellen oft den schnellsten Weg zur Fehlersuche und -analyse dar.

Moderne Mikrocontroller verfügen häufig über integrierte On-Chip -Debug -Schaltungen, die über JTAG von einem In-Circuit-Emulator (ICE) angesteuert werden und so das Debuggen der Firmware mit einem Debugger ermöglichen . Ein Echtzeit-ICE erlaubt das Anzeigen und/oder Manipulieren interner Zustände während des laufenden Betriebs. Ein Tracing-ICE kann das ausgeführte Programm und die Zustände des Mikrocontrollers vor und nach einem Triggerpunkt aufzeichnen.

Typen

Stand 2008 gibt es mehrere Dutzend Mikrocontroller-Architekturen und -Hersteller, darunter:

Sumup AIR1 E205: MAX32550
MikroTik RB260GS r2: STM32F107RBT6

Es gibt viele weitere Mikrocontroller, von denen einige nur in sehr begrenzten Anwendungsbereichen eingesetzt werden oder eher Anwendungsprozessoren als Mikrocontrollern ähneln. Der Mikrocontroller-Markt ist extrem fragmentiert und umfasst zahlreiche Anbieter, Technologien und Märkte. Viele Anbieter verkaufen oder verkauften mehrere Architekturen.

Interrupt-Latenz

Im Gegensatz zu Allzweckrechnern wird bei Mikrocontrollern in eingebetteten Systemen häufig die Interrupt-Latenz gegenüber dem Befehlsdurchsatz optimiert. Zu den Herausforderungen gehören sowohl die Reduzierung der Latenz als auch deren Verbesserung (zur Unterstützung der Echtzeitsteuerung).

Wenn ein elektronisches Gerät eine Interruptanforderung auslöst, müssen während des Kontextwechsels die Zwischenergebnisse (Register) gespeichert werden, bevor die für die Interruptbehandlung zuständige Software ausgeführt werden kann. Sie müssen nach Abschluss der Interruptbehandlung wiederhergestellt werden. Bei einer größeren Anzahl von Prozessorregistern kann dieser Speicher- und Wiederherstellungsprozess mehr Zeit in Anspruch nehmen und die Latenz erhöhen. (Benötigt eine Interrupt-Service-Routine (ISR) bestimmte Register nicht, kann sie diese einfach unverändert lassen, anstatt sie zu speichern und wiederherzustellen. In diesem Fall tragen diese Register nicht zur Latenz bei.) Möglichkeiten zur Reduzierung dieser Kontext-/Wiederherstellungslatenz bestehen darin, die Anzahl der Register in den CPUs zu reduzieren (was unerwünscht ist, da es die meisten Nicht-Interrupt-Prozesse erheblich verlangsamt) oder zumindest darauf zu verzichten, dass die Hardware alle Register speichert (dies schlägt fehl, wenn die Software die restlichen Register anschließend manuell speichern muss). Eine weitere Technik besteht darin, Silizium-Gates für sogenannte Schattenregister zu verwenden: Ein oder mehrere Duplikate von Registern, die ausschließlich von der Interrupt-Software genutzt werden und gegebenenfalls einen dedizierten Stack unterstützen.

Weitere Faktoren, die die Interrupt-Latenz beeinflussen, sind:

  • Die Anzahl der Zyklen, die zur Ausführung aktueller CPU-Aktivitäten benötigt werden. Um diese Kosten zu minimieren, verfügen Mikrocontroller in der Regel über kurze Pipelines (oft drei oder weniger Befehle), kleine Schreibpuffer und gewährleisten, dass längere Befehle fortgesetzt oder neu gestartet werden können. Die RISC- Designprinzipien sorgen dafür, dass die meisten Befehle die gleiche Anzahl an Zyklen benötigen, wodurch der Bedarf an Fortsetzungs-/Neustartlogik in den meisten Fällen vermieden wird.
  • Die Länge eines kritischen Abschnitts , der unterbrochen werden muss. Der Eintritt in einen kritischen Abschnitt schränkt den gleichzeitigen Zugriff auf Datenstrukturen ein. Wenn ein Interrupt-Handler auf eine Datenstruktur zugreifen muss, blockiert der kritische Abschnitt diesen Interrupt. Dadurch erhöht sich die Interrupt-Latenz um die Dauer der Blockierung. Bei harten externen Beschränkungen der Systemlatenz benötigen Entwickler häufig Werkzeuge, um Interrupt-Latenzen zu messen und die kritischen Abschnitte zu identifizieren, die Verlangsamungen verursachen.
    • Eine gängige Methode besteht darin, alle Interrupts für die Dauer des kritischen Abschnitts zu blockieren. Dies ist einfach zu implementieren, jedoch können kritische Abschnitte mitunter unangenehm lang werden.
    • Eine komplexere Technik blockiert einfach die Interrupts, die den Zugriff auf diese Datenstruktur auslösen könnten. Dies basiert häufig auf Interruptprioritäten, die in der Regel nicht gut mit den relevanten Systemdatenstrukturen übereinstimmen. Daher wird diese Technik hauptsächlich in sehr eingeschränkten Umgebungen eingesetzt.
    • Prozessoren können Hardwareunterstützung für bestimmte kritische Abschnitte bieten. Beispiele hierfür sind die Unterstützung des atomaren Zugriffs auf Bits oder Bytes innerhalb eines Wortes oder anderer atomarer Zugriffsprimitive wie die in der ARMv6- Architektur eingeführten exklusiven Zugriffsprimitive LDREX/STREX .
  • Interrupt-Verschachtelung. Einige Mikrocontroller ermöglichen es, dass Interrupts mit höherer Priorität Interrupts mit niedrigerer Priorität unterbrechen. Dadurch kann die Software die Latenz steuern, indem zeitkritischen Interrupts eine höhere Priorität (und somit eine geringere und besser vorhersagbare Latenz) als weniger kritischen Interrupts zugewiesen wird.
  • Auslöserate. Wenn Interrupts direkt nacheinander auftreten, können Mikrocontroller durch eine Form der Endrekursionsoptimierung einen zusätzlichen Kontextspeicher-/Wiederherstellungszyklus vermeiden .

Günstigere Mikrocontroller unterstützen tendenziell weniger Interrupt-Latenzsteuerungen als teurere Modelle.

Speichertechnologie

Bei Mikrocontrollern werden üblicherweise zwei verschiedene Speichertypen verwendet: ein nichtflüchtiger Speicher zum Speichern der Firmware und ein Lese-/Schreibspeicher für temporäre Daten.

Daten

Von den frühesten Mikrocontrollern bis heute wird fast immer ein Sechs-Transistor-SRAM als Lese-/Schreib-Arbeitsspeicher verwendet, wobei im Registerfile einige weitere Transistoren pro Bit zum Einsatz kommen .

Zusätzlich zum SRAM verfügen einige Mikrocontroller auch über internes EEPROM und/oder NVRAM zur Datenspeicherung; und solche, die keines besitzen (wie der BASIC Stamp ) oder bei denen der interne Speicher nicht ausreicht, sind oft mit einem externen EEPROM- oder Flash-Speicherchip verbunden.

Einige Mikrocontroller ab dem Jahr 2003 verfügen über einen „selbstprogrammierbaren“ Flash-Speicher. [ 10 ]

Firmware

Die ersten Mikrocontroller nutzten Masken-ROM zur Speicherung der Firmware . Spätere Mikrocontroller (wie die frühen Versionen des Freescale 68HC11 und frühe PIC-Mikrocontroller ) verfügten über EPROM -Speicher mit einem lichtdurchlässigen Fenster, das das Löschen mittels UV-Licht ermöglichte. Serienversionen hingegen besaßen kein solches Fenster und waren OTP (einmalig programmierbar). Firmware-Updates entsprachen dem Austausch des gesamten Mikrocontrollers, weshalb viele Produkte nicht upgradefähig waren.

Der Motorola MC68HC805 [ 9 ] war der erste Mikrocontroller, der EEPROM zur Speicherung der Firmware nutzte . EEPROM-Mikrocontroller wurden 1993 populärer, als Microchip den PIC16C84 [ 8 ] und Atmel einen 8051-Kern- Mikrocontroller vorstellten, der als erster NOR-Flash-Speicher für die Firmware verwendete [ 10 ] . Heutzutage nutzen fast alle Mikrocontroller Flash-Speicher; einige Modelle verwenden FRAM, und manche extrem kostengünstigen Bauteile verwenden immer noch OTP- oder Masken-ROM.

Siehe auch

Referenzen

  1. ^ „1971: Mikroprozessor integriert CPU-Funktion auf einem einzigen Chip“ . The Silicon Engine . Computer History Museum . Abgerufen am 22. Juli 2019 .
  2. ^ Augarten, Stan (1983). „Der meistverwendete Computer auf einem Chip: Der TMS 1000“ . State of the Art: Eine fotografische Geschichte des integrierten Schaltkreises . New Haven und New York: Ticknor & Fields. ISBN 978-0-89919-195-9Archiviert vom Original am 17.02.2010 . Abgerufen am 23.12.2009 .
  3. ^ „Trends in der Halbleiterindustrie“ . Japanisches Halbleitermuseum . Archiviert vom Original am 27.06.2019 . Abgerufen am 27.06.2019 .
  4. ^ a b „Oral History Panel on the Development and Promotion of the Intel 8048 Microcontroller“ (PDF) . Computer History Museum Oral History, 2008. S. 4. Abgerufen am 4. April 2016 .
  5. ^ „OKI Intel M85C154 Piggyback-Mikrocontroller“ . industrialalchemy.org . Abgerufen am 8. Dezember 2024 .
  6. ^ „CPU des Tages: NS87P50R-6: Piggyback-CPUs“ . cpushack.com . 06.03.2011 . Abgerufen am 08.12.2024 .
  7. ^ „Piggyback-Mikrocontroller“ . allisdiy.com . Abgerufen am 8. Dezember 2024 .
  8. ^ a b „Chip Hall of Fame: Microchip Technology PIC 16C84 Microcontroller“ . IEEE. 30. Juni 2017. Abgerufen am 16. September 2018 .
  9. ^ a b Motorola. Vorabinformationen, 8-Bit-Mikrocomputer MC68HC05B6, MC68HC05B4, MC68HC805B6, Motorola-Dokument EADI0054RI . Motorola Ltd., 1988.
  10. ^ a b c Odd Jostein Svendsli (2003). „Atmels selbstprogrammierende Flash-Mikrocontroller“ (PDF) . Abgerufen am 18.06.2024 .
  11. ^ Turley, Jim (2002). „Die Zwei-Prozent-Lösung“ . Eingebettet . Abgerufen am 11.07.2018 .
  12. ^ Cantrell, Tom (1998). „Microchip on the March“ . Circuit Cellar . Archiviert vom Original am 27.09.2007 . Abgerufen am 11.07.2018 .
  13. ^ "Semico Research" .
  14. ^ „Dynamik trägt MCUs ins Jahr 2011 | Semico Research“ . semico.com . Abgerufen am 11.07.2018 .
  15. ^ a b „MCU-Markt auf dem Weg zur Migration zu 32-Bit- und ARM-basierten Geräten“ . 25. April 2013. Archiviert vom Original am 7. Juli 2014. Normalerweise braucht es eine globale Wirtschaftskrise, um den vielfältigen MCU-Markt zu erschüttern, und genau das geschah 2009, als der Mikrocontroller-Markt mit einem Umsatzrückgang von 22 % auf 11,1 Milliarden US-Dollar den stärksten seiner Geschichte verzeichnete.
  16. ^ a b „Die wirklich kostengünstigen MCUs“ . www.additude.se . Archiviert vom Original am 03.08.2020 . Abgerufen am 16.01.2019 .
  17. ^ Bill Giovino (7. Juni 2013). „Zilog kauft Mikrocontroller-Produktlinien von Samsung“ .
  18. ^ a b "EFM8BB10F2G-A-QFN20 Silicon Labs | Mouser" .
  19. ^ a b "MSP430G2001IPW14R Texas Instruments | Mouser" .
  20. ^ a b "CY8C4013SXI-400 Cypress Semiconductor | Mouser" . Mouser Electronics . Archiviert vom Original am 18.02.2015.
  21. ^"MSP430FR2000IPW16R Texas Instruments | Mouser".
  22. ^"CY8C4013SXI-400 Cypress Semiconductor | Mouser". Mouser Electronics. Retrieved 2018-07-11.
  23. ^U-M researchers create world's smallest 'computer', University of Michigan, 2018-06-21
  24. ^University of Michigan outdoes IBM with world's smallest 'computer', CNET, 2018-06-22
  25. ^IBM fighting counterfeiters with world's smallest computer, CNET, 2018-03-19
  26. ^IBM Built a Computer the Size of a Grain of Salt. Here's What It's For., Fortune, 2018-03-19
  27. ^Heath, Steve (2003). Embedded systems design. EDN series for design engineers (2 ed.). Newnes. pp. 11–12. ISBN 9780750655460.
  28. ^David Harris & Sarah Harris (2012). Digital Design and Computer Architecture, Second Edition, p. 515. Morgan Kaufmann. ISBN 0123944244.
  29. ^"Easy Way to build a microcontroller project". 14 January 2009.
  30. ^Mazzei, Daniele; Montelisciani, Gabriele; Baldi, Giacomo; Fantoni, Gualtiero (2015). "Changing the programming paradigm for the embedded in the IoT domain". 2015 IEEE 2nd World Forum on Internet of Things (WF-IoT). Internet of Things (WF-IoT), 2015 IEEE 2nd World Forum on. Milan: IEEE. pp. 239–244. doi:10.1109/WF-IoT.2015.7389059. ISBN 978-1-5090-0366-2.
  31. ^Jan Axelson (1994). "8052-Basic Microcontrollers".
  32. ^Edwards, Robert (1987). Optimizing the Zilog Z8 Forth Microcontroller for Rapid Prototyping(PDF) (Technical report). Martin Marietta. p. 3. Archived from the original(PDF) on 24 January 2023.
  33. ^www.infineon.com/mcu