Schwerpunkte

Neuer Mikrocontroller von Espressif

WiFi für einen Dollar

11. Februar 2020, 14:33 Uhr   |  Von Stefan Tauschek


Fortsetzung des Artikels von Teil 2 .

Ultra-low-Power-Coprozessor mit RISC-V-Architektur

Der ULP-Coprozessor kann verwendet werden, um die Funktionen der CPU im normalen Arbeitsmodus zu erweitern oder im Ruhezustand, als Stammhirn quasi, die CPU rudimentär zu ersetzen. Der ULP-Coprozessor und der RTC-Speicher bleiben dabei im Tiefschlafmodus aktiv und so können Assembler-Programme für den ULP-Coprozessor, abgelegt im langsamen RTC-Speicher, im Tiefschlafmodus auf RTC-Ein-/Ausgänge, RTC-Peripherie, RTC-Timer und interne Sensoren zuzugreifen.

Stromaufnahme des neuen ESP32-S2 unter verschiedenen Betriebsbedingungen
© Espressif

Tabelle. Stromaufnahme des neuen ESP32-S2 unter verschiedenen Betriebsbedingungen.

Gegenüber dem ULP-Coprozessor des ESP32-DxWD [9] weist der ULP-Coprozessor im S2 einige wesentliche Änderungen auf. Er wurde im S2 mit einer RISC-V-Architektur implementiert, was nach Angaben von Espressif den deutlich größeren Befehlssatz »IMC Instruction Set« ermöglicht. Er verfügt über 32 Register mit 32 bit Breite sowie 32-bit-Multiplizierer und -Dividierer.

Letztlich ist natürlich entscheidend, welche Stromaufnahme durch das gesamte Power-Management des ICs realisierbar ist (Tabelle). Für die Stromaufnahme im Tiefschlafmodus gibt Espressif einen Wert von 7 µA an, dabei ist der Touch-Sensor mit einem Tastgrad von 1 % aktiv – zum Aufwecken. Der ESP32-DxWD dagegen zieht unter vergleichbaren Bedingungen 100 µA, insofern also eine erhebliche Reduktion der Stromaufnahme – und notwendige Voraussetzung, um das Versprechen batteriebetriebener Geräte einzulösen.

Erweiterte Sicherheitseigenschaften

Nachdem im April diesen Jahres Espressif durch Security-Analysten von der Möglichkeit der Software-Manipulation durch einen sogenannten Fault Injection Exploit unterrichtet wurde, entschied sich das Unternehmen zu einem offensiven Umgang mit der Problematik, ließ den ESP32-ROM-Bootcode und seine Secure-Boot-Eigenschaften umfangreich untersuchen, informierte Anwender und veröffentlichte Patches seines SDKs, um die Flash-Verschlüsselung bei aktiviertem Secure Boot jederzeit zu gewährleisten [10].

Fault Injection ist eine Methode, mit physikalischen Mitteln, z.B. mit speziellen Takt- oder Versorgungsspannungsfluktuationen, ein Prozessorsystem in einen undefinierten Zustand zu zwingen, um damit Sicherheitslücken zu öffnen, die es erlauben, eigenen Code auszuführen. Da diese Art des Hackens direkten Zugang zur Hardware erfordert, ist das Schadenspotenzial geringer als bei Exploits über das Internet, aber natürlich unangenehm für Hersteller und Nutzer, da Schwächen im Sicherheitskonzept zutage treten.

Im Falle der ESP32-CPU bestand durch den Fault-Injection-Angriff die Möglichkeit, die Verifikation des Secure Boot Digest beim Starten zu umgehen und eigenen Programmcode auszuführen. Die Abwehrmaßnahme bestand folglich darin, für eine lückenlose und kryptographisch »harte« Code-Verschlüsselung im Flash-Speicher zu sorgen und dies entsprechend in der Firmware umzusetzen.

Diese praktischen Erfahrungen sind natürlich auch in das Sicherheitskonzept des neuen ESP32-S2 eingeflossen: Speicherinhalte der externen Flash- und SRAM-Speicher können jetzt mit AES256-XTS verschlüsselt werden, die Schlüssel dafür finden Platz im 4 Kbit großen OTP-Speicher (One Time Programmable, in Form von eFuse realisiert) und sind nicht durch Softwarezugriffe erreichbar. Damit lässt sich nicht autorisiertes Lesen von Anwendungscode oder -daten verhindern.

Secure Boot basiert auf einer Hardwarewurzel der gesamten Sicherheitskette (Root of Trust) und stellt sicher, dass nur eine per RSA-PPS (Probabilistic Signature Scheme) signierte Firmware gebootet werden kann.

Ein HMAC-Modul (Keyed-Hash Message Authentication Code) kann für Anwendungssoftware nicht zugängliche MAC-Schlüssel verwenden, um damit SHA-HMAC-Signaturen zur Identitätsverifizierung oder andere Zwecke zu generieren.

Eine digitale Signatur-Peripherieeinheit schließlich kann für Anwendungssoftware nicht zugängliche sichere Schlüssel verwenden, um damit MAC-Signaturen zur Identitätsverifizierung vorzunehmen.

Entwicklungsumgebung mit CMake

Die ursprüngliche Entwicklungsumgebung für die Espressif-SoCs basierte auf einem GNU-Build-System und war zur Ausführung auf Linux-Rechnern vorgesehen. Unterstützt wurden CentOS-, Ubuntu- und Debian-Distributionen. Für Windows-Rechner war es notwendig, zunächst mit MSYS2 [11] eine Linux-Umgebung zu schaffen, um dann in dieser Shell die Softwareentwicklungen durchzuführen.

Mit der Version 4.0 des Espressif-SDKs [12] ist nun CMake [13] das Standard Build-System. Damit erübrigt sich für Windows-Anwender die Einrichtung einer Linux-Umgebung wie das erwähnte MSYS2 oder Cygwin. Unter Windows sind zur Einsatzbereitschaft noch Ninja und Python 2.7 notwendig, als Editor können Eclipse oder VSCode verwendet werden. Espressif bietet zudem eine Installationsdatei für Windows an, mit der sich die gesamte Entwicklungsumgebung einrichten lässt. Das ESP-IDF und andere Repositories lassen sich nun unter Windows etwas eleganter als früher mit der Git GUI verwalten, auch einzelne Teilgebiete eines Repositories können dabei ausgewählt werden.

Für den ESP32-S2 existierte im September 2019 ein erstes Beta-Repository [15], im Wesentlichen eine Umsetzung des bestehenden ESP-IDF-Repositories auf den neuen Prozessor. Funktionen wie etwa Antennendiversität, Laufzeitmessung oder USB OTG sind noch nicht realisiert, was mehr dem Beta-Zustand des neuen SoCs geschuldet sein dürfte als der Softwareentwicklung.

Entwicklungskit DevkitC von Espressif mit dem »Chip 7«, also dem ESP32-S2
© Espressif

Bild 4. Entwicklungskit DevkitC von Espressif mit dem »Chip 7«, also dem ESP32-S2.

Espressif hat die Serienverfügbarkeit des ESP32-S2 für den Jahreswechsel 2019/2020 angekündigt. Das in Bild 4 gezeigte Entwicklungsmodul ist mit der heute verfügbaren Interim SoC- Version (Aufdruck Chip 7.2.2) bestückt und unterstützt daher folglich weder USB OTG noch 802.11mc RTT. Etwas Geduld ist also notwendig, vermutlich werden aber mit der Serienverfügbarkeit auch neue Entwicklungsmodule vorgestellt und neue Anwendungen adressiert.

Und wie sieht es nun mit dem Shareholder Value von Espressif aus? Am 15. September 2019, also knapp zwei Monate nach ihrem Debüt, notiert die Aktie von Espressif bei 165 Yuan, umgerechnet etwa 23,30 US-Dollar. Ausgehend von den 9,10 US-Dollar beim Börsengang immerhin mehr als eine Verdoppelung in wenigen Wochen. Auch bei den Investoren scheint das Unternehmen also großen Zuspruch zu finden

Literatur

[1] Ann, T. S.: Message from the CEO. Espressif Systems, www.espressif.com/en/company/about-us/ceo-letter.

[2] Espressif Achieves the 100-Million Target for IoT Chip Shipments. Espressif Systems, Pressemitteilung, 2.1.2018, www.espressif.com/en/media_overview/news/espressif-achieves-100-million-target-iot-chip-shipments.

[3] ESP32: Dual core execution speedup. Espressif Systems, Tutorial, 16.5.2017, https://techtutorialsx.com/2017/05/16/esp32-dual-core-execution-speedup.

[4] Tensilica Customizable Processors. Cadence, https://ip.cadence.com/ipportfolio/tensilica-ip/xtensa-customizable#lx7-features.

[5] ESP-Touch. Espressif, www.espressif.com/en/products/software/esp-touch/resources.

[6] Kodera, T.: Adaptive antenna system by ESP32-PICO-D4 and its application to web radio system. HardwareX, April 2018, S. 91–99, www.sciencedirect.com/science/article/pii/S2468067217300871.

[7] Ibrahim, M.; et al.: Verification: Accuracy Evaluation of WiFi Fine Time Measurements on an Open Platform. www.winlab.rutgers.edu/~gruteser/papers/ftm_mobicom.pdf.

[8] Horn, B. K. P.: Indoor positioning using time of flight with respect to WiFi access points. Kapitel: Fine Time Measurement Round Trip Time. http://people.csail.mit.edu/bkph/ftmrtt.

[9] Tauschek, S.; Ahrens, M.: Ultra-Low-Power-Management des ESP32 für WiFi-IoT-Module nutzen. Elektronik Praxis, 1.8.2018, www.elektronikpraxis.vogel.de/ultra-low-power-management-des-esp32-fuer-wifi-iot-module-nutzen-a-738971.

[10] Espressif Security Advisory Concerning Fault Injection and Secure Boot (CVE-2019-15894). Espressif, 3.9.2019, www.espressif.com/en/news/Espressif_Security_Advisory_Concerning_Fault_Injection_and_Secure_Boot?position=1&list=gNTqHUaP8YyTcWRuS2yH10aP8iMk2TgEk0dmeSj7llw.

[11] MSYS2 installer. www.msys2.org.

[12] Espressif IoT Development Framework. Github, https://github.com/espressif/esp-idf/tree/release/v4.0.

[13] CMake is an open-source, cross-platform family of tools designed to build, test and package software. https://cmake.org.

[14] Schaefer, D.: Using CMake for the ESP32 with the Eclipse C/C++ IDE. CDT Doug, 2.7.2018, https://cdtdoug.ca/2018/07/02/cdt-for-esp32.html.

[15] Espressif IoT Development Framework. Github, https://github.com/espressif/esp-idf/tree/feature/esp32s2beta.

Der Autor

Stefan-Tauschek von Macnica
© macnica

Stefan Tauschek von Macnica.

Stefan Tauschek

studierte Nachrichtentechnik an der Fachhochschule München und arbeitete nach seinem Abschluss über mehrere Jahre in der Entwicklung von Multimediakomponenten, Videoverarbeitung und Streaming-Media-Verfahren. Heute ist er Applikationsingenieur und technischer Berater bei Macnica und unterstützt Kunden bei der Realisierung von Projekten aus dem Bereich Bildverarbeitung, Netzwerke und Industrieautomatisierung.

stefan.tauschek@macnica.com

Seite 3 von 3

1. WiFi für einen Dollar
2. Der neue Prozessorkern: Xtensa LX7
3. Ultra-low-Power-Coprozessor mit RISC-V-Architektur

Auf Facebook teilen Auf Twitter teilen Auf Linkedin teilen Via Mail teilen

Verwandte Artikel

MACNICA GmbH