Neue Designs benötigen auch immer mehr Konnektivität, also eine immer stärkere Anbindung an die Umgebung. Hierfür kommt dann oft USB oder Ethernet zum Einsatz, aber auch andere Schnittstellen wie zum Beispiel der CAN-Bus. Über Ethernet erfolgt dann beispielsweise der Anschluss einer internen Wartungsschnittstelle oder die Kommunikation zwischen Datenerfassungseinheit und Mensch-Maschine-Schnittstelle (HMI), weil eine proprietäre Lösung viel aufwendiger wäre. Schließlich ist der Ethernet-Stack auf dem Markt verfügbar und über die physikalische Schicht muss sich der Entwickler auch keine Gedanken machen, weil sie ebenfalls standardisiert ist. Wenn ein Mikrocontroller über eine Ethernet-Schnittstelle verfügt, dann ist stets (mindestens) der MAC (Media Access Controller) gemeint, aber in einigen wenigen Mikrocontrollern ist auch bereits der PHY (Physical Access Unit) mit integriert, der den direkten physikalischen Anschluss an das Internet ermöglicht.
Zu den wichtigsten Peripherie-Elementen gehören die Timer, denn sie sind zur Ansteuerung von Elektromotoren genauso erforderlich wie für die Zündsteuerung eines Verbrennungsmotors in Auto, Motorsäge etc. oder die Zeitsteuerung in Echtzeit-Betriebssystemen.
In Motorsteuerungen ist zusätzlich noch eine Capture-Compare-Einheit von hohem Nutzen, denn damit lässt sich das PWM-Signal erzeugen, das zur Ansteuerung des Motors dient. Die Capture-Compare-Einheit und die Timer legen dabei das Impulsverhältnis fest, das die Dauer der High- und Low-Signale jeweils individuell bestimmt.
Immer wenn es darum geht, analoge Signale zu messen, ist ein A/D-Wandler erforderlich; wenn analoge Signale ausgegeben werden sollen, benötigt das System einen D/A-Wandler. Auch ein Watchdog, eine Echtzeituhr, I2C-Schnittstellen, U(S)ARTs und USB 2.0 zählen zu den oft benötigten Peripherieelementen. Hinzu kommen die ganz normalen I/Os: digitale Standard-Ein- bzw. Ausgänge.
Immer dann, wenn die erweiterten Anforderungen an Konnektivität ins Spiel kommen, schwenken die Entwickler von Embedded-Systemen fast automatisch schon auf die 32-bit-Welt über und damit hin zu Cortex-M3 beziehungsweise -M4 sowie -M0, wenn es um geringe Kosten geht. Ein Beispiel für eine absolute Low-Cost-Controller-Familie mit Cortex-M0 ist Infineons XMC1000 (Bild 3).
Single- oder Multi-Core?
Die Entscheidung, ob ein Single- oder Multi-Core-Mikrocontroller zum Einsatz kommen soll, hängt von diversen Faktoren ab. Manchmal entscheiden sich die Entwickler auch für eine bestimmte Architektur, weil sie sowohl in Single- als auch in Multi-Core-Versionen verfügbar und damit in puncto Verarbeitungsleistung skalierbar ist. Wenn zwei Betriebssysteme wie beispielsweise Windows und VxWorks oder Linux und Windows CE gleichzeitig auf einem Mikrocontroller laufen sollen, dann ist eine Multi-Core-Lösung in den meisten Fällen die erste Wahl. Innerhalb eines Multi-Core-Mikrocontrollers kann beispielsweise der eine Core die Steuerung eines Motors übernehmen, während der andere Core sich gleichzeitig um die Kommunikation kümmert. Auch in Video-Applikationen sind Multi-Core-Controller oft die erste Wahl, denn dann übernimmt ein Core die schnelle Erfassung der Videodaten vom Bildsensor sowie die Vorverarbeitung der Bilddaten, während der andere Core die restlichen Aufgaben der Applikation abarbeitet. Die erste ARM-basierende Multicore-MCU mit ARM Cortex-M4 und -M0 war NXPs LPC4300 (Bild 4). Neben all diesen Rechenleistungs- und Peripherie-Aspekten rangiert dann quasi gleichzeitig auch die Verlustleistung.
Selbstverständlich informieren sich die Entwickler bereits vorab im Internet, und möglicherweise verfügt die Entwicklungsabteilung auch bereits über Erfahrung im Bereich der verschiedenen Mikrocontrollerfamilien, aber ein guter Halbleiter-Distributor kennt auch die Roadmaps der Halbleiterhersteller und kann seinen Kunden daher auch Informationen geben, die bei der Auswahl einer zukunftsorientierten Lösung besonders wertvoll sind.