Ajouter Bluetooth 5.3 rapidement et à moindre coût aux conceptions IoT en périphérie
Avec la contribution de Rédacteurs européens de DigiKey
2023-11-29
La concurrence féroce met la pression sur les développeurs de dispositifs Internet des objets (IoT) pour qu'ils introduisent rapidement de nouveaux produits innovants tout en réduisant les coûts et en garantissant une communication robuste, basse consommation et sécurisée. Les nœuds d'extrémité IoT intelligents traditionnels comprennent un microcontrôleur (MCU) pour permettre le traitement en périphérie et un circuit intégré sans fil pour la connectivité. Les problèmes surviennent lorsque les équipes de conception ne disposent pas des compétences en radiofréquences (RF) requises pour une solution efficace.
Pour terminer, certifier et mettre en production de volume leurs conceptions IoT sans fil dans les délais, les développeurs doivent rendre le processus de développement plus efficace. L'un des moyens d'améliorer l'efficacité du processus de développement consiste à utiliser un microcontrôleur basse consommation avec une interface sans fil Bluetooth Low Energy (BLE) intégrée.
Cet article présente les microcontrôleurs ultrabasse consommation série STM32WBA52 de STMicroelectronics et montre comment les développeurs peuvent utiliser une carte d'évaluation BLE, des outils de développement et des exemples d'application pour lancer rapidement une conception sans fil BLE 5.3. Un bref aperçu de la programmation et du câblage du microcontrôleur est également inclus.
Microcontrôleur sans fil basse consommation à haut niveau de sécurité
Certifiée pour BLE 5.3, la série de microcontrôleurs STM32WBA52 est une solution économique qui permet aux développeurs débutants d'ajouter rapidement des communications sans fil à leurs dispositifs. Basés sur le cœur Arm® Cortex®-M33 avec une horloge de 100 mégahertz (MHz) et la technologie TrustZone, ces microcontrôleurs offrent un haut niveau de sécurité, protègent les données et la propriété intellectuelle (IP) et empêchent le piratage et le clonage de dispositifs.
Tandis que le microcontrôleur sans fil STM32WBA52CEU6 dispose de 512 kilo-octets (Ko) de mémoire Flash et de 96 Ko de RAM statique (SRAM), la variante STM32WBA52CGU6 offre 1 mégaoctet (Mo) de mémoire Flash et 128 Ko de SRAM. La Figure 1 montre l'étendue fonctionnelle du circuit intégré dans un boîtier UFQFN à 48 broches. Par ailleurs, jusqu'à 20 canaux tactiles capacitifs permettent le fonctionnement de dispositifs hermétiquement scellés (aucune clé mécanique n'est nécessaire).
Figure 1 : Schéma fonctionnel du STM32WBA52 montrant la radio BLE 5.3 intégrée, les mémoires Flash et SRAM, ainsi que la prise en charge de la sécurité. (Source de l'image : STMicroelectronics)
Un riche écosystème STM32Cube prend en charge la mise en œuvre et la programmation de l'application BLE. Il inclut l'environnement de développement STM32CubeIDE, ainsi que des outils tels que le configurateur de périphériques et le générateur de code STM32CubeMX, le testeur de performances STM32CubeMonitorRF et les versions bureau et cloud STM32Cube.AI pour l'intelligence artificielle (IA). Un carte d'évaluation correspondante, NUCLEO-WBA52CG, simplifie le prototypage et accélère la validation avec de nombreuses applications d'exemple BLE et du code source librement disponible.
Sécurité des dispositifs et des données
La ligne de produits STM32WBA52 est conforme aux normes de sécurité IoT PSA (Platform Security Arm) certifiées niveau 3 et à la norme SESIP3 (Security Evaluation Standard for IoT Platforms Assurance Level 3). La cyberprotection est renforcée par le programme de sécurité PSA basé sur l'isolation de sécurité, la protection de la mémoire, la protection contre les falsifications et l'architecture Cortex-M33 des microcontrôleurs avec Arm TrustZone. Le micrologiciel de confiance pour Arm Cortex-M (TF-M) est conforme à la structure de sécurité certifiée PSA aux normes de l'industrie avec la racine de confiance (RoT) immuable PSA, y compris le démarrage sécurisé et la mise à jour micrologicielle sécurisée (X-CUBE-SBSFU), la cryptographie, le stockage sécurisé et l'attestation d'exécution.
La radio intégrée minimise la nomenclature
Le module radio ultrabasse consommation intégré fournit +10 décibels référencés à une puissance de sortie RF de 1 milliwatt (mW) (dBm). Il permet une communication fiable sur de courtes distances (BLE 5.3) et de longues distances (longue portée) avec des débits de données atteignant 2 mégabits par seconde (Mbps). Un mode de veille profonde basse consommation réduit la puissance électrique globale lorsque la communication radio est active. Les microcontrôleurs STM32WBA peuvent prendre en charge jusqu'à 20 connexions simultanées.
Caractéristiques de performances électriques du module radio :
- Émetteur-récepteur RF de 2,4 gigahertz (GHz) prenant en charge BLE 5.3
- Sensibilité RX : -96 dBm (BLE à 1 Mbps)
- Puissance de sortie programmable, jusqu'à +10 dBm par incrément de 1 dB
- Symétriseur intégré
Batterie plus petite grâce à une gestion de l'énergie très efficace
Les microcontrôleurs STM32WBA52 disposent de nombreuses technologies d'économie d'énergie, y compris l'accès direct à la mémoire basse consommation (LPDMA) de STMicroelectronics et des états d'économie d'énergie flexibles avec des temps d'activation rapides. Ensemble, ces fonctionnalités peuvent réduire la consommation d'énergie du microcontrôleur jusqu'à 90 %, ce qui se traduit par une batterie nettement plus petite ou une durée de vie plus longue.
Caractéristiques de performances électriques de FlexPowerControl :
- Alimentation de 1,71 volt (V) à 3,6 V
- Mode veille de 140 nanoampères (nA) (16 broches d'activation)
- Mode veille de 200 nA avec horloge temps réel (RTC)
- Mode veille de 2,4 microampères (μA) avec 64 Ko de SRAM
- Mode d'arrêt de 16,3 μA avec 64 Ko de SRAM
- Mode de fonctionnement de 45 μA/MHz à 3,3 V
- Radio : Rx 7,4 milliampères (mA) / Tx à 0 dBm 10,6 mA
De plus, Bluetooth 5.3 offre une commutation plus rapide entre les rapports cycliques faibles et élevés, ce qui le rend plus économe en énergie que les versions précédentes.
Architecture de la pile Bluetooth et des paquets de données
Les microcontrôleurs Arm Cortex-M33 monocœurs du STM32WBA52 sont conçus pour le développement de micrologiciels d'application, y compris des profils et des services sur la pile BLE (contrôleur et hôte). Les microcontrôleurs traitent le flux de données du module RF intégré au niveau de la couche physique (PHY) la plus basse vers le profil d'attribut générique (GATT) et le profil d'accès générique (GAP) (Figure 2). Le profil GAP définit et gère les annonces et la connexion, tandis que le profil GATT définit et gère l'échange de données entrée/sortie.
Figure 2 : Les microcontrôleurs traitent le flux de données de la couche PHY radio vers les profils GATT et GAP. (Source de l'image : STMicroelectronics)
BLE envoie des paquets de données qui sont définis comme une structure de trame fixe d'une séquence de bits. La longueur de la zone de données utilisateur peut varier dynamiquement de 27 à 251 octets.
Exemples d'applications BLE
L'encyclopédie en ligne STMicro-Wiki pour microcontrôleurs STM32WBA contient plusieurs exemples d'application pour différents rôles Bluetooth, notamment :
- Annonce : BLE_Beacon
- Capteur : BLE_HealthThermometer, BLE_HeartRate
- Pont : BLE_SerialCom
- Routeur : BLE_p2pRouter
- Données : BLE_DataThroughput, BLE_p2pServer & Multi Slave BLE_p2pClient
- Moniteur RF : BLE_TransparentMode,
- Mise à jour micrologicielle OTA : BLE_Fuota
En fonction de leur propre projet BLE, les concepteurs de dispositifs et les programmeurs peuvent flasher le binaire compilé du répertoire de projet GitHub correspondant vers la carte NUCLEO et lancer la connexion Bluetooth vers un smartphone ou un ordinateur de bureau. Le logiciel de programmation requis, STM32CubeProg, permet la lecture, l'écriture et la vérification de la mémoire du dispositif à la fois via l'interface de débogage et l'interface du chargeur d'amorçage.
Exécution de l'exemple BLE « Health Thermometer Sensor »
Le profil HTP (Health Thermometer Profile) est un profil à faible consommation d'énergie basé GAP, défini par le Bluetooth Special Interest Group (SIG). Il combine un collecteur de thermomètre de santé et un capteur de thermomètre de santé pour la connexion et l'échange de données dans différentes applications (Figure 3).
Figure 3 : Communication BLE entre la carte NUCLEO comme capteur/serveur et un smartphone comme collecteur/client. (Source de l'image : STMicroelectronics)
Le capteur de thermomètre de santé :
- Mesure la température et l'expose via le service Health Thermometer Service
- Contient le service Device Information Service à identifier par le dispositif distant
- Est le serveur GATT
Le collecteur de thermomètre de santé :
- Accède aux informations exposées par le capteur de thermomètre de santé et peut les afficher à l'utilisateur final ou les stocker dans une mémoire non volatile pour une analyse ultérieure.
- Est le client GATT
Une fois le fichier binaire du thermomètre de santé flashé dans le microcontrôleur de NUCLEO, le développeur doit effectuer les étapes suivantes pour exécuter l'exemple d'application BLE :
Avec l'application smartphone
- Installer ST BLE Toolbox sur un smartphone. L'application est utilisée pour interagir avec les dispositifs ST BLE et les déboguer.
- Mettre sous tension la carte NUCLEO STM32WBA avec l'application Health Thermometer flashée.
- Activer le Bluetooth (BT) du smartphone et scanner les dispositifs BT disponibles dans l'application. Sélectionner Health Thermometer et se connecter.
Avec l'interface de navigateur Web
- Garantir la compatibilité du navigateur :
- Sur un ordinateur de bureau : Chrome, Edge ou Opera
- Sur un smartphone : Chrome Android
- Mettre sous tension la carte NUCLEO STM32WBA avec l'application Health Thermometer flashée.
- Activer le Bluetooth sur l'ordinateur.
- Ouvrir la page Web https://applible.github.io/Web_Bluetooth_App_WBA/ dans le navigateur.
- Cliquer sur le bouton de connexion en haut de la page Web, puis sélectionner HT_xx dans la liste des dispositifs et cliquer sur Appairer. Le dispositif est maintenant connecté.
- Cliquer sur Health Thermometer pour afficher l'interface.
Le Tableau 1 décrit la structure des services du capteur de thermomètre de santé. L'identifiant unique universel (UUID) de 128 bits de long distingue les caractéristiques et les services individuels.
|
Tableau 1 : Services GATT et leur UUID pour le profil GAP « Health Thermometer Sensor ». (Source de l'image : STMicroelectronics)
La séquence JavaScript suivante de GitHub montre comment l'interface du navigateur Web filtre les différentes caractéristiques de débit de données GATT (Liste 1).
Copier
[...]
// Filtering the different datathroughput characteristics
props.allCharacteristics.map(element => {
switch (element.characteristic.uuid) {
case "00002a1c-0000-1000-8000-00805f9b34fb":
IndicateCharacteristic = element; // Temperature Measurement (TEMM)
IndicateCharacteristic.characteristic.startNotifications();
IndicateCharacteristic.characteristic.oncharacteristicvaluechanged =
temperatureMeasurement;
break;
case "00002a1d-0000-1000-8000-00805f9b34fb":
ReadCharacteristic = element; // Temperature Type
readTemperatureType();
break;
case "00002a1e-0000-1000-8000-00805f9b34fb":
NotifyCharacteristic = element; //Immediate Temperature
NotifyCharacteristic.characteristic.startNotifications();
NotifyCharacteristic.characteristic.oncharacteristicvaluechanged = notifHandler;
break;
case "00002a21-0000-1000-8000-00805f9b34fb":
ReadWriteIndicateCharacteristic = element; // Measurement Interval
readMeasurementInterval();
break;
default:
console.log("# No characteristics found..");
}
});
[...]
Liste 1 : Cette séquence JavaScript filtre les différentes caractéristiques de débit de données GATT du Tableau 1. (Source de la liste : GitHub, STMicroelectronics)
Suivi des processus de pile BLE
Le NUCLEO-WBA52CG embarque le programmateur et débogueur en circuit ST-LINK/V3, prenant en charge le pilote de port COM virtuel STM32 pour la communication avec un PC via une interface série. N'importe quel terminal logiciel peut ouvrir ce port de communication série pour afficher les courts messages texte générés dans le code par la fonction APP_DBG_MSG.
Les traces dans le projet doivent être activées dans le fichier app_conf.h
#define CFG_DEBUG_APP_TRACE (1)
Alternativement, l'application smartphone « SE BLE Toolbox » propose une fonction de trace sur l'onglet <Application Log>.
Programmation d'applications BLE 5.3
Pour programmer les microcontrôleurs STM32WBA52, STM a créé le pack STM32CubeWBA comprenant une couche d'abstraction matérielle (HAL), des interfaces de programmation (API) de couche inférieure et des piles CMSIS, système de fichiers, RTOS, BLE/802.15.4, Thread et Zigbee, ainsi que des exemples s'exécutant sur des cartes de STMicroelectronics.
Les configurations de structure de projet pour les trois environnements de développement (IDE), comme IAR Embedded Workbench for Arm (EWARM), Keil MDK-ARM et STM32CubeIDE, sont incluses dans chaque exemple d'application NUCLEO-WBA52CG BLE.
Dans le cas de l'exemple du thermomètre de santé, seuls des fichiers spécifiques de l'arborescence du projet (cadre à gauche dans la Figure 4) génèrent les services GATT. Les deux routines, « Health Thermometer Service » (hts) et « Device Information Service » (dis) du Tableau 1, s'exécutent en parallèle (en bas à droite de la Figure 4).
Figure 4 : Les programmeurs peuvent ajouter leur propre contenu GATT aux fichiers de code encadrés (à gauche) ; ces fichiers génèrent les services GATT (à droite). (Source de l'image : STMicroelectronics)
Les programmeurs peuvent utiliser le code source pour leurs propres projets et l'étendre avec leur contenu GATT dans les zones marquées USER CODE BEGIN / USER CODE END (Liste 2). La séquence d'initialisation du fichier hts.c génère la mesure de température (TEMM) caractéristique GATT portant l'UUID 0x2A1C.
Copier
[...]
void HTS_Init(void)
{
[...]
/* TEMM, Temperature Measurement */
uuid.Char_UUID_16 = 0x2a1c;
ret = aci_gatt_add_char(HTS_Context.HtsSvcHdle,
UUID_TYPE_16,
(Char_UUID_t *) &uuid,
SizeTemm,
CHAR_PROP_INDICATE,
ATTR_PERMISSION_NONE,
GATT_DONT_NOTIFY_EVENTS,
0x10,
CHAR_VALUE_LEN_VARIABLE,
&(HTS_Context.TemmCharHdle));
if (ret != BLE_STATUS_SUCCESS)
{
APP_DBG_MSG(" Fail : aci_gatt_add_char command : TEMM, error code: 0x%2X\n", ret);
}
else
{
APP_DBG_MSG(" Success: aci_gatt_add_char command : TEMM\n");
}
/* USER CODE BEGIN SVCCTL_InitService2Char1 */
/* USER CODE END SVCCTL_InitService2Char1 */
[...]
}
[...]
Liste 2 : La séquence d'initialisation du fichier hts.c génère la mesure TEMM caractéristique GATT. (Source de l'image : GitHub, STMicroelectronics)
Exigences relatives aux composants externes
Le microcontrôleur sans fil STM32WBA52 ne requiert que quelques composants externes pour un fonctionnement de base avec la fonctionnalité Bluetooth. Ces composants incluent des condensateurs pour l'alimentation en tension, un oscillateur à quartz, une antenne de circuit imprimé avec adaptation d'impédance et un filtre harmonique (Figure 5).
Figure 5 : Pour Bluetooth, le terminal RF du STM32WBA52 se connecte à un réseau d'adaptation d'impédance, un filtre harmonique et une antenne. (Source de l'image : STMicroelectronics)
Conclusion
Les développeurs de dispositifs IoT sans fil doivent réduire la durée des cycles de conception et les coûts pour être compétitifs sur un marché en évolution rapide. Cependant, la conception RF est un défi. Le microcontrôleur STM32WBA52, avec son interface BLE 5.3 intégrée, permet aux développeurs de commercialiser leurs produits rapidement et à moindre coût. La pile BLE pré-programmée et plusieurs exemples d'applications BLE constituent un modèle de programmation pour les projets personnalisés dans lesquels le contenu GATT peut être facilement inséré.
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é.




