Le concept de GATT

Pour effectuer un développement lié à la BLE, Nous devons avoir certaines connaissances de base, bien sûr, ça doit être très simple.

Gatte Rôle de l'appareil:

La première chose à comprendre est que la distinction entre ces deux rôles est au niveau matériel, Et ce sont des concepts relatifs qui apparaissent par paires:

“Dispositif central”: relativement puissant, Utilisé pour scanner et connecter les dispositifs périphériques, comme les téléphones mobiles, comprimés, etc..

“Dispositif périphérique”: La fonction est relativement simple, La consommation d'énergie est petite, et le dispositif central est connecté pour fournir des données, comme les bracelets, thermomètres intelligents, etc..

En fait, au niveau le plus fondamental, Cela devrait être une distinction entre différents rôles dans le processus d'établissement d'une connexion. Nous savons que si un appareil Bluetooth veut faire connaître aux autres son existence, il doit être diffusé en permanence vers le monde extérieur, tandis que l'autre partie doit scanner et répondre au paquet de diffusion, afin que la connexion puisse être établie. Dans ce processus, La personne responsable de la diffusion est périphérique , et Central est responsable de la numérisation.

Remarque sur le processus de connexion entre les deux:

Le dispositif central peut se connecter à plusieurs dispositifs périphériques en même temps., Cela cessera de diffuser immédiatement, et continuer à diffuser après la déconnexion. Un seul appareil peut tenter de se connecter à tout moment, Connexions de mise en file d'attente.

Gatte protocole

La technologie BLE communique basée sur GATT. GATT est un protocole de transmission d'attribut. Il peut être considéré comme un protocole de couche d'application pour la transmission d'attribut.

Sa structure est très simple:   

1671506971 1

Vous pouvez le comprendre comme XML:

Chaque GATT est composé de services qui remplissent différentes fonctions;

Chaque service est composé de caractéristiques différentes;

Chaque caractéristique se compose d'une valeur et d'un ou plusieurs descripteurs;

Le service et les caractéristiques sont équivalents aux balises (Le service équivaut à sa catégorie, et la caractéristique équivaut à son nom), Alors que la valeur contient réellement des données, et le descripteur est une explication et une description de cette valeur. Bien sûr, Nous pouvons le décrire et le décrire sous différents angles. Description, Il peut donc y avoir plusieurs descripteurs.

Par exemple:La bande Xiaomi Mi commune est un appareil BLE, (supposé) il contient trois services, qui sont le service qui fournit des informations sur l'appareil, le service qui fournit des étapes, Et le service qui détecte la fréquence cardiaque;

La caractéristique contenue au service des informations sur l'appareil comprend des informations sur le fabricant, matériel, Informations sur la version, etc.; Le service de fréquence cardiaque comprend la caractéristique de la fréquence cardiaque, etc., Et la valeur de la caractéristique de la fréquence cardiaque contient en fait les données de fréquence cardiaque, Et le descripteur est la valeur. Description, comme l'unité de valeur, description, autorisation, etc..

Gatt c / s

Avec une compréhension préliminaire de GATT, Nous savons que Gatt est un mode C / S typique. Puisque c'est C / S, Il nous est nécessaire de faire la distinction entre le serveur et le client.

“Serveur GATT” contre. “Client Gatt”. Le stade où existent ces deux rôles après l'établissement de la connexion, et ils se distinguent selon le statut du dialogue. Il est facile de comprendre que la partie qui détient les données est appelée le serveur GATT, Et la partie qui accède aux données est appelée le client GATT.

Ceci est un concept à un niveau différent du rôle de l'appareil que nous avons mentionné précédemment, Et il faut le distinguer. Utilisons un exemple simple pour illustrer:

Prenez l'exemple d'un téléphone mobile et une montre pour illustrer. Avant que la connexion entre le téléphone mobile et le téléphone mobile ne soit établie, Nous utilisons la fonction de recherche Bluetooth du téléphone mobile pour rechercher le périphérique Bluetooth de la montre. Pendant ce processus, Il est évident que la montre diffuse BLE pour que d'autres appareils connaissent son existence. , c'est le rôle de périphérique dans ce processus, Et le téléphone mobile est responsable de la tâche de numérisation, et joue naturellement le rôle du centre; Après que les deux établissent une connexion Gatt, Lorsque le téléphone mobile doit lire des données de capteur telles que le nombre d'étapes de la montre, les deux les données interactives sont enregistrées dans la montre, Donc, à l'heure actuelle, la montre est le rôle du serveur GATT, Et le téléphone mobile est naturellement le client GATT; Et quand la montre veut lire les appels SMS et d'autres informations sur le téléphone mobile, Le gardien des données devient un téléphone mobile, Le téléphone mobile est donc le serveur à ce moment, Et la montre est le client.

Service / caractéristique

Nous avons déjà eu une compréhension perceptuelle d'eux ci-dessus, Et puis nous avons des informations pratiques:

  1. La caractéristique est la plus petite unité logique de données.
  2. L'analyse des données stockées en valeur et en descripteur est déterminée par l'ingénieur du serveur, il n'y a pas de spécification.
  3. Le service / caractéristique a une identification UUID unique, UUID a à la fois 16 bits et 128 bits, Ce que nous devons comprendre, c'est que l'UUID 16 bits est certifié par l'organisation Bluetooth et doit être acheté, bien sûr, il y a des uuid 16 bits communs. Par exemple, L'UUID du service de fréquence cardiaque est 0x180d, qui est exprimé comme 0x00001800-0000-1000-8000-00805F9B34FB dans le code, et d'autres bits sont fixes. L'UUID 128 bits peut être personnalisé.
  4. Les connexions GATT sont exclusives.