Het hoeft niet opnieuw
Bestaand ontwerp aangepast voor IoT
Voor veel mensen roept de vraag naar verbonden huishoudelijke apparatuur herinneringen op aan hoe in de 90-er jaren van de vorige eeuw personal computers steeds meer verbonden raakten met het internet. Toen al werd er net als nu over gedebatteerd of deze technologie niet meer was dan een bevlieging, of dat dit inderdaad een blijvende impact zou hebben op de maatschappij. Verbonden PC’s en mobieltjes worden nu als onmisbaar beschouwd en velen voorzien dat het net zo zal gaan als de wereld in de nabije toekomst verbonden huishoudelijke apparaten omarmt.
De mogelijkheid om een koffiezetapparaat van waar dan ook in de wereld in te schakelen zal weliswaar geen levensveranderende technologie zijn, maar koffiezetapparaten vormen nu net de start van de IoT-revolutie in het huishouden. Het IoT zal dienen als basis voor een evolutie van innovaties en zakelijke kansen in het huishoudelijke segment. De niet te stuiten opmars in machine learning en kunstmatige intelligentie zal deze evolutie alleen maar versnellen. De mogelijkheid om ruwe data te verzamelen van huishoudelijke apparaten en sensoren opent een hele nieuwe wereld van gebruiksmogelijkheden en kansen.
Sommige ontwerpers aarzelen nog of ze deel willen nemen aan de IoT-revolutie omdat ze vrezen dat het bouwen van een embedded ontwerp met IoT verbondenheid een ingewikkelde opdracht zal blijken te zijn. De realiteit is echter dat vrij eenvoudig aan de eisen kan worden voldaan. Een voor IoT geschikt product bestaat normaliter uit slechts drie elementen: een processor of microcontroller (het slimme element), een netwerk controller (het verbindende element) en een middel om de communicatie met de ‘buitenwereld’ te beveiligen (het beveiligende element).
Omdat de meeste ontwerpers al veel tijd en inspanning hebben geïnvesteerd om een prachtig product te maken, ligt het voor de hand om het ontwerp van het bestaande product opnieuw te gebruiken. In veel gevallen hoeven alleen de verbindings- en beveiligingselementen te worden toegevoegd voor IoT verbondenheid. In plaats van het vanaf de grond ontwerpen van een oplossing is het mogelijk om snel bestaande ontwerpen aan te passen voor verbondenheid met het IoT. Dit kan op een bijzonder efficiënte manier worden gedaan met gebruikmaking van technieken die zich hebben bewezen in de software programmeerwereld.
Ontleden van de uitdaging
Er zijn een paar trucjes die embedded ontwerpers kunnen leren van software programmeurs als zij het wagen om de taak op zich nemen om een bestaand product te laten werken in het IoT. Programmeurs die een complexe programmeeruitdaging op zich af zien komen, gaan traditiegetrouw vaak over naar een top-down ontwerpbenadering, ofwel modulair programmeren. Deze methode behelst het ontleden van een groter probleem in kleinere, beter te beheersen sub-problemen, die opnieuw kunnen worden onderverdeeld in kleinere op te lossen taken. Dit is een krachtig en bewezen benadering voor het ontrafelen van uitdagende problemen die moeilijk zijn op te lossen met monolithische code. Alles goed en wel, maar hoe kan dit worden vertaald naar embedded hardware systemen?
Ook ontwerpers van embedded systemen kunnen dezelfde voordelen behalen door hun systeemontwikkeling op te delen in modulen. Naast het opstellen van zuivere programmeeruitdagingen, moeten embedded systemen vaak voldoen aan standaarden en een certificatieprocedure doorlopen. Het modificeren van software na certificatie of aanpassen van hardware kan een reden zijn voor een herkwalificatie van het product. Alleen al om deze reden levert het grote voordelen op om de onderdelen die moeten worden gecertificeerd op te delen in subsystemen. Op deze manier zullen bugs in een subsysteem geen invloed hebben op de prestaties van andere subsystemen.
De stappen
Veel ontwerpers willen bijvoorbeeld een veilige internetverbinding toevoegen aan de volgende generatie van een bestaand product voor het verbeteren van het gebruiksgemak en om extra functies toe te voegen, zoals diagnostiek op afstand, monitoren van de goede werking, geautomatiseerde afhandelingsdiensten en het verzamelen van statistische data voor het plannen van toekomstige productverbeteringen. Dit voor IoT geschikte product moet over drie hoofdbestanddelen beschikken:
- De oorspronkelijke toepassing
- Verbondenheid met het internet
- Een middel om de toepassing te beveiligen
Zoals in afbeelding 1 is te zien, bestaat dit soort voor IoT geschikte toepassingen in wezen uit de oorspronkelijke toepassing met toegevoegde beveiliging en verbondenheid.
Gezien vanuit een implementatiestandpunt kan deze ontwerpuitdaging worden opgedeeld in drie sub-taken, waarbij de oorspronkelijke toepassingscode wordt hergebruikt en alleen beveiliging en verbondenheid zijn toegevoegd.
Zowel beveiliging als internet verbondenheid zijn, echter, gecompliceerd om dit vanaf de eerste schets te ontwikkelen. Bovendien kan het integreren van nieuwe functies in een bestaande toepassing interfereren met de bestaande oplossing, hetgeen afbreuk doet aan de kwaliteit van de gecombineerde toepassing. Ontwerpers schrijven vaak code die in hoge mate is geoptimaliseerd voor de huidige toepassing. Dit heeft tot gevolg dat het erg lastig kan zijn om timing-kritische verbondenheid en zware rekenintensieve beveiliging toe te voegen en toch dezelfde benchmarkniveaus van prestaties op het opgewaardeerde product te kunnen garanderen.
Hoe te doen
Afbeelding 2 illustreert de gecombineerde benadering. Alle functies zijn geïmplementeerd binnen een enkele oplossing, hetgeen de complexiteit van zowel het schrijven van code als het opsporen van fouten verhoogt. Foutjes in een onderdeel van de code kunnen invloed hebben op de timing en prestaties van andere kritische functies, zodat het niet ondenkbaar is dat een simpele fout leidt tot neveneffecten en dat triggert de noodzaak voor een herkwalificatie.
Bij een modulaire benadering kunnen ontwerpers hun bestaande codebasis en IP intact laten en alleen die verbondenheids- en beveiligingsfuncties toevoegen die noodzakelijk zijn. Door gebruik te maken van deze benadering kunnen de veiligheids- en verbondenheidsfuncties worden geïmplementeerd als afzonderlijke software en hardware taken, hetgeen enorm veel tijd bespaart, en bovendien zijn er minder ontwerpers nodig voor een bepaald product. Deze benadering voorziet ook in eenvoudigere code en hergebruik van het systeem, hetgeen een grotere flexibiliteit oplevert. Zo wil een ontwerper bijvoorbeeld zowel een Wifi als een Bluetooth Low Energy (BLE) versie aanbieden van hetzelfde product. De modulaire benadering maakt snelle en gemakkelijke innovatie in IoT ontwerp in dit scenario mogelijk, zie afbeelding 3.
Extra module
Het voordeel van de modulaire benadering is dat alle werkzaamheden die zijn gericht op het optimaliseren en afregelen van het bestaande systeem niet verloren gaan bij het toevoegen van IoT verbondenheid aan het product. De ontwerper kan eenvoudig de gewenste functies toevoegen zonder andere onderdelen van het systeem te beïnvloeden.
Om het proces te vereenvoudigen kan worden gekozen voor gecertificeerde modulen voor zowel beveiliging als draadloze communicatie. Dit zal de certificatietijd aanzienlijk beperken alsook de tijd die gepaard gaat met het op de markt brengen van een nieuw product. Een voorbeeld van zo’n gecertificeerd beveiligingselement is de ATECC608A van Microchip’s. Dit onderdeel handelt alle taken af die verband houden met verificatie en de veilige opslag van beveiligingssleutels en certificaten, hetgeen een veilige oplossing oplevert zonder dat er ook maar een enkele instructiecode hoeft te worden geschreven. Op dezelfde manier voeren gecertificeerde draadloze modulen alles wat nodig is uit voor een beveiligde verbinding met een draadloos netwerk.
Door gebruik te maken van gecertificeerde modulen voor beveiliging en draadloze functies hoeft een ontwerper ook geen expert te zijn in beveiliging of communicatie. De modules bevatten alle noodzakelijke stukjes code en over het algemeen worden ze bestuurd door eenvoudige commando’s die worden verzonden over een seriële interface, zoals UART, SPI of I2C.
Om het ontwerpen nog verder te vereenvoudigen en de marktintroductie te versnellen, bevatten ontwikkelkaarten, zoals Microchip’s AVR-IoT WG ontwikkelaart (afbeelding 4), deze modulen voor beveiliging en gemakkelijk toe te passen IoT verbondenheid. Door gebruik te maken van dit soort hulpmiddelen kost het soms maar 30 seconden en enkele klikken voor een ontwerper om een bestaand product met de Google Cloud IoT Core te verbinden en het verzenden van data te starten.
Tot slot
De mogelijkheid voor het verbinden van huishoudelijke apparaten en consumentenproducten met de cloud maakt dat ze waarschijnlijk aanzienlijke meerwaarde zullen opleveren, ofwel door het leveren van big data voor kunstmatige intelligentie en machine learning toepassingen, ofwel door het simpelweg aanbieden van een gemakkelijkere manier voor het uitvoeren van beveiligde firmware updates op afstand. Het ontleden van de uitdaging en het toepassen van gecertificeerde modulen voor beveiligings- en communicatiefuncties geeft ontwerpers een voorsprong bij het aanpassen van hun huidige ontwerpen als ze deze mogelijkheden niet onbenut laten.
Auteur: Arild Rodland, Business Development Manager (EMEA), Microchip Technology Inc.