add bluetooth theory form Yann

This commit is contained in:
Klagarge committed 2024-02-01 10:41:12 +01:00
1 parent 813f64d922
commit a4058a2882
6 files changed
+38

No files matched your search

+38
View File
@@ -2,3 +2,41 @@
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.
>[!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.
## 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)
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.
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)
# La stack
Pour tous les appareils Bluetooth, l'organisation de la stack est la même.
![bluetooth_stack.png](medias%2Fbluetooth_stack.png)
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 335 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB