Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Mikrocontroller: Multicore, Singlecore, Peripherie

Mikrocontroller-Architekturen für Realzeit-Steuerungen und -Regelungen

Viele Steuerungs- und Regelungsaufgaben werden heute mit Hilfe von Mikrocontrollern (engl. microcontroller) gelöst. Hierbei handelt es sich um hochintegrierte Mikroprozessor-Architekturen, die zusammen mit Speichermodulen wie Flash, SRAM oder DRAM und verschiedenen Peripherie-Einheiten auf einem einzigen Chip integriert werden.

Flash ist elektrisch löschbar und programmierbar und wird für die Speicherung von Programm und konstanten Daten benötigt. SRAM (statisches RAM) oder DRAM (dynamisches RAM) wird als Baustein-interner Speicher für Variablen und Stack benötigt. DRAM hat allerdings den Nachteil, dass der Inhalt zyklisch über eine Refresh-Logik aufgefrischt werden muss; das kostet Zeit. Verschiedene Peripherie-Einheiten werden zum Beispiel für die Kommunikation mit anderen elektronischen Steuereinheiten (ECUs), das Einlesen von Sensorsignalen oder für die Erzeugung von Ausgangssignalen über einfache und komplexe Timer-Einheiten (z.B. zur Steuerung und Regelung von Motoren) benötigt.

Mikrocontroller - Multicore, Singlecore, Peripherie

Bild 1: Mikrocontroller-Architekturen:Singlecore-Mikrocontroller und Multicore-Mikrocontroller

Die Mikrocontroller-Software wird an die speziellen Eigenschaften dieser Module angepasst. Für die Embedded-Software-Entwicklung werden dazu eingebettete Entwicklungswerkzeuge (embedded tools) und Mikrocontroller-Boards (z.B. Starter Kits) eingesetzt.

Embedded-Programmiersprachen Embedded C (EC) und Embedded C++ (EC++)

Der ANSI-C-Standard legt für die Programmiersprache C Schlüsselwörter und deren Nutzung fest. Für Embedded-Systeme darf der Toolhersteller spezielle Erweiterungen ergänzen, damit zum Beispiel genau definiert werden kann, welche Peripherie-Steuerregister wie angesprochen werden sollen. Diese Programmiersprache mit den Erweiterungen gegenüber ANSI-C wird als Embedded C (eingebettetes C) bezeichnet.

Für die objektorientierte Softwareentwicklung wird eine Embedded-Variante von C++ als Embedded C++ (EC++) verwendet. Bei der hardwarenahen Programmierung können mit Hilfe von Sprach-Erweiterungen Architektur- und Zeitaspekte berücksichtigt werden; so lassen sich Anforderungen (requirements) an das Echtzeit-Verhalten (real-time behavior) umsetzen.

Echtzeit (real-time) als Basis für die zeitgenaue Bearbeitung von Software

Die Definition der Echtzeit (real-time definition) in einem Steuerungs- und Regelungssystem bestimmt das Verhalten so, dass Zeitpunkte und Zeitlimits genau eingehalten werden. Hier wird in weiche und harte Echtzeit (soft real-time, hard real-time) unterschieden. Weiche Echtzeit garantiert in den meisten Fällen die Einhaltung der Zeitvorgaben, wohingegen harte Echtzeit nahezu in 100% der Fälle die Zeitlimits garantieren muss.

In Mikrocontrollern werden hierzu die Peripherie-Ereignisse (Events) mit der Zentraleinheit (CPU, auch microcontroller unit – MCU) über einen Interrupt-Controller bzw. über einen DMA-Controller (direct memory access controller) synchronisiert.

Die einzelnen Phasen der Embedded-Projektentwicklung

Eine Basis für ein erfolgreiches Projekt sind zunächst die Kenntnisse, wie und in welchem Umfang die Projekt-Anforderungen (project requirements) zu ermitteln sind, damit bei der Auswahl des geeigneten Mikrocontrollers und der Entwicklung der Software alle projektrelevanten Aspekte berücksichtigt sind. Bei der Software-Erstellung darf nichts vergessen werden, weder funktionale noch nicht-funktionale Anforderungen.

Viel Geld und Zeit lässt sich durch die klare Definition der Software-Architektur (software architecture) sparen. Werden beispielsweise Software-Module mit klar definierten Schnittstellen versehen, können sie leichter getestet werden.

Eine erfolgreiche Software-Entwicklungsstrategie führt zur Entwicklung wiederverwendbarer Software-Module. Hierzu werden neben den Kenntnissen des Mikrocontroller-Aufbaus noch sehr gute Programmierkenntnisse in Embedded C (EC) und Embedded C++ (EC++) benötigt. Die Nutzung von Strukturen und Zeigern ist dabei ein zentrales Thema. Die Peripherie-Register und die Projektdaten können so geeigneten Strukturen abgebildet werden. Im Programmcode wird mithilfe von Funktionen auf die Elemente der Strukturen zugegriffen. Als Parameterschnittstelle werden dabei Zeiger auf den Typ der Struktur benötigt.

Die unterschiedlichen Zugriffszeiten der verfügbaren Speicherbereiche hängen mit der Art der Anbindung an die programmausführende CPU ab. Deshalb müssen Funktionen und Datenstrukturen entsprechend der gewählten Mikrocontroller-Architektur und der vorgegebenen Echtzeit-Anforderungen der Applikation an der richtigen Stelle im Adressraum platziert werden (lokatieren).     

System-Anforderungen bestimmen die Mikrocontroller-Auswahl: Singlecore oder Multicore

Die Auswahl des Mikrocontrollers (microcontroller selection, type of MCU - microcontroller unit) hängt maßgeblich von den Systemanforderungen ab. Diese bestimmen, welcher Programmumfang bearbeitet werden soll, welche Kommunikationsmethoden über serielle Schnittstellen benötigt werden, welcher Typ von Sensorsignalen eingelesen und ausgewertet werden soll und wie viele Motoren bzw. Aktuatoren welchen Typs angesteuert werden sollen.

Die erforderliche Rechenpower (gemessen in MIPS: million instructions per second), die Größe des benötigten Speichers auf dem Baustein (on-chip memory) und die Anzahl der zu verwendenden Port-Pins bestimmt den Mikrocontroller, der für diese Applikation am besten passt. Zur Wahl stehen Singlecore-Mikrocontroller (enthalten einen Rechenkern bzw. eine CPU) oder Multicore-Mikrocontroller mit mehreren Rechenkernen.

Für die Bestimmung des richtigen Typs sind zunächst alle relevanten Systemanforderungen zu definieren, die die Steuerung bzw. Regelung erfüllen soll bzw. muss. Hierzu gehören die Anforderungen für die Kommunikation, die Anzahl und Art der Eingangssignale (z.B. analoge oder digitale Sensorsignale) und die zu generierenden Ausgangssignale (z.B. pulsweitenmodulierte Signale - PWM - zur Ansteuerung von Aktuatoren/Motoren).

Aus diesen Informationen lassen sich die Anforderungen an den einzusetzenden Mikrocontroller definieren. Hierzu gehören z.B. die Anzahl der Eingänge und Ausgänge (I/O-Ports), die benötigten Kommunikationsmodule (CAN, SPI, FlexRay, Ethernet, etc.), die bereitzustellende Rechenleistung der CPU (central processing unit) und die benötigten Speichergrößen an Flash und RAM.

Die richtige Auswahl des Mikrocontroller-Typs bestimmt die Kosten und schließlich den Erfolg eines Projektes. Zusätzlich und passend zum Mikrocontroller werden die benötigten Entwicklungswerkzeuge (development tools), wie Compiler, Linker/Locator und Testwerkzeuge, wie zum Beispiel Debugger und Test-Tools für die White- und Black-Box Tests, gewählt.

Mikrocontroller - Multicore, Singlecore, Peripherie 

Bild 2: Mikrocontroller-Architekturen:AURIX Multicore-Mikrocontroller

Neue Projekt-Herausforderungen mit Multicore für SW-Architektur und SW-Design

Mit dem Einsatz von Multicore-Mikrocontrollern ergeben sich viele neue Herausforderungen an die Software-Architektur und das Software-Design. Dies liegt darin begründet, dass durch mehrere Kerne gleichzeitig auf gemeinsame Ressourcen wie z.B. Datenspeicher (SRAM) zugegriffen werden kann. Es muss also in der Software-Architektur klar definiert werden, welcher Kern in globalen Speichern welche Partitionen privat nur für sich und welche Kerne gemeinsam (z.B. für die Parameterübergabe) verwendet werden sollen.

Zum Verhindern von inkonsistenten Datenzugriffen muss der System-Designer eine Multicore-fähige Speicherarchitektur und Lese- und Schreib-Zugriffrechte in einer Memory Protection Unit (MPU) für einzelne Tasks in den verschiedenen Cores definieren.

Mikrocontroller - Multicore, Singlecore, Peripherie 

Bild 3: Mikrocontroller-Architekturen:Verwendung gemeinsamer Speicher in Multicore-Mikrocontrollern

Der geeignete Einstieg: Mikrocontroller Seminare, Trainings, Workshops und Tutorials

Zu einzelnen Themen gibt es zwar Tutorials von Baustein- und Tool-Herstellern, sie beleuchten allerdings nur ausgewählte Aspekte. MicroConsult stellt in seinen Trainings die Zusammenhänge dar, die Ihnen dabei helfen, im Projekt den Überblick zu gewinnen und auch zu behalten.

Für eine erfolgreiche Embedded-System-Entwicklung und Software-Entwicklung ist es empfehlenswert, sich durch kompetente Schulungs-, Trainings- und Coaching-Partner bewährte Programmiertechniken und Programmierkenntnisse in Workshops und Seminaren anzueignen.


Mikrocontroller: Multicore, Singlecore, Peripherie - unsere Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Mikrocontroller: Multicore, Singlecore, Peripherie.

Embedded-Multicore-Mikrocontroller in der Praxis

Dieses Training stellt die wesentlichen Mechanismen von Multicore-Mikrocontrollern und deren Leistungsfähigkeit vor. Auf dieser Basis sind Sie gerüstet, selbständig eine zielgerichtete Multicore-µC-Architekturauswahl durchzuführen und die Aufwände und Herausforderungen für ein Softwareprojekt abzuschätzen.
Zum Training - Embedded-Multicore-Mikrocontroller

AURIX™ TC2xx Workshop: 32-Bit Mikrocontroller-Familie

In diesem Training werden die Architektur, Basic On-chip-Peripherie und die Besonderheiten (insbesondere der Multicore-Architektur und Safety-Erweiterungen) der Bausteinfamilie AURIX™ vorgestellt. Sie lernen, Low-level Treiber für diese Hardware zu programmieren, diese mit einem Debugger zu testen und zudem Interrupt- und Trap-Routinen zu erstellen.
Zum Training - AURIX TC2xx Workshop

AURIX™ TC3xx Workshop: 32-Bit Multicore-Mikrocontroller-Familie (2G Zweite Generation)

Dieses Training beleuchtet die Architektur, die wesentliche On-chip-Peripherie und die Besonderheiten (insbesondere der Multicore-Architektur und Safety-Erweiterungen) der Bausteinfamilie AURIX™. Sie lernen, wie Sie Low-level Treiber für diese Hardware einsetzen und Beispiele mit einem Debugger testen.
Zum Training - AURIX TC3xx Workshop

RTOS-Grundlagen und Anwendung: Mechanismen und deren Einsatz in Laufzeit-Architekturen für Embedded- und Echtzeitsysteme     

Sie kennen die Mechanismen moderner Echtzeitbetriebssysteme und können damit neue Software-Laufzeitarchitekturen entwickeln und bestehende warten - unabhängig von dem konkreten Echtzeitbetriebssystem-Produkt. Sie können Software-Laufzeitarchitekturen dokumentieren und kommunizieren.
Zum Training - RTOS-Grundlagen und Anwendung

RTOS-Anwendung: Entwicklung von Laufzeit-Architekturen für Embedded- und Echtzeitsysteme

Sie sind in der Lage, mit modernen Echtzeitbetriebssystemen (Real-Time Operating Systems, RTOS) neue Software-Laufzeitarchitekturen zu entwickeln und bestehende zu warten - unabhängig von dem konkreten Echtzeitbetriebssystem-Produkt.
Zum Training - RTOS-Anwendung

Debuggen mit der PLS Universal Debug Engine UDE

Sie kennen die Einsatzmöglichkeiten des PLS-Debuggers für den Test und können die On-Chip Debugfeatures der Bausteine optimal nutzen.
Zum Training - Debuggen mit der PLS Universal Debug Engine UDE

Tracen und Multicore Debugging mit der PLS Universal Debug Engine UDE

Sie kennen die Einsatzmöglichkeiten des Debuggers für den Test und die Nutzung des MCDS durch den PLS-Debugger und können die Besonderheiten der Bausteine nutzen.
Zum Training - Tracen und Multicore Debugging mit der PLS Universal Debug Engine UDE

Debuggen für TriCore/AURIX™ mit Lauterbach TRACE32

Sie kennen die Funktionalitäten des Lauterbach TRACE32 Debuggers und können ein Mikrocontroller-System damit debuggen. Ferner erstellen und testen Sie Script Files zur Konfiguration der Debug-Session.
Zum Training - Debuggen für TriCore/AURIX mit TRACE32

Tracen und Multicore Debugging für TriCore/AURIX™ (MCDS) mit Lauterbach TRACE32

Sie beherrschen die Begriffe der objektorientierten Programmierung.Sie verfügen über die wesentlichen Voraussetzungen für den Umgang mit objektorientierten Programmiersprachen, wie C++, C# oder Java.
Zum Training - Tracen und Multicore Debugging für TriCore/AURIX™ (MCDS) mit TRACE32

Requirements Engineering und Requirement Management für Embedded-Systeme

Mit dem erworbenen Wissen können Sie einen Requirements Prozess in Ihrer Firma einführen, bewerten, optimieren, verstehen und ihn leben.
Zum Training - Requirements Engineering und Requirements Management

Software-Architekturen für Embedded-Systeme und Echtzeitsysteme

Sie kennen die Begriffe und Bedeutung von Software-Architektur; die Aufgaben und Verantwortungen von Software-Architekten und deren Rolle im Projekt; State-of-the-Art Methoden und Techniken zur Entwicklung von Software-Architekturen. Sie haben die Fähigkeit, Software-Architekturen mit Projektbeteiligten abzustimmen, zu dokumentieren und kommunizieren sowie die wesentlichen Schritte des Software-Architekturentwurfs selbstständig durchzuführen.
Zum Training - Software-Architekturen für Embedded-Systeme und Echtzeitsysteme

Renesas Synergy™ Applikationsprogrammierung

Sie haben einen Überblick über die Renesas Synergy™ Plattform und kennen die wesentlichen Application Programming Interfaces des Renesas Synergy™ Software Packages. Sie haben den perfekten praxisorientierten Einstieg und realisieren erste eigene Applikationen basierend auf der Renesas Synergy™ Plattform.
Zum Training - Renesas Synergy Applikationsprogrammierung

Coaching - Mikrocontroller: Multicore, Singlecore, Peripherie

Die Coaching-Angebote vom MicroConsult bieten den großen Vorteil, dass unsere Experten ihr Wissen und ihre Erfahrungen direkt in Ihren Lösungsprozess einbringen und damit unmittelbar zum Projekterfolg beitragen. Gemeinsam werden beispielsweise Einsatzmöglichkeiten und Nutzen neuer Software-Engineering- oder Führungsmethoden analysiert, konkrete Maßnahmen zur Einführung entwickelt und dann umgesetzt.
Zum Coaching - Mikrocontroller


Training & Coaching zu den Themen unseren Portfolios finden Sie hier.


Mikrocontroller: Multicore, Singlecore, Peripherie - Fachinformationen

Wertvolle Fachinformationen zum Thema Mikrocontroller: Multicore, Singlecore, Peripherie stehen hier für Sie zum kostenfreien Download bereit, darunter die folgenden Veröffentlichungen und Vorträge:

  • Ressourcen-Management für die Multicore-Mikrocontroller-Auswahl
  • Arduino Look-and-Feel für Multicore - Durchbruch in der Multicore-Anwendung?
  • Quo Vadis, Multicore? Irrwege & Zukunftstrends
  • Ein Multicore-Referendum - Die Qual der Wahl
  • SW Design Challenges for Real-Time Multicore Microcontroller Systems
  • Aktuelle Trends bei Multicore-Mikrocontroller-Architekturen
  • Still Single? - Step by Step to Multicore!
  • ARM-Cortex Overview: What is the Right ARM Architecture?
  • Multicore im Embedded-System - wie geht das?
  • Initialisierung und Erstellung von Low-level-Treibern
  • Die Rolle des Debuggers im Test-Prozess
  • Cortex-M4 liefert DSP- und Floatingpoint-Funktionen

Zu den Fachinformationen

 
Fachinformationen zu weiteren Themen unseren Portfolios finden Sie hier.


Mikrocontroller: Multicore, Singlecore, Peripherie - unsere Experten

Thomas Batt

Dipl.-Ing. (FH) Thomas Batt ist gebürtiger Freiburger. Nach seiner Ausbildung als Radio- und Fernsehtechniker studierte er Nachrichtentechnik in Offenburg. Seit 1994 arbeitet er kontinuierlich in verschiedenen Branchen im Bereich Embedded-/Realtime-Systementwicklung. 1999 wechselte Thomas Batt zur MicroConsult GmbH. Dort verantwortet er heute als zertifizierter Trainer und Coach die Themenbereiche Systems/ Software Engineering für Embedded-/Realtime-Systeme sowie Entwicklungsprozess-Beratung.

Marcus Gößler

Dipl.-Ing. (TU) Marcus Gößler schloss das Studium der Elektrotechnik an der Technischen Universität Graz ab. Seine berufliche Laufbahn begann als Field Application Engineer für analoge und digitale Produkte im Bereich Luft-und Raumfahrt. Weitere Applikationsfelder umfassten Audio/Video, portable Systeme und Infotainment im Automobil. Er leitete Applikationsorganisationen in Zentral- und Osteuropa und zeichnete Verantwortung für große Halbleiterhersteller im Vertriebskanal und Marketing. Bei MicroConsult ist er heute als Trainer und Coach im Bereich Embedded Systems tätig, mit Schwerpunkten in sicherheitsrelevanten Anwendungen und Multicore-Bausteinen.

Ingo Pohle

Dipl.-Ing. Ingo Pohle ist Mitgründer und Geschäftsführer der MicroConsult GmbH. Er ist ein international anerkannter Spezialist für Embedded-Lösungen mit reichem Erfahrungsschatz rund um den Einsatz von Embedded-Mikrocontrollern, Bussystemen und RTOS.

Renate Schultes

Renate Schultes - kaum jemand kennt die Welt der Mikrocontroller so gut wie sie. Als Trainerin, Beraterin und Autorin von Fachbüchern und Publikation zu 8-, 16- und 32-Bit Architekturen hat Renate Schultes schon vielen Entwicklern den Weg in die praktische Anwendung erleichtert. Sie hat eine große „Fangemeinde“ an Entwicklern, die sich darauf freuen, wenn sie wieder mit ihr gemeinsam in die Welt einer neuen Prozessorfamilie oder Programmiersprache eintauchen dürfen.

Merkzettel


Sie haben derzeit keine Trainings auf dem Merkzettel.