BLE-udvikling: Hvad er GATT, og hvordan fungerer det?

Indholdsfortegnelse

Begrebet GATT

For at gennemføre BLE-relateret udvikling skal vi have en vis grundlæggende viden, selvfølgelig skal den være meget enkel.

GATT Enhedsrolle:

Den første ting at forstå er, at skelnen mellem disse to roller er på hardwareniveau, og de er relative begreber, der vises i par:

"Central enhed": relativt kraftig, bruges til at scanne og forbinde perifere enheder, såsom mobiltelefoner, tablets osv.

"Perifer enhed": Funktionen er relativt enkel, strømforbruget er lille, og den centrale enhed er tilsluttet for at levere data, såsom armbånd, smarte termometre osv.

Faktisk burde det på det mest fundamentale niveau være en skelnen mellem forskellige roller i processen med at etablere en forbindelse. Vi ved, at hvis en Bluetooth-enhed vil lade andre vide, at den eksisterer, skal den løbende udsende til omverdenen, mens den anden part skal scanne og svare på broadcast-pakken, så forbindelsen kan etableres. I denne proces er den ansvarlige for udsendelsen Peripheral , og Central er ansvarlig for scanningen.

Bemærk om forbindelsesprocessen mellem de to:

Den centrale enhed kan oprette forbindelse til flere ydre enheder på samme tid. Når den ydre enhed er tilsluttet, stopper den med at udsende med det samme og fortsætter med at udsende efter afbrydelse. Kun én enhed kan forsøge at oprette forbindelse til enhver tid og sætter forbindelser i kø.

GATT protokol

BLE-teknologien kommunikerer baseret på GATT. GATT er en attributtransmissionsprotokol. Det kan betragtes som en applikationslagsprotokol til attributtransmission.

Dens struktur er meget enkel:   

Du kan forstå det som xml:

Hver GATT er sammensat af tjenester, der udfører forskellige funktioner;

Hver tjeneste er sammensat af forskellige karakteristika;

Hver karakteristik består af en værdi og en eller flere deskriptorer;

Service og Characteristic svarer til tags (Service svarer til dens kategori, og Characteristic svarer til dens navn), mens værdi faktisk indeholder data, og Descriptor er en forklaring og beskrivelse af denne værdi. Selvfølgelig kan vi beskrive og beskrive det fra forskellige vinkler. Beskrivelse, så der kan være flere beskrivelser.

For eksempel: Det almindelige Xiaomi Mi Band er en BLE-enhed, (antaget), at den indeholder tre tjenester, som er tjenesten, der leverer enhedsoplysninger, tjenesten, der giver trin, og tjenesten, der registrerer puls;

Karakteristikken, der er indeholdt i tjenesten for enhedsinformationen, omfatter producentinformation, hardwareinformation, versionsinformation osv.; pulstjenesten inkluderer pulskarakteristikken osv., og værdien i pulskarakteristikken indeholder faktisk pulsdata, og beskrivelsen er værdien. Beskrivelse, såsom værdienhed, beskrivelse, tilladelse osv.

GATT C/S

Med en foreløbig forståelse af GATT ved vi, at GATT er en typisk C/S-tilstand. Da det er C/S, er det nødvendigt for os at skelne mellem Server og klient.

"GATT-server" vs. "GATT-klient". Stadiet, hvor disse to roller eksisterer, er efter forbindelsen er etableret, og de adskilles i henhold til status for dialogen. Det er let at forstå, at den part, der har dataene, kaldes GATT-serveren, og den part, der tilgår dataene, kaldes GATT-klienten.

Dette er et koncept på et andet niveau end den enhedsrolle, vi nævnte før, og det er nødvendigt at skelne det. Lad os bruge et simpelt eksempel til at illustrere:

Tag eksemplet med en mobiltelefon og et ur for at illustrere. Inden forbindelsen mellem mobiltelefonen og mobiltelefonen etableres, bruger vi mobiltelefonens Bluetooth-søgefunktion til at søge efter urets Bluetooth-enhed. I løbet af denne proces er det tydeligt, at uret udsender BLE, så andre enheder kender dets eksistens. , det er periferiudstyrets rolle i denne proces, og mobiltelefonen er ansvarlig for scanningsopgaven og spiller naturligvis rollen som Center; efter at de to har etableret en GATT-forbindelse, når mobiltelefonen skal læse sensordata såsom antallet af trin fra uret, de to. De interaktive data gemmes i uret, så på dette tidspunkt er uret rollen som GATT. server, og mobiltelefonen er naturligvis GATT-klienten; og når uret vil læse SMS-opkald og anden information fra mobiltelefonen, bliver dataenes vogter Mobiltelefon, så mobiltelefonen er serveren på dette tidspunkt, og uret er klienten.

Service/Karakteristik

Vi har allerede haft en perceptuel forståelse af dem ovenfor, og så har vi nogle praktiske oplysninger:

  1. Karakteristisk er den mindste logiske enhed af data.
  2. Analysen af ​​data gemt i værdi og deskriptor bestemmes af serveringeniøren, der er ingen specifikation.
  3. Service/Karakteristik har en unik UUID identifikation, UUID har både 16-bit og 128-bit, hvad vi skal forstå er, at 16-bit UUID er certificeret af Bluetooth-organisationen og skal købes, selvfølgelig er der nogle almindelige ens 16-bit UUID. For eksempel er UUID for hjertefrekvenstjenesten 0X180D, som er udtrykt som 0X00001800-0000-1000-8000-00805f9b34fb i koden, og andre bits er faste. 128-bit UUID kan tilpasses.
  4. GATT-forbindelser er eksklusive.

Rul til top