Utiliser du matériel intelligent pour améliorer le rendement énergétique de l’IdO
Par Simon Duggleby, Product Marketing Manager, Electronics Division,
L’Internet des objets (IdO) utilise des capteurs évoluant dans le monde qui nous entoure pour offrir plus d’intelligence. En détectant les produits chimiques, l’humidité, la température et autres variables environnementales, les systèmes IdO sont capables de réguler les conditions ambiantes des bâtiments pour qu’ils soient plus confortables, dans les usines pour qu’elles soient plus productives, et dans la logistique pour qu’elle soit plus efficace, en maintenant les marchandises dans les conditions optimales à tout instant.
La faible consommation d’énergie est une des caractéristiques les plus importantes d’un nœud de capteurs IdO. Souvent, le nœud de capteurs est sans fil pour faciliter son installation. Toute l’énergie requise par le nœud est fournie par une batterie intégrée ou est récupérée dans l’environnement (exemple : panneaux photovoltaïques). Pour minimiser les coûts de maintenance, Les concepteurs optent pour une batterie qui puisse alimenter le dispositif pendant toute sa durée de vie (qui peut être de cinq ans, dix ans, ou plus).
La consommation énergétique d’un capteur IdO pendant toute sa durée de vie est une combinaison d’énergie consommée pendant les périodes d’activité et d’interaction avec le réseau sans fil, et d’énergie utilisée entre ces périodes d’activité. La consommation énergétique de tout dispositif à base de logique CMOS tel qu’un microcontrôleur provient principalement de l’afflux de charges nécessaire pour passer entre les différents états. S’ajoute à ceci des courants de fuite constants.
L’énergie consommée pendant la commutation est déterminée par la formule CV²f avec C la capacité totale des branches du circuit dans le dispositif, V la tension d’alimentation et f la fréquence de fonctionnement. La consommation liée aux courants de fuite dépend de la technologie du procédé de fabrication et est bien plus faible que la consommation liée à la commutation. Mais, parce que les courants de fuite sont générés continuellement, ils entrainent un gaspillage d’énergie important à long terme.
La seule manière d’empêcher les courants de fuite est d’éteindre complètement le circuit. De nombreux microcontrôleurs sont conçus pour pouvoir le faire. Quand le système est au repos, l’état de veille du microcontrôleur permet à la majeure partie du circuit intégré (IC) d’être déconnectée du rail de puissance, laissant seulement qu’une petite partie du dispositif en fonctionnement, telle que l’horloge temps réel. Un état de veille à basse consommation consommera bien moins d’énergie qu’en mode actif.
De nombreuses applications IoT peuvent profiter de la prise en charge du mode veille par les microcontrôleurs. Les temps morts entre les périodes d’activité intense peuvent être relativement longs. Chaque lecture effectuée par un capteur a de grandes chances de ne durer que quelques centaines de microsecondes et parfois beaucoup moins. Même si une lecture doit être effectuée dix fois par seconde, le nœud de capteurs peut être en état de veille pendant la plus grande partie de sa vie.
La durée de vie est très sensible au facteur d’utilisation entre les modes d’activité et de veille. Pour un facteur d’utilisation de 5 pour cent, le dispositif peut se réveiller cinq fois toutes les secondes pour une durée de 10ms. Un MCU qui consomme 1mA lorsqu’il est à son maximum d’activité, et qui peut maintenir un mode de veille profonde consommant 2µA en permanence, peut fonctionner pendant environ quatre ans avec une batterie de 1800mAh. Si ce cycle d’activité augmente à 10 pour cent alors la durée de vie sera pratiquement divisée par deux.
Les concepteurs de microcontrôleurs visant les applications IdO ont bien pris soins de ne pas uniquement réduire la puissance consommée pendant les modes actifs et veille mais aussi de permettre d’augmenter la proportion de temps passé en veille plutôt qu’en état d’activité intense. Un pic d’activité pour un microcontrôleur va se produire typiquement pendant des périodes où le processeur central fait tourner un logiciel.
De l’énergie sera aussi gaspillée pendant les périodes de réveil et de suspension de l’activité. Pendant ces périodes, le logiciel ne va pas effectuer de travail utile. Les concepteurs de microcontrôleurs ont travaillé pour réduire les temps de réveil en utilisant des oscillateurs à horloge intégrés à démarrage rapide, mais le système va consommer de l’énergie pendant qu’il transfert les valeurs entre d’importants registres et la mémoire non-volatile, et effectue d’autres tâches annexes. La clé, donc, pour prolonger la durée de vie de la batterie, est de minimiser le nombre de cycles d’éveil nécessaire. Des périphériques Intelligents fournissent des solutions pour réaliser cela.
Un certain nombre de (concepteurs[V1] ) ont incorporé des périphériques intelligents, qui économisent de l’énergie (des MCU 8 bits tels que ceux de la gamme PIC de Microchip jusqu’aux SoC basés ARM 32 bits). Certains incorporent des machines d’état et des processeurs d’E/S qui coordonnent des périphériques sans avoir à impliquer de traitement logiciel à moins que ça ne devienne absolument nécessaire.
Des exemples comme les technologies picoPower et SleepWalking d’Atmel et le bloc périphérique LESENSE utilisé par la série de microcontrôleurs Gecko de Silicon Labs. Microchip a employé le concept de périphériques à cœur-indépendant dans un certain nombre de ses MCU PIC12 and PIC16.
L’intégration de machines d’état et autre logique dans le matériel périphérique permet de garder le cœur du processeur en veille plus longtemps en transférant certains des calculs, souvent exécutés par le logiciel, vers le matériel. Les plus simples dispositifs matériels de bas niveau s’activent plus rapidement à partir de l’état de veille et consomme beaucoup moins d’énergie qu’une unité centrale de traitement aux fonctionnalités complètes.
Dans une application classique, le MCU va fonctionner pour la plupart du temps en veille avec seulement les fonctions les plus vitales, telles que la circuiterie d’interruption matériel du cœur et l’horloge temps réel. Cela permet au système de traiter des interruptions de réinitialisation et de maintenir l’horloge du système, et avoir l’horloge en fonctionnement permettant de générer des interruptions à intervalles réguliers.
Ces interruptions peuvent entraîner un réveil partiel qui active des blocs matériel importants tels que les convertisseurs analogiques numériques (CAN) reliés aux capteurs externes du dispositif IdO. Une fois activés, les CAN peuvent effectuer des mesures et les transmettre à la mémoire intégrée. La machine d’état dans un contrôleur LESENSE, par exemple, peut comparer les nouvelles valeurs à un seuil fixé par le logiciel avant la dernière mise en veille du cœur de processeur. Si la valeur est inférieure au seuil, le processeur peut rester en veille. Sinon, l’unité LESENSE va réveiller le processeur pour qu’il effectue une analyse plus détaillée et agir potentiellement par rapport au changement.
La coordination du matériel de bas niveau entre périphériques permet de stocker des données provenant de mesures répétées pour que les valeurs puissent être mises à la disposition du processeur quand il doit finalement être réveillé. Les sous-systèmes picoPower dans les MCU basés ARM d’Atmel ont accès à des contrôleurs à accès direct à la mémoire (direct memory access (DMA)) qui permettent de stocker les données capturées, en toute sécurité dans la mémoire locale. Le contrôleur DMA peut réduire encore la consommation du système en utilisant un moteur matériel CRC afin de calculer automatiquement une somme de contrôle (Checksum) pour assurer une vérification d’intégrité, économisant davantage d’énergie.
La gamme de périphériques à cœur indépendant disponible dans la gamme PIC de Microchip comprend une cellule logique configurable (Configurable Logic Cell) qui effectue une logique combinatoire et une logique basée sur l’état d’un maximum de 32 sources d’entrée internes ou externes, continuant de fonctionner pendant que le cœur du processeur est en veille. Cela permet au MCU d’effectuer le conditionnement du signal et la manipulation des données sans faire appel au processeur sauf si la logique détermine que l’interruption de réveil doit être sollicitée.
Le SleepWalking dynamique d’Atmel optimise davantage la consommation en permettant des transitions entre modes de consommation sans réveiller le processeur. Cela permet au MCU d’utiliser le mode de plus basse consommation à tout instant, de passer de manière autonome à un mode de plus haute consommation si nécessaire pour utiliser un système ou des ressources périphériques supplémentaires, et de retourner dans un mode de plus basse consommation une fois que l’évènement a été géré.
Au sein de l’écosystème ARM, le support logiciel pour les applications IdO basse consommation est arrivée avec l’OS mBed basé sur une architecture orientée évènements. Traditionnellement, une conception de système d’exploitation en temps réel (real-time operating system (RTOS)) est capable d’augmenter la consommation énergétique en tentant de fournir la plus faible latence possible.
Le modèle basé sur des évènements de l’OS mBed suit le principe de conception utilisé par les MCU renforcés au niveau matériel, pour minimiser la consommation. L’OS mBed n’utilise pas d’interruptions à temporisation régulières pour initialiser des tâches : le processeur est prévu pour se réveiller uniquement au cas où des évènements doivent être gérés. Le modèle simple « thread » traite des tâches dans le même domaine de consommation avant de transférer le contrôle à des tâches d’un autre domaine. Cela permet d’éviter le problème d’avoir différents domaines de consommation activés et remis en veille fréquemment, ce qui minimise globalement la consommation totale d’énergie.
L’optimisation du traitement pour le rendement énergétique dans les écosystèmes à microcontrôleur continue, ce qui permettra de prolonger davantage la durée de vie des batteries employées pour les nœuds de capteurs. Mais la combinaison de périphériques matériels plus intelligents fonctionnant en association avec des cœurs de microprocesseurs apporte déjà un environnement de développement basse consommation pour les applications IdO.