Jos Hegge is ontwikkelmanager bij Synopsys in Eindhoven.

1 March 2013

De wereldwijde markt voor sensoren groeit hard. Om deze stijging het hoofd te bieden, komt er steeds meer behoefte aan slimmere oplossingen die de sensor in één chip combineren met een of meerdere processoren. Jos Hegge van Synopsys geeft een overzicht en beschrijft de uitdagingen voor de systeemontwerper.

Sensoren zijn hot. Er komen steeds meer apparaten die op een of andere manier samenwerken met hun omgeving en sensordata-invoer nodig hebben. Het totaalgebruik van sensoren zowel in termen van absolute aantallen als in de diversiteit van de gemeten grootheden is de laatste jaren enorm gegroeid. De verwachting is dat dit nog verder zal versnellen.

In industriële toepassingen zijn sensoren al geruime tijd belangrijk voor fabrieksautomatisering en andere professionele toepassingen. In dat domein is het gebruik zeer applicatiespecifiek. De volumes zijn dan ook klein.

De afgelopen jaren zijn er andere markten bij gekomen, met andere karakteristieken. Automotive is een relatief nieuw domein met een veel steilere groeicurve. Volgens schattingen vertegenwoordigen sensoren en andere elektronica in 2014 meer dan veertig procent van de waarde van een auto. Bepalende factoren hierbij zijn de steeds striktere eisen op het gebied van veiligheid en energieverbruik maar ook een trend naar (meer) autonome voertuigen.

Synopsys Figuur 1
Figuur 1: Een ADC converteert een analoge meetwaarde naar een digitale output.

Meest opvallend is de doorbraak van sensoren in consumententoepassingen. Met de introductie van geavanceerde smartphones en tablets is er bijna vanuit het niets een consumentensensormarkt ontstaan. Dit domein groeit enorm, zowel in absolute aantallen als in de aantallen gebruikte sensoren. De volumes zijn typisch hoog en de kosten per sensor laag.

 advertorial 

Free webinar ‘Modernizing your code base with C++20’

As many production tool chains now adopt C++20 features, the potential this brings is unlocked. What advantages can recent versions offer to your code base? In this webinar we’ll look at the great improvements C++ has gone through and how features like concepts and ranges can transform your code. Register for 2 February, 4PM.

Extra complexiteit

Aangezien de fysieke wereld om ons heen analoog is, registeren alle sensoren hun fysieke grootheid primair in analoge waardes. Temperatuur kunnen we bijvoorbeeld meten aan de hand van de stroom door een temperatuurgevoelige weerstand. Om de output van het sensorelement te gebruiken in een digitaal formaat is een vorm van analoog-naar-digitaalconversie nodig (ADC). Door continu te blijven meten, ontstaat een digitaal signaal. Eenmaal in het digitale domein kunnen we het signaal filteren en bewerken voordat het uiteindelijk naar de gebruiker gaat via een of andere communicatie-interface of –peripheral. De combinatie van deze componenten vormt een digitale sensor (Figuur 1).

Synopsys Figuur 2
Figuur 2: Sensorfusie combineert de resultaten van meerdere sensoren zo dat de ’som‘ beter is dan de delen.

Voor de systeemintegrator bieden digitale sensoren veel voordelen, in het bijzonder als netwerken gewenst zijn. Een netwerkimplementatie geeft zo‘n dertig procent besparing in bedradingskosten omdat niet iedere sensor met een eigen kabel aan de centrale verwerkingseenheid hoeft te hangen. Digitale communicatie laat ook langere afstanden toe en verbindingen van verschillende lengte. Digitale sensoren die zichzelf kalibreren, kunnen we zelfs vervangen zonder de verwerkingseenheid te hoeven aanpassen.

Een groot voordeel voor de IC-designer is dat digitale implementatie relatief eenvoudig is. Het maken van analoge bandfilters of adaptieve analoge filters is tamelijk veel werk, vraagt vaak nogal wat ruimte op de chip en vereist compromissen in de stabiliteit van de filterkarakteristieken. De rol van analoge signaalbewerking beperkt zich daarom meer en meer tot het normaliseren van het analoge signaal tot het invoerbereik van de ADC.

Synopsys Figuur 3
Figuur 3: Inbedding van een microprocessor maakt het mogelijk om sensorfunctionaliteit in software te implementeren.

Daarnaast worden sensoren steeds meer een integraal deel van processorgebaseerde apparaten. Voor de communicatie tussen meet- en verwerkingseenheid bestaan vele mogelijkheden, variërend van bussen, een op een serieel, parallel, pulsgemoduleerd, via gedeeld geheugen of draadloos. Daarnaast is er nog een bijna oneindige verzameling van toegepaste protocollen. De interfacing naar analoog zorgt voor extra complexiteit die de ontwerpers van deze systemen liever kwijt dan rijk zijn. Zij gaan er tegenwoordig zelfs bijna vanuit dat sensoren een digitaal signaal afleveren.

Gecombineerde output

Voor veel applicaties zijn de nauwkeurigheid en stabiliteit van een sensorsignaal cruciaal. Het is vaak moeilijk of zeer duur om een sensor te maken die aan de allerhoogste eisen voldoet. Een manier om dit probleem te omzeilen, is door meerdere sensoren te gebruiken die verschillende grootheden meten en hun resultaten zo te combineren dat de ’som‘ beter is dan de delen. Dit heet ook wel sensorfusie. De inputs kunnen hierbij zowel analoog als digitaal zijn (Figuur 2). Deze aanpak wordt steeds meer toegepast in IC-ontwerp.

Sensorfusie kunnen we ook inzetten in de strijd tegen het verlopen van de meetwaarde. Soms heeft de inherente ruis in een sensor een sterk negatieve invloed op de output, onafhankelijk van de nauwkeurigheid van de meting. Als een integratiestap nodig is, kan een kleine afwijking in het gemeten signaal bijvoorbeeld leiden tot een geleidelijk verloop van het resultaat. We kunnen dan een andere sensor gebruiken om hiervoor te compenseren of te kalibreren.

Synopsys Figuur 4
Figuur 4: Een sensorhub neemt alle hoogfrequente maar niet rekenintensieve taken op zich bij de afhandeling van de sensoringangen.

Er zijn meerdere standaard algoritmes om sensorwaardes te fuseren. De meest bekende is het Kalman-filter. Dit voert een recursieve operatie uit op ruizige datastromen om een statistisch optimale schatting te maken van de onderliggende systeemstatus. Simpel gezegd: het filter middelt ruis uit en kalibreert zichzelf aan de hand van corrigerende meetwaardes.

De gecombineerde output kunnen we niet zonder meer gebruiken. We dienen rekening te houden met inherente effecten zoals een verschil in relatieve positie van de sensorelementen. Om hiervoor te corrigeren, zijn extra kalibratiestappen nodig.

Hardware of software

De eerste sensoren met geïntegreerde ADC en digitale uitgang zijn pure hardwareoplossingen. De componenten gebruiken een converter, een communicatie-peripheral voor de digitale output en een hardwarematige state machine om de ADC-sampling en de uitgangscommunicatie aan te sturen. Daarbij kunnen ze filters toepassen om de signaalkwaliteit te verbeteren, bijvoorbeeld een analoog laag-doorlaatfilter voor antialiasing bij de AD-conversie.

Sensoren moeten echter steeds meer kunnen. Een manier om aan deze vraag te voldoen, is door een microprocessor toe te voegen (Figuur 3) die de functionaliteit in software uitvoert. Processoren bieden een hoge functionele dichtheid tegen lage kosten en veel meer flexibiliteit. Sensorfuncties die we vaak in software geïmplementeerd zien, zijn bijvoorbeeld digitale filters, kalibratie, zowel initieel als continu om verloop of verouderingseffecten te compenseren, en grenswaardemonitoring of patroonherkenning.

Synopsys Figuur 5
Figuur 5: De Arc EM4-processor is te combineren met een breed scala aan standaard I/O-bouwblokken voor sensortoepassingen.

De laatste functie wordt steeds belangrijker, vooral in applicaties die decentrale sensoren gebruiken. Patroonherkenning tilt de communicatie met de centrale verwerkingseenheid naar een hoger abstractieniveau. In plaats van een continue stroom van waardes, bijvoorbeeld temperaturen, stuurt een sensor dan slechts een event zodra de gemeten grootheid een vooraf ingestelde grenswaarde overschrijdt. Dit bespaart niet alleen bandbreedte op het communicatiekanaal maar ontziet ook nog eens de verwerkingseenheid.

De keuze tussen implementatie in hardware of software is aan de systeemontwerper. Sommige functies zijn zeer efficiënt in hardware terwijl voor andere software een betere oplossing is. Omdat dit sterk situatieafhankelijk is, zijn er geen algemene geldende regels te geven. Een afweging is de oppervlakte die een hardwarematige oplossing inneemt tegenover het benodigde geheugen voor een software-uitvoering. Deze vergelijking valt voor elke IC-technologie anders uit. Andere afwegingen zijn of de hardware generiek is en de productdiversiteit implementeerbaar is in software, en of er voorzieningen nodig zijn waarmee klanten hun eigen filters of andere functies kunnen toevoegen. Is de keuze eenmaal gevallen om een sensor uit te breiden met een processor, dan wordt het erg aantrekkelijk om de innovatieve, risicovolle functies eerst in software te implementeren en er later eventueel speciale hardware voor te ontwikkelen.

Slaaf en meester

Het sensorsysteem levert zijn meetgegevens aan een apparaat dat er verder mee aan de slag gaat. Deze verwerkingseenheid is van origine relatief eenvoudig: neem een applicatieprocessor, koppel daar een of meerdere analoge sensoren aan via ADC‘s en bouw een toepassing. Voor dit laatste gaat de voorkeur in het algemeen uit naar implementatie in software.

Hoe hoger het aantal aangesloten sensoren en hoe hoger de ADC-bemonsteringsfrequentie, hoe hoger echter de belasting van de applicatieprocessor. Het probleem is daarbij niet zozeer de performance, moderne processoren zijn krachtig genoeg, als wel dat het leveren van de benodigde prestaties ten koste gaat van de energiezuinigheid. Dit nadeel kunnen we neutraliseren door de processor in slaaptoestand te brengen als er even niets te doen valt. Bij een heleboel aangesloten sensoren en een hoge bemonsteringsfrequentie blijft er echter weinig tijd over.

Synopsys Figuur 6
Figuur 6: De Arc EM4 is verregaand te optimaliseren voor specifieke sensorapplicaties, onder meer door I/O-functies direct aan de processor te koppelen en extra instructies te implementeren in hardwareversnellers die eveneens rechtstreeks met de processor communiceren.

Een veel efficiëntere oplossing is de sensorhub. Dit is een slaafprocessor die alle hoogfrequente maar niet rekenintensieve taken op zich neemt bij de afhandeling van de sensoringangen (Figuur 4). Het resultaat is een veel lagere datastroom naar de hoofdprocessor, die daardoor minder vaak actief hoeft te zijn en dus veel minder energie verbruikt. Slaaf en meester zitten over het algemeen in één chip, zodat ze kunnen communiceren via gedeeld geheugen.

Steeds meer sensorleveranciers integreren processoren in hun producten om naar hogere abstractieniveaus in de uitgang te gaan. Aan de andere kant zien we steeds meer gebruikers een sensorhub introduceren om alle sensorgerelateerde verwerking naartoe te delegeren. Op systeemniveau geeft dit de uitdaging om een goede verdeling te kiezen van de functionaliteit over alle componenten. Omdat deze ontwikkeling relatief nieuw is, zijn daar nog geen standaarden voor.

Winst boeken

Het ontwerpen van processorgebaseerde sensorapplicaties is tegenwoordig niet zo moeilijk meer. Er zijn grote bibliotheken met standaard bouwblokken beschikbaar waarmee zo‘n systeem eenvoudig is samen te stellen. Synopsys levert bijvoorbeeld de 32 bit Arc EM4-processor, die vanwege zijn performance per eenheid oppervlakte en energie zeer geschikt is voor sensortoepassingen. Ook hebben we een breed scala aan I/O-bouwblokken om een uitgebreid sensorsysteem te maken (zie Figuur 5). Voor specifieke applicaties zullen niet alle componenten nodig zijn, zodat een sensorsysteem in de praktijk veel kleiner zal zijn.

Als meer optimalisatie naar oppervlak of energieverbruik nodig is, zijn er verschillende mogelijkheden. Het is in ieder geval zaak om de configuratieopties van de processor af te stemmen op de andere bouwblokken in het systeem. De ontwerper kan daartoe niet alleen functionaliteit verwijderen maar ook parameters aanpassen van bijvoorbeeld de adresbus, interrupts, registers en timers, en buffers en geheugens op maat snijden met het oog op de gewenste performance en doorvoersnelheid.

Verdere optimalisaties vergen meer drastische ingrepen. Daarvoor heeft de Arc-processor een mechanisme dat Extension Interface Architecture (EIA) heet. De ontwerper kan hiermee eigen uitbreidingen maken voor de processor. Zo kan hij nieuwe instructies toevoegen aan de instructieset. De configuratietool die bij de processor hoort, biedt een wizard die helpt bij het doorlopen van alle benodigde stappen. De hardware-implementatie van de instructies gebeurt in een beschrijvingstaal zoals Verilog.

Om te bepalen welke uitbreidingen van de instructieset zinvol zijn in een sensortoepassing moeten we de sensorsoftware analyseren op veelgebruikte sequenties van instructies. Binnen zekere beperkingen zijn deze dan samen te pakken in een soort macro-instructie. Als de uitdaging is om de programmacode te verkleinen, moeten we het statische voorkomen van de sequenties verminderen. Om de performance te verhogen, moeten we de software simuleren en het aantal processorcycli tellen. Op deze manier valt al snel zo‘n dertig procent winst te boeken in codeomvang en performance. Het kan ook zonder de software te onderzoeken. Als we bijvoorbeeld digitale filters willen toevoegen die al in hardware beschikbaar zijn, kunnen we die middels de EIA afbeelden op nieuwe instructies, die we vervolgens direct kunnen aanroepen vanuit de applicatie.

De EIA biedt ook de mogelijkheid om registers toe te voegen. Deze zijn voor de processor gewoon bereikbaar. Door deze registers in te zetten als buffers voor speciale I/O-bouwblokken kunnen we die I/O-functies direct aan de processor koppelen zonder dat er een tussenliggende bus nodig is (Figuur 6). Zo besparen we niet alleen hardwareoppervlak maar voorkomen we ook de extra latency en het performanceverlies die gepaard gaan met een on-chip bus.

Onderzoek met XSens

Wat is nu de optimale systeemconfiguratie? Met name voor datatransport over een draadloos kanaal lijkt het aantrekkelijk om de gegevensstromen zo veel mogelijk te reduceren in een zo vroeg mogelijk stadium, zo dicht mogelijk bij de sensor dus. Hier staat tegenover dat de rekencapaciteit daar waarschijnlijk relatief veel energie kost.

Om te kijken of hier standaard oplossingen in te bedenken zijn, is Synopsys samen met XSens uit Enschede een onderzoek gestart waarbij we behalve de datatransmissie ook aspecten beschouwen als de bemonsteringsfrequentie en de signaalverwerking. We hebben specifiek gekozen voor bewegingssensoren omdat dat domein relatief ver is met de toepassing van sensorfusie. Verschillende leveranciers hebben al accelerometers, gyroscopen en magnetische sensoren geïntegreerd tot multidimensionale producten, van 3D tot 10D, afhankelijk van het aantal sensoringangen.

In een eerste fase porteren we de Motion Sensor Fusion-softwaresuite van XSens naar een fysiek prototype van een Arc EM4-gebaseerd sensorsysteem. Met de EIA-functionaliteit onderzoeken we vervolgens hoe we de strap-down integration-stap (SDI) in het sensorfusieproces kunnen optimaliseren door een gehele of gedeeltelijke omzetting naar hardware. Doel van XSens is om de SDI-software te leveren aan makers van bewegingssensoren. Voor Synopsys is het een mooie demonstratie van de mogelijkheden die onze bouwblokken bieden.

Edited by Nieke Roos