Da das industrielle IoT (IIoT) immer mehr an Schwung gewinnt, wächst auch die Palette der speziell dafür entwickelten Anwendungen.
Zu Beginn eines neuen Designs ist es für Entwickler oftmals die einfachste Wahl, sich für eine 32-Bit-MCU mit zahlreichen Funktionen zu entscheiden, da sie alle Anforderungen abdeckt, die das Design jemals erfordern könnte. Mit fortschreitendem Entwicklungsprozess lässt sich diese anfängliche Entscheidung hinsichtlich eines hohen Stromverbrauchs und der damit verkürzten Batterielebensdauer oder einfach aus Sicht der Stückliste überprüfen.
Eckdaten
Obwohl eine 32-bit-MCU oftmals eine richtige Wahl beim Design ist, so ist es nicht immer die beste. Gerade im Zeitalter des IoT spielt die Batterielebensdauer eine wichtige Rolle und somit ist eine 8-Bit-MCU die bessere Wahl.
Bei der Wahl der richtigen MCU müssen Entwickler verschiedene Faktoren berücksichtigen. So ermöglicht etwa die Wahl eines Bausteins, der dieselbe Architektur wie frühere Designs aufweist, einen einfachen Zugang zu den erforderlichen Entwicklungstools, denn die Anwender sind bereits mit der Architektur vertraut. Dies ist ein vernünftiger erster Schritt. Die Wahl erscheint schwieriger, wenn die Marketingspezifikation des neuen Designs widersprüchliche Aspekte des Designs aufdeckt. Dementsprechend lässt sich die Kernapplikation, wie das unregelmäßige Auslesen eines Sensors, auch mit einer 8-Bit-MCU erzielen. Jedoch erfordert das Design eine umfangreiche HMI-LCD-Schnittstelle, um mit anderen Produkten auf dem Markt konkurrenzfähig zu sein. Dieses Szenario besteht auch dann, wenn beispielsweise Entwickler einen älteren 8-Bit-basierenden Industriesensor mit einem LCD-Panel zu einem intelligenten und intuitiven HMI-Modell aufrüsten sollen.
Um diese Designkriterien zu erfüllen, lässt sich beispielsweise eine 8-Bit-MCU verwenden, die die Hauptanwendung ausführt. Hinzu kommt ein eigenständiges LCD-Modul, das lediglich eine UART-Kommunikation mit dem Hostprozessor benötigt. Auf diese Weise stellt das LC-Display keine großen Anforderungen hinsichtlich Ressourcen an die Host-MCU. Die Kommunikation mit dem LCD erfolgt über eine UART-Schnittstelle, die die Anzeige steuert. Alle statischen Bilder, Schriftarten und speziellen Grafiken im MIMIC-Stil sind im LCD-Modul enthalten.
Aufbau des LCD-Moduls mit einer 8-Bit-MCU
Im Clicker 2 Board enthalten ist der 8-Bit-Mikrocontroller PIC18F87J50 von Microchip, außerdem ist es mit zwei Mikro-BUS-Buchsen zum Hinzufügen von Clickboards ausgestattet. Der von Mikro-Elektronika entwickelte Mikro-BUS gilt als eine Standardschnittstelle für Zubehör und Peripherie. In diesem Beispiel kommen ein 4D-Display-Clickboard, das Mikro-Elektronika gemeinsam mit dem Displayhersteller 4D Systems entwickelte, sowie ein Time-of-Flight-Clickboard Light Ranger 4 von Mikro-Elektronika zum Einsatz.
Als Display setzen die Entwickler auf das 4,3″-Modul gen4-uLCD-43DCT-CLB mit 480 × 272 Pixel von 4D Systems. Dieses realitätsgetreue RGB-65K-Display umfasst einen Diablo-16-Grafikprozessor, einen 32 kB großen Flash-Speicher für Benutzerdaten, einen integrierten Anschluss für Mikro-SD-Speicherkarten zum Hosten von Multimediainhalten und eine Betriebsspannung von 4 bis 5,5 VDC.
Das Clickboard Light Ranger 4 besteht aus einem VL53L1X-Modul von ST Microelectronics, das einen Laser der Klasse 1 enthält, der im unsichtbaren 940-nm-Infrarotspektrum arbeitet. Hinzu kommt ein IR-Empfangssensor. Über eine I2C-Schnittstelle steuert das Gesamtsystem das Modul und ermöglicht eine berührungslose Messung zwischen 40 und 4000 mm vom Emitter aus. Die Messung lässt sich durch den Vergleich der Modulationsverschiebung zwischen dem ausgesendeten und dem reflektierten Signal ermitteln. Allerdings hängen sowohl Genauigkeit als auch Erfassungsbereich stark von der Größe der Materialeigenschaften des zu messenden Objekts ab.
Für dieses Prototypbeispiel kommt die 8-Bit-MCU PIC18FJ von Microchip auf dem Clicker 2 Board zum Einsatz, um Messdaten vom Clickboard Light Ranger 4 auszulesen, das an den Mikro-BUS 2 angeschlossen ist. Auf einem 4D-Display zeigt das System dann die gesammelten Daten. Das Display ist über Port 1 des Mikro-BUS mit dem Clicker 2 Board verbunden. Bild 3 beschreibt den Aufbau der drei Boards.
Im Anwendungsbeispiel verwendeten die Entwickler den Compiler Mikro-C Pro sowie die integrierte Entwicklungsumgebung zum Schreiben, Kompilieren und Debuggen des Codes zusammen mit dem Mikro-Bootloader zum Flashen der MCU. Der erste Schritt bestand darin, die Softwaretools zu testen und sicherzustellen, dass die MCU flashbar ist. Ein einfaches Demoprogramm, das abwechselnd die beiden Benutzer-LEDs auf dem MCU-Board ein- und ausschaltet, ist auf der Clicker-2-Produktseite zusammen mit der entsprechenden Hex-Datei zu finden. Diese lässt sich über den Mikro-Bootloader hochladen. Sobald dies überprüft ist, kann die Entwicklung des Beispielquellcodes beginnen (Bild 4). Bibliotheken sind für die Clickboards Light Ranger 4 und 4D Display Click erhältlich, die beide in den Libstock Manager von Mikro-Elektronika integriert sind.
Die Benutzeroberfläche des LCD-Moduls designen
Die nächste Stufe des Entwicklungsprozesses umfasst das Design der Benutzeroberfläche für diese Beispielanwendung. 4D Systems bietet mit der 4D Workshop4 IDE eine visuelle Entwicklungsumgebung für das gesamte Displayangebot und bietet verschiedene Möglichkeiten, um die Anzeige für eine Anwendung zu entwickeln. In diesem Beispiel kommt der Visi-Genie-Designmodus zum Einsatz. Er bietet einen visuellen WYSIWYG-Drag-and-drop-Ansatz (What You See Is What You Get; Echtbilddarstellung), mit dem der Entwickler Grafikobjekte auf dem Display platzieren kann. Mit diesem Ansatz kann er die gewünschten Grafikobjekte für die Anwendung schnell layouten, bevor er jedes Objekt mit dem zugrundeliegenden Anwendungscode verknüpft.
4D Workshop4 kommt mit einer Reihe von Standard-Messobjekten, wovon einige wie ein analoges Messgerät arbeiten, während andere Winkel-, Kreis-, Thermometer-, Tank-, Spektrum- und Oszilloskop-Objekte enthalten. Anwender können auch selbstdefinierte grafische Objekte erstellen und jedes Objekt kann auch mehr als einen visuellen Stil aufweisen. Die Messgeräte lassen sich auf dem Bildschirm verschieben und Anwender können je nach Anwendung noch weitere Objekte hinzufügen wie etwa Schaltflächen, Kontrollknöpfe, Schalter, Ziffern, Text und Grundformen. Sobald das gewünschte GUI-Layout vorliegt, lassen sich die Eigenschaften jedes Objekts konfigurieren. Die Objekteigenschaften variieren je nach Typ, umfassen jedoch Größe, Farbe, Objekttyp, zulässige Wertebereiche, Max./Min.-Werte und die Rahmenparameter des Objekts, wie beispielsweise Beschriftungstext, Schriftart und Schriftgröße.
Dieses Beispiel umfasst eine kreisförmige Messanzeige und eine Sieben-Segment-Anzeige, die beide die gemessene Entfernung anzeigen. Die visuelle IDE 4D Workshop4 und die Anwendungsschnittstelle sind in Bild 5 dargestellt. Ein gen4-Programmieradapter dient zum Anschluss des Displaymoduls an 4D Workshop4, um die erforderliche Firmware herunterzuladen. Bilddateien lassen sich auch auf der MicroSD speichern (Bild 6). Die letzte Phase des Prozesses besteht darin, die Hex-Datei mit dem Dienstprogramm Mikro-Bootloader vom Compiler-Ausgang zur MCU zu übertragen (Bild 7).
Die endgültige Anwendung ist in Bild 8 dargestellt. In der Mitte des Displays befindet sich die Messanzeige und darüber die Sieben-Segment-Anzeige mit dem gemessenen Bereich.
Eine intuitive und umfassende HMI muss die Ressourcen der Host-MCU nicht unbedingt stark belasten. Werden Display- und Grafikfunktionen auf ein intelligentes Displaymodul ausgelagert, können Entwickler von Embedded-Systemen eine MCU auswählen, die für die primäre Aufgabe ausreichend ist, anstatt einen überspezifizierten Baustein einzusetzen. In unserem Beispiel wird eine 8-Bit- anstelle einer 32-Bit-MCU verwendet. Somit lassen sich Stückkosten einsparen, während Anwender beim Endprodukt differenzieren können. Für bestehende Produktlinien bietet dies auch die Möglichkeit Kunden einen Upgrade-Pfad anzubieten, den Kundenstamm zu pflegen und den Produktlebenszyklus zu verlängern.
Markku Riihonen
(prm)