Tirer parti du premier microcontrôleur basé sur Arm® Cortex®-M33 du marché – 1re partie : gestion de la puissance et des performances
Avec la contribution de Rédacteurs nord-américains de DigiKey
2019-06-19
Note de l'éditeur : la 1re partie de cet article en 2 parties montre comment les développeurs peuvent répondre à un large éventail d'exigences de performances et de basse consommation en utilisant une seule famille de microcontrôleurs à usage général. La 2e partie explique comment les fonctionnalités de sécurité étendue intégrées dans les microcontrôleurs LPC55S6x de NXP Semiconductors prennent en charge la sécurité tout au long du cycle de vie, du provisionnement et de la mise en service aux communications, au démarrage sécurisé et aux mises à jour micrologicielles sécurisées.
Les développeurs ont continuellement du mal à trouver un juste équilibre entre des demandes souvent conflictuelles en matière de performances applicatives plus élevées à plus basse consommation dans un large éventail de fonctions et d'applications. Ces applications incluent l'Internet des objets (IoT), l'automatisation industrielle, les systèmes médicaux et les dispositifs grand public. La demande croissante pour une sécurité renforcée dans ces applications accroît la difficulté des développeurs à trouver une gamme de microcontrôleurs unique capable de répondre aux exigences de conception conflictuelles de plus en plus nombreuses et diversifiées.
Pour résoudre ces problèmes, NXP Semiconductors a lancé la gamme de microcontrôleurs LPC55S6x. Ces dispositifs permettent aux développeurs de gérer les problèmes en combinant un puissant cœur à usage général avec du matériel et des moteurs de traitement spécialisés hautement efficaces.
Identification et respect des différentes exigences
Les produits connectés ont rapidement dépassé le statut de systèmes relativement simples pour lesquels les exigences de conception les plus complexes se bornaient généralement à certains aspects de la communication. Les concepteurs font désormais face à un environnement plus complexe qui ne leur laisse que peu de compromis au sein d'un ensemble d'exigences croissantes dans tous les segments d'application. Les développeurs doivent ajuster leur domaine d'intérêt selon le cas pour répondre aux défis singuliers de chaque application. Cependant, la demande pour des performances supérieures et une basse consommation est généralisée dans la plupart des principaux domaines d'application.
Les usines intelligentes, par exemple, dépendent non seulement des dispositifs hautes performances à faible latence nécessaires au traitement des signaux, mais nécessitent également une consommation énergétique réduite, car les ingénieurs industriels doivent multiplier ces dispositifs dans des espaces réduits. Les dispositifs corporels grand public nécessitent non seulement des conceptions basse consommation pour garantir une meilleure autonomie, mais connaissent également une demande croissante en matière de capacités de traitement des signaux adaptées à des charges de travail plus complexes. Dans tous les segments d'application, les concepteurs subissent une pression croissante pour répondre de manière plus efficace aux préoccupations majeures relatives à la vulnérabilité de ces dispositifs, de leurs réseaux et des actifs de leur entreprise face à une attaque directe ou aux menaces avancées continues de cybercriminels, d'organisations criminelles ou même de groupes financés par un État.
Pour répondre à ces différentes exigences, les développeurs doivent généralement faire des compromis entre certains aspects de leur conception. Ils peuvent sacrifier les performances applicatives pour réduire la consommation énergétique en utilisant un processeur basses performances ou en réduisant la fréquence d'horloge, ou ils peuvent réduire le rapport cyclique du processeur en faveur d'états basse consommation. Pour respecter des exigences de performances strictes, ils peuvent adopter l'approche inverse en utilisant des processeurs plus puissants, des fréquences d'horloge plus élevées et un rapport cyclique supérieur au prix d'une consommation énergétique beaucoup plus élevée. Pour les applications informatiques plus complexes, ils peuvent ajouter un processeur de signaux numériques (DSP) dédié pour accélérer l'exécution des algorithmes, mais avec une hausse de la complexité de conception, des coûts et de la consommation énergétique du système. Même s'ils parvenaient à un équilibre acceptable entre puissance et performances, ils devraient se résigner à augmenter le coût et la complexité de conception pour satisfaire aux exigences de sécurité.
Tandis que les concepteurs luttent pour respecter les exigences, les utilisateurs sont de moins en moins disposés à faire des compromis pour les applications critiques telles que les équipements médicaux, les systèmes d'automatisation industrielle, les dispositifs de paiement de masse, etc. La gamme de microcontrôleurs LPC55S6x de NXP Semiconductors permet aux concepteurs d'éliminer les compromis grâce à une architecture qui associe la flexibilité d'un processeur à usage général avec des capacités spécialisées pour le traitement et la sécurité requis dans les applications émergentes.
Vastes capacités avec cœurs de processeur dédiés
Le microcontrôleur à un cœur LPC55S66 et le microcontrôleur à deux cœurs LPC55S69 de NXP Semiconductors, les premiers microcontrôleurs à usage général basés sur Arm® Cortex®-M33 du marché, reposent sur les performances déterministes à faible latence intégrées dans l'architecture de la série M d'Arm. Les améliorations architecturales des dispositifs LPC55S6x de NXP incluent l'accélérateur DSP PowerQuad hautes performances de l'entreprise, son moteur cryptographique CASPER et un sous-système de sécurité complet. Avec 640 Ko de mémoire Flash, jusqu'à 320 Ko de SRAM et 128 Ko de ROM, les dispositifs LPC55S6x intègrent un ensemble étendu d'éléments fonctionnels typiquement requis dans toute conception de systèmes embarqués (Figure 1).
Figure 1 : L'architecture du microcontrôleur LPC55S6x étend les capacités de traitement à usage général du cœur Arm Cortex-M33 avec des blocs matériels spécialisés pour le traitement des signaux, la cryptographie, le stockage sécurisé et la gestion des clés, tout en fournissant un éventail complet de périphériques utilisés dans les conceptions embarquées typiques. (Source de l'image : NXP Semiconductors)
Parmi ces éléments, les dispositifs LPC55S6x incluent un sous-système de temporisateur complet, plusieurs interfaces série, des contrôleurs d'accès direct mémoire (DMA) sécurisés et jusqu'à 64 broches E/S à usage général (GPIO). Outre ces sous-systèmes numériques, les dispositifs LPC55S6x incluent un convertisseur analogique-numérique (CAN) à registre d'approximations successives (SAR) 16 bits, un comparateur analogique et un capteur de température. De plus, une unité logique programmable (PLU) intégrée permet aux développeurs de créer une logique séquentielle ou combinatoire personnalisée, y compris des machines à états, à partir de sa collection de 26 éléments de table de correspondance (LUT) à cinq entrées. Les développeurs peuvent accéder aux registres PLU pour directement programmer l'unité PLU pour de petits réseaux logiques ou utiliser les outils de NXP pour implémenter un plus grand réseau décrit en langage RTL Verilog.
Pour éviter les goulets d'étranglement dans l'accès à leurs multiples sous-systèmes, les dispositifs LPC55S6x incluent une matrice de bus multicouche conçue avec une architecture de bus hautes performances (AHB) AMBA (Advanced Microcontroller Bus Architecture) d'Arm. La matrice de bus AHB fournit une connexion directe entre les maîtres de bus et les périphériques ou la mémoire. Cette approche permet par exemple, la réalisation des transferts DMA à pleine vitesse sans compromettre les performances d'accès du processeur à la mémoire. En fait, la capacité à optimiser le rendement du processeur parmi les nombreuses exigences de conception constitue la base de l'architecture du LPC55S6x.
Dans l'architecture du LPC55S6x, le cœur Cortex-M33 offre plusieurs fonctionnalités destinées à aider les concepteurs à répondre plus facilement aux nombreuses exigences de conception. À l'instar des autres dispositifs de sa catégorie, le processeur LPC55S6x prend en charge plusieurs modes basse consommation. Pendant les périodes d'inactivité étendues, les développeurs peuvent placer le dispositif en mode hors tension pour une rétention SRAM complète avec une consommation de seulement 15,4 µA ou en mode hors tension profonde pour n'alimenter qu'une tranche de 4 ko de SRAM à une consommation d'environ 0,59 µA. Les modes de veille et de veille profonde désactivent le processeur tout en fournissant différents niveaux de fonctionnement pour les périphériques et la mémoire : le mode de veille fournit un fonctionnement complet avec une consommation d'environ 2,7 mA, tandis que le mode de veille profonde coupe le signal d'horloge des périphériques pour réduire la consommation énergétique à environ 110 µA.
Capacités accrues
Outre les modes basse consommation, l'architecture du LPC55S6x prend en charge de nombreuses exigences de conception grâce à des fonctionnalités intégrées servant à améliorer les performances et la sécurité. Ces capacités intégrées dans le cœur Cortex-M33 primaire incluent les extensions de sécurité Arm TrustZone (SECEXT), une unité de protection de la mémoire (MPU), une unité en virgule flottante (FPU) conforme à la norme IEEE 754 et un module ETM. De plus, le cœur primaire inclut un moteur cryptographique CASPER et un accélérateur PowerQuad pour les opérations DSP et SIMD.
Remarque : ces capacités supplémentaires ne sont pas incluses dans le cœur Cortex-M33 secondaire fourni dans le microcontrôleur LPC55S6x à deux cœurs.
Toutes ces fonctionnalités architecturales et tous ces sous-systèmes intégrés fournissent un ensemble étendu de capacités avec des descriptions détaillées qui dépassent le cadre du présent article. Par exemple, l'accélérateur DSP PowerQuad est un coprocesseur sophistiqué à part entière, capable d'exécuter des fonctions de traitement des signaux de manière indépendante, tout en accédant à la mémoire en tant que maître de bus.
En interne, l'accélérateur PowerQuad combine plusieurs registres et interfaces avec une pile de moteurs matériels pour les fonctions de traitement des signaux clés, y compris la transformation de Fourier rapide (FFT), la transformée en cosinus discrète (DCT), la réponse impulsionnelle infinie (IIR), la réponse impulsionnelle finie (FIR) et l'algorithme CORDIC, utilisé pour calculer efficacement des fonctions trigonométriques (Figure 2).
Figure 2 : La gamme de microcontrôleurs LPC55S6x de NXP Semiconductors intègre le coprocesseur PowerQuad de l'entreprise, qui utilise des moteurs spécialisés pour accélérer l'exécution des algorithmes typiquement requis dans les applications de traitement des signaux. (Source de l'image : NXP Semiconductors)
À l'aide de l'accélérateur PowerQuad, les développeurs peuvent exécuter des opérations de traitement des signaux complexes sans compromettre la capacité du processeur hôte à réagir aux événements en temps réel ou à effectuer des séries d'opérations étendues. Le processeur hôte définit simplement les registres PowerQuad avec la fonction de traitement des signaux requise, puis spécifie les adresses mémoires pour les régions de la mémoire de travail, de destination et source. Une fois invoqué, l'accélérateur PowerQuad fonctionne comme un coprocesseur véritable, en utilisant la matrice AHB pour exécuter les transferts de mémoire 128 bits en tant que maître de bus. Pendant ce temps, le processeur hôte peut immédiatement retourner à ses principales tâches de traitement, en interrogeant périodiquement un bit d'activité PowerQuad ou en répondant simplement à une interruption d'achèvement PowerQuad pour accéder aux résultats.
Pour les développeurs, cependant, les opérations PowerQuad sont largement transparentes. Les développeurs peuvent utiliser une interface de programmation (API) standard pour la bibliothèque Arm CMSIS DSP. La version de la bibliothèque compatible PowerQuad de NXP incluse dans le kit de développement logiciel (SDK) MCUXpresso de NXP Semiconductors remplace les fonctions mathématiques de bas niveau implémentées dans les logiciels par des appels de l'API PowerQuad.
Par exemple, pour calculer une transformation FFT complexe, les développeurs utilisent la fonction CMSIS-DSP standard, arm_cfft_q31()
, avec des données au format Q, c'est-à-dire un nombre en virgule fixe de 32 bits utilisant un bit pour le signe et 31 pour l'exposant. Dans une implémentation logicielle pure, un appel à la fonction arm_cfft_q31()
invoque la fonction logicielle butterfly FFT CMSIS DSP, arm_radix4_butterfly_q31()
et la fonction de terminaison, arm_cfft_radix4by2_q31()
ou leurs versions inverses pour les transformations FFT inverses complexes.
Cependant, pour la bibliothèque DSP de NXP et PowerQuad, l'appel normal à arm_cfft_q31()
invoque plutôt PQ_TransformCFFT()
, qui traite les mêmes calculs au niveau du matériel. Il en résulte non seulement une charge de traitement réduite sur le cœur Cortex-M33, mais également une exécution accélérée des fonctions DSP (Figure 3).
Figure 3 : Le kit de développement logiciel MCUXpresso accélère considérablement l'exécution des algorithmes DSP courants, tout en maintenant la compatibilité avec les appels de haut niveau vers la bibliothèque Arm CMSIS DSP standard en remplaçant de manière transparente les fonctions CMSIS-DSP de bas niveau par des appels vers l'accélérateur PowerQuad. (Source de l'image : NXP Semiconductors)
Un autre coprocesseur, le moteur cryptographique CASPER, permet également de décharger le processeur principal de la lourde charge de calcul associée aux algorithmes de cryptographie asymétrique. La cryptographie du moteur CASPER exécute les algorithmes RSA (Rivest-Shamir-Adleman), Diffie-Hellman, ECC et ECDSA jusqu'à huit fois plus rapidement qu'un logiciel cryptographique équivalent fonctionnant sur un cœur Cortex-M33.
Pour accélérer l'exécution des algorithmes symétriques, le LPC55S6x intègre également des blocs matériels pour AES-256 et SHA-2.
La combinaison de ces blocs matériels et du moteur CASPER offre aux développeurs une prise en charge matérielle des algorithmes cryptographiques couramment utilisés pour les opérations d'authentification et de cryptage des données nécessaires à la protection des échanges de données dans les produits connectés.
Comme indiqué dans la 2e partie de cet article en deux parties, la sécurité qu'offre la gamme LPC55S6x dépasse largement la prise en charge des algorithmes cryptographiques fondamentaux pour fournir les fonctionnalités de sécurité matérielle requises pour la sécurité du cycle de vie complet.
Développement de système
Les développeurs peuvent rapidement explorer les capacités de traitement universelles, DSP et de moteurs cryptographiques des microcontrôleurs LPC55S6x à l'aide du kit LPC55S69 EVK de NXP. Conçu pour accélérer le développement avec ces dispositifs, le kit LPC55S69 EVK inclut un microcontrôleur LPC55S69 à deux cœurs, un accéléromètre MMA8652FCR1 de NXP, des LED, des boutons, une interface de débogage et un support pour plusieurs options d'extension, y compris le matériel d'extension Arduino UNO, MikroElektronica Click et Digilent PMod.
Les nombreux cavaliers et embases permettent aux développeurs de facilement définir des configurations matérielles différentes et d'étudier attentivement les détails des performances (Figure 4). Par exemple, les développeurs soucieux de la consommation énergétique peuvent mesurer le courant d'alimentation du LPC55S69 simplement à l'aide d'un voltmètre pour mesurer la chute de tension à l'embase P12.
Figure 4 : Architecturé autour du microcontrôleur LPC55S69 à deux cœurs de NXP Semiconductors, le kit LPC55S69 EVK de NXP Semiconductors fournit plusieurs cavaliers et embases qui permettent aux développeurs de facilement définir des configurations et d'étudier les détails de performances comme la consommation énergétique du microcontrôleur. (Source de l'image : NXP Semiconductors)
Pour le développement, les concepteurs peuvent utiliser la carte avec l'environnement de développement intégré (IDE) MCUXpresso et le SDK, utilisant le matériel spécialisé LPC55S6x comme la fonctionnalité PowerQuad mentionnée précédemment. Le kit LPC55S69-EVK est également pris en charge par les IDE IAR et Keil. De plus, NXP fournit des packs logiciels gratuits avec du code d'exemple pour démontrer les modèles de conception logicielle clés pour l'utilisation des fonctionnalités du LPC55S6x.
Conclusion
Les développeurs souhaitent trouver un juste équilibre entre performances, basse consommation et sécurité dans un large éventail d'applications, notamment l'IoT, l'automatisation industrielle, les systèmes médicaux et les dispositifs grand public. Comme décrit dans cet article, le puissant cœur à usage général de la gamme de microcontrôleurs LPC55S6x, avec des moteurs de traitement et du matériel spécialisé, permet à ces développeurs de mieux répondre aux exigences en matière de fonctions spécialisées hautes performances, tout en limitant la consommation énergétique.
La 2e partie de cette série montre comment gérer la sécurité tout au long du cycle de vie d'un dispositif à l'aide de la gamme LPC55S6x.

Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.