Files
Yggdrasil/infotro/SDi/bluetooth.md
T
2024-02-01 16:17:19 +01:00

3.2 KiB

Bluetooth

MESH networking

De base, le bluetooth comprend un "master" qui se connecte avec des périphériques comme des montres, des écouteurs... Mais le MESH networking consiste à ce que le "master" puisse être en même temps un périphérique d'un autre "master". On peut le comparer à un réseau IP.

[!info] Nordic a implémenté cette fonctionnalité sur leurs puces pour qu'elles puissent fonctionner simultanément des deux manières.

Adressage

L'adresse se fait sur 6 bytes :

  • Les 2 premiers sont utilisés pour faire la séquence de hopping (NAP)
  • Le byte suivant : upper address part (UAP),
  • Les 3 derniers sont utiliés pour identifier le vendeur : Lower Address Part (LAP)

[!warning] Les appareils de nos jours n'utilisent pas cette adresse pour s'identifier pour des raisons de sécurités

Mode bluetooth

Connection

Un élément central peut parler simultanément avec 7 périphériques.

La communication fonctionne de la manière suivante : bluetooth_connection.png L'élément central va envoyer un paquet à un certain intervalle de connexion paramétrable. Si le périphérique ne répond pas la connexion n'est plus valide. S'il n'y a rien à transmettre, des paquet vides sont envoyés.

Broadcast

Un périphérique peut envoyer de l'information à un nombre illimité d'éléments centraux.

Transmission de data

Si le nombre de données oblige l'élément central à dépasser l'intervalle de connexion, il termine sa réponse, puis il reprend les paquets à chaque intervalle.

Client - Serveur

bluetooth_client_serveur.png

L'interaction client-serveur permet au client de faire une requête et au serveur de répondre, ou bien au serveur de transmettre périodiquement des données au client.

Database

La base de données Bluetooth joue un rôle essentiel dans l'organisation et l'accès aux informations. Elle peut adopter différentes formes :

  • Publique : Accessible à tous les appareils, permettant une lecture générale des données.
  • Privée : Réservée au constructeur, offrant une confidentialité accrue pour certaines données.

Cette structuration permet de définir comment les informations sont exposées, lues, et partagées entre les dispositifs Bluetooth, garantissant une flexibilité adaptée aux divers besoins des applications.

GATT / ATT

GATT (Generic ATTribute profile) est le profil général d'attribut et ATT (ATTribute protocole) est le protocol utilisé par l'attribut. C'est une manière d'organiser la database de manière à avoir un service qui pointe sur une caractéristique possédant une valeur :

bluetooth_gatt_att.png

[!info] Le CCCD (Client Characteristic Configuration Descriptor) permet une configuration du client. Il permet de dire au serveur de notifier le client lorsqu'il y a un changement de valeur dans la caractéristique

bluetooth_cccd.png

La stack

Pour tous les appareils Bluetooth, l'organisation de la stack est la même. bluetooth_stack.png