Schnelles und sicheres Verbinden von Designs mit der Cloud über Amazon FreeRTOS

Von Jacob Beningo

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Der traditionelle Entwickler von eingebetteten Systemen arbeitet typischerweise auf Bare-Metal-Ebene bei nicht verbundenen Geräten, aber das IoT erfordert, dass Systeme eine Verbindung zum Internet herstellen. Dies erfordert, dass Entwickler von eingebetteten Systemen lernen, wie sie ihre Geräte anschließen und ein übergeordnetes Betriebssystem, wie beispielsweise ein Echtzeitbetriebssystem (RTOS), verwenden.

Anstatt bei Null anzufangen und alle Nuancen zu erlernen, die für eine sichere Verbindung eines Embedded-Systems mit dem Internet erforderlich sind, können Entwickler Amazon FreeRTOS verwenden. Dies ermöglicht es ihnen, ihre Geräte schnell und einfach mit Amazon Web Services (AWS) auf sichere Weise zu verbinden, was ihre Entwicklungsarbeit vereinfacht. Dieser Artikel beschreibt und demonstriert, wie Sie mit Amazon FreeRTOS beginnen können.

Eine Einführung in Amazon FreeRTOS

Amazon FreeRTOS ist ein RTOS, das im Kern der Open-Source-FreeRTOS-Kernel mit zusätzlichen Komponenten ist, die lokale und Cloud-Konnektivität, Sicherheit und OTA-Updates (Over-the-Air) ermöglichen. Der FreeRTOS-Kernel ist ein bekanntes RTOS, das es seit mehr als einem Jahrzehnt gibt und nützliche Funktionen wie:

  • Prioritätsbasierte Aufgabenplanung
  • Semaphoren
  • Mutexe
  • Nachrichtenwarteschlangen

Außerdem ist FreeRTOS unter der MIT-Softwarelizenz frei verfügbar.

Was Amazon FreeRTOS einzigartig und interessant für Embedded-Softwareentwickler macht, ist, dass es FreeRTOS Konnektivitätsbibliotheken und Sicherheit bietet. Anschließend wird alles in einem einzigen zusammenhängenden Framework zusammengefasst, das es Entwicklern ermöglicht, ihr Gerät sofort und sicher mit Cloud-Services zu verbinden.

Auswahl der Amazon FreeRTOS-Hardware

Der FreeRTOS-Kernel selbst arbeitet auf mehreren Dutzend verschiedenen Mikrocontroller-Architekturen. Derzeit wurde Amazon FreeRTOS im Rahmen des Amazon FreeRTOS Qualifizierungsprogramms vollständig getestet und auf vier verschiedenen Hardwareplattformen von Mikrocontroller-Anbietern integriert. Diese sind:

Bild des IoT-Moduls LPC54018 von NXP Semiconductors

Abbildung 1: Das IoT-Modul LPC54018 von NXP Semiconductors basiert auf einem Arm® Cortex®-M4 180 MHz Mikrocontroller mit 128 Mbit Macronix MX25L12835 Quad-SPI Flash-Speicher. Ein voll integriertes Wi-Fi-Modul für einen schnellen Einstieg in Amazon FreeRTOS. (Bildquelle: NXP Semiconductors)

Jedes dieser Entwicklungskits wurde vollständig mit Amazon FreeRTOS getestet, aber Entwickler haben möglicherweise einen bevorzugten Siliziumlieferanten. So unterstützt Amazon FreeRTOS beispielsweise auch OTA, aber dieser Support wird derzeit nur im Beta-Test für das Texas Instruments CC3220SF-LaunchXL angeboten (Abbildung 2). Dieses Board basiert auf einem Arm® Cortex®-M4 Mikrocontroller und verfügt über einen integrierten Temperatursensor, Beschleunigungssensor, drei LEDs und eine programmierbare Benutzertaste. Dieses Modul bietet eine vollständig integrierte Lösung für den Einstieg in Amazon FreeRTOS.

In Zukunft werden zweifellos auch die anderen Boards von OTA unterstützt, aber wenn dies gerade ein kritisches Designmerkmal ist, beginnen Sie mit der Texas Instruments-Lösung.

Bild von Texas Instruments' CC3220SF-LaunchXL

Abbildung 2: Der CC3220SF-LaunchXL von Texas Instruments ist eine voll integrierte Lösung für den Einstieg in Amazon FreeRTOS. Es unterstützt auch das Amazon FreeRTOS OTA Beta Demo-Beispiel. (Bildquelle: Texas Instruments)

Die meisten der Entwicklungs-Kits sind Einzelmodul-Kits, die Single-Board-Lösungen sind. Das Microchip Curiosity Development Kit erfordert jedoch, dass Entwickler zusätzliche Module wie Ethernet, ein Wi-Fi-Modul und einen USB-to-UART-Konverter erwerben.

Das Board basiert auf einem PIC32-Mikrocontroller, aber um ein voll funktionsfähiges Board zu erhalten, das mit Amazon FreeRTOS verwendet werden kann, muss ein Entwickler zusätzliche Komponenten erwerben. Die besten Komponenten, um ein voll funktionsfähiges Amazon FreeRTOS Beispiel zu erhalten, sind die folgenden MikroElektronika MIKROE Erweiterungsmodule:

Die fertig bestückte Platine erscheint dann wie in Abbildung 3 dargestellt. Ein Entwickler wäre bereit, die exemplarische Amazon RTOS-Anwendung auszuführen.

Bild des PIC32MZEF Curiosity Development Kit der Mikrochip-Technologie

Abbildung 3: Das Curiosity Development Kit PIC32MZEF von Microchip Technology bietet ein modulares Design, das es Entwicklern ermöglicht, die Komponenten, die sie für ihre Anwendung benötigen, auf ihrem Development Kit anzupassen. Das gezeigte Bild beinhaltet auch die MIKROE Wi-Fi und MIKROE USB to UART Tochterplatinen. (Bildquelle: Mikrochip-Technologie)

Amazon FreeRTOS mit der Cloud verbinden

Es ist einfach, Amazon FreeRTOS auf einem der im letzten Abschnitt beschriebenen Entwicklungs-Kits zum Laufen zu bringen. Jedes Entwicklungsboard verfügt über eine Demonstration, die bereit ist, mit einer Schritt-für-Schritt-Anleitung zur Durchführung dieser Demonstration. Zum Beispiel hat das Microchip-Board Anweisungen, die sich hier befinden.

Suchen Sie zunächst die passende Anleitung für den Einstieg in das Development Kit.

Als nächstes richten Sie die Hardware ein. Für die meisten Entwicklungskits ist die Hardware allumfassend, aber wenn die Microchip-Lösung ausgewählt wird, muss jede der Modulkarten dem Curiosity-Board hinzugefügt werden, und ein externes Programmierwerkzeug wie ein ICD4 muss angeschlossen werden.

Bild des Microchip PIC32MZEF Kuriositätentwicklungskits

Abbildung 4: Das PIC32MZEF Curiosity Development Kit wurde zusammengesetzt und mit einem ICD4-Programmierwerkzeug verbunden. Dieses Setup verwendet eine drahtgebundene Ethernet-Verbindung, um die Demonstration auszuführen. (Bildquelle: Amazon )

Sobald die Hardware eingerichtet ist, muss im nächsten Schritt die Entwicklungsumgebung installiert werden, in der das Amazon FreeRTOS-Beispiel kompiliert werden soll. Beispielsweise würden Entwickler, die Microchip verwenden, MPLAB X zusammen mit dem XC32-Compiler herunterladen.

Um Zugang zu den Amazon FreeRTOS-Beispielen zu erhalten, melden Sie sich bei AWS an und greifen Sie auf deren Konsole zu. AWS bietet eine 12-monatige kostenlose Testschicht an, die es Entwicklern ermöglicht, Zugang zu AWS, Amazon FreeRTOS und anderen Funktionen zu erhalten, die für die Entwicklung eines verbundenen Geräts nützlich sein könnten. Die Anmeldung für ein Konto kann hier vorgenommen werden. Sobald das Konto erstellt ist, rufen Sie die Amazon FreeRTOS-Seite auf, die eine Liste der Softwarekonfigurationen für Amazon FreeRTOS enthält. Diese Konfigurationen beinhalten Quelldateien für jedes Entwicklungs-Kit sowie einen Amazon FreeRTOS-Simulator. Laden Sie die vordefinierte Konfiguration, die zum Development Kit passt, herunter und importieren Sie sie in die Entwicklungsumgebung. So würde beispielsweise das entsprechende Curiosity-Board die vordefinierte "Connect to AWS IoT - Microchip configuration designed for the Curiosity PIC32MZEF" verwenden.

Bild der Amazon FreeRTOS Software-Konfigurationsseite

Abbildung 5: Die Amazon FreeRTOS Software-Konfigurationsseite enthält mehrere vordefinierte Softwarekonfigurationen für verschiedene Entwicklungskits und verschiedene Anwendungen. Verwenden Sie diese vordefinierten Konfigurationen, um eine Demo-Anwendung mit AWS zu verbinden und die Entwicklung zu beschleunigen. (Bildquelle: Amazon)

Sobald Amazon FreeRTOS heruntergeladen wurde, sollten Entwickler zu ihrer AWS-Konsole zurückkehren und auf die Schaltfläche Einstellungen klicken. Unter Einstellungen stellen sie fest, dass ihnen ein IoT-Endpunkt zugewiesen ist, wie z.B.:

<1234567890123>.iot.<us-east-1>.amazonaws.com.

Diese wichtige Nummer ermöglicht es dem IoT-Gerät, sich mit dem AWS zu verbinden. Ein Entwickler würde dann aws_clientcredential.h im Beispielprojekt finden und die folgenden Eigenschaften setzen:

  • clientcredentialMQTTT_BROKER_ENDPOINT
  • clientcredentialIOT_THING_NAME
  • clientcredentialWIFI_SSID
  • clientcredentialWIFI_PASSWORD
  • clientcredentialWIFI_SECURITY

An dieser Stelle muss ein Entwickler nur noch seinen Geräteschlüssel konfigurieren. Um einen Schlüssel zu generieren, gehen Sie in die AWS-Konsole und wählen Sie Secure -> Certificates. Es gibt die Möglichkeit, ein Schnellzertifikat zu erstellen. Wenn Sie auf diese Option klicken, wird ein Zertifikat ähnlich dem in Abbildung 6 gezeigten erzeugt. Der private Schlüssel und das Zertifikat werden benötigt, um eine Schlüsseldatei für das eingebettete Gerät zu erzeugen.

Bild der Erstellung eines Zertifikats und dann eines Schlüssels

Abbildung 6: Erstellen eines Zertifikats und dann eines Schlüssels erfordert, dass Entwickler ihr Zertifikat aus AWS heraus erstellen. Die drei Dateien, die erstellt werden, sind ein Zertifikat, ein öffentlicher Schlüssel und ein privater Schlüssel. (Bildquelle: Amazon)

Der Schlüsselgenerator befindet sich in:

Copy<BASE_FOLDER>\demos\common\devmode_key_provisioning\CertificateConfigurationTool\CertificateConfigurator.htm

Wenn Sie die HTML-Datei in einen Browser laden, wird eine ähnliche Oberfläche wie in Abbildung 7 gezeigt.

Mit Hilfe der von der AWS-Konsole erzeugten Zertifikats- und privaten Schlüsseldateien können Entwickler dann ihre Konfigurationsdatei aws_clientcredential_key.h erzeugen. Sobald dies geschehen ist, kompilieren Sie das Projekt und stellen Sie die Software auf dem Embedded Target bereit.

Abbild des Zertifikats und des privaten Schlüssels, die in AWS generiert werden.

Abbildung 7: Das Zertifikat und der private Schlüssel, die in AWS generiert werden, werden verwendet, um das Schlüsselkonfigurationsmodul zu erstellen, das in den Mikrocontroller geladen und verwendet wird, um eine sichere Verbindung zu AWS herzustellen. (Bildquelle: Amazon)

Der einzige verbleibende Schritt ist, dass ein Entwickler die MQTT-Nachrichten seiner Geräte abonniert. Dies kann innerhalb von AWS geschehen, indem Sie das Testmenü aufrufen und sich dann anmelden: freertos/demos/echo

An dieser Stelle sollte ein Entwickler sehen, dass MQTT-Nachrichten sicher bei seinem AWS ankommen.

Tipps und Tricks zur Nutzung von Amazon FreeRTOS

Die Inbetriebnahme von FreeRTOS ist einfach und unkompliziert für einen Einsteiger. Trotz seiner Einfachheit gibt es einige Tipps und Tricks, die Entwickler beim Start mit Amazon FreeRTOS beachten sollten. Hierzu zählen die folgenden Kategorien:

  • Bewerten Sie während der Entwurfsphase die Kosten, die mit der Nutzung von AWS verbunden sind, indem Sie die folgende Webseite besuchen: https://aws.amazon.com/iot-device-management/pricing/
  • Nutzen Sie während der Entwicklung die 12-monatige kostenlose Testphase für AWS, um das Embedded-Produkt einzurichten und zu konfigurieren.
  • Beginnen Sie mit einem vorkonfigurierten Beispiel, anstatt zu versuchen, eines von Grund auf neu zu konfigurieren.
  • Wenn möglich, bestellen Sie ein komplett montiertes Entwicklungs-Kit, das so konzipiert ist, dass es sofort nach dem Auspacken mit Amazon FreeRTOS funktioniert.
  • Vergessen Sie nicht, dass FreeRTOS ein Open-Source-RTOS ist und nicht sicherheitszertifiziert ist.
  • Nehmen Sie sich die Zeit, die AWS 10 Minuten Tutorials durchzuarbeiten, die eine gute Grundlage für die effektive Nutzung von AWS bieten.
  • Erwägen Sie die Verwendung der OTA-Update-Funktion (Over-the-Air) von Amazon FreeRTOS.

Fazit

Die in Amazon FreeRTOS integrierten Funktionen können Embedded-Entwicklern eine Möglichkeit bieten, ihre Systeme einfach mit dem Internet zu verbinden. Amazon FreeRTOS selbst ist kostenlos, und Entwickler können leicht damit beginnen, indem sie ein kostengünstiges Entwicklungs-Kit kaufen und die vorhandenen Beispiele durchgehen, um festzustellen, ob Amazon FreeRTOS ihren Designanforderungen entspricht oder nicht.

 

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Jacob Beningo

Jacob Beningo ist ein Berater für eingebettete Software, der derzeit mit Kunden in mehr als einem Dutzend Ländern zusammenarbeitet, um ihr Unternehmen durch die Verbesserung von Produktqualität, Kosten und Markteinführungszeit dramatisch zu transformieren. Er hat mehr als 200 Artikel über Entwicklungstechniken für eingebettete Software veröffentlicht, ist ein gefragter Redner und technischer Trainer und verfügt über drei Abschlüsse, darunter einen Masters of Engineering der University of Michigan. Bei Interesse können Sie ihn unter jacob@beningo.com kontaktieren oder besuchen Sie seine Website www.beningo.com und melden Sie sich für seinen monatlichen Embedded Bytes Newsletter an.

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key