Klik hier voor de Engelse versie van de broncode.

Hoe veilige laag-vermogen edge IoT-apparaten te ontwerpen met behulp van Silicon Labs PG23 MCU's.

Door Jacob Beningo

Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey

Ontwerpers van een reeks consumenten- en industriële egde-toepassingen van het Internet of Things (IoT), van lichtschakelaars, meterlezers en slimme sloten tot zonne-omvormers en beveiligingspanelen, moeten een goede balans vinden tussen hoge prestaties en laag vermogen - met name voor ontwerpen met batterijvoeding - en er tegelijkertijd voor zorgen dat hun implementaties veilig zijn. In veel gevallen is de basis van dergelijke ontwerpen een microcontroller (MCU), zodat de ontwerper zorgvuldig moet overwegen welke hij wil gebruiken.

Samen met solide ondersteuning voor beveiliging, zijn factoren om te overwegen processorkernprestaties, efficiëntie, ondersteuning van randapparatuur en I/O, algemene vormfactor en ondersteuning van het ecosysteem. Hoewel een MCU kan voldoen aan de ontwerpeisen wat betreft prestaties en vermogen, heeft de implementatie van een veilig ontwerp een leercurve die vertragingen kan veroorzaken of ertoe kan leiden dat de beveiliging niet adequaat wordt geïmplementeerd.

In dit artikel worden kort de beveiligingsoverwegingen voor edge IoT-apparaten besproken. Vervolgens wordt de Silicon Labs EFM32PG23 MCU geïntroduceerd en wordt getoond hoe deze kan worden toegepast voor beveiligde edge IoT-ontwerpen, met de nadruk op laag vermogen.

Beveiligingsproblemen met IoT-apparaten

Het aantal aanvallen op afstand op met internet verbonden apparaten blijft stijgen. Embedded ontwikkelaars zijn misschien geneigd te denken dat hun IoT-randapparaat geen beveiliging nodig heeft omdat het niet "iets waardevols" bevat. De waarheid is dat bijna elk apparaat iets heeft dat een hacker waardevol kan vinden, of het nu gaat om de sensorgegevens, klantgegevens, de eigenlijke firmware op het apparaat, of de toegang die het apparaat biedt als achterdeur naar aangesloten netwerken. Beveiliging is een kritieke eigenschap die vanaf het begin in elk IoT-randapparaat moet worden ingebouwd: het mag niet aan het eind van de ontwerpcyclus aan het systeem worden vastgeschroefd. Anders is het apparaat zeer kwetsbaar voor aanvallen.

Elk IoT-randapparaat heeft verschillende beveiligingsgebieden waarmee rekening moet worden gehouden, zoals apparaatidentificatie, apparaatconfiguratie en software/firmware-updates. Afbeelding 1 toont een lijst van veel voorkomende problemen en hoe deze problemen zich vertalen in een vereiste voor apparaatbeveiliging. Elke beveiligingseis heeft een bijbehorende technologie die vaak wordt gebruikt om aan die eis te voldoen en mogelijke aanvallers te dwarsbomen.

Bezorgdheid Veiligheidsvereiste Technologie
Identificatie van het apparaat Het IoT-apparaat kan zowel logisch als fysiek uniek worden geïdentificeerd. Beveiligd attest
Configuratie van het apparaat De software- en firmwareconfiguratie van het IoT-apparaat kan worden gewijzigd, en dergelijke wijzigingen kunnen alleen worden uitgevoerd door bevoegde entiteiten. Beveiligde upgrade
Software- en firmware-update De software en firmware van het IoT-apparaat kunnen door geautoriseerde entiteiten worden bijgewerkt met uitsluitend een veilig en configureerbaar mechanisme.
Gegevensbescherming Het IoT-apparaat kan de gegevens die het opslaat en overdraagt beschermen tegen ongeoorloofde toegang en wijziging. Beveiligingssleutelbeheer
Logische toegang tot interfaces De IoT-device kan de logische toegang tot zijn lokale en netwerkinterfaces beperken tot bevoegde entiteiten. Veilig debuggen
Sotware en firmware update De software en firmware van het IoT-apparaat kunnen door geautoriseerde entiteiten worden bijgewerkt met uitsluitend een veilig en configureerbaar mechanisme. Beveiligde upgrade
Cybersecurity eventlogging Het IoT-apparaat kan cyberbeveiligingsgebeurtenissen loggen en de logs alleen toegankelijk maken voor bevoegde entiteiten. Anti-tamper
Software-integriteit Pogingen om de beveiliging te doorbreken worden geregistreerd en ontwikkelaars kunnen passende technologieën voor tegenmaatregelen selecteren om de beveiliging te beschermen. Beveiligd opstarten

Afbeelding 1: Ontwerpers van IoT-randtoepassingen moeten rekening houden met tal van beveiligingsproblemen, vereisten en bijbehorende technologie. (Bron afbeelding: Silicon Labs)

Een groot probleem bij veel van de embedded teams die IoT-randtoepassingen ontwikkelen, is dat ze geen interne beveiligingsexpertise hebben. Het resultaat is dat zij ofwel intern hun best moeten doen om veiligheid te leren en te implementeren, ofwel gebruik moeten maken van een externe bron. Hoe dan ook, de kosten en de timing kunnen buitengewoon zijn.

Er bestaat een alternatief: het ontwikkelingsteam kan een MCU kiezen die is ontworpen met het oog op beveiliging en die kant-en-klare beveiligingsoplossingen biedt waarvoor slechts kleine configuratieaanpassingen voor de betreffende toepassing nodig zijn.

Inleiding tot de PG23-serie MCU-apparaten van Silicon Labs

De Silicon Labs EFM32PG23-serie microcontrollers is om verschillende redenen een interessante optie voor IoT-randapparatuurtoepassingen. Ten eerste kan de PG23 MCU Silicon Labs' eigen Secure Vault IoT-beveiligingsoplossing uitvoeren. Secure Vault is een platform voor de beveiliging en toekomstbestendigheid van IoT-apparaten dat onlangs als eerste IoT-beveiligingsoplossing de PSA Certified Level 3-status heeft bereikt. Enkele van de functies die Secure Vault toevoegt aan PG23 MCU's zijn veilige apparaatidentiteit, veilig sleutelbeheer en opslag, en geavanceerde sabotagedetectie.

Secure Vault maakt gebruik van een unieke digitale vingerafdruk die wordt gegenereerd door een fysiek niet-klikbare functie (PUF). Een PUF kan worden gebruikt om een symmetrische AES-sleutel te maken die fysiek verdwijnt wanneer het systeem wordt uitgeschakeld. De symmetrische AES-sleutel bestaat zelfs niet als de chip uit staat, waardoor hij onmogelijk uit het apparaat kan worden verwijderd. Een PUF is een effectieve oplossing voor het sleutelbeheer waarmee veel IoT-randtoepassingen worden geconfronteerd. In feite kan de PUF zoveel sleutels ondersteunen als nodig is om een toepassing te ondersteunen. Secure Vault bevat ook een sabotagedetectiesysteem dat ervoor zorgt dat de sleutel niet kan worden gereconstrueerd zodra het apparaat wordt uitgeschakeld na een sabotagegebeurtenis. De belangrijkste veiligheidskenmerken kunnen als volgt worden samengevat:

  • Beveiligd attest
  • Beveiligingssleutelbeheer
  • Veilige sleutelopslag
  • Anti-tamper

Een andere reden dat de PG23 MCU's zeer geschikt zijn voor IoT-randtoepassingen is dat ze zijn ontworpen voor laag-vermogen toepassingen. Het actieve stroomverbruik van de PG23 is 21 microampère per megahertz (µA/MHz). Het stroomverbruik is 1,03 µA met 16 kilobytes (Kbytes) RAM actief in EM2 modus, of 0,7 µA met de real-time klok (RTC) ingeschakeld in EM4 modus. Een dergelijk laag stroomverbruik helpt ontwikkelaars bij het ontwerpen van een energie-efficiënt apparaat, of het nu op het lichtnet is aangesloten of op batterijen werkt.

De laatste eigenschap van de PG23 die hier wordt onderzocht zijn de mogelijkheden van de MCU. De PG23 heeft een Arm® Cortex®-M33-processor met een kloksnelheid tot 80 MHz. De processor kan werken in het 1,71 volt tot 3,8 volt bereik met een enkele voeding. Voor ontwikkelaars die werken aan sensortoepassingen is er een energiezuinige sensorinterface (LESENSE). De MCU wordt geleverd in een 40-pins QFN-pakket van 5×5 millimeter (mm) of een 48-pins QFN-pakket van 6×6 mm. Een blokschema van de PG23 is weergegeven in Afbeelding 2. De MCU heeft ook vijf vermogenstoestanden: EM0 voor loopmodus, EM1 voor slaap, EM2 voor diepe slaap, EM3 voor stop, en tenslotte EM4 voor uitschakeling.

Diagram van Silicon Labs PG23 MCU heeft een breed scala aan randapparatuur (klik om te vergroten)Afbeelding 2: De PG23 MCU heeft een breed scala aan randapparatuur, geheugen en energiebesparende modi. (Bron afbeelding: Silicon Labs)

Aan de slag met het PG23-PK2504A-ontwikkelbord

De beste manier om met de PG23 te beginnen is met het PG23-PK2504A-ontwikkelbord. Het bord heeft een EFM32PG23B310F512-processor die wordt ondersteund door zijn eigen 512 Kbytes flash en 64 Kbytes RAM. Het ontwikkelingsbord bevat een groot aantal ingebouwde sensoren, interfaces en een 4×10 segment LCD (Afbeelding 3).

Schema van het PG23-2504A-ontwikkelingsbord van Silicon LabsAfbeelding 3: Het PG23-2504A-ontwikkelingsbord wordt geleverd met een EFM32PG23 MCU en een 4×10 segment LCD, temperatuur- en vochtigheidssensoren, een spanningsreferentie en uitbreidingsinterfaces. (Bron afbeelding: Silicon Labs)

Met het bord in de hand kunnen ontwikkelaars Simplicity Studio downloaden en installeren (onder het tabblad Aan de slag). Simplicity Studio is een lanceerplatform voor alles wat nodig is om EFM32-microcontrollers te evalueren, configureren en ontwikkelen. De software omvat opstartmateriaal, documentatie, compatibele tools en hulpmiddelen.

Wanneer een ontwikkelaar Simplicity Studio opent en een ontwikkelbord aansluit, zal de software het bord identificeren en aanbevelingen geven voor voorbeeldprojecten, documentatie en demo's (Afbeelding 4). De ontwikkelaar kan dan het beste pad kiezen om aan de slag te gaan en beginnen te experimenteren met de PG23.

Afbeelding van Silicon Labs Simplicity Studio (klik om te vergroten)Afbeelding 4: De Silicon Labs Simplicity Studio detecteert het bord en geeft aangepaste aanbevelingen om aan de slag te gaan, documentatie, voorbeeldprojecten en meer. (Bron afbeelding: Silicon Labs)

Een voorziening die de aandacht verdient op het PG23-PK2504A-ontwikkelingsbord is de schakelaar die bepaalt hoe het ontwikkelingsbord wordt gevoed. Er zijn twee opties: AEM of BAT (Afbeelding 5). In de AEM-modus staat er een stroomvoerende weerstand in serie met de LDO-voeding en de PG23. Het voordeel van deze modus is dat ontwikkelaars de stroomafname van de processor kunnen meten om te helpen bij stroomoptimalisatie. Zodra de toepassing is geoptimaliseerd, kunnen ontwikkelaars overschakelen naar de BAT-modus om het ontwikkelbord te laten werken op een knoopcelbatterij.

Schema van Silicon Labs PG23-PK2504A biedt een optie om het bord via USB-C van stroom te voorzien.Afbeelding 5: De PG23-PK2504A biedt een optie om het bord via USB-C in zijn AEM-modus van stroom te voorzien, waardoor de processorstroom kan worden gemeten. De processor kan ook worden gevoed door een CR2032-knoopcelbatterij. (Bron afbeelding: Silicon Labs)

Tips en trucs voor het minimaliseren van het energieverbruik in een IoT-toepassing

Minimalisering van het energieverbruik is essentieel voor elk IoT-randontwerp, of ze nu op batterijen werken of niet. Het optimaliseren van een ontwerp voor energiegebruik kan tijdrovend zijn als ontwikkelaars niet oppassen. Hieronder staan enkele "tips and tricks" waarmee ontwikkelaars snel een IoT-toepassing kunnen optimaliseren voor laag vermogen:

  • Gebruik een event-driven software architectuur. Als het systeem een gebeurtenis niet verwerkt, zet het het in een spaarstand.
  • Maak een profiel van het batterijverbruik van het systeem over meerdere laad-/ontlaadcycli. Registreer de opgenomen stroom en de bedrijfsspanning en zet ze uit in de tijd.
  • Maak gebruik van spaarstanden om automatisch klokken, randapparatuur en de CPU uit te schakelen.
  • Onderzoek in eenvoudige toepassingen het gebruik van de Arm Cortex-M "sleep on exit" functie om de interrupt-overhead bij het ontwaken van het systeem te minimaliseren.
  • Als u een RTOS gebruikt, maak dan gebruik van de "tickless" modus om te voorkomen dat het RTOS het systeem onbedoeld wakker maakt.
  • Wanneer u in iteraties optimaliseert, houdt u de energiebesparing van elke verandering bij. Op een gegeven moment ontdekken ontwikkelaars een "knee" waar de tijd die wordt besteed aan optimalisatie een laag rendement heeft in termen van energiebesparing. Het is tijd om te stoppen met optimaliseren en over te gaan naar de volgende fase.

Ontwikkelaars die deze "tips and tricks" volgen, zullen heel wat tijd en verdriet besparen wanneer ze aan hun volgende veilige, energiezuinige IoT-ontwerp beginnen.

Conclusie

De behoefte aan veilige, laag-vermogen MCU's neemt toe voor IoT-randtoepassingen. Naast solide ondersteuning voor beveiliging zijn de factoren waarmee ontwerpers rekening moeten houden om te voldoen aan de behoeften van edge-based ontwerpen onder meer processorkernprestaties, efficiëntie, perifere en I/O-ondersteuning, algemene vormfactor en ondersteuning van ecosystemen.

Zoals aangetoond kan de Silicon Labs EFM32PG23 MCU-ontwikkelaars helpen bij het oplossen van verschillende problemen in verband met energiezuinig ontwerp en apparaatbeveiliging. Het bijbehorende ontwikkelbord biedt alle nodige hulpmiddelen om aan de slag te gaan, en door enkele belangrijke "tips and tricks" te volgen, kan een ontwerp met laag stroomverbruik snel worden geïmplementeerd.

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 Jacob Beningo

Jacob Beningo

Jacob Beningo is een embedded software consultant. Hij heeft meer dan 200 artikelen over embedded software ontwikkelingstechnieken gepubliceerd, is een veelgevraagde spreker en technische trainer en heeft drie universitaire graden, waaronder een Masters of Engineering bij de University of Michigan.

Over deze uitgever

De Noord-Amerikaanse redacteurs van DigiKey