Mikrocontroller: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
(Recherchemöglichkeit bei div. Mikrocontroller-Anbietern)
 
(14 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Was ist ein Mikrocontroller? ==
Ein Mikrocontroller ist ein [[Prozessor]] plus Zusatzmodule. Der Unterschied zu Mikroprozessoren besteht darin, dass bei einem Mikrocontroller Speicher, [[Digital]]- und [[Analog]]- Ein- und Ausgänge, Timer, UART etc. meist auf einem einzigen Chip integriert sind, so dass eine Mikrocontroller-Anwendung oft mit ein paar wenigen Bauteilen auskommt.
Ein Mikrocontroller ist ein [[Prozessor]] plus Zusatzmodule. Der Unterschied zu Mikroprozessoren besteht darin, dass bei einem Mikrocontroller Speicher, [[Digital]]- und [[Analog]]- Ein- und Ausgänge, Timer, UART etc. meist auf einem einzigen Chip integriert sind, so dass eine Mikrocontroller-Anwendung oft mit ein paar wenigen Bauteilen auskommt.


Mikrocontroller werden häufig zuerst an der [[Bit]]-Zahl des internen Datenbusses unterschieden: 4/8/16 oder 32 Bit. Diese Bit-Zahl kann man als die Länge der Daten interpretieren, die der Controller in einem Befehl verarbeiten kann. Die größte in 8 [[Digitaltechnik|Bit]] (= 1 [[Digitaltechnik|Byte]]) darstellbare Zahl ist die 255, somit kann ein 8 Bit-Mikrocontroller z. B. in einem Additionsbefehl immer nur Zahlen bis 255 verarbeiten. Zur Bearbeitung von größeren Zahlen werden dann mehrere Befehle hintereinander benötigt, was natürlich länger dauert.
Mikrocontroller werden häufig zuerst an der [[Bit]]-Zahl des internen Datenbusses unterschieden: 4/8/16 oder 32 Bit. Diese Bit-Zahl kann man als die Länge der Daten interpretieren, die der Controller in einem Befehl verarbeiten kann. Die größte in 8 [[Digitaltechnik|Bit]] (= 1 [[Digitaltechnik|Byte]]) darstellbare Zahl ist die 255, somit kann ein 8 Bit-Mikrocontroller z. B. in einem Additionsbefehl immer nur Zahlen bis 255 verarbeiten. Zur Bearbeitung von größeren Zahlen werden dann mehrere Befehle hintereinander benötigt, was natürlich länger dauert.
== Taktung ==


Ein Mikrocontroller braucht, wie jeder andere Prozessor auch, zum Betrieb einen [[Taktfrequenz | Takt]]. Dieser kann extern zugeführt werden (Taktgenerator, Quarzoszillator), mittels externem Quarz erzeugt, oder von einem internen Taktgeber (RC-Oszillator) abgeleitet werden. Die maximale Frequenz mit der ein Controller betrieben werden kann reicht von 1 MHz bei alten Controllern bis über 100 MHz bei großen 32-"Bittern". Diese Taktfrequenz sagt jedoch noch nicht viel über die tatsächliche Geschwindigkeit eines Prozessors aus. So wird z. B. bei den meisten alten [[8051]]-Controllern die Frequenz intern durch 12 geteilt (Maschinentakt), ein mit 24 MHz getakteter 8051 arbeitet also eigentlich nur mit 2 MHz. Benötigt dieser dann für einen Befehl durchschnittlich 2 Taktzyklen, so bleiben "nur" noch 1 Millionen Befehle pro Sekunde übrig. Ein [[AVR]], der ungeteilt mit 8MHz arbeitet und für viele der Befehle nur einen Zyklus braucht, schafft dagegen fast 8 Millionen Befehle pro Sekunde. Neue 8051 Typen verarbeiten ebenfalls einen Befehl in einem Taktzyklus und sind erhältlich bis 100 MHz.
Ein Mikrocontroller braucht, wie jeder andere Prozessor auch, zum Betrieb einen [[Taktfrequenz | Takt]]. Dieser kann extern zugeführt werden (Taktgenerator, Quarzoszillator), mittels externem Quarz erzeugt, oder von einem internen Taktgeber (RC-Oszillator) abgeleitet werden. Die maximale Frequenz mit der ein Controller betrieben werden kann reicht von 1 MHz bei alten Controllern bis über 100 MHz bei großen 32-"Bittern". Diese Taktfrequenz sagt jedoch noch nicht viel über die tatsächliche Geschwindigkeit eines Prozessors aus. So wird z. B. bei den meisten alten [[8051]]-Controllern die Frequenz intern durch 12 geteilt (Maschinentakt), ein mit 24 MHz getakteter 8051 arbeitet also eigentlich nur mit 2 MHz. Benötigt dieser dann für einen Befehl durchschnittlich 2 Taktzyklen, so bleiben "nur" noch 1 Millionen Befehle pro Sekunde übrig. Ein [[AVR]], der ungeteilt mit 8MHz arbeitet und für viele der Befehle nur einen Zyklus braucht, schafft dagegen fast 8 Millionen Befehle pro Sekunde. Neue 8051 Typen verarbeiten ebenfalls einen Befehl in einem Taktzyklus und sind erhältlich bis 100 MHz.
Zeile 31: Zeile 31:
* kostenlose Software verfügbar: [[Assembler]] bekommt man praktisch immer kostenlos vom Hersteller des Controllers, [[C]]-[[Compiler]] seltener
* kostenlose Software verfügbar: [[Assembler]] bekommt man praktisch immer kostenlos vom Hersteller des Controllers, [[C]]-[[Compiler]] seltener


Eine ausführliche Beschreibung der Entscheidungskriterien gibt es auf der Seite [[Entscheidung Mikrocontroller]].
Eine ausführliche Beschreibung der Entscheidungskriterien gibt es auf der Seite [[Entscheidung Mikrocontroller]] sowie [[STM32 für Einsteiger]]


== Verbreitete Mikrocontrollerfamilien ==
== Verbreitete Mikrocontrollerfamilien ==
Zeile 48: Zeile 48:
** [[8051]] (Intel, versch. Hersteller)
** [[8051]] (Intel, versch. Hersteller)
** [[H8]] (Renesas, früher Hitachi)
** [[H8]] (Renesas, früher Hitachi)
** [[68HC05]] (Freescale, früher Motorola)
** [[68HC05]] (NXP, früher Freescale, früher Motorola)
** [[68HC08]] (Freescale, früher Motorola)
** [[68HC08]] (NXP, früher Freescale, früher Motorola)
** [[68HC11]] (Freescale, früher Motorola)
** [[68HC11]] (NXP, früher Freescale, früher Motorola)
** [[ST62]] (SGS-Thomson)
** [[ST62]] (SGS-Thomson)
** [[78K0S]] (NEC)
** [[78K0S]] (NEC)
Zeile 61: Zeile 61:
** [[R8C]] (Renesas)
** [[R8C]] (Renesas)
** [[H8]] (Renesas, früher Hitachi)
** [[H8]] (Renesas, früher Hitachi)
** [[68HC12]] (Freescale, früher Motorola)
** [[68HC12]] (NXP, früher Freescale, früher Motorola)
** [[68HC16]] (Freescale, früher Motorola)
** [[68HC16]] (NXP, früher Freescale, früher Motorola)
** [[dsPIC]] (Microchip)
** [[dsPIC]] (Microchip)
** [[PIC24]] (Microchip)
** [[PIC24]] (Microchip)
Zeile 72: Zeile 72:
** [[AT91SAM]] (Atmel) [[ARM]]-Core
** [[AT91SAM]] (Atmel) [[ARM]]-Core
** [[AVR32]] (Atmel)
** [[AVR32]] (Atmel)
** [[Kinetis]] (NXP, früher Freescale) [[ARM]]-Core
** [[LPC1xxx]] (NXP) [[ARM]]-Core
** [[LPC2000|LPC2xxx]] (NXP ehemals Philips) [[ARM]]-Core
** [[LPC2000|LPC2xxx]] (NXP ehemals Philips) [[ARM]]-Core
** [[PIC32]] (Microchip)
** [[PIC32]] (Microchip)
** [[TriCore]] (Infineon)
** [[TriCore]] (Infineon)
** [[XMCxxxx]] (Infineon) [[ARM]]-Core (im Hobbybereich schwerer beschaffbar)
** [[SuperH]] (Renesas, früher Hitachi)
** [[SuperH]] (Renesas, früher Hitachi)
** [[STM32]] (STMicroelectronics) [[ARM]] Cortex M-Core
** [[FR50]] (Fujitsu)
** [[FR50]] (Fujitsu)
** [[EFM32]] (Energy Micro) [[ARM]] Cortex M-Core


== Links ==
== Links ==
Zeile 82: Zeile 87:
* [http://chaosradio.ccc.de/cre067.html Podcast CRE67 Mikrocontroller] bei Chaosradio Express
* [http://chaosradio.ccc.de/cre067.html Podcast CRE67 Mikrocontroller] bei Chaosradio Express
* [http://www.edn.com/article/CA6615617.html 36th annual EDN microprocessor/microcontroller directory] bei edn.com (2009)
* [http://www.edn.com/article/CA6615617.html 36th annual EDN microprocessor/microcontroller directory] bei edn.com (2009)
* [http://www.industrystock.de/html/Mikrocontroller/product-result-de-14234-0.html Liste mit diversen Mikrocontroller-Anbietern] bei IndustryStock.com


[[Category:Grundlagen]]
[[Category:Grundlagen]]
[[Category:Mikrocontroller| ]]
[[Category:Mikrocontroller| ]]
[[Category:Bauteile]]
[[Category:Bauteile]]

Aktuelle Version vom 14. September 2016, 12:31 Uhr

Ein Mikrocontroller ist ein Prozessor plus Zusatzmodule. Der Unterschied zu Mikroprozessoren besteht darin, dass bei einem Mikrocontroller Speicher, Digital- und Analog- Ein- und Ausgänge, Timer, UART etc. meist auf einem einzigen Chip integriert sind, so dass eine Mikrocontroller-Anwendung oft mit ein paar wenigen Bauteilen auskommt.

Mikrocontroller werden häufig zuerst an der Bit-Zahl des internen Datenbusses unterschieden: 4/8/16 oder 32 Bit. Diese Bit-Zahl kann man als die Länge der Daten interpretieren, die der Controller in einem Befehl verarbeiten kann. Die größte in 8 Bit (= 1 Byte) darstellbare Zahl ist die 255, somit kann ein 8 Bit-Mikrocontroller z. B. in einem Additionsbefehl immer nur Zahlen bis 255 verarbeiten. Zur Bearbeitung von größeren Zahlen werden dann mehrere Befehle hintereinander benötigt, was natürlich länger dauert.

Taktung

Ein Mikrocontroller braucht, wie jeder andere Prozessor auch, zum Betrieb einen Takt. Dieser kann extern zugeführt werden (Taktgenerator, Quarzoszillator), mittels externem Quarz erzeugt, oder von einem internen Taktgeber (RC-Oszillator) abgeleitet werden. Die maximale Frequenz mit der ein Controller betrieben werden kann reicht von 1 MHz bei alten Controllern bis über 100 MHz bei großen 32-"Bittern". Diese Taktfrequenz sagt jedoch noch nicht viel über die tatsächliche Geschwindigkeit eines Prozessors aus. So wird z. B. bei den meisten alten 8051-Controllern die Frequenz intern durch 12 geteilt (Maschinentakt), ein mit 24 MHz getakteter 8051 arbeitet also eigentlich nur mit 2 MHz. Benötigt dieser dann für einen Befehl durchschnittlich 2 Taktzyklen, so bleiben "nur" noch 1 Millionen Befehle pro Sekunde übrig. Ein AVR, der ungeteilt mit 8MHz arbeitet und für viele der Befehle nur einen Zyklus braucht, schafft dagegen fast 8 Millionen Befehle pro Sekunde. Neue 8051 Typen verarbeiten ebenfalls einen Befehl in einem Taktzyklus und sind erhältlich bis 100 MHz.

Wozu ist ein Mikrocontroller gut?

Hier ein paar Beispiele, für welche Aufgaben Mikrocontroller verwendet werden können:

Welchen Mikrocontroller soll ich verwenden?

Ein Mikrocontroller für Hobbyanwender sollte idealerweise folgende Voraussetzungen erfüllen:

  • gute Beschaffbarkeit
  • niedriger Preis spielt bei den kleinen Stückzahlen keine so große Rolle
  • handliche Bauform: ein Controller mit 20 Pins ist leichter handzuhaben als einer mit 128
  • Flash-ROM: der Controller sollte mindestens 1000 mal neu programmiert werden können
  • In-System-Programmierbarkeit (ISP): man benötigt kein teures Programmiergerät und muss den Controller zur Programmierung nicht aus der Schaltung entfernen
  • kostenlose Software verfügbar: Assembler bekommt man praktisch immer kostenlos vom Hersteller des Controllers, C-Compiler seltener

Eine ausführliche Beschreibung der Entscheidungskriterien gibt es auf der Seite Entscheidung Mikrocontroller sowie STM32 für Einsteiger

Verbreitete Mikrocontrollerfamilien

  • 8 Bit
    • MicroConverter® (Analog Devices)
    • AVR (Atmel)
    • PIC (Microchip)
    • 8048 (Intel)
    • 8051 (Intel, versch. Hersteller)
    • H8 (Renesas, früher Hitachi)
    • 68HC05 (NXP, früher Freescale, früher Motorola)
    • 68HC08 (NXP, früher Freescale, früher Motorola)
    • 68HC11 (NXP, früher Freescale, früher Motorola)
    • ST62 (SGS-Thomson)
    • 78K0S (NEC)
    • Z8 (Zilog)
    • PSoC (Cypress)
  • 16 Bit
    • C16x (Infineon)
    • M16C (Renesas, früher Mitsubishi)
    • R8C (Renesas)
    • H8 (Renesas, früher Hitachi)
    • 68HC12 (NXP, früher Freescale, früher Motorola)
    • 68HC16 (NXP, früher Freescale, früher Motorola)
    • dsPIC (Microchip)
    • PIC24 (Microchip)
    • MSP430 (Texas Instruments)
    • ZNEO (Zilog)

Links