Intégrer le Bluetooth à faible consommation (BLE) dans les designs

Arrivé maintenant à sa cinquième version majeure, le Bluetooth dispose de nombreuses fonctionnalités et options qui permettent d'adapter la communication sans fil aux besoins précis des applications. Pour les applications IoT, l'un des facteurs les plus importants est la disponibilité du profil à faible consommation du Bluetooth (BLE). Un certain nombre de facteurs doivent cependant être pris en compte pour intégrer le BLE dans l’équipement final.

Il est complexe de mettre en œuvre le Bluetooth en partant de zéro, mais cette étape n'est pas nécessaire pour la plupart des applications IoT. De nombreuses solutions sont disponibles pour intégrer le Bluetooth et le BLE. L'essentiel est de choisir la solution la mieux adaptée aux besoins de l'application.

Dans les conceptions IoT, le choix du BLE par rapport au Bluetooth classique se justifie principalement par sa faible consommation énergétique. Les concepteurs du BLE ont repéré que les mises en œuvre typiques devraient uniquement envoyer que des paquets courts à de très grands intervalles. Une connexion peut durer quelques millisecondes uniquement, avec des lectures séparées d'une seconde ou plus. Le BLE réduit la consommation d'énergie en permettant à l'interface et à son électronique de commande de passer en mode veille entre les transitions s'il n'est pas nécessaire d’attendre des paquets entrants. Les émetteurs-récepteurs Bluetooth conventionnels restent souvent actifs pendant ces périodes creuses pour détecter les paquets de supervision. La période de veille est dynamique. Si aucun transfert de données d'application n'a lieu pendant une phase active, le protocole peut prolonger la période de veille.

Fig 1 : Image Texas Instruments

Comme la puissance de réception et d'émission est généralement de l'ordre de 10 mA à 30 mA, la capacité à rester en veille pendant de longues périodes permet aux émetteurs-récepteurs BLE et à leurs microcontrôleurs hôtes de fonctionner sur des dispositifs alimentés par des sources telles que des piles bouton au lithium. Le BLE réduit encore davantage la consommation d'énergie en limitant le nombre de canaux sur lesquels un émetteur-récepteur doit effectuer une recherche : 3 contre 32 pour le Bluetooth classique. La recherche gagne ainsi en rapidité avec beaucoup moins de requêtes.

Les concepteurs qui travaillent sur une application IoT peuvent choisir entre un circuit intégré dédié à l'interface BLE, une solution au niveau du module ou un microcontrôleur intégré prenant en charge le BLE. Chacune de ces options a des conséquences sur le projet, par exemple les délais de mise sur le marché et le facteur de forme.

Options pour les antennes radiofréquence

L'antenne est un élément essentiel à prendre en compte. Il est nécessaire de concevoir une antenne efficace pour s'assurer que le produit final réponde aux exigences des utilisateurs en matière de portée, d'efficacité énergétique et de conformité aux normes régionales destinées à protéger contre les émissions radiofréquences parasites.

L'avantage en matière de délais de mise sur le marché d'une implémentation Bluetooth basée sur un module, par exemple le RN4020 de Microchip Technology

RN4020 de Microchip TechnologyRN4020 de Microchip Technology ou le PAN1760A de PanasonicPAN1760A de PanasonicPAN1760A de Panasonic , est qu'il est possible d'intégrer l'antenne dans le module lui-même. Les délais de conception et de test sont ainsi considérablement réduits. Ceux qui implémentent les modules sont très attentifs à l'optimisation de la conception de l'antenne afin de s'assurer qu'elle fonctionne avec une grande efficacité sur une large plage.

Toutefois, l'utilisation d'un module peut imposer des contraintes sur la conception de la carte de base et du boîtier qui ne sont pas compatibles avec l'application finale, en particulier si le dispositif est soumis à des exigences particulières. Par exemple, le boîtier d'un dispositif portable devra généralement être confortable pour l'utilisateur. Ces dispositifs intègrent souvent l'antenne dans la conception même du boîtier, ce qui nécessite une solution personnalisée. Dans ce cas, il est nécessaire d'utiliser un circuit intégré dédié à l'émetteur-récepteur Bluetooth et conçu pour fonctionner avec une antenne personnalisée. Les contraintes de place auront tendance à favoriser l'utilisation d'un seul SoC compatible Bluetooth qui assure les fonctions relatives à l'application et aux communications. Si le but est d'ajouter le Bluetooth à une gamme de produits existante disposant déjà d'une base étendue de micrologiciels spécialement développée pour elle, il se peut que la solution SoC intégrée ne constitue pas une option viable.

Prise en charge du protocole

L'un des principaux avantages d'un module Bluetooth ou d'un émetteur-récepteur dédié est qu'il permet de décharger le CPU hôte de la plupart des fonctions de communication. La série Kinetis KW35/36 de circuits intégrés BLE de NXP comprend un processeur ARM Cortex-M0+ cadencé à 48 MHz pour la gestion de la pile de protocoles Bluetooth, outre les normes CAN-FD et LIN utilisées dans l'électronique de carrosserie automobile. Ce cœur de processeur est suffisamment puissant pour exécuter d'autres applications en plus du protocole BLE. Il peut ainsi fonctionner aussi bien en tant que SoC complet qu'en tant qu'émetteur-récepteur intelligent. Les cas d'utilisation typiques du KW35/36 sont l'ouverture de porte sans clé à distance et la surveillance de l'état des pneus. Le dispositif peut prendre en charge jusqu'à huit connexions sécurisées en même temps. Le module Panasonic PAN1760A, qui intègre l'électronique de filtrage et l'antenne pour faciliter le montage, repose sur l'émetteur-récepteur CC2540

CC2540CC2540 fabriqué par Texas Instruments. La gestion des piles de protocoles est assurée par un processeur 8051 intégré. Le RN4020RN4020RN4020 , développé par Microchip Technology, peut servir de module BLE dans un système plus grand ou fonctionner de façon indépendante en prenant en charge la pile de protocoles et l'application finale à l'aide d'un micrologiciel scriptable fonctionnant sur son cœur de processeur PIC24.

Fig. 2 : Image Panasonic

Il est possible d'obtenir des performances plus élevées pour prendre en charge des applications plus poussées nécessitant une connectivité BLE avec des dispositifs tels que le nRF52832 de Nordic Semiconductor

nRF52832 de Nordic SemiconductornRF52832 de Nordic Semiconductor qui intègre un noyau ARM Cortex-M4F, 512 Ko de mémoire Flash et 64 Ko de RAM.

Les SoC et les modules BLE permettent d'intégrer de différentes façons le protocole sans fil dans une application. La micropuce RN4020

RN4020RN4020 offre un mode scriptable pour le prototypage et l'implémentation rapides d'applications BLE. Le langage de script peut servir à créer des applications qui lisent les données des capteurs et transmettent les informations à un dispositif jumelé par le biais d'une connexion Bluetooth.

Dans la pile BLE

Dans la plupart des cas, les SoC intégrés prenant en charge le BLE fournissent des bibliothèques de micrologiciels qui donnent accès aux fonctions de la pile de protocoles. La pile BLE elle-même est divisée en un certain nombre de couches et de composants implémentables sur un système d'exploitation en temps réel (RTOS) pouvant provenir du fournisseur, d'une solution personnalisée ou d'une offre tiers. La pile communiquera souvent avec le RTOS par le biais de sémaphores, d'indicateurs et de fonctions de rappel. En cas d'utilisation d'un RTOS personnalisé ou d'un RTOS tiers, un effort de portage sera nécessaire pour effectuer la correspondance entre les appels de fonction de la pile BLE d'un fournisseur et le noyau sous-jacent. Les principaux éléments de la pile BLE sont le profil d'accès générique (GAP), le profil d'attribut générique (GATT) et le gestionnaire de sécurité (SM).

Mise en évidence de la pile Bluetooth

Fig. 3 : Pile Bluetooth mettant en évidence le module de profil d'accès générique (GAP) - Image Microchip

Le GAP exécute un certain nombre de tâches, notamment l'envoi de données diffusées sans établir au préalable de connexions point à point et la recherche d'appareils à proximité, ainsi que la configuration et la désactivation des connexions entre pairs appariés. Le GATT se charge d'envoyer des données et de recevoir des données de pairs appariés. Les paquets envoyés par le GATT peuvent être configurés de manière à demander une réponse pour s’assurer que la livraison est correcte. Ils peuvent également être configurés pour ne demander aucune confirmation.

Les données envoyées à l'aide de la couche GATT correspondront souvent à l'un des nombreux profils d'application des normes Bluetooth. En utilisant ces profils plutôt que des formats de paquets personnalisés, les fournisseurs de nœuds IoT peuvent faciliter l'interopérabilité avec un large éventail de dispositifs similaires, comme les nœuds de capteurs médicaux qui signalent la pression artérielle et la fréquence cardiaque, ou les systèmes d'automatisation des bâtiments qui transmettent des données environnementales.

Le SM implémente les fonctions nécessaires à l'appariement sécurisé des dispositifs, puis à l'envoi de messages protégés. Le SM comprend des fonctions permettant d'échanger des clés de chiffrement, et élément de plus en plus important dans la conception IoT, de chiffrer les données avant de les transmettre. La sécurité est en train de devenir une priorité pour de nombreux développeurs IoT. Outre le chiffrement des données en transmission, il est important que les systèmes résistent aux vecteurs d'attaque tels que BlueBorne. Il peut donc être important de mettre en place une interface utilisateur simple sur le dispositif afin que l'installateur puisse saisir un code sécurisé lors de la mise en service. Ou encore, un canal radiofréquence supplémentaire tel que le NFC peut assurer l'authentification nécessaire à partir d'un téléphone mobile sur lequel fonctionne une application appropriée, ou à partir d’un outil matériel personnalisé destiné à l'installation et à la mise en service.

Points à prendre en compte concernant les API

La structure logicielle dépendra de la volonté de faire fonctionner l'interface Bluetooth au sein du microcontrôleur hôte ou séparément. Cependant, les fournisseurs proposent souvent des outils visant à faciliter le passage de l'un à l'autre lorsque des changements dans les applications le rendent nécessaire. Lorsque l'application fonctionne avec un microcontrôleur Bluetooth autonome, la pile est généralement accessible par le biais d'appels de fonction C. En tant qu'émetteur-récepteur intelligent externe, il est possible d'accéder aux mêmes fonctions API en mode coprocesseur par le biais d'une interface série telle qu'un UART. Le protocole série peut reposer sur des commandes AT similaires à celles utilisées au départ pour les modems simples ou sur un protocole personnalisé. Le protocole série transmet les commandes de l'hôte à la pile Bluetooth, ainsi que les réponses et les événements de la pile Bluetooth à l'hôte.

D'autres outils d'aide à la construction de profils peuvent inclure des compilateurs prenant en entrée des fichiers XML qui définissent les exigences de messagerie de l'application, et les convertissent en code C et en fichiers d'en-tête. Il est ainsi plus simple d'envoyer des données qui sont compatibles avec les profils Bluetooth standards, par exemple des mesures de tension artérielle.

Les implémentations de nœuds IoT à plusieurs cœurs, par exemple celles qui utilisent un circuit intégré ou un module émetteur-récepteur Bluetooth distinct, peuvent optimiser la consommation d'énergie en coordonnant les cycles de veille. Avec un émetteur-récepteur intelligent, il n'est pas nécessaire que le CPU hôte reste actif pendant la communication radiofréquence. Une fois qu'une commande a initié l'envoi de données et que le paquet se trouve dans une mémoire tampon appropriée, le CPU hôte peut passer en mode veille à faible consommation d'énergie pendant le déroulement de la transmission ou de la réception.

Un émetteur-récepteur intelligent peut surveiller le contenu des paquets entrants et s'assurer que seuls ceux contenant des données importantes pour le CPU hôte l'activeront pour être traités. Les messages diffusés ne concernant que la gestion du réseau peuvent être traités par le processeur de l'émetteur-récepteur Bluetooth. De cette façon, il est possible d'exécuter des fonctions telles que la transmission de paquets dans un réseau maillé Bluetooth 5.0 sans perturber le CPU hôte. Il est possible de mettre en mémoire tampon localement les messages qui concernent le nœud IoT avec une priorité néanmoins faible, comme les mises à jour de l'état du serveur. Le CPU hôte n'a besoin d'être activé que pour vider la mémoire tampon ou pour réceptionner une commande de serveur devant être immédiatement prise en charge. Pour mettre en œuvre cette fonctionnalité, il faut qu'une machine à états logiciels interprétant les données entrantes soit placée au-dessus du micrologiciel Bluetooth de base livré avec le CPU de l'émetteur-récepteur.

Comme un émetteur-récepteur BLE doit rester actif pour détecter les paquets entrants, la consommation d'énergie peut s'avérer plus importante que prévu. Un scénario typique est celui où la couche GATT envoie un paquet qui demande une réponse du récepteur. Par conséquent, le nœud ne pourra pas se mettre en veille tant que la confirmation n'aura pas été reçue ou que le délai de transaction ne se sera pas écoulé. Certains paquets urgents essentiels à la mission devront se servir de ces confirmations. Cependant, de nombreuses données seront envoyées sans avoir besoin de confirmation immédiate. La garantie de livraison peut en revanche être assurée par des protocoles de couches d'application. Par exemple, un protocole personnalisé peut se synchroniser avec le pair distant lorsqu’il s’active, à l’aide des numéros de séquence de paquets ou de codes. Le nœud peut ainsi se mettre en veille juste après avoir envoyé le dernier paquet de mise à jour pendant le cycle de veille en cours. Le mode de sous-classement de recherche employé par le BLE synchronise les deux terminaux de telle sorte qu'un maître conserve les données jusqu'à la prochaine période d'activation ou de recherche.

Conclusion

L'intelligence mise en place dans les modules et les émetteurs-récepteurs pris en charge par de grandes bibliothèques de micrologiciels permet aux fabricants de rendre le BLE accessible à pratiquement toutes les conceptions IoT. La solution la plus adaptée à une conception donnée dépend de ses exigences et des objectifs de l'application, mais il en existe toujours une qui convient parfaitement compte tenu du large choix d'options.

Articles connexes

http://fr.farnell.com/the-bluetooth-evolution

http://fr.farnell.com/iot-security-part-4-bluetooth-battle-with-the-hackers-heats-up

http://fr.farnell.com/bluetooth-smart-for-wearables-and-iot

Choix de conception pour le Bluetooth à faible consommation (BLE) Publié le 5 juin 2018 par Farnell