DE | EN | CN

ESE Block 1 Grundlagen Mikrocontroller

Mikrocontroller wurden ursprünglich entwickelt um zum Beispiel PC Peripheriegeräte wie Drucker kostengünstig herstellen zu können. Alles was man brauchte um einen Drucker anzusteuern wurde in einen einzigen Chip gepackt inklusive der Steuerungsoftware. Man nannte solche kleinen Steuercomputer damals auch Ein-Chip-Mikrorechner. Das waren am Anfang ausschließlich Massenprodukte. Programmierung und Herstellung der Ein-Chip-Mikrorechnerlösung waren sehr aufwändig. In Massen hergestellt dann aber extrem günstig. Heute ist die Entwicklung einer Mikrocontrollerlösung so preiswert geworden, dass es sich schon für Kleinserien und einzelne Anwendungsfälle lohnt über den Einsatz eines Mikrocontrollers nachzudenken.

Ein Mikrocontroller enthält in einem einzigen Chip alle nötigen Komponenten um als kleiner Computer zu funktionieren:

  • Rechenwerk (Zentraleinheit, Kern)
    • mindestens eine Arithmetik-Logik-Einheit (ALU)
    • heute oft auch einen Gleitkomma-Baustein (FPU)

  • Steuerwerk
  • Programmspeicher (heute meist FLASH)
  • Datenspeicher (in der Regel SRAM)
  • Bausteine zur internen Steuerung
    • Timer
    • Interrupt-Controller
    • Bausteine für den internen Datenaustausch
    • Überwachungsbausteine
  • Eingabebausteine
    • digitale Eingabebausteine
    • analoge Eingabebausteine
  • Ausgabebausteine
    • digitale Ausgabebausteine
    • analoge Ausgabebausteine
  • Kommunikationsbausteine
    • serielle Kommunikationsbausteine (UART, SPI, …)
    • Feld-Bus-Kommunikationsbausteine (CAN, I2C, …)
    • evtl. Netzwerk-Kommunikationsbausteine (Ethernet)
    • manchmal Funk-Kommunikationsbausteine (Bluetooth, WiFi, NB-IoT, …)
  • u.v.m.

Mit seiner Fähigkeit als kleiner kompletter Computer mit geringstem Schaltungsaufwand sofort auch komplexe Steuer- und Regelaufgaben zu erfüllen macht den Mikrocontroller zum idealen eingebetteten System. Über Sensoren und Aktuatoren erfüllt er seine Aufgaben. Menschmaschineschnittstellen sind bei einfachen eingebetteten Systemen manchmal nur ein Taster und eine oder wenige LEDs oder im Internet der Dinge eine WiFi Schnittstelle und das Smartphone als Benutzeroberfläche.

Um zu verdeutlichen warum man sich für eine Mikrocontrollerlösung entscheiden könnte sollen zwei Vergleiche diskutiert werden.

Vergleich 1:

  • diskrete Metalldetektorlösung ohne Mikrocontroller im Vergleich zu einer äquivalenten Lösung mit Mikrocontroller
  • links die diskrete Variante eines PI-Metalldetektors rechts mit Mikrocontroller

  • die Mikrocontrollerlösung hat die selbe Suchleistung
  • die Mikrocontrollerlösung hat viel weniger Bauteile
  • die Mikrocontrollerlösung hat geringere Materialkosten
  • die Mikrocontrollerlösung ist kleiner
  • die Mikrocontrollerlösung ist leichter
  • die Mikrocontrollerlösung bietet verschiedene Suchprogramme (ist intelligent)

Vergleich 2:

  • Standardbaustein als Erweiterung für eine vorhandene SPS-Steuerung im Vergleich zu einer individuellen Lösung der Erweiterung mit Mikrocontroller. Die Lösung soll zwei analoge Signale mit einer hohen Abtastrate vergleichen und Störungen und Muster erkennen.
  • links der Standardbaustein für die Erweiterung der SPS um zwei weitere Analogkanäle rechts die individuelle Mikrocontrollerlösung

  • Materialkosten für Standardmodul ca. 200 €
  • Materialkosten für Individuallösung (3€ Elektronik), Standardleergehäuse (5€) und Fertigungskosten (10h) ca. 208 €
  • Softwarekosten für beide Module etwa gleich (Implementation der selben Algorithmen)
  • Standardmodul, Verarbeitung des hohen Datenaufkommens in der SPS, hohe Rechnerbelastung, hohe Bus-Belastung
  • Individuallösung, Verarbeitung des hohen Datenaufkommens im Mikrocontroller, geringe Rechnerbelastung, geringe Bus-Belastung (edge computing)
  • Standardmodul, Abtastrate max 5 kHz
  • Individuallösung, Abtastrate max 150 kHz

Zusammenfassung:

  • geringe Materialosten
  • hohes Leistungsvermögen
  • ermöglicht sehr geringe individuelle Raummaße
  • vertretbare bis geringe Systemkosten inklusive Programmierung auch bei kleiner Stückzahl
  • höchste Flexibilität
  • bessere Marktchancen durch Alleinstellungsmerkmale
  • besonders geeignet für spezielle Anwendungen, Sonderfälle
  • vertretbare Kosten bei Einzellösungen, preiswerte Kleinserien, extrem günstige in Großserien

Die erste Industriestandard-Controller waren Intel 8051/52 8 Bit Controller. Diese dominierten über 30 Jahre den Markt. Dann gab es zahlreiche Anbieter von weiteren 8 Bit Controllerfamilien wie Atmels AVR und Microchips PIC. In der Klasse der 16 Bit Controller konnte sich keine der verfügbaren Architekturen als Industriestandard etablieren. Erst mit dem Aufkommen der 32 Bit ARM Architektur bildetet sich ein neuer Industriestandard heraus. Wir können also folgende Mikrocontrollerkategorien unterscheiden:

  • klassische, einfache 8 Bit Mikrocontroller mit der alten Industriestandardarchitektur
  • moderne, einfache zu programmierende und elektrisch sehr robuste 8 Bit Controller
  • preiswerte und leicht zu programmierende 16 Bit Controller
  • Industriestandard 32 Bit ARM Mikrocontroller von verschiedenen Herstellern in vielen Leistungsklassen
  • spezielle oft teure 32 und 64 Bit Hochleistungsmikrocontroller (z.B. Digitale Signal Prozessoren, DSP)

Die 32 Bit ARM Mikrocontroller decken inzwischen auch die meisten Anwendungsgebiete von 8 und 16 Bit Controllern bezogen auf Preis und Formfaktor am. Ein kleiner ARM Cortex M0+ ist nicht teurer als ein 8 Bit Controller und ist auch in kleinen 8 Pin Gehäusen verfügbar. Jedoch ist der ARM bis zu zehn mal schneller, rechnet genauer, hat viel mehr interne Peripheriebausteine, mehr internen Speicher und ist trotzdem oft Stromsparender. Es gibt wenig Gründe sich gegen einen ARM Mikrocontroller zu entscheiden.

Theoretisch können Mikrocontroller alles was andere Computer wie PCs oder Tabletts auch können. Manches sogar schneller und genauer. Trotzdem muss man berücksichtigen, dass auf Grund der geringen Baugröße es natürlich Ressourcenunterschiede gibt.

Leistungsressourcen von modernen Mikrocontrollern:

  • Geschwindigkeit 8 MHz bis 400 MHz (PCs 2 bis 5 GHz)
  • Rechenkerne üblicherweise 1 manchmal 2 Cores (PCs 4 - 16 Cores )
  • Verarbeitungsbreite 32 Bit (PCs 64 Bit)
  • Arbeitsspeicher 8 KB bis 200 KB SRAM (PCs 4 - 32 GB)
  • Festspeicher 16 KB bis 4 MB FLASH (PCs 256 GB SSD - 4 TB HDD)
  • 400 Mio Rechenoperationen pro Sekunde (PCs mehr als 500.000 MIPS)
  • Steuerungsaufgaben: mehr als 1.000.000 digitale Ein oder Ausgabengaben pro Sekunde (PCs einige 1000 )
  • Signalverarbeitung: mehr als 100.000 analoge Werte mit 8/10/12/16 Bit Auflösung pro Sekunde (PCs einige 100)
  • in wenigen Millisekunden bei Bedarf in Mikrosekunden betriebsbereit (PCs mehre Sekunden bis eine Minute Bootzeit)

Zum Programmieren von Mikrocontrollern benötigt man wie für jede Programmierung einen PC und eine Entwicklungsumgebung. Damit erstellt man den Quellcode und bildet das ausführbare Programm. Das Programm muss, damit es ausgeführt werden kann in den Programmspeicher des Mikrocontrollers geladen werden. Dafür gibt es zwei Möglichkeiten:

  1. eine Spezielle Hardware zum übertragen des Programms (links Bsp. ST-Link V2)
  2. eine der vorhandenen Kommunikationsschnittstellen nutzen
  • Professionelle Programmier- und Debug-Geräte bieten meist JTAG an. Das ist ein sehr Leistungsfähiges Interface zur Fehlersuche, dem Monitoring und auch zur Programmierung von eingebetteten Systemen. JTAG steht für Join and Test Action Group und ist im IEEE-Standard 1149.1 festgeschrieben.
  • Preiswertere Herstellerspezifische Programmiergeräte oder Programmiergeräte von Drittanbietern bieten zum Beispiel folgende Schnittstellen an
    • ISP = In System Programming (propritär)
    • SWD = Serial Wire Debug (Teilmenge von JTAG)
    • DAP = Debug Access Port (aktueller ARM Standard)

Die zweite Möglichkeit also die Nutzung einer am Zielsystem vorhandenen Kommunikationsschnittstelle erfordert einen sogenannten Bootloader. Das ist ein spezielles Programm, welches Programmierbefehle die über die Kommunikationsschnittstelle eingehen decodiert und ausführt. Als Kommunikationsschnittstelle für Bootloader kommen üblicherweise Standardschnittstellen zum PC oder den übergeordneten Systemen zu Anwendung wie zum Beispiel : COM, USB, Ethernet, CAN, LIN, I2C, aber auch Bluetooth oder WiFi.

Das in diesem Kurs referenzierte Mikrocontrollerboard verwendet einen Bootloader. Als Entwicklungsumgebung nutzen wir das embedded UML Tool SiSy.

Die Hardwareplattform für diesen Kurs ist das mySTM32 Board lite. Es verfügt über einen Mikrocontroller der STM32 Familie und über alle benötigten Ein- und Ausgabegeräte.

Weiter mit