Nutzung der branchenweit ersten Arm®-Cortex®-M33-basierten MCU – Teil 1: Management von Leistung und Performance

Von Stephen Evanczuk

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von DigiKey

Anmerkung des Herausgebers: Dieser Artikel ist der erste Teil einer 2-teiligen Artikelserie und beschreibt, wie Entwickler unter Verwendung einer einzigen Familie von Universal-Mikrocontrollern einer Vielzahl von Anforderungen hinsichtlich Leistung und geringer Leistungsaufnahme gerecht werden können. Teil 2 beschreibt, wie erweiterte Sicherheitsfunktionen, die in die LPC55S6x-Mikrocontroller von NXP Semiconductors integriert sind, die Lebenszyklussicherheit von der Bereitstellung über die Inbetriebnahme bis hin zur Kommunikation sowie sicheres Booten und sichere Firmware-Updates unterstützen.

Entwickler stehen immer wieder vor der Aufgabe, für die verschiedensten Funktionen und Anwendungen ein Gleichgewicht zwischen häufig zueinander im Widerspruch stehenden Anforderungen nach höherer Anwendungsleistung bei niedrigerer Leistungsaufnahme zu finden. Zu diesen Anwendungen zählen unter anderem das Internet der Dinge, die industrielle Automatisierung, medizinische Systeme und Verbrauchergeräte. Das zunehmende Sicherheitsbedürfnis in solchen Anwendungen erschwert den Entwicklern die Suche nach einer einzigen Mikrocontrollerfamilie, die einer vielseitigen und immer länger werdenden Liste an gegensätzlichen Designanforderungen gerecht werden kann.

Um diesen Problemen zu begegnen, hat NXP Semiconductors die Mikrocontrollerfamilie LPC55S6x eingeführt. Diese Komponenten stellen eine gute Wahl für die Entwickler dar, da sie einen leistungsstarken Universalkern mit äußerst effizienten, speziellen Hardware- und Verarbeitungs-Engines kombinieren.

Erkennen und Erfüllen unterschiedlicher Anforderungen

Vernetzte Produkte haben sich rasch von relativ einfachen Systemen, bei denen sich die anspruchsvollsten Designanforderungen üblicherweise um kommunikative Aspekte drehten, zu komplexeren Systemen entwickelt. Heutzutage sehen sich Entwickler einer bei weitem anspruchsvolleren Umgebung gegenüber, die bei immer mehr Anforderungen in allen Anwendungssegmenten nur wenige Kompromisse zulässt. Für jede Anwendung müssen die Entwickler auf etwas anderes achten, um den einzigartigen Anforderungen eben dieser Anwendung gerecht zu werden. Die Forderung nach höherer Leistung und geringerer Leistungsaufnahme zieht sich jedoch noch immer wie ein roter Faden durch die meisten populären Anwendungsbereiche.

Intelligente Fabriken beispielsweise erfordern nicht nur leistungsstarke Komponenten mit niedriger Latenz für die Signalverarbeitung, sondern auch eine geringere Leistungsaufnahme, da die Entwickler der Fabriken immer mehr dieser Komponenten auf engem Raum verbauen. Wearables erfordern nicht nur Designs mit einer geringeren Leistungsaufnahme, um die Batterielebensdauer zu verlängern, sondern setzen immer häufiger auch Signalverarbeitungsfunktionen voraus, die für komplexere Arbeitslasten geeignet sind. In allen Anwendungssegmenten stehen Entwickler unter dem zunehmenden Druck, effizienter auf ernsthafte Bedenken bezüglich der Anfälligkeit dieser Komponenten, ihrer Netzwerke sowie von Unternehmensressourcen für unmittelbare Angriffe oder dauerhafte Bedrohungen durch Cyber-Diebe, kriminelle Organisationen oder sogar staatlich unterstützte Gruppen zu reagieren.

Um diesen unterschiedlichen Anforderungen zu entsprechen, mussten die Entwickler bei ihrem Design üblicherweise in einem Punkt Abstriche machen. Sie könnten Einbußen bei der Anwendungsleistung in Kauf nehmen, um durch die Verwendung eines weniger leistungsstarken Prozessors oder eine Verringerung der Taktrate die Leistungsaufnahme zu senken, oder das Tastverhältnis des Prozessors zugunsten von Energiesparmodi verringern. Um strengen Leistungsanforderungen gerecht zu werden, könnten sie sich zu Lasten einer sehr viel höheren Leistungsaufnahme aber auch für den umgekehrten Ansatz mit leistungsstärkeren Prozessoren, höheren Taktraten und einem höheren Tastverhältnis entscheiden. Für rechenintensivere Anwendungen könnten sie einen dedizierten digitalen Signalprozessor (DSP, Digital Signal Processor) hinzufügen, um die Ausführung des Algorithmus zu beschleunigen. Dies würde jedoch zu komplexeren Designs, steigenden Kosten und einer höheren Leistungsaufnahme des Systems führen. Selbst bei einem akzeptablen Kompromiss zwischen Leistung und Leistungsaufnahme mussten sie üblicherweise kostenintensivere und komplexere Designs in Kauf nehmen, um den Sicherheitsanforderungen gerecht zu werden.

Während sich die Entwickler mit den verschiedensten Anforderungen auseinandersetzen müssen, fordern die Benutzer immer häufiger weniger bzw. gar keine Kompromisse für kritische Anwendungen wie medizinische Geräte, industrielle Automatisierungssysteme oder Zahlungsgeräte für den Einzelhandel. Dank der Mikrocontrollerfamilie LPC55S6x von NXP Semiconductors müssen die Entwickler jedoch kaum noch Kompromisse eingehen. Ihre Architektur kombiniert die Flexibilität eines Universalprozessors mit speziellen Verarbeitungs- und Sicherheitsfunktionen, die für neue Anwendungen benötigt werden.

Großer Funktionsumfang mit dedizierten Verarbeitungskernen

Die Mikrocontroller LPC55S66 (ein Kern) und LPC55S69 (zwei Kerne) von NXP Semiconductors, die branchenweit ersten Arm®-Cortex®-M33-basierten Universal-MCUs, setzen auf die niedrige Latenz und das deterministische Verhalten der Architektur der Arm-M-Serie. Zu den Architekturverbesserungen der LPC55S6x-Komponenten gehören der leistungsstarke PowerQuad-DSP-Beschleuniger des Unternehmens, seine Kryptographie-Engine CASPER (Cryptographic Accelerator and Signaling Processing Engine with RAM) sowie ein umfassendes Sicherheits-Subsystem. Neben bis zu 640 KB Flash-Speicher, bis zu 320 KB SRAM und 128 KB ROM bieten die LPC55S6x-Komponenten zahlreiche Funktionselemente, die üblicherweise für jedes tief eingebettete System erforderlich sind (Abbildung 1).

Abbildung: Architektur der LPC55S6x-Mikrocontroller von NXPAbbildung 1: Die Architektur der LPC55S6x-Mikrocontroller erweitert die allgemeinen Verarbeitungsfunktionen des Arm-Cortex-M33-Kerns um spezielle Hardwareblöcke für Signalverarbeitung, Kryptographie, sichere Speicherung und Schlüsselverwaltung und bietet außerdem eine umfassende Auswahl an Peripheriebausteinen, die in typischen Embedded-Designs zum Einsatz kommen. (Bildquelle: NXP Semiconductors)

Zu diesen Elementen der LPC55S6x-Komponenten zählen unter anderem ein umfassendes Timer-Subsystem, mehrere serielle Schnittstellen, sichere DMA-Controller und bis zu 64 GPIO-Pins. Zusätzlich zu diesen digitalen Subsystemen bieten LPC55S6x-Komponenten einen Mehrkanal-16-Bit-ADC mit SAR, einen analogen Komparator und einen Temperatursensor. Eine On-Chip-PLU (Programmable Logic Unit) ermöglicht Entwicklern die Bildung von kombinatorischer und sequenzieller Logik (inklusive Zustandsmaschinen) aus den 26  Lookup-Tabellen (LUT) mit fünf Eingaben. Entwickler können auf die PLU-Register zugreifen, um die PLU direkt für kleine Logiknetzwerke zu programmieren. Oder sie können NXP-Tools verwenden, um ein größeres Netzwerk zu implementieren, das in der Registertransfersprache Verilog beschrieben ist.

Um Engpässe beim Zugriff auf die zahlreichen Subsysteme zu verhindern, verfügen die LPC55S6x-Komponenten über eine mehrschichtige Busmatrix, die auf der AHB-Architektur (Arm High-Performance Bus) und der AMBA-Architektur (Arm Advanced Microcontroller Bus Architecture) aufbaut. Die AHB-Busmatrix sorgt für eine direkte Verbindung zwischen Bus-Master und Peripheriebausteinen oder Speicher. Dieser Ansatz ermöglicht DMA-Übertragungen, um beispielsweise mit voller Geschwindigkeit fortzufahren, ohne die Leistung des Prozessorzugriffs auf den Speicher zu beeinträchtigen. In der Tat bildet die Möglichkeit, den Wirkungsgrad des Prozessors vor dem Hintergrund verschiedener Designanforderungen zu optimieren, die Grundlage der LPC55S6x-Architektur.

In der LPC55S6x-Architektur bietet der Cortex-M33-Kern mehrere Funktionen, die den Entwicklern dabei helfen, verschiedene Designanforderungen leichter zu erfüllen. Wie andere Komponenten seiner Klasse auch unterstützt der LPC55S6x-Prozessor mehrere Energiesparmodi. Bei längerer Inaktivität können die Entwickler die Komponente in den Power-Down-Modus versetzen. In diesem Modus wird der SRAM vollständig erhalten und es werden lediglich 15,4 Mikroampere (µA) verbraucht. Im Deep-Power-Down-Modus werden nur noch 4 KB des SRAM mit Strom versorgt und die Leistungsaufnahme liegt bei etwa 0,59 µA. Sleep- und Deep-Sleep-Modus schalten den Prozessor ab und bieten dabei verschiedene Betriebsstufen für Peripheriebausteine und Speicher: Der Sleep-Modus bietet umfassenden Betrieb bei einer Leistungsaufnahme von 2,7 Milliampere (mA), wohingegen die Peripheriebausteine im Deep-Sleep-Modus per Clock-Gating aus- und eingeschaltet werden, um die Leistungsaufnahme auf etwa 110 µA zu senken.

Erweiterte Funktionen

Außer den Energiesparmodi erweitert die LPC55S6x-Architektur die Unterstützung für verschiedene Designanforderungen um integrierte Funktionen zur Verbesserung von Leistung und Sicherheit. Diese in den primären Cortex-M33-Kern integrierten Funktionen umfassen Arm-TrustZone-Sicherheitserweiterungen (SECEXT), eine Memory Protection Unit (MPU), eine Gleitkommaeinheit (FPU, Floating Point Unit) gemäß IEEE 754 und eine Embedded Trace Macrocell (ETM). Zusätzlich enthält der primäre Kern die Kryptographie-Engine CASPER und den PowerQuad-Beschleuniger für DSP sowie für SIMD-Operationen (Single Instruction Multiple Data).

Hinweis: Diese zusätzlichen Funktionen sind im zweiten Cortex-M33-Kern des Dual-Core-Mikrocontrollers LPC55S69 nicht enthalten.

Jedes dieser integrierten Subsysteme und Architekturmerkmale bietet umfassende Funktionen mit detaillierten Beschreibungen, die weit über den Umfang dieses Artikels hinausgehen. So ist beispielsweise der PowerQuad DSP-Beschleuniger für sich ein ausgefeilter Coprozessor, der Funktionen zur Signalverarbeitung unabhängig ausführen kann und währenddessen als Bus-Master auf den Speicher zugreifen kann.

Intern kombiniert der PowerQuad-Beschleuniger mehrere Register und Schnittstellen mit einer Reihe von Hardware-Engines für wichtige Signalverarbeitungsfunktionen (u. a. schnelle Fourier-Transformation (FFT), diskrete Kosinustransformation (DCT), unendliche Impulsantwort (IIR), endliche Impulsantwort (FIR)) und dem CORDIC-Algorithmus (COordinate Rotation DIgital Computer), der zur effizienten Berechnung trigonometrischer Funktionen verwendet wird (Abbildung 2).

Abbildung: Mikrocontrollerfamilie LPC55S6x von NXP SemiconductorsAbbildung 2: Die Mikrocontrollerfamilie LPC55S6x von NXP Semiconductors verwendet den PowerQuad-Coprozessor des Unternehmens, der spezielle Engines zur beschleunigten Ausführung von Algorithmen nutzt, die üblicherweise für Signalverarbeitungsanwendungen benötigt werden. (Bildquelle: NXP Semiconductors)

Mit dem PowerQuad-Beschleuniger können Entwickler komplexe Signalverarbeitungsoperationen ausführen, ohne die Fähigkeit des Host-Prozessors einzuschränken, auf Echtzeitereignisse zu reagieren oder eine längere Abfolge von Operationen abzuschließen. Der Host-Prozessor setzt einfach PowerQuad-Register mit der erforderlichen Signalverarbeitungsfunktion und gibt die Speicheradressen für Ausgangs-, Ziel- und Arbeitsspeicherregionen an. Sobald er aufgerufen wurde, agiert der PowerQuad-Beschleuniger als echter Coprozessor, der in seiner Rolle als Bus-Master unter Verwendung der AHB-Matrix 128-Bit-Speicherübertragungen ausführt. In der Zwischenzeit kann sich der Host-Prozessor umgehend wieder seinen Hauptverarbeitungsaufgaben widmen, wobei er regelmäßig ein PowerQuad-Busy-Bit abfragt oder einfach auf einen Interrupt reagiert, um die Ergebnisse abzufragen, sobald der PowerQuad mit seiner Arbeit fertig ist.

Für Entwickler sind die PowerQuad-Operationen jedoch zum Großteil transparent. Entwickler nutzen die Standard-API für die DSP-Bibliothek des Arm Cortex Microcontroller Software Interface Standard (CMSIS). Die den PowerQuad unterstützende Version der Bibliothek von NXP, die im Software Development Kit (SDK) MCUXpresso von NXP Semiconductors enthalten ist, ersetzt mathematische Low-Level-Funktionen, die in die Software implementiert sind, durch Aufrufe der PowerQuad-API.

Um etwa eine komplexe FFT zu berechnen, verwenden Entwickler die standardmäßige CMSIS-DSP-Funktion arm_cfft_q31() mit Daten im Q-Format. Dieses Format verwendet bei der Darstellung einer 32-Bit-Festpunktzahl ein Bit für das Vorzeichen und 31 Bit für den Exponenten. In einer reinen Softwareimplementierung führt das Aufrufen der Funktion arm_cfft_q31() dazu, dass wiederum die CMSIS-DSP-FFT-Schmetterlingsfunktion arm_radix4_butterfly_q31() und die Endfunktion arm_cfft_radix4by2_q31() – bzw. ihre inversen Versionen für komplexe inverse FFTs – der Software aufgerufen werden.

Bei Verwendung der DSP-Bibliothek und des PowerQuad-Beschleunigers von NXP jedoch führt das normale Aufrufen von arm_cfft_q31() stattdessen zum Aufrufen von PQ_TransformCFFT(), wodurch dieselbe Berechnung in der Hardware durchgeführt wird. Das führt nicht nur dazu, dass der Cortex-M33-Kern entlastet wird, sondern auch zu einer schnelleren Ausführung von DSP-Funktionen (Abbildung 3).

Diagramm: Software-Entwicklungskit MCUXpressoAbbildung 3: Das Software-Entwicklungskit MCUXpresso beschleunigt die Ausführung gebräuchlicher DSP-Algorithmen erheblich und behält dabei die Kompatibilität mit High-Level-Aufrufen der DSP-Bibliothek des Arm CMSIS bei, indem es CMSIS-DSP-Low-Level-Funktionen transparent durch Aufrufe des PowerQuad-Beschleunigers ersetzt. (Bildquelle: NXP Semiconductors)

Ein weiterer Coprozessor, die Kryptographie-Engine CASPER, entlastet den Hauptprozessor auf ähnliche Weise von der hohen Rechenlast im Zusammenhang mit asymmetrischen kryptographischen Algorithmen. CASPER führt Algorithmen wie den RSA(Rivest–Shamir–Adleman)-, den Diffie-Hellman-, den ECC(Elliptic-Curve-Cryptography)- und den ECDSA(Elliptic-Curve-Digital-Signature)Algorithmus bis zu 8-mal schneller aus als die entsprechende Kryptographiesoftware auf dem Cortex-M33-Kern.

Um die Ausführung symmetrischer Algorithmen zu beschleunigen, verfügen die LPC55S6x-Mikrocontroller außerdem über Hardwareblöcke für AES-256 (Advanced Encryption Standard 256) und SHA-2 (Secure Hash Algorithm 2).

Die Kombination aus diesen Hardwareblöcken und der CASPER-Engine bietet den Entwicklern hardwarebasierten Support für die Kryptographiealgorithmen, die üblicherweise zur Authentifizierung und Datenverschlüsselung verwendet werden. Dies ist für den Schutz des Datenaustauschs zwischen vernetzten Produkten erforderlich.

Wie in Teil 2 dieser zweiteiligen Artikelserie beschrieben, geht der Support der LPC55S6x-Familie für Sicherheitsfunktionen weit über den Support für grundlegende Kryptographiealgorithmen hinaus, um die hardwarebasierten Sicherheitsfunktionen bereitstellen zu können, die für umfassende Lebenszyklussicherheit erforderlich sind.

Systementwicklung

Mit dem Evaluierungskit LPC55S69-EVK von NXP können sich Entwickler rasch einen Überblick über die Kryptographie-Engines, DSP und die allgemeinen Verarbeitungsfunktionen der MPC55S6x-Mikrocontroller machen. Das zur Beschleunigung der Entwicklung mit diesen Komponenten entwickelte LPC55S69-EVK verfügt über einen LPC55S69-Microcontroller mit zwei Kernen, den Beschleunigungsmesser MMA8652FCR1 von NXP, LEDs, Tasten, eine Debug-Schnittstelle sowie Support für mehrere Erweiterungsoptionen wie Arduino UNO, MikroElektronica Click und die Digilent PMod-Zusatzhardware.

Mehrere Jumper und Steckleisten ermöglichen Entwicklern die problemlose Vorbereitung verschiedener Hardwarekonfigurationen und die genaue Untersuchung der Leistungsdetails (Abbildung 4). Wenn es den Entwicklern beispielsweise um den Stromverbrauch geht, können sie den Versorgungsstrom des LPC55S69 ganz einfach messen, indem sie ein Voltmeter zur Messung des Spannungsabfalls an der Steckleiste P12 verwenden.

Bild: Evaluierungskit LPC55S69-EVK von NXP Semiconductors (zum Vergrößern klicken)Abbildung 4: Das um einen LPC55S69-Dual-Core-Mikrocontroller von NXP Semiconductors herum aufgebaute Evaluierungskit LPC55S69-EVK von NXP Semiconductors bietet mehrere Jumper und Steckleisten, die den Entwicklern die problemlose Vorbereitung verschiedener Konfigurationen und die Untersuchung von Leistungsdetails wie beispielsweise des Stromverbrauchs des Mikrocontrollers ermöglichen. (Bildquelle: NXP Semiconductors)

Für die Entwicklung verwenden die Entwickler MCUXpresso – zugleich integrierte Entwicklungsumgebung und SDK –, das spezielle Hardware des LPC55S6x verwendet, z. B. die oben erwähnte PowerQuad-Funktion. Des Weiteren wird das LPC55S69-EVK von IAR- und Keil-IDEs unterstützt. Zusätzlich bietet NXP kostenlose Softwarepakete mit Beispielcode an, die wichtige Softwaredesignmuster zur Verwendung der LPC55S6x-Funktionen demonstrieren.

Fazit

Entwickler müssen für die verschiedensten Anwendungen wie das IoT, die industrielle Automatisierung, medizinische Systeme und Verbrauchergeräte ein Gleichgewicht zwischen Leistung, geringer Leistungsaufnahme und Sicherheit finden. Wie hier beschrieben, bietet der leistungsstarke Universalkern der Mikrocontrollerfamilie LPC55S6x mit speziellen Hardware- und Verarbeitungs-Engines den Entwicklern eine Möglichkeit, den Anforderungen hinsichtlich leistungsstarker Spezialfunktionen gerecht zu werden, ohne dabei die Leistungsaufnahme übermäßig ansteigen zu lassen.

Teil 2 dieser Serie zeigt, wie mit der LPC55S6x-Familie die Sicherheit über den gesamten Lebenszyklus einer Komponente hinweg verwaltet werden kann.

DigiKey logo

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

Über den Autor

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk hat mehr als 20 Jahre Erfahrung im Schreiben für und über die Elektronikindustrie zu einem breiten Spektrum von Themen wie Hardware, Software, Systeme und Anwendungen einschließlich des IoT. Er promoviertein Neurowissenschaften über neuronale Netzwerke und arbeitete in der Luft- und Raumfahrtindustrie an massiv verteilten sicheren Systemen und Methoden zur Beschleunigung von Algorithmen. Derzeit, wenn er nicht gerade Artikel über Technologie und Ingenieurwesen schreibt, arbeitet er an Anwendungen des tiefen Lernens (Deep Learning) zu Erkennungs- und Empfehlungssystemen.

Über den Verlag

Nordamerikanische Fachredakteure von DigiKey