BLE-ontwikkeling: wat is GATT en hoe werkt het?

Inhoudsopgave

Het concept van de GATT

Om BLE-gerelateerde ontwikkeling uit te voeren, moeten we over bepaalde basiskennis beschikken, uiteraard moet het heel eenvoudig zijn.

GATT Apparaatrol:

Het eerste dat u moet begrijpen is dat het onderscheid tussen deze twee rollen zich op hardwareniveau bevindt, en dat het relatieve concepten zijn die in paren voorkomen:

"Centraal apparaat": relatief krachtig, gebruikt voor het scannen en verbinden van randapparatuur, zoals mobiele telefoons, tablets, enz.

"Randapparaat": de functie is relatief eenvoudig, het stroomverbruik is klein en het centrale apparaat is verbonden om gegevens te leveren, zoals polsbandjes, slimme thermometers, enz.

In feite zou het op het meest fundamentele niveau een onderscheid moeten zijn tussen verschillende rollen in het proces van het tot stand brengen van een verbinding. We weten dat als een Bluetooth-apparaat anderen zijn bestaan ​​wil laten weten, het voortdurend moet uitzenden naar de buitenwereld, terwijl de andere partij het uitgezonden pakket moet scannen en beantwoorden, zodat de verbinding tot stand kan worden gebracht. In dit proces is de Perifere persoon verantwoordelijk voor de uitzending en is de Centrale verantwoordelijk voor het scannen.

Opmerking over het verbindingsproces tussen de twee:

Het centrale apparaat kan tegelijkertijd verbinding maken met meerdere randapparaten. Zodra het randapparaat is aangesloten, stopt het onmiddellijk met uitzenden en gaat het verder met uitzenden nadat de verbinding is verbroken. Er kan slechts één apparaat tegelijkertijd proberen verbinding te maken, waarbij verbindingen in de wachtrij staan.

GATT protocol

BLE-technologie communiceert op basis van GATT. GATT is een attribuuttransmissieprotocol. Het kan worden beschouwd als een applicatielaagprotocol voor attribuutoverdracht.

De structuur is heel eenvoudig:   

Je kunt het begrijpen als xml:

Elke GATT bestaat uit diensten die verschillende functies vervullen;

Elke dienst bestaat uit verschillende kenmerken;

Elk kenmerk bestaat uit een waarde en een of meer descriptoren;

Service en Characteristic zijn equivalent aan tags (Service is equivalent aan de categorie, en Characteristic is equivalent aan de naam), terwijl waarde feitelijk gegevens bevat, en Descriptor een uitleg en beschrijving van deze waarde is. Natuurlijk kunnen we het vanuit verschillende invalshoeken beschrijven en beschrijven. Beschrijving, zodat er meerdere descriptors kunnen zijn.

Bijvoorbeeld: de gewone Xiaomi Mi Band is een BLE-apparaat, (aangenomen) dat het drie Services bevat, namelijk de Service die apparaatinformatie levert, de Service die stappen levert en de Service die de hartslag detecteert;

Het kenmerk dat de service van de apparaatinformatie bevat, omvat fabrikantinformatie, hardware-informatie, versie-informatie, enz.; de hartslagservice omvat de hartslagkarakteristiek, enz., en de waarde in de hartslagkarakteristiek bevat feitelijk de hartslaggegevens, en de descriptor is de waarde. Beschrijving, zoals de waarde-eenheid, beschrijving, toestemming, etc.

GATT C/S

Met een voorlopig begrip van GATT weten we dat GATT een typische C/S-modus is. Omdat het C/S is, is het noodzakelijk dat we onderscheid maken tussen Server en Client.

"GATT-server" versus "GATT-client". Het stadium waarin deze twee rollen ontstaan ​​is nadat de verbinding tot stand is gebracht, en ze worden onderscheiden afhankelijk van de status van de dialoog. Het is gemakkelijk te begrijpen dat de partij die de gegevens bewaart de GATT-server wordt genoemd, en de partij die toegang heeft tot de gegevens de GATT-client wordt genoemd.

Dit is een concept op een ander niveau dan de rol van het apparaat die we eerder noemden, en het is noodzakelijk om dit te onderscheiden. Laten we een eenvoudig voorbeeld gebruiken om dit te illustreren:

Neem ter illustratie het voorbeeld van een mobiele telefoon en een horloge. Voordat de verbinding tussen de mobiele telefoon en de mobiele telefoon tot stand wordt gebracht, gebruiken we de Bluetooth-zoekfunctie van de mobiele telefoon om het Bluetooth-apparaat van het horloge te zoeken. Tijdens dit proces is het duidelijk dat het horloge BLE uitzendt, zodat andere apparaten het bestaan ​​ervan kennen. , het is de rol van randapparatuur in dit proces, en de mobiele telefoon is verantwoordelijk voor de scantaak en speelt uiteraard de rol van Center; nadat de twee een GATT-verbinding tot stand hebben gebracht, wanneer de mobiele telefoon sensorgegevens moet lezen, zoals het aantal stappen van het horloge, worden de twee De interactieve gegevens opgeslagen in het horloge, dus op dit moment is het horloge de rol van de GATT server, en de mobiele telefoon is uiteraard de GATT-client; en wanneer het horloge sms-oproepen en andere informatie van de mobiele telefoon wil lezen, wordt de bewaker van de gegevens mobiele telefoon, dus de mobiele telefoon is op dit moment de server en het horloge is de client.

Dienst/Kenmerk

We hebben er hierboven al een perceptueel begrip van gehad, en dan hebben we wat praktische informatie:

  1. Kenmerkend is de kleinste logische eenheid van gegevens.
  2. De analyse van gegevens opgeslagen in waarde en descriptor wordt bepaald door de serveringenieur, er is geen specificatie.
  3. Service/kenmerk heeft een unieke UUID-identificatie, UUID heeft zowel 16-bit als 128-bit. Wat we moeten begrijpen is dat de 16-bit UUID is gecertificeerd door de Bluetooth-organisatie en moet worden aangeschaft. Er zijn natuurlijk enkele veel voorkomende degenen 16-bit UUID. De UUID van de Heart Rate-service is bijvoorbeeld 0X180D, wat in de code wordt uitgedrukt als 0X00001800-0000-1000-8000-00805f9b34fb, en andere bits zijn vast. De 128-bit UUID kan worden aangepast.
  4. GATT-verbindingen zijn exclusief.

Scroll naar boven