• Aucun résultat trouvé

Chapitre 3 : Description générale du BLE et de la pile

3.2. Aperçu du protocole BLE en empilage

La figure 2 montre le schéma de principe de la couche de protocole BLE. La couche de protocole BLE contient deux parties principales : la partie Controller (contrôleur) et la partie Host (hôte). La partie contrôleur comprend une couche physique et une couche de liaison et est généralement mise en œuvre comme un petit SOC avec une radio intégrée, et une autre partie principale est l’hôte qui fonctionne sur un processeur d’application. L'hôte inclut des fonctionnalités de la couche supérieure, par Logical Link Control and Adaptation Protocol (L2CAP), Attribute Protocol (ATT), Generic Attribute Profile (GATT), Security Manager (SM) et Generic Access Profile (GAP). L'Host Controller Interface (HCI) permet d'établir une communication entre l’hôte et le contrôleur. La couche d’application qui n'est pas définie par la spécification Bluetooth peut être utilisée au-dessus de l’hôte. Un aperçu des caractéristiques de chaque couche est présenté ci-dessous :

Contrôleur

3.2.1.

Le contrôleur inclut toutes les fonctionnalités de bas niveau nécessaires pour que le dispositif BLE communique ; il est composé de la Physical Layer (PHY), la couche de liaison et le Host Controller Interface (HCI).

Physical layer

3.2.2.

Comme mentionné précédemment, le BLE fonctionne en bande de 2,4 GHz ISM et définit 40 canaux de fréquence radio (3 canaux d'annonces et de 37 canaux de données) avec 2 MHz qui représentent la largeur du canal. Les canaux d'annonces sont utilisés pour la détection des périphériques, l’établissement de la connexion et la transmission de radiodiffusion tandis que les canaux de données sont utilisés pour une communication bidirectionnelle entre les périphériques connectés. Pour les interférences et les problèmes de propagation sans fil (telles que la décoloration et la propagation multichemin), une fréquence d’adaptation au mécanisme de saut est utilisé. Ce mécanisme sélectionne l’un des 37 canaux de données disponibles pour la communication pendant un intervalle de temps donné. Tous les canaux physiques utilisent une modulation nommée Gaussian Frequency Shift Keying (GFSK) qui est simple à mettre en œuvre. L’indice de modulation se situe dans la plage comprise entre 0,45 et 0,55, ce qui permet une réduction de la consommation de puissance.

Deux types de canaux pour les appareils BLE [45] Figure 3.

Link layer

3.2.3.

La couche de liaison commande l’état RF de l’appareil et dispose des interfaces directes avec PHY. Il y a six états possibles de la couche liaison (Standby, Advertiser, Scanner, Initiate, Master et Slave) pour un dispositif BLE.

Les périphériques peuvent annoncer pour une variété de raisons. Quand un appareil a uniquement besoin de diffuser des données, il transmet les données en paquets d'annonces à travers les canaux prévus à cet effet. Tout dispositif qui transmet des paquets d'annonces est appelé advertiser. La transmission de paquets à travers les canaux d'annonces a lieu à des intervalles de temps appelé advertising Events. Dans un Advertising Events, l'advertiser utilise séquentiellement chaque canal d'annonces pour la transmission de paquets. Les appareils qui ne visent qu’à recevoir des données qu'à travers ces canaux sont appelés Scanners. Pour la communication bidirectionnelle de données, les appareils doivent se connecter les uns aux autres. Cette connexion est une procédure asymétrique. Un advertiser annonce à travers les canaux qu’il est un dispositif connectable, tandis que l’initiator (l’autre dispositif) est à l’écoute de ces annonces. Lorsqu’un initiator trouve un advertiser, il peut transmettre un message de demande de connexion à l’initiator, ce qui crée une connexion point à point entre les deux appareils. Les deux appareils peuvent alors communiquer en utilisant les canaux de données physiques.

Pour la connexion créée, le BLE définis deux rôles de l’appareil (maître et esclave) dans la couche de liaison qui agissent en tant qu’initiateur et annonceur lors de la création de la connexion. Le réseau composé par un maître et ses esclaves (un maître peut gérer plusieurs connexions simultanées avec différents esclaves, alors que chaque esclave ne peut être connecté qu’à un seul maître) qui est appelé un piconet suit une topologie en étoile. Actuellement, un dispositif BLE ne peut appartenir qu’à un seul piconet.

Les esclaves sont en mode veille par défaut et se réveillent de temps en temps pour écouter les réceptions de paquets possibles du maître. Le maître détermine les cas où les esclaves sont nécessaires pour écouter et coordonne ainsi l’accès au support en utilisant un régime nommé accès multiple par répartition dans le temps

(TDMA). Le maître fournit également l’esclave avec les informations nécessaires pour l’algorithme de saut de fréquence (contenant la carte des canaux de données à utiliser) et pour la gestion des connexions. Les paramètres liés à la gestion d’une connexion sont transmis dans le message de demande de connexion et peuvent être mis à jour lors de la connexion pour diverses raisons (par exemple, en utilisant une nouvelle carte du canal de données en raison d’un changement du motif d’interférence).

Une fois que la connexion établie, la couche physique se compose d'événements de connexion qui sont non simultanées. Tous les paquets sont transmis en utilisant la même fréquence de canal de données au cours de cet événement de connexion. Lorsque l’esclave reçoit un paquet, il envoie un paquet au maître en réponse. Cependant, le maître n’est pas obligé d’envoyer un paquet à la réception d’un paquet en provenance de l’esclave. Au minimum, un espace d’Inter Frame Space (IFS) de 150 ms doit passer entre la fin de la transmission d’un paquet et le début de la suivante. Alors que maître et esclave continuent d’alterner dans l’envoi de paquets, l’événement de connexion est considéré comme ouvert. Les canaux de paquets de données comprennent un bit nommé More Data (MD) qui signale si l’expéditeur a plus d’informations à transmettre. L’événement de connexion sera fermé si aucun des appareils n’a de données à transmettre et que l’esclave n’est pas obligé d’écouter jusqu’au début de l’événement de connexion suivante. Pour un nouvel événement de connexion, le maître et l’esclave utilisent une nouvelle donnée de fréquence de canal, qui est calculée en utilisant l’algorithme de saut de fréquence.

Quatre états actifs d’une création d’une connexion [45]. Figure 4.

Host Controller Interface (HCI) – Controller side

3.2.4.

Le HCI est une interface du côté du contrôleur qui fournit un moyen de communication à l’hôte via une interface standardisée ; la spécification Bluetooth définit HCI comme un ensemble de commandes et d'événements pour que l’hôte et le contrôleur interagissent les uns avec les autres, avec un format de données en paquet et un ensemble de règles de contrôle de flux et d’autres procédures. En outre, la spécification définit plusieurs transports, dont chacun augmente le protocole du HCI pour un transport physique spécifique (UART, USB, SDIO, etc.). Ceci peut être réalisé soit par l’intermédiaire d’un logiciel d'API, ou par une interface matérielle, y compris des logiciels comme UART, SPI, etc.

Host

3.2.5.

Le bloc hôte comprend les couches suivantes, du côté du HCI, Logical Link Control et Adaptation Protocol (L2CAP), Attribute Protocol (ATT) et Security Manager (SM) et enfin le Generic Attribute Profile (GATT) et Generic Access Profile (GAP).

Logical Link Control et protocole d’adaptation (L2CAP)

3.2.6.

Un protocole optimisé et simplifié sur la base du Bluetooth L2CAP classique est utilisé dans le BLE. L’objectif principal du L2CAP dans BLE, est de multiplexer les données des trois protocoles supérieurs (ATT, SMP et couche de liaison Control Signaling) sur une connexion d’une couche de liaison. Les données de ces services sont traitées par L2CAP dans une approche appelée « Best-Effort » et sans l’utilisation des mécanismes de contrôle de la retransmission et de débit, qui sont disponibles dans d’autres versions Bluetooth. Les capacités de segmentation et de réassemblage ne sont pas utilisées, puisque les protocoles de la couche supérieure fournissent des unités de données qui correspondent à la taille maximale de charge utile de L2CAP, qui est égale à 23 octets dans BLE.

ATT (Attribute Protocol)

3.2.7.

L’ATT définit la communication entre les deux dispositifs jouant les rôles de serveur et de client, respectivement, au-dessus d’un canal L2CAP dédié. Le serveur gère un ensemble d’attributs. Un attribut est une structure de données qui stocke les informations gérées par le GATT, le protocole qui fonctionne au-dessus de l’ATT. Le rôle de client ou de serveur est déterminé par le GATT, et est indépendant du rôle de l’esclave ou du maître. Le client peut accéder aux attributs du serveur par l’envoi des demandes qui déclenchent les messages de réponse du serveur. Pour une plus grande efficacité, un serveur peut également envoyer à un client deux types de messages non sollicités qui contiennent des attributs : (i) les notifications, qui sont non confirmées ; et (ii) des indications qui force le client à envoyer une confirmation. Un client peut également envoyer des commandes au serveur afin d’écrire des valeurs d’attribut.

GATT (Generic Attribute Profile)

3.2.8.

Le GATT définit un cadre qui utilise le ATT pour la découverte de services et l’échange de caractéristiques d’un appareil à l’autre. Une caractéristique est un

ensemble de données qui comprend une valeur et des propriétés. Les données relatives aux services et aux caractéristiques sont stockées dans des attributs. Par exemple, un serveur qui exécute un service de détection de température peut représenter une caractéristique de température qui utilise un attribut de description du capteur, un autre attribut pour stocker des valeurs de mesure de température et en plus un attribut pour spécifier les unités de mesure.

Sécurité

3.2.9.

Pour la protection de l’échange d’informations entre deux appareils connectés, BLE offre divers services de sécurité. Deux modes de sécurité mutuellement exclusifs appeler le mode de sécurité LE 1 et le mode de sécurité LE 2 peuvent être exprimés pour les services de sécurité. Le mode de sécurité LE1 fournit des fonctionnalités de sécurité à la couche de liaison et le mode de sécurité LE 2à la couche ATT.

La couche de liaison BLE prend en charge le cryptage et l’authentification en utilisant l’algorithme Cipher Block Chaining-Message Authentication Code (CCM) et un bloc de cryptage AES de 128 bits. Lorsque le cryptage et l’authentification sont utilisés dans une connexion, un Message Integrity Check (MIC) de quatre octets est ajouté à la charge utile du PDU du canal de données, et ensuite appliqué à la charge utile du PDU et aux champs MIC.

Il est également possible de transmettre des données authentifiées par une connexion de couche de liaison non cryptée. Dans ce cas, une signature de 12 octets est placée après la charge utile de données sur la couche ATT. La signature est calculée en appliquant un algorithme qui utilise 128-bit AES comme le bloc de cryptage [43]. Une entrée à l’algorithme est considérée comme un compteur, qui est utilisé dans le but de fournir une protection contre les attaques répétées. Si le récepteur vérifie la signature, il suppose que les données ont été envoyées par une source fiable. Outre les services décrits, BLE supporte un mécanisme appelé fonction de confidentialité, ce qui permet à un périphérique d’utiliser des adresses privées et souvent changées. La caractéristique de la vie privée atténue la menace

par laquelle un adversaire peut suivre un dispositif BLE. Les adresses privées sont générées en cryptant l’adresse publique du dispositif, ce qui peut être résolu par un dispositif fiable qui a été fourni avec la clé de cryptage correspondante. Chaque mode de comptes de sécurité comprend des niveaux différents, qui expriment des exigences quant au type d’appariement qui doit être utilisé. Le jumelage est une procédure par laquelle les appareils génèrent et distribuent du matériel clé.

Generic Access Profile (GAP) et ses applications

3.2.10.

Le GAP au plus haut niveau du noyau pile BLE, précise les rôles, les modes et les procédures de l’appareil pour la découverte de dispositifs et de services, la gestion de l’établissement et de la sécurité de la connexion. Le GAP du BLE remplit quatre rôles avec des exigences spécifiques tels que diffuseur, observateur, périphérique et centrale sur le contrôleur sous-jacent. Un dispositif qui a le rôle de diffuseur, via les canaux d'annonces, diffuse seulement des données et ne prend pas en charge les connexions avec d’autres appareils.

Le rôle d’observateur est de recevoir les données transmises par le diffuseur et lui est complémentaire. Le rôle central est d’initier et de gérer plusieurs connexions d’un dispositif, alors que le rôle périphérique est pour les dispositifs simples qui utilisent une seule connexion avec un dispositif dans le rôle central. Un dispositif peut prendre en charge plusieurs rôles, mais un seul rôle peut être accepté à un moment donné. Un profil de plus haut niveau, qui spécifie comment les applications peuvent inter opérer, est appelé un profil d’application. Les profils d’application, qui sont également spécifiés par le Bluetooth SIG, favorisent l’interopérabilité entre les appareils de différents fabricants.

Application

3.2.11.

L’application, comme dans tous les autres types de systèmes, existe dans la couche la plus élevée et est celle qui contient la logique, l’interface utilisateur et la manipulation de données pour tout ce qui concerne le cas d’utilisation que

l’application implante. L’architecture d’une application est fortement tributaire de l’implantation choisie et dans BLE il utilise généralement les capacités fournies par les profils BLE.

3.3. Avantages du BLE

Dans ce chapitre, la pile de protocoles BLE est présentée et les principaux mécanismes et les caractéristiques de chaque couche sont décrits. Comme mentionné, une pile BLE typique se compose de deux parties principales, l'une est appelée la partie contrôleur et l'autre est appelée la partie hôte. La partie contrôleur se compose de la couche physique et de liaison. La couche physique fonctionne à la fréquence de 2,4 GHz et fait usage d'environ 40 canaux qui sont séparés de 2 MHz chacun. Il existe deux types de canaux pour les périphériques BLE, les canaux publicitaires et les canaux de données. Comme mentionné, tous les canaux physiques utilisent une modulation GFSK, qui est simple à mettre en œuvre. Le nœud annonceur BLE transmet des paquets publicitaires à travers des canaux publicitaires à des intervalles de temps précis appelés événements publicitaires et un nœud scanneur qui reçoit des données en utilisant les canaux publicitaires. Les périphériques BLE doivent d'abord se connecter l'un à l'autre avant qu'ils ne commencent une communication de données bidirectionnelle fiable. La couche de liaison BLE définit les dispositifs comme un maître ou un esclave, qui pendant les étapes de connexion agissent respectivement comme initiateur et annonceur. Un maître peut se connecter à autant d'esclaves que possible, formant ainsi un réseau en étoile. Les esclaves peuvent entrer en mode veille et s'allumer périodiquement pour écouter tous les paquets du maître. C'est le maître qui détermine les périodes de sommeil ou de réveil des esclaves. La partie hôte s'exécute sur un processeur d'application et comprend une fonctionnalité de couche supérieure consistant en L2CAP, ATT, GATT, GAP. La communication entre l'hôte et le contrôleur est par HCI. BLE utilise une version plus légère du L2CAP qui a été définie pour le Bluetooth classique. Les principales tâches du L2CAP sont de prendre en charge les données de multiplexage des trois

protocoles de couche supérieure, ATT, SMP et la signalisation de contrôle de couche de liaison, sur une connexion de couche de liaison.

La technologie BLE satisfait la plupart des exigences et des défis liés à la surveillance médicale. De nombreux avantages, tels que la faible consommation d'énergie, la petite taille, la connectivité pour les téléphones mobiles, le faible coût, la robustesse, l'efficacité et la disponibilité mondiale, sont les raisons pourquoi cette technologie est adaptée pour la surveillance de la santé à long terme. La topologie en étoile simple réduit considérablement la complexité de la mise en œuvre et l'empreinte de silicium très petite permet donc un très faible coût. Le système BLE est également très robuste par saut de fréquence par rapport à d'autres technologies sans fil et il possède une très faible consommation de puissance, ce qui est le point culminant de cette technologie. Les couches de la pile BLE sont similaires à Bluetooth BR/EDR, par exemple les deux protocoles utilisent L2CAP, mais ils ont été adaptés de différentes façons pour réduire au minimum les surcharges et pour permettre une faible consommation d'énergie. En raison de la complexité réduite du protocole, la consommation de courant est très faible pendant la transmission et la réception et, comme ce système a été conçu pour être en mode veille la majorité du temps, il consomme des courants aussi faibles que quelques nanoampères.

Chapitre 4 : Conception et mise en œuvre d'un

Documents relatifs