La montée en popularité des microcontrôleurs (MCU) 32 bits à travers la communauté embarquée n’est pas une surprise. Ces dispositifs riches en fonctions conviennent à une multitude d’applications différentes, ce qui explique pourquoi de nombreux développeurs embarqués les choisissent pour leurs prochaines conceptions. Les concepteurs reconnaissent que ces dispositifs complexes offrent tout ce dont ils ont besoin en termes de puissance de calcul brute, d’un riche ensemble de périphériques et d’un accès facile à un large éventail d’outils de développement et de bibliothèques.
Plusieurs de ces dispositifs 32 bits sont basés sur les cœurs ARM qui connaissent un grand succès. Ainsi, les développeurs se sentent en confiance en ayant accès à des dispositifs de seconde source et à un ensemble complet d’outils de développement, de test et de validation étant disponibles sur le marché.
Cependant, en examinant de plus près les tendances récentes du marché des MCU, on constate que les dispositifs 32 bits ne sont pas les seuls à connaître une forte croissance (tableau 1). Le marché en plein essor des MCU 8 bits affiche un taux de croissance composé (6,4 %) proche de celui des 32 bits (6,9 %). D’autres analystes du secteur prévoient des taux de croissance identiques pour les microcontrôleurs 8 et 32 bits.
L’essor des dispositifs 8 bits souligne clairement qu’il doit y avoir des raisons impérieuses d’utiliser un dispositif 8 bits à la place d’un MCU 32 bits. Cet article cherche à apporter un éclairage sur les raisons pour lesquelles les dispositifs 8 bits conservent leur part de marché.
Différences essentielles
Les principales différences entre les MCU 8 et 32 bits sont la structure des coûts et des prix, les performances de l’unité centrale, la facilité d’utilisation, l’efficacité des fonctions proches du matériel et la consommation statique. Lorsqu’ils se lancent dans une nouvelle conception, les développeurs doivent soigneusement évaluer les besoins en MCU en fonction de la capacité de traitement requise, du degré d’interfaçage nécessaire et, pour les conceptions alimentées par batterie, des profils de consommation d’énergie très importants. Il ne fait aucun doute qu’une MCU 32 bits offre des performances supérieures à celles d’un dispositif 8 bits, mais l’ingénieur est confronté à la décision traditionnelle de choisir entre le meilleur dispositif disponible sur le marché et les besoins réels d’une application.
Bien sûr, ces décisions influenceront grandement le coût probable de la nomenclature (BOM). Avec un nombre de portes inférieur, un dispositif 8 bits moins complexe sera certainement moins cher qu’un dispositif 32 bits. Si l’on compare les MCU 8 et 32 bits des principaux fournisseurs, chacun avec une quantité similaire de mémoire flash, de brochage, etc., les dispositifs 8 bits coûtent généralement environ 20 % de moins. Mais ce n’est que la première des nombreuses considérations. Un autre aspect concerne la facilité de configuration d’un nouveau développement.
Facilité de développement
Les fournisseurs de MCU ont tendance à ajouter plus de caractéristiques et de fonctionnalités à leurs dispositifs 32 bits par rapport aux produits 8 bits. Par conséquent, beaucoup plus de considérations de configuration émergent avec un dispositif plus complexe. Bien que certaines MCU 32 bits puissent fonctionner avec une configuration limitée similaire à celle d’un dispositif 8 bits, vous ne pouvez pas profiter des fonctionnalités supplémentaires du dispositif plus puissant.
Télécharger cet article au format .PDF Ce type de fichier comprend des graphiques et des schémas haute résolution le cas échéant. |
Par exemple, un dispositif ARM 32 bits typique aura des paramètres d’horloge indépendants pour le noyau lui-même, le bus AHB, le bus APBA et le bus APBB. Ils peuvent tous être réglés à des fréquences différentes. En général, vous devrez également passer à l’horloge que vous voulez utiliser parce qu’elle est définie dans le logiciel, et non dans le matériel comme la plupart des pièces 8 bits. En outre, changer l’horloge signifie que vous devez configurer les états d’attente pour la flash, éventuellement prédits sur la tension VCC mesurée.
Cette configuration peut être beaucoup plus simple avec une MCU 8 bits, cependant. Par exemple, les produits tinyAVR et megaAVR d’Atmel ne nécessitent que l’initialisation du pointeur de pile, qui prend généralement quatre lignes de code, avant de coder l’application. Le choix de l’horloge, le détecteur de brownout, la fonction de la broche de réinitialisation, etc. sont tous préprogrammés dans le dispositif.
L’architecture est également beaucoup plus simple qu’un dispositif 32 bits avec des registres internes, des périphériques et la SRAM tous mappés sur le même bus de données. Les périphériques et l’unité centrale fonctionneraient normalement à la même fréquence, de sorte qu’aucune configuration du bus périphérique n’est nécessaire. De plus, les concepteurs peuvent éviter de se préoccuper de la latence de synchronisation entre différents domaines d’horloge.
Performance
Lorsqu’il s’agit de la performance désirée du CPU, l’ingénieur doit considérer tous les cas d’utilisation. La réalité est que de nombreuses conceptions embarquées n’ont pas de besoins élevés en matière de calcul. Souvent, très peu de manipulation de données est nécessaire, donc l’équilibre entre ces besoins et les exigences de consommation d’énergie et d’interfaçage de périphériques devient crucial.
Par exemple, une simple application de thermostat passera la plupart de sa vie en mode veille. De temps en temps, elle se réveillera et mesurera la température, puis prendra la décision d’activer/désactiver un relais ou d’envoyer une instruction à un contrôleur hôte. Puis il se remet en veille. Les exigences de calcul et d’interface de cette application sont faibles, mais de nombreuses autres applications telles que les détecteurs d’incendie, les outils électriques, les débitmètres et les contrôles d’appareils ont également un profil d’utilisation similaire.
Efficacité des fonctions proches du matériel
De nombreux microcontrôleurs modernes intègrent certaines fonctions matérielles qui servent à aider le CPU à fonctionner aussi efficacement que possible. Dans le cas d’Atmel, les familles de MCU 8 bits AVR et 32 bits ARM sont dotées du système d’événements périphériques. Un système d’événements est un ensemble de caractéristiques matérielles qui permet aux périphériques d’interagir sans intervention de l’unité centrale. Il permet aux périphériques d’envoyer des signaux directement à d’autres périphériques, assurant un temps de réponse court et 100% prévisible.
Lorsqu’on utilise pleinement les capacités du système d’événements, la puce peut être configurée pour effectuer des opérations complexes avec très peu d’intervention de la CPU, ce qui permet d’économiser à la fois de la mémoire de programme précieuse et du temps d’exécution. Dans le cas de la détection d’un événement matériel, il est important de détecter d’abord l’événement puis de basculer le contrôle vers la routine de service d’interruption (ISR) souhaitée.
Dans ces situations, la vitesse du CPU n’est pas le seul facteur déterminant. Il s’agit de savoir combien de temps, en termes de cycles, il faut pour répondre à l’interruption, exécuter l’ISR et revenir. Comme le montre l’exemple suivant, les périphériques 8 bits peuvent être plus efficaces dans la gestion des actions proches du matériel.
Envisagez de recevoir un octet sur le SPI, d’utiliser une interruption pour le détecter, puis d’exécuter une simple routine ISR pour lire l’octet du périphérique SPI et le stocker dans la SRAM. En utilisant ce scénario, le tableau 2 établit des comparaisons entre un dispositif AVR 8 bits d’Atmel et un MCU 32 bits basé sur l’ARM Cortex M0+ d’Atmel. Calculés avec les informations disponibles, les résultats sont basés sur des implémentations minimales. Cependant, les ingénieurs doivent vérifier avec leurs propres applications car la détection d’interruption et le retour d’interruption peuvent prendre plus de cycles que ceux indiqués dans le tableau. Avoir besoin de 12 cycles contre 33 cycles équivaut à avoir une largeur de bande SPI maximale théorique de 1,67 Mo/s pour le CPU 8 bits et une largeur de bande de 606 kB/s pour un CPU 32 bits lorsqu’il fonctionne à 20 MHz.
Le degré de traitement numérique peut également avoir un impact sur la pile et la mémoire requise. L’application de l’algorithme de Fibonacci est une méthode particulièrement bonne pour tester les besoins en mémoire. Puisqu’il n’utilise qu’une variable locale, tout doit être poussé sur la pile.
Lors d’une comparaison entre un AVR 8 bits et un dispositif ARM 32 bits à base de CM0+, et en utilisant un algorithme de Fibonacci récursif à 15 étapes, l’AVR utilise un total de 70 octets de pile, dont 30 pour la pile de retour (15 appels profonds). Le dispositif basé sur ARM utilise 192 octets (60 devraient être la pile de retour). Cela signifie que la pile du CSTACK est plus de trois fois la taille de la solution 8 bits. Dans le code C typique, un plus grand nombre de variables sur la pile sont souvent dans un format emballé, il s’agit donc d’un coin extrême. Cependant, dire que 1,5 à 3 fois plus de SRAM est nécessaire pour la même application centrée sur 8 bits sur un dispositif 32 bits (par rapport à un 8 bits natif) est une estimation juste.
Consommation d’énergie
Aucun article sur les MCU ne serait complet sans étudier la consommation d’énergie statique. Ce seul élément peut être un facteur clé dans le choix entre un dispositif 8 ou 32 bits, en particulier pour les applications alimentées par batterie. Le tableau 3 illustre les différences de consommation d’énergie entre les dispositifs 8 et 32 bits en modes actif et statique.
Les technologies de fabrication agressives augmentent le courant de fuite des transistors, qui double à peu près à chaque génération de processus, et est proportionnel au nombre de portes. Le courant de fuite augmente de manière exponentielle à des températures plus élevées, ce qui peut être facilement négligé lors de la conception d’un design grand public. Les téléphones portables et les lecteurs multimédia personnels sont transportés partout, et comme nous l’avons tous constaté, les températures ressenties en été à l’intérieur d’une voiture peuvent facilement dépasser 40°C.
Le temps que le microcontrôleur passera en mode actif par rapport au mode statique contribue de manière significative au budget énergétique global de l’application.
Naturellement, le rapport entre les modes actif et statique variera en fonction des exigences de l’application. En reprenant l’exemple précédent de l’interruption SPI (tableau 2, encore une fois) et en supposant une bande passante de données SPI de 80 kb/s, le CPU 8 bits passera 1,2% de son temps en mode actif par rapport à celui du 32 bits, qui passera 3,3% en mode actif (tableau 4).
Conclusion
La réflexion sur l’utilisation d’un microcontrôleur 8 ou 32 bits pour une conception future peut impliquer une application d’Internet des objets (IoT). La manière dont l’IoT prend forme suscite de nombreux débats, mais elle incitera certainement les ingénieurs à procéder à une évaluation détaillée des besoins en MCU. La connectivité sans fil, en particulier ZigBee, sera également un composant essentiel, mais cela ne signifie pas automatiquement qu’il faudra un dispositif de plus grande puissance.
Télécharger cet article au format .PDF Ce type de fichier comprend des graphiques et des schémas haute résolution le cas échéant. |
Un certain nombre de produits microcontrôleurs 8 bits disponibles répondent aux besoins de faibles niveaux de traitement et de connectivité sans fil. Un tel exemple est la série ATmegaRFR2 d’Atmel, qui fournit une solution de microcontrôleur sans fil de 2,4 GHz conforme à la norme IEEE 802.15.4, à puce unique, qui convient aux conceptions IoT alimentées par batterie et à faible coût.
Ingar Fredriksen, directeur marketing MCU d’Atmel pour la région EMEA, est basé à Trondheim, Normay. Il a obtenu sa licence en sciences en génie électrique au Collège universitaire de Trodheim.
Paal Kastnes ingénieur du personnel dans l’équipe des applications MCU spécialisée dans la formation du personnel et des clients à l’utilisation des microcontrôleurs et des outils d’Atmel, est également basé à Trondheim. Il a obtenu sa licence en sciences en génie électrique au Collège universitaire de Trondheim.