Bei der Entwicklung von Mikrocontrollersystemen soll die Hardware an die Anwendung angepasst werden. Die Hersteller bieten dafür ein breites Angebot. Wichtig sind aber auch die Entwicklungswerkzeuge, die diese Flexiblität unterstützen müssen.
Entwickler von Embedded-Systemen sind heute mit einer Reihe von Herausforderungen konfrontiert: Sie müssen in der Lage sein, Ideen schnell in Programmcode umzusetzen und zu testen und gleichzeitig die Features und Funktionen der zugrunde liegenden Hardware berücksichtigen. Außerdem müssen sie den Zielprozessor und seinen Speicher zur Laufzeit beobachten können, um zu sehen, wie die Plattform in Echtzeit auf Interrupts und andere Ereignisse reagiert. Grund hierfür sind die komplexen Interaktionen zwischen den Hardware und Software. Jede Anforderung korrespondiert mit Funktionen, die in der Mikrocontroller-Plattform und ihren Entwicklungswerkzeugen enthalten sein muss.
Anbieter müssen dafür sorgen, dass ihre Produkte von zuverlässigen und effizienten Toolchains unterstützt werden. Im Fall von Microchip betrifft das die Unterstützung der PIC-, dsPIC-, AVR- und ARM-Architekturen. Da die AVR-MCU-Serie das Herzstück der Arduino-Entwicklungsumgebung bildet, können Ingenieure auch in dem benutzerfreundlichen Open-Source-Framework arbeiten und haben so Zugriff auf die zahlreichen online veröffentlichten Code-Module. Ein in der Arduino-Umgebung entwickeltes Design kann neben einem schnellen Proof of Concept auch Spielraum für die weiterführende benutzerdefinierte Entwicklung und zusätzliche Optimierungsmöglichkeiten mithilfe des Ökosystems von Microchip liefern.
Entwicklungsumgebung mit Projektmanagement
Im Zentrum der Toolchain liegt die integrierte Entwicklungsumgebung (IDE) MPLAB. Die neueste Version dieser beliebten IDE – MPLAB X – unterstützt die Mikrocontroller-Architekturen PIC, dsPIC und AVR und kann auf den Betriebssystemen Windows, Linux and OS X gehostet werden. Auf Basis der NetBeans-Umgebung von Oracle kann die IDE Tools von Microchip und Drittanbietern nahtlos integrieren. Die MPLAB X-IDE bietet Entwicklern nicht nur Zugriff auf einen Editor, C-Compiler, Make Tools oder Software-Debug-Front-Ends. Die IDE bietet auch Funktionen zur Unterstützung von umfassendem Projektmanagement und erweiterter Codeanalyse durch visuelle Aufrufdiagramme.
In Form der Baumstruktur von Funktionsaufrufen, die eine Anwendung ausführen kann, verdeutlichen diese Diagramme Abhängigkeiten. In Kombination mit einem geeigneten hardware-unterstützten Debugger stellt die IDE konfigurierbare Überwachungsfenster zur Verfügung, mit denen sich leichter nachvollziehen lässt, wie sich Variablen in Echtzeit ändern. Um Benutzern zu helfen, sich mit Sprachfeatures vertraut zu machen und die Zeit beim Tippen zu reduzieren, verfügt der funktionsreiche Editor auch über Codevervollständigung und Hyperlink-Navigation.
Ein wichtiger Aspekt bei der Entwicklung von Embedded-Systemen ist die Anpassung des Codes an das Zielsystem. Microchip hat zahlreiche Mikrocontroller-Varianten im Angebot. Produktentwickler können problemlos einen Chip auswählen, der genau auf die jeweiligen Speicher- und I/O-Anforderungen abgestimmt ist. Wenn sich während der Softwareentwicklung her-ausstellt, dass die Anwendung mehr Code oder Daten benötigt, ist der Wechsel zu einer größeren MCU in der Regel einfach. Im Umkehrschluss ist es ebenso möglich auf eine günstigere MCU mit kleinerem I/O-Footprint umzusteigen, wenn es am Ende des Projekts ungenutzte Peripherieelemente oder überschüssige Speicherkapazität gibt. Bisher waren solche Änderungen sehr zeitaufwendig, weil für die Entwicklung von Embedded-Software detaillierte Modifikationen an den Header-Dateien und am Startcode für die MCU-Einrichtung erforderlich waren.
Anpassungsfähige Pin-Belegung
Viele der Mikrocontroller von Microchip ermöglichen die Zuordnung verschiedener Funktionen zu den I/O-Pins – ein Ansatz, der Systemdesignern ein hohes Maß an Flexibilität bietet. Die Nachverfolgung dieser Änderungen mithilfe konventioneller Tools ist zeitaufwendig und fehleranfällig. Als Teil der MPLAB X-IDE wird der MPLAB- Code-Configurator (MCC) bereitgestellt. Dieser vereinfacht den Prozess der MCU-Einrichtung für software-gesteuerte Applikationen erheblich. Er bietet dem Benutzer grafische Ansichten der Zielkonfiguration und der für die Ziel-MCU verfügbaren Optionen. Außerdem zeigt das Tool, welche Funktion mit welchem Kontakt verknüpft ist, und generiert eine Warnung, wenn zwei oder mehr Peripherieelemente dem gleichen Kontakt zugeordnet sind.
Sobald die Konfiguration korrigiert wurde, generiert der Code-Configurator den Bootloader und unterstützende Dateien. Mit diesem Code-Grundgerüst kann die Anwendungsentwicklung in der Programmiersprache C in der MPLAB X-IDE beginnen. Für MCUs mit komplexen Peripherien wie USB- und Netzwerkschnittstellen kann die MCC nicht nur Konfigurationsdateien und Bootloader erstellen, sondern auch Kommunikationsstapel, die High-Level-Zugriffsrechte auf die Paketverarbeitung gewähren.
Ein weiteres wichtiges Element neben der zentralen Toolchain aus C-Compiler, Bearbeitung und Make-Environment in der MPLAB X-IDE ist der Debugger. Das Ökosystem von Microchip umfasst eine große Auswahl von Debugger-Optionen, die Entwicklern Informationen zum internen Zustand des Ziels liefern und die Möglichkeit bieten, die fein abgestimmten Laufzeituntersuchungen durchzuführen, die zur Identifizierung von Problemen im Echtzeit-Steuerungscode erforderlich sind.
Die einfachste Option ist der MPLAB Snap, ein sehr günstiger, USB-basierter Debug-Test für PIC- oder AVR-MCUs und dsPIC-Digitalsignal-Controller. Er umfasst sowohl einfache Hardware-Breakpoints als auch Unterstützung für komplexere Software-Breakpoints, um die Ausführung zu stoppen, wenn der Code eine bestimmte Phase erreicht oder auf einen programmierten Speicherort zugreift. Mehrere Debugger wie Atmel ICE und Power-Debugger bieten Zugriff auf die On-Chip-Debug-Einheiten, über die viele AVR- und SAM-MCUs verfügen. Einige MCU-Implementierungen können Breakpoints als Watchpoints einrichten, sodass der Entwickler in Echtzeit sehen kann, wie Speicherorte durch Steuerungscode aktualisiert werden, ohne das Zielbauteil zu stoppen und erneut zu starten. Atmel ICE und der Power-Debugger bieten zudem eine Programmverfolgung in Echtzeit.
Evaluierungsboards statt indiviueller Prototypen
Der In-Circuit-Debugger/-Programmierer MPLAB ICD 4 bietet allerlei Funktionen für PIC-, dsPIC- und ARM-Architekturen, die zahlreichen Debugging-Anforderungen mit komplexen Hardware-Breakpoints gerecht werden. Der In-Circuit-Emulator MPLAB REAL ICE geht noch weiter und verfügt über erweiterte Features wie Datenerfassung, Logik-Trigger und beschleunigtes Debugging. Der MPLAB REAL ICE und der MPLAB ICD 4 unterstützen Übertragungsraten die hoch genug sind, dass sie als Programmiergeräte in einer Produktionsumgebung eingesetzt werden können. Eine Debug-Fähigkeit ist auch ein wesentliches Attribut der Xplained-Evaluierungs- und Prototyping-Boards. Für Boards wie diese unterstützt das Ökosystem von Microchip nicht nur die Integration von Code in die MCU, sondern bietet auch eine große Auswahl unterstützender Hardware, die den Prozess vom Designkonzept bis zur Produktionsfreigabe optimieren. Traditionell mussten Designer von Embedded-Systemen vor dem Testen des Codes einen Prototypen entwickeln und anfertigen lassen, was Projekte enorm verzögert hat. Mit Evaluierungs- und Prototyping-Boards gehören diese Verzögerungen der Vergangenheit an.
Die Boards der Xplained-Baureihe (Bild oben) erfüllen einen doppelten Zweck. Jedes integriert ein repräsentatives Mitglied der AVR- und ARM-basierten MCUs aus dem Portfolio von Microchip und fungiert als günstiges, benutzerfreundliches Evaluierungskit, das die Funktionen und Fähigkeiten der Plattform demonstriert. Durch zusätzliche Erweiterungsboards für das Xplained-Format können Entwickler bei bestimmten Applikationen schnell von der Evaluierung zum Prototyping übergehen. Ein Beispiel dafür ist der ATBNO0550-XPRO mit einem neunachsigen Kippsensor von Bosch sowie einer RGB-LED, die visuelles Feedback zur Softwareaktivität liefert. Wenn ein Benutzer das Modul beispielsweise neigt, wird die Farbe der LED durch die Software geändert, um anzuzeigen, wie das System die geänderte Ausrichtung wahrnimmt.
Sicher ist sicher
Für die Arbeit an sicherheitskritischen Systemen bietet das CryptoAuthentication XPRO-Kit Zugriff auf die Crypto-Controller-Funktion des ATECC108A und vergleichbare Bauteile (Bild 1). Diese stellen sicher, dass andere Zubehörteile und Systeme, mit denen das Modul kommuniziert, nicht geklont oder manipuliert wurden. Funktionen wie Kryptografie und Networking, die mithilfe von Wi-Fi- und Ethernet-Kits im Portfolio von Microchip getestet werden können, sind oft komplex. Deshalb ist jedes Xplained-Board mit einer umfassenden Auswahl an Musterprojekten und Codetreibern ausgestattet.
Ein entscheidender Vorteil der MPLAB X-IDE ist, dass der Entwickler unabhängig von der Zugriffsebene, die der Hardware-unterstützte Debugger bietet, jede Codeänderung per einfachem Knopfdruck testen kann. Das Drücken der Tasten Run, Program oder Debug Run startet den entsprechenden Vorgang für das Ziel. Änderungen an Quelldateien werden geprüft und geänderte Dateien werden neu kompiliert und verknüpft, bevor die resultierende Binärabbildung zum Ziel übertragen wird. Sobald der Code auf dem Ziel platziert wurde, initiiert die MPLAB X-IDE entweder eine Debug-Sitzung oder eine direkte Ausführung des programmierten Abbildes.
Für Entwickler, die an IoT-Projekten (Internet of Things) arbeiten, bietet das Ökosystem von Microchip die Curiosity Development Boards, die für die PIC-MCUs von Microchip entwickelt wurden. Jedes Board ist auf andere Peripherieelemente ausgerichtet – von Kryptografieunterstützung bis hin zu USB-2.0-OTG-Schnittstellen. Eine Erweiterung ist mithilfe der Click-Boards von MikroElektronika möglich (Bild 1). Über 300 verschiedene I/O-Module nutzen das Click-Format, die den Zugriff auf Bluetooth und andere drahtlose Netzwerkschnittstellen sowie 3D-Bewegungssensoren, Motorsteuerungen und hochauflösende analoge I/Os ermöglichen. Mit diesem Format ist zudem eine einfache Prototypenentwicklung benutzerdefinierter I/O-Module möglich: Das Rastermaß des MikroBus-Steckverbinders ist mit gängigen 100-mil-Steckplatinen kompatibel.
Anwendungsspezifische Entwicklungsboards
Neben den Baureihen Curiosity und Xplained umfasst das Ökosystem von Microchip eine Vielzahl an anwendungsorientierten Development-Boards, von denen viele die PICtail- oder MikroBus-Tochterplatinen-Steckverbinder unterstützen. Ein Beispiel ist der DM240312, der es ermöglicht, mit der PIC24FJ256DA210-MCU zu starten und Grafik- sowie Toucheingabe-Funktionen in das Zielsystem zu integrieren. Die MCU umfasst Funktionen zur Steuerung eines farbigen pixeladressierbaren LCDs und lässt sich an eine Vielzahl gängiger Displaymodule anbinden. Um die Benutzereingabe zu unterstützen, verfügt das Board über Touchpads und einen PICtail-Plus-Steckverbinder für Tochterplatinen sowie einen USB-Anschluss.
Vom Start der Evaluierung über die Prototypenerstellung bis hin zur Produktionsfreigabe – das umfangreiche Ökosystem, das in diesem Artikel beschrieben wird, bietet Ingenieuren eine Vielzahl an Tools, mit denen der Entwicklungsprozess erheblich beschleunigt werden kann. Das Ergebnis: bessere Embedded-Systemdesigns.