System-on-Chip-Anwendungen PSoC 6 – ein Kraftpaket für das IoT

EIn Spagat zwishen Geschwindigkeit und Leistungsbedarf mit der PSoC 6-Architektur.
EIn Spagat zwishen Geschwindigkeit und Leistungsbedarf mit der PSoC-6-Architektur.

Da es sich um ein »besonders heißes« Thema handelt, überrascht es nicht, dass das Internet der Dinge auch im Fokus des neuen PSoC-Sortiments aus dem Hause Cypress steht.

Die Eignung für IoT-Applikationen bedeutet nicht, dass das PSoC6 nicht auch für andere Rollen geeignet wäre. Aber es gibt einige wichtige Anpassungen, die auf IoT-Endpunkt-Anwendungen abzielen, und die es von früheren Versionen abgrenzen werden. Aufgrund der Flexibilität der PSoC-Familie werden diese Spezialisierungen jedoch mit Sicherheit auch auf anderen Gebieten zur Anwendung kommen.

IoT-Leistung betrifft mehrere Aspekte

Leistung hat für IoT-Endpunkte zweierlei Bedeutungen:

  • Die erste betrifft die Leistung, die in Watt angegeben wird und signifikante Auswirkungen auf die Akkulebensdauer des Geräts hat.
  • Die zweite Definition betrifft die Rechenleistung, die in der CPU-Geschwindigkeit angegeben wird und die eine signifikante Auswirkung auf das Benutzererlebnis hat.

Diese Funktionen schließen sich in der Regel gegenseitig aus, und mehr CPU-Geschwindigkeit bedeutet in der Regel mehr Leistungsbedarf. Dies endet üblicherweise in einem Kompromiss zwischen Geschwindigkeit und Leistungsbedarf.

Eine moderne Methode, diesem Problem zu begegnen, ist das Hinzufügen einer kleineren CPU. Dies mag zwar auf den ersten Blick nicht einleuchten, ist aber in vielen Bereichen des CPU-Designs gängige Praxis. Ein geläufiges Beispiel wäre das neue Exynos 9 (Galaxy Note 8 usw.) von Samsung, das die neue »ARM big.little«-Architektur verwendet, die es der CPU ermöglicht, von CPUs mit hoher Rechenleistung auf CPUs mit niedriger Rechenleistung spontan zu wechseln, sobald dedizierte Aufgaben weniger Rechenleistung erfordern.

Die neue PSoC-6-Architektur zielt darauf ab, eine dritte Option anzubieten, womit der Spagat zwischen Geschwindigkeit und Leistungsbedarf gelingt. Der PSoC 62 verfügt dafür über einen ARM Cortex-M4 mitsamt Gleitkomma-Einheit und einen zweiten, rechenschwachen  »Low Power«-M0+-Core. Und eben dieser M0+-Core hat es in sich: Er ist der Rechnerkern im PSoC-4-Sortiment, der für einige Anwendungen für sich allein mehr als genug ist. Im Gegensatz zur »big.little«-Architektur sind beide Kerne parallel verfügbar und können sich so die Arbeitslast untereinander aufteilen. Das System kann, wie bei der »big.little«-Architektur, die CPU mit höherer Rechenleistung jedoch abschalten und auf die CPU mit niedrigerer Rechenleistung wechseln, wann immer Aufgaben mit weniger Rechenleistung anstehen. Durch die Implementierung der Architektur wird der PSoC 6 auf diese Weise zu einem wahren, asymmetrischen Mehrkernprozessor.

IoT-Sicherheit via Kryptografiemodul

Manche würden behaupten, die Sicherheit ist bis dato einer der größten Problembereiche beim IoT. Datendiebstahl ist auf dem Vormarsch, und kaum ein Monat vergeht, ohne dass eine große Firma wegen eines weiteren Verstoßes gegen die Datensicherheit in den Schlagzeilen steht. Aus diesen Gründen ist IoT-Sicherheit etwas, das definitiv verbessert werden könnte. Der Gedanke an eine intelligente Zahnbürste, die der Welt erzählt, dass wir nur 30 Sekunden und nicht eine ganze Minute Zähne putzen, klingt nicht beängstigend, aber IoT-Geräte sind nicht auf Zahnbürsten beschränkt. Wenn Ihr Gerät ein Mikrofon hätte, könnten die Dinge noch viel ernster werden!

In der Vergangenheit wurde vor allem am Set-Top-Box-Design gearbeitet, wo ein Großteil des Software- und Hardware-Designs sicherheitsrelevant ist und Möglichkeiten für Hackerangriffe verhindert. Verstöße kosten Millionen, und es wurde jede Anstrengung unternommen, um sicherzustellen, dass Gefährdungen selten waren. Die primäre Verteidigungsstrategie bestand darin, alles im Flash- und Arbeitsspeicher zu verschlüsseln – zu keinem Zeitpunkt sollten in einem modernen Design unverschlüsselte Daten zum Vorschein kommen. Wie man sich vorstellen kann, machte dies die CPUs zu diesem Zweck etwas individuell und geheim – entsprechend der Geheimhaltungsvereinbarung.

Geht man nun weiter ins Jahr 2017 und wirft einen Blick auf die PSoC-6-Architektur, so gibt es doch etliche Ähnlichkeiten zu den CPUs von früher. So zum Beispiel umfasst die Architektur der PSoC 61, 62 und 63 jeweils ein Kryptografiemodul, damit Code so gesichert wird, dass er ohne den richtigen Schlüssel nicht gelesen (oder gebootet) werden kann. Die CPU hat einmalige Sicherungen, sodass diese Funktion in den Chip »gebrannt« werden kann und einen Secure Boot erzwingt. Dies verhindert, dass das System gehackt und schädlicher Code ausgeführt wird.

Der Quad-SPI-Erweiterungs-Port ermöglicht den »Execute-in-place«-Vorgang, der ohne das Vorhandensein einer kryptografischen Engine jeden integrierten Sicherheitsmechanismus vollständig umgehen würde. Bei PSoC 62 und 63 wurde dies berücksichtigt, und es stehen Kryptografie-Beschleunigerkarten zur Verfügung, um sicherzustellen, dass sich »Execute-in-place«“ nicht auf die vertraute Umgebung oder Leistung auswirkt.

CY8CKIT-062-BLE-Kit (EAP-Kit im konkreten Fall)

Wie bei allen Cypress CY8CKITs, ist das CY8CKIT-062-BLE-Kit optisch ansprechend aufbereitet und wird mit einer magnetisch verschließbaren Aufbewahrungsbox geliefert, die mit mindestens vier Neodym-Magneten gesichert ist. Im Inneren des Kits befinden sich:

  • Anleitung/Schnellstartübersicht
  • USB-Kabel: Typ A auf Typ C
  • PSoC-BLE-dev-Platine (Versorgung über USB-C, Bild 1)
  • CY8CKIT-28-EPD: 2,7-Zoll-E-ink-Display (Bild 2)
  • CY5677: CySmart-BLE-4.2-Dongle (Bild 3)
  • Verschiedene Überbrückungskabel
Bilder: 3

EAP-Kit im konkreten Fall, Bilder 1-3

EAP-Kit im konkreten Fall, Bilder 1-3

Das neue PSoC-BLE-Kit verfügt sowohl über PMOD- und Arduino-Shield-Verbindungen, um eine zügige Prototypenerstellung zu ermöglichen. Ist dies nicht genug, so enthält es – genauso wie das PSoC-4-Kit (CY8CKIT-042-BLE) – alles für den Einstieg Erforderliche: darunter das Äquivalent des Spülbeckens – einen Bluetooth Dongle, damit man das Gerät korrekt debuggen kann. Ein Laptop hat möglicherweise Bluetooth, aber es ist sehr wahrscheinlich, dass dieser Rechner nicht BLE-kompatibel ist. Als Folge bietet Cypress ein bekanntes und fehlerfrei arbeitendes BLE-Gerät als Alternative an.

Allerdings muss man an dieser Stelle ehrlich sein und zugeben, dass der erwähnte PSOC-4-Kit weniger genutzt wurde als der mitgelieferte CY5677-CySmart-BLE-Dongle. Letzterer hat sich nämlich als ein sehr praktisches Debugging-Tool für alle BLE-Geräte erwiesen – und dies und nicht nur für Cypress-Geräte.

Bluetooth Low Energy – BLE

Eines gleich vorweg: BLE ist kompliziert und einfach zugleich. Es dreht sich alles um GATT-Profile (Generic Attribute Profile), die wie eine Datenbank dafür sorgen, wie die Daten an das Gerät und von selbigem übertragen werden sollen. Hält man sich an diese Profile, ist die Implementierung eines einfachen Herzfrequenzsensors in ein paar Stunden erledigt. Bewegt man sich außerhalb der Grenzen eines GATT-Profils, ist viel mehr Arbeit nötig. Wer mehr über BLE erfahren möchten: Das PSoC4-Kit ist mit ausgezeichneten Tutorials erschienen, und diese sind unverändert auch für die BLE-Aspekte von PSoC6 relevant.

Versorgung über USB-C

USB-C kann ein Sorgenkind sein, wenn es auf Kompatibilität, insbesondere PD (Power Delivery, Leistungsentfaltung) ankommt. Ohne zu sehr ins Detail zu gehen, es gibt sehr viele Konfigurationen und Normen, die für USB-C gelten: PD1, PD2 und nun PD3. Damit gilt es sich zuerst zu beschäftigen, bevor man zum Übertragen von Daten und zu den Anforderungen für Highspeed-Switching oder AUX-Modus kommt.

All dies läuft auf einen grundsoliden PD-Controller hinaus, und das Cypress-Kit wird geliefert mit einem CYPD3126. Dieser ist Teil der CCG3-Familie mit Power-Delivery-ICs, die jeweils vollständig ausgestattet sind – also auch PD3 und selbst Billboard-Support (AUX-Modus) zur Verfügung stellen.

PSoC ist speziell

PSoC an sich ist nicht nur ein Mikrocontroller, sondern auch ein FPGA/CPLD- und Analog-Front-End für den Boot-Vorgang. Darüber hinaus verfügt die PSoC6-Familie über Varianten, die alle Annehmlichkeiten von PSoC 4 und 5 unterstützen. Bei digitalen Designs beispielsweise kann dank UDB (interner FPGA) eine deutliche Einsparung der Bauteile erreicht werden. Die integrierte analoge Fabric indes macht das Gleiche für die analoge Domain. Es ist durchaus möglich, dass man bei vielen Designs nahezu keine andere Hardware benötigt.

Anschluss an die Netzspannung

Die im Kit integrierte Platine wird vorprogrammiert mit einer Demo geliefert. In dieser sind sowohl Touch- als auch E-Ink aktiviert, und es wird – wie bei allen Cypress Kits – der gesamte Quellcode zur Verfügung gestellt.

Nach Installation der Kit-Dateien und des neuesten PSoC Creator kann der Anwender die Demo öffnen und einen schnellen Blick unter die Haube werfen. Das Öffnen der E-Ink-Demo wiederum sollte den früheren Nutzern des PSoC Creator bekannt vorkommen, da sie bereits für das PSoC-BLDC-Kit-Beispiel Verwendung fand.

CY8CKIT-62-BLE – abschließende Worte

Wie üblich, sind die im Kit integrierten Beispieldateien ein guter Start für jedes Projekt. Wichtig ist ferner, dass der PSoC 6 aufgrund der Dual-Prozessor-Architektur wahrscheinlich der einzige Chip ist, der eine komplette IoT-Lösung realisiert: Sicherheit, BLE, analog oder digital – er hat alles. Das CY8CKIT-62-BLE ist darauf aufbauend eines der komplett ausgestatteten Entwicklungskits, und es wird in Zukunft sehr nützlich sein.

(nach Unterlagen von RS Components)