Mikrocontroller-Design-Tipps ESP32 für Industrie-4.0- Applikationen

Projekte einfach umsetzen mit Tipps für das Mikrocontroller-Design.
Von Profis für Profis: Tipps für das Mikrocontroller-Design.

Der Mikrocontroller ESP32 von Espressif eignet sich insbesondere für Industrie-4.0-Applikationen. Ein Software Development Kit und eine Entwicklungsumgebung gibt es passend dazu, sodass sich Projekte einfach umsetzen lassen.

Mit dem ESP32 erhält der Entwickler eine faire Chance im Wettbewerb gegenüber anderen Mikrocontrollen. Denn Maxim, Texas Instruments, Microchip, Nordic Semiconductor, NXP, Silicon Labs, ST und Atmel bieten alle wettbewerbsfähige Bausteine an. Einige sind bekannter als andere, manche bieten eine kostenlose IDE (Integrated Development Environment), andere wiederum sehr teure SDKs (Software Development Kit) und die Mehrzahl der Wettbewerber verfügt über eine Art RTOS, also ein Echtzeit-Betriebssystem.

Die Entscheidung des Herstellers Espressif, sein SDK und die gesamte Entwicklungsumgebung öffentlich verfügbar zu machen, war sicher richtig in diesem Kontext und erlaubt anderen Marktteilnehmern wie etwa PlatformIO,

ihre Framework-Entwicklungen ebenfalls im Open-Source-Sektor zu platzieren.
Espressif entschied sich für FreeRTOS als Echtzeit-Betriebssystem. Das erlaubte es dem Unternehmen, das gesamte Framework allen öffentlich zugänglich zu machen. Als Folge kann jeder Interessierte lernen, wie man eingebettete Systeme mit Espressif-SoCs entwickelt. Er erhält zudem alle notwendigen Informationen zur Verfügung gestellt, die dem Entwickler nur über den Source-Code vermittelt werden können.

Das ESP32-Ökosystem im Überblick

Hier folgen nun mehr Details zum angesprochenen ESP32 und seiner zugehörigen Entwicklungs-/Software-Umgebung:

  • ESP32-Mikroprozessor: Die Basis bildet ein Dual-Core-Tensilica-Mi¬kroprozessor-Core mit 240 MHz; hinzu kommen 520 kByte RAM, RTC, ULP, 34 GPIOs, Netzwerk-Connec¬tivity und zahlreiche Schnittstellen wie UART, I²C, I²S, SPI und CAN-Bus, ADCs und DACs sowie ein externes SPI-EEPROM mit 1 bis 16 MByte Speicherkapazität.
  • ESP-IDF: Espressif hat große Anstrengungen unternommen, um ein SDK auf die Beine zu stellen, das die meisten – wenn nicht alle – Fähigkeiten der Hardware umsetzt.
  • Netzwerkstandards: WiFi/BT/Ethernet-Connectivity, lwIP TCP/IP-Stack.
  • Sicherheit & Kryptographie: Befehle zur Verschlüsselung (AES-128,192, 256 und SHA-1,256,384,512), Netzwerk-Datenverschlüsselung, Flash-Verschlüsselung, Secure Boot und JTAG-Sperrung. Des Weiteren existiert eine mbed-TLS-Bibliothek (TLS/SSL-Implementierung), eine Open¬SSL-API und Libsodium.
  • Cloud Ready: Getestete Komponenten für AWS-IoT und Azure-IoT.
  • FreeRTOS: Vollständige Implementierung einschließlich Tasks und Echtzeit Task Scheduler, Timer, Queues, Interrupt Handling, Critical Sections und Events.
  • C++-11/14-GCC-Compiler: C++ 11 und höher bietet viele Vorteile gegenüber C++ 98; unter anderem verbesserte Produktivität, Geschwindigkeit, Stabilität, sicheren Code und Portierbarkeit. Hinzu kommen Smart Pointer, verbesserte Collections, Lambdas und Threads, die jeder nutzen sollte.

Eine technische Analyse

Espressif unternahm große Anstrengungen, um Anwendungen mit dem SDK ESP-IDF so einfach wie möglich realisieren zu können. Innerhalb des SDKs gibt es APIs zur Steuerung der Hardware, Driver, pthread16-kompatible APIs und C++ stdlib. Sogar glob17, regex, tar und miniz werden unterstützt. All dies macht die Programmierung eines ESP32- Systems relativ einfach, und auch die Portierung existierender Software wird damit erheblich beschleunigt.

Das ESP-IDF enthält auch ein paar hilfreiche Komponenten, die bei der Entwicklung robuster Anwendungen von Nutzen sind, darunter ein SPI-Dateisystem mit Unterstützung sowohl von FAT (File Allocation Table) als auch SPIFFS (Serial Peripheral Interface Flash File System). Mit dem Dateisystem lassen sich Log- und Datenfiles speichern, wobei das SPI-EEPROM einen Wear-Leveling-Layer beinhaltet, der dabei hilft, die Anzahl möglicher Schreib-operationen zu vergrößern.

Parameter lassen sich dabei separat im NVS-Speicher sichern, wodurch sie durch Formatierung des Dateisystems nicht beeinträchtigt werden. Und sollte die Größe des SPI-Flash-Speichers nicht reichen, kann auch die SD-Card-Bibliothek zur Einbindung externen Speichers genutzt werden.