De eerste op Arm® Cortex®-M33 gebaseerde MCU gebruiken – Deel 1: Energieverbruik en prestaties beheren

Door Stephen Evanczuk

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Noot van de redactie: Dit artikel is deel 1 van een tweedelige serie en beschrijft hoe ontwikkelaars aan een groot aantal prestatie- en verbruiksvereisten kunnen voldoen met één enkele serie universele microcontrollers. In deel 2 wordt uitgelegd hoe uitgebreide veiligheidsfuncties in de LPC55S6x-microcontrollers van NXP Semiconductors veiligheid bieden gedurende de gehele levenscyclus van het apparaat, van levering en ingebruikname tot communicatie, opstarten en firmware-updates.

Ontwikkelaars worstelen van oudsher met de tegenstrijdige ontwerpvereisten van hogere prestaties bij een lager energieverbruik die gelden voor een breed scala aan functies en toepassingen. Voorbeelden van dergelijke toepassingen zijn het Internet of Things (IoT), industriële automatisering, medische systemen en consumentenapparatuur. De snel toenemende noodzaak om zulke toepassingen beter te beveiligen bemoeilijkt het vinden van één enkele microcontrollerserie die voldoet aan de gevarieerde en groeiende lijst van conflicterende ontwerpvereisten.

Als antwoord op deze uitdagingen heeft NXP Semiconductors de LPC55S6x-serie microcontrollers geïntroduceerd. Deze apparaten helpen ontwikkelaars om problemen op te lossen door een krachtige, universele kern te combineren met zeer efficiënte gespecialiseerde hardware en verwerkingsengines.

De uitdagingen voor ontwikkelaars

Verbonden producten begonnen als relatief eenvoudige systemen waarbij de communicatiefuncties meestal de grootste ontwerpproblemen opleverden, maar hebben een snelle evolutie doorgemaakt. Tegenwoordig hebben ontwikkelaars te maken met veel complexere omgevingen die weinig ruimte voor compromissen bieden en veel hogere eisen stellen aan alle aspecten van een toepassing. Bij elk project moeten de accenten worden verlegd om de specifieke uitdagingen van de betreffende toepassing te kunnen beantwoorden. De vraag naar hogere prestaties bij een lager energieverbruik loopt echter als een rode draad door de belangrijkste toepassingsgebieden.

Slimme fabrieken vereisen bijvoorbeeld niet alleen snelle, hoogwaardige signaalverwerkingsapparatuur, maar deze moet ook steeds energiezuiniger werken naarmate technici meer van dergelijke apparaten in kleine ruimtes onderbrengen. Draagbare consumentenapparatuur moet niet alleen steeds zuiniger werken om de batterijlevensduur te optimaliseren, maar ook beschikken over geavanceerde signaalverwerkingsfuncties om complexere taken te kunnen uitvoeren. In elk toepassingssegment ervaren ontwikkelaars een toenemende druk om apparaten, netwerken en bedrijfsmiddelen beter te beschermen tegen de rechtstreekse aanvallen en aanhoudende bedreigingen van hackers, criminele organisaties en zelfs door staten gesteunde groeperingen.

Om aan deze uiteenlopende vereisten te kunnen voldoen, moeten ontwikkelaars gewoonlijk concessies doen aan bepaalde aspecten van hun ontwerp. Ze verkiezen bijvoorbeeld energiezuinigheid boven prestaties door een minder geavanceerde processor te gebruiken, de kloksnelheid te verlagen of de werkcyclus van de processor wat terug te schroeven om laagverbruiksmodi mogelijk te maken. Voor hogere prestaties kunnen ze de omgekeerde weg bewandelen met krachtigere processoren, hogere kloksnelheden en hogere bedrijfscycli, ten koste van een toegenomen energieverbruik. Voor toepassingen die veel rekenkracht vereisen kunnen ze een speciale digitale signaalprocessor (DSP) toevoegen om de uitvoering van algoritmen te versnellen, wat opnieuw leidt tot een grotere complexiteit, hogere kosten en een hoger energieverbruik. Als er toch een acceptabel evenwicht tussen verbruik en prestaties wordt gerealiseerd, moet vaak genoegen worden genomen met hogere ontwerpkosten en een grotere complexiteit om aan de veiligheidsvereisten te kunnen voldoen.

Terwijl ontwikkelaars worstelen met vereisten, vragen gebruikers om minder of geen compromissen voor kritische toepassingen zoals medische apparatuur, industriële automatiseringssystemen, betalingssystemen enz. De LPC55S6x-microcontrollerserie van NXP Semiconductors stelt ontwerpers in staat om compromissen te vermijden dankzij een architectuur waarin de flexibiliteit van een universele processor is gecombineerd met de gespecialiseerde verwerkings- en veiligheidsfuncties die vereist zijn voor opkomende toepassingen.

Uitgebreide mogelijkheden dankzij speciale verwerkingskernen

De single-core LPC55S66- en dual-core LPC55S69-microcontrollers van NXP Semiconductors bouwen voort op de succesvolle architectuur van de Arm M-serie en zijn de eerste op de Arm® Cortex®-M33 gebaseerde universele MCU's op de markt. Voorbeelden van de architecturale verbeteringen van de LPC55S6x-apparaten zijn de hoogwaardige PowerQuad DSP-accelerator, de CASPER (Cryptographic Accelerator and Signaling Processing Engine with RAM)-versleutelingsengine en een uitgebreid veiligheidssubsysteem. Naast 640 Kbytes flash, tot 320 Kbytes SRAM en 128 Kbytes ROM bevatten LPC55S6x-apparaten een uitgebreide set functionele elementen die vereist zijn voor typische ingebedde systeemontwerpen (afbeelding 1).

Diagram van de architectuur van de NXP LPC55S6x-microcontrollerAfbeelding 1: De architectuur van de LPC55S6x-microcontroller vergroot de universele verwerkingsmogelijkheden van de Arm Cortex-M33-kern met gespecialiseerde hardwareblokken voor signaalverwerking, versleuteling, opslag en beheer, en biedt een breed scala aan randapparaten die vereist zijn in typische ingebedde systeemontwerpen. (Afbeelding: NXP Semiconductors)

Voorbeelden van deze elementen zijn een uitgebreid timersubsysteem, meerdere seriële interfaces, veilige DMA (Direct Memory Access)-controllers en tot 64 universele I/O (GPIO)-pennen. Naast deze digitale subsystemen zijn de LPC55S6x-apparaten voorzien van een multikanaals 16-bits SAR (Successive Approximation Register) analoog-naar-digitaalomzetter (ADC), analoge comparator en temperatuursensor. Een programmeerbare logische eenheid (PLU) op de chip stelt ontwikkelaars in staat om aangepaste combinatorische of sequentiële logica te bouwen, inclusief statusmachines, op basis van zijn array van 26 look-up table (LUT)-elementen met vijf ingangen. Ontwikkelaars kunnen PLU-registers gebruiken om de PLU rechtstreeks te programmeren voor kleine logische netwerken of gebruikmaken van NXP-tools om een groter netwerk te implementeren dat is beschreven in Verilog RTL (Register-Transfer Language).

Om knelpunten bij de toepassing van de verschillende subsystemen te vermijden, zijn de LPC55S6x-apparaten voorzien van een meerlagige AHB-busmatrix met de geavanceerde microcontrollerbusarchitectuur (AMBA) van Arm. Deze busmatrix biedt een rechtstreekse verbinding tussen busmasters en randapparatuur of geheugen. Hierdoor kunnen bijvoorbeeld DMA-overdrachten op volle snelheid worden uitgevoerd zonder dat de geheugentoegang van de processor daaronder lijdt. In feite vormt de mogelijkheid om de processorefficiëntie te maximaliseren bij uiteenlopende ontwerpvereisten de basis van de LPC55S6x-architectuur.

In de LPC55S6x-architectuur biedt de Cortex-M33-kern meerdere functies die zijn ontworpen om ontwikkelaars te helpen bij het realiseren van uiteenlopende ontwerpdoelstellingen. Net als andere apparaten in zijn klasse ondersteunt de LPC55S6x-processor diverse laagverbruiksmodi. Tijdens langere perioden van inactiviteit kan het apparaat worden ingesteld op een laagverbruiksmodus waarbij het SRAM-geheugen volledig toegankelijk blijft bij een verbruik van slechts 15,4 microampère (µA), of een diepe laagverbruiksmodus waarbij een SRAM-segment van 4 Kbyte beschikbaar blijft bij een verbruik van ongeveer 0,59 µA. In de slaapmodus en diepe slaapmodus wordt de processor uitgeschakeld bij verschillende activiteitsniveaus van de randapparatuur en het geheugen: de slaapmodus biedt volledige functionaliteit bij een verbruik van ca. 2,7 milliampère (mA), terwijl in de diepe slaapmodus randapparatuur wordt uitgeschakeld en het verbruik daalt tot ca. 110 µA.

Uitgebreide mogelijkheden

Naast de laagverbruiksmodi biedt de LPC55S6x-architectuur uitgebreide ondersteuning voor uiteenlopende ontwerpvereisten met geïntegreerde functies voor verbeterde prestaties en veiligheid. Deze functies zijn ingebouwd in de primaire Cortex-M33-kern en omvatten Arm TrustZone-beveiligingsextensies (SECEXT), een geheugenbeschermingseenheid (MPU), een drijvende-kommaeenheid (FPU) volgens IEEE 754 en Embedded Trace Macrocell (ETM). Daarnaast bevat de primaire kern de CASPER-versleutelingsengine en PowerQuad-accelerator voor DSP- en SIMD (Single-Instruction Multiple Data)-bewerkingen.

Opmerking: deze aanvullende functies zijn niet aanwezig in de tweede Cortex-M33-kern in de dual-core LPC55S69-microcontroller.

Elk van deze geïntegreerde subsystemen en architecturale functies biedt een uitgebreide set mogelijkheden met gedetailleerde beschrijvingen die ver buiten het bestek van dit artikel vallen. Zo is de PowerQuad DSP-accelerator op zichzelf al een geavanceerde coprocessor die onafhankelijk signaalverwerkingsfuncties kan berekenen terwijl hij geheugen gebruikt als een busmaster.

De PowerQuad-accelerator combineert meerdere registers en interfaces met een scala aan hardware-engines voor essentiële signaalverwerkingsfuncties zoals Fast Fourier Transform (FFT), Discrete Cosine Transform (DCT), Infinite Impulse Response (IIR), Finite Impulse Response (FIR) en het COordinate Rotation Digital Computer (CORDIC)-algoritme voor efficiënte berekening van trigonometrische functies (afbeelding 2).

Diagram van de LPC55S6x-microcontrollerserie van NXP SemiconductorsAfbeelding 2: De LPC55S6x-microcontrollerserie van NXP Semiconductors is voorzien van de PowerQuad-coprocessor van het bedrijf, die gebruikmaakt van gespecialiseerde engines voor een snellere uitvoering van typische signaalverwerkingsalgoritmen. (Afbeelding: NXP Semiconductors)

Dankzij de PowerQuad-accelerator kunnen ontwikkelaars complexe signaalverwerkingsfuncties uitvoeren zonder afbreuk te doen aan het vermogen van de hostprocessor om in real time te reageren op gebeurtenissen of een uitgebreide serie bewerkingen te voltooien. De hostprocessor stelt eenvoudigweg PowerQuad-registers in met de vereiste signaalverwerkingsfunctie en specificeert de geheugenadressen voor bron, bestemming en werkgeheugengebieden. Na aanroep werkt de PowerQuad-accelerator als een echte coprocessor en gebruikt deze de AHB-matrix om 128-bits geheugenoverdrachten uit te voeren in zijn rol van busmaster. De hostprocessor kan direct terugkeren naar zijn primaire verwerkingstaken, waarbij hij regelmatig de status van de PowerQuad controleert of eenvoudigweg reageert op een PowerQuad-voltooiingssignaal om toegang te krijgen tot de resultaten.

De PowerQuad-bewerkingen zijn grotendeels transparant voor ontwikkelaars. Ontwikkelaars gebruiken de standaard Application Programming Interface (API) voor de CMIS (Microcontroller Software Interface Standard) DSP-bibliotheek van Arm Cortex. In de versie van de bibliotheek met PowerQuad-ondersteuning in de MCUXpresso-softwareontwikkelingskit (SDK) van NXP Semiconductors worden lagere softwarematige berekeningen vervangen door aanroepen van de PowerQuad API.

Om een complexe FFT te berekenen gebruiken ontwikkelaars bijvoorbeeld de standaard CMSIS-DSP-functie, arm_cfft_q31(), met gegevens in Q-formaat, waarbij een 32-bits getal met vaste komma wordt gerepresenteerd met één bit voor het teken en 31 bits voor de exponent. Bij een puur softwarematige implementatie resulteert een aanroep van de arm_cfft_q31()-functie in een aanroep van de CMSIS DSP FFT butterfly-softwarefunctie, arm_radix4_butterfly_q31() en eindfunctie, arm_cfft_radix4by2_q31(), of hun omgekeerde versies voor complexe inverse FFT's.

Bij gebruik van de NXP DSP-bibliotheek en PowerQuad resulteert de normale aanroep van arm_cfft_q31() in plaats daarvan in de aanroep van PQ_TransformCFFT(), waarna dezelfde berekeningen in hardware worden uitgevoerd. Het eindresultaat is niet alleen een verminderde werklast van de Cortex-M33-kern, maar ook een snellere uitvoering van DSP-functies (afbeelding 3).

Grafiek van een MCUXpresso-softwareontwikkelingskitAfbeelding 3: De MCUXpresso-softwareontwikkelingskit versnelt de uitvoering van gewone DSP-algoritmen aanzienlijk, met behoud van de compatibiliteit met hogere aanroepen van de standaard Arm CMSIS DSP-bibliotheek door lagere CMSIS-DSP-functies op transparante wijze te vervangen door aanroepen van de PowerQuad-accelerator. (Afbeelding: NXP Semiconductors)

Een tweede coprocessor, de CASPER-versleutelingsengine, verlicht de werklast van de hoofdprocessor op vergelijkbare wijze door de zware berekeningen voor asymmetrische versleuteling op zich te nemen. De CASPER-versleutelingsengine voert Rivest–Shamir–Adleman (RSA), Diffie-Hellman, Elliptic-Curve Cryptography (ECC) en Elliptic Curve Digital Signature Algorithm (ECDSA) tot acht keer sneller uit dan vergelijkbare versleutelingssoftware die op de Cortex-M33-processorkern draait.

Om de uitvoering van symmetrische algoritmen te versnellen, bevat de LPC55S6x ook hardwareblokken voor Advanced Encryption Standard 256-bit (AES-256) en Secure Hash Algorithm 2 (SHA-2).

De combinatie van deze hardwareblokken met de CASPER-engine biedt ontwikkelaars op hardware gebaseerde ondersteuning voor de typische versleutelingsalgoritmen die worden gebruikt voor de authenticatie en versleuteling van gegevensuitwisseling tussen verbonden apparaten.

Zoals in deel 2 van deze serie wordt besproken gaat de veiligheidsondersteuning van de LPC55S6x-serie veel verder dan standaard versleutelingsalgoritmen met op hardware gebaseerde veiligheidsfuncties voor volledige levenscyclusbeveiliging.

Systeemontwikkeling

Ontwikkelaars kunnen snel de versleutelingsengines, DSP en universele verwerkingsmogelijkheden van de LPC55S6x-microcontrollers verkennen met behulp van de LPC55S69 EVK van NXP Semiconductors. De LPC55S69 EVK is ontworpen om het ontwikkelingsproces met deze apparaten te versnellen en is voorzien van een dual-core LPC55S69-microcontroller, NXP's MMA8652FCR1-accelerometer, LED's, knoppen, een debug-interface en ondersteuning voor meerdere uitbreidingsopties, inclusief Arduino UNO-, MikroElektronica Click- en Digilent PMod-hardware.

Meerdere jumpers en koppen stellen ontwikkelaars in staat om eenvoudig verschillende hardwareconfiguraties in te stellen en prestatiegegevens te beoordelen (afbeelding 4). Ontwikkelaars die het energieverbruik in het oog willen houden, kunnen bijvoorbeeld eenvoudig de voedingsstroom naar de LPC55S69 bepalen door met een spanningsmeter het spanningsverlies bij kop P12 te meten.

Afbeelding van LPC55S69 EVK van NXP Semiconductors (klik om te vergroten)Afbeelding 4: De LPC55S69 EVK is opgebouwd rondom een dual-core LPC55S69-microcontroller en is voorzien van meerdere jumpers en koppen waarmee ontwikkelaars eenvoudig configuraties kunnen instellen en prestatiegegevens zoals het stroomverbruik van de microcontroller kunnen bekijken. (Afbeelding: NXP Semiconductors)

Voor ontwikkelingsdoeleinden kunnen ontwerpers de printplaat gebruiken in combinatie met de MCUXpresso geïntegreerde ontwikkelingsomgeving (IDE) en SDK, die gebruikmaakt van gespecialiseerde LPC55S6x-hardware zoals de eerder genoemde PowerQuad-functie. De LPC55S69 EVK wordt ook ondersteund door IDE's van IAR en Keil. Daarnaast biedt NXP gratis softwarepakketten met voorbeeldcode voor het gebruik van LPC55S6x-functies.

Conclusie

Ontwikkelaars proberen prestaties, energiezuinigheid en veiligheid met elkaar in evenwicht te brengen voor een breed scala aan toepassingen, inclusief het IoT, industriële automatisering, medische systemen en consumentenapparatuur. Met haar krachtige, universele kern, gespecialiseerde hardware en verwerkingsengines stelt de LPC55S6x-microcontrollerserie ontwikkelaars in staat om eenvoudiger aan de vereisten van hoogwaardige gespecialiseerde toepassingen te voldoen, met behoud van een laag energieverbruik.

In deel 2 van deze serie bespreken we hoe de LPC55S6x-serie het mogelijk maakt om de veiligheid van een apparaat gedurende de gehele levenscyclus te beheren.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

Achtergrondinformatie over deze auteur

Image of Stephen Evanczuk

Stephen Evanczuk

Stephen Evanczuk heeft meer dan 20 jaar ervaring in het schrijven voor en over de elektronicasector met betrekking tot heel wat onderwerpen, waaronder hardware, software, systemen en toepassingen zoals het IoT. Hij behaalde zijn filosofiediplomain neurowetenschappen over neuronale netwerken en werkte in de ruimtevaartsector op massaal verspreide veilige systemen en algoritmeversnellingsmethoden. Wanneer hij geen artikels over technologie en techniek schrijft, werkt hij aan toepassingen voor “deep learning” voor herkennings- en aanbevelingssystemen.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey