update bluetooth

This commit is contained in:
Klagarge committed 2024-02-01 15:52:14 +01:00
1 parent 95a5a19943
commit 33c1ffb7d2
1 file changed
+28 -10
+28 -10
View File
@@ -3,40 +3,58 @@ Bluetooth
</h1></header>
# MESH networking
#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.
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.
>[!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 être parler simultanément avec 7 périphériques.
La communication fonctionne de la manière suivante :
![bluetooth_connection.png](medias%2Fbluetooth_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.
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 envoie tout, puis il reprend les paquets à chaque intervalle.
## Client - Serveur
![bluetooth_client_serveur.png](medias%2Fbluetooth_client_serveur.png)
![bluetooth_client_serveur.png](medias%2Fbluetooth_client_serveur.png ':size=75%')
On peut faire que le client fasse une requête et le serveur donne la valeur, ou bien que le serveur transmette à chaque intervalle de connexion.
# Database
Elle peut avoir différentes organisations de donnée :
- public, elle permet à n'importe qui de la lire
- privée, elle est propre au constructeur
# GATT / ATT
GATT est le profil général d'attribut et ATT est le protocol utilisé par l'attribut.
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](medias%2Fbluetooth_gatt_att.png)
>[!info] Le `CCCD` permet une configuration du client personalisée.
![bluetooth_cccd.png](medias%2Fbluetooth_cccd.png)
![bluetooth_gatt_att.png](medias%2Fbluetooth_gatt_att.png ':size=75%')
>[!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](medias%2Fbluetooth_cccd.png ':size=50%')
# La stack
Pour tous les appareils Bluetooth, l'organisation de la stack est la même.
![bluetooth_stack.png](medias%2Fbluetooth_stack.png)
![bluetooth_stack.png](medias%2Fbluetooth_stack.png ':size=75%')