BLE utvikling: Hva er GATT og hvordan fungerer det?
Konseptet med GATT
Å gjennomføre BLE-relatert utvikling, vi må ha visse grunnleggende kunnskaper, selvfølgelig, det må være veldig enkelt.
GATT Enhetsrolle:
Det første du må forstå er at skillet mellom disse to rollene er på maskinvarenivå, og de er relative begreper som vises i par:
“Sentral enhet”: relativt kraftig, brukes til å skanne og koble til eksterne enheter, som mobiltelefoner, tabletter, osv.
“Perifer enhet”: funksjonen er relativt enkel, strømforbruket er lite, og den sentrale enheten er koblet til for å gi data, som armbånd, smarte termometre, osv.
Faktisk, på det mest grunnleggende nivået, det skal være et skille mellom ulike roller i prosessen med å etablere en sammenheng. Vi vet at hvis en Bluetooth-enhet ønsker å fortelle andre at den eksisterer, den må kontinuerlig kringkaste til omverdenen, mens den andre parten må skanne og svare på kringkastingspakken, slik at forbindelsen kan etableres. I denne prosessen, ansvarlig for kringkasting er Perifer , og sentral har ansvar for skanning.
Merk om koblingsprosessen mellom de to:
Den sentrale enheten kan kobles til flere eksterne enheter samtidig. Når den eksterne enheten er tilkoblet, den vil stoppe sendingen umiddelbart, og fortsett å kringkaste etter frakobling. Bare én enhet kan prøve å koble til når som helst, køforbindelser.
GATT protokoll
BLE-teknologien kommuniserer basert på GATT. GATT er en attributtoverføringsprotokoll. Det kan betraktes som en applikasjonslagsprotokoll for attributtoverføring.
Strukturen er veldig enkel:

Du kan forstå det som xml:
Hver GATT er sammensatt av tjenester som utfører forskjellige funksjoner;
Hver tjeneste er sammensatt av forskjellige kjennetegn;
Hver karakteristikk består av en verdi og en eller flere beskrivelser;
Service og Characteristic tilsvarer tagger (Tjenesten tilsvarer sin kategori, og Characteristic tilsvarer navnet), mens verdien faktisk inneholder data, og Descriptor er en forklaring og beskrivelse av denne verdien. Selvfølgelig, vi kan beskrive og beskrive det fra forskjellige vinkler. Beskrivelse, så det kan være flere beskrivelser.
For eksempel:Det vanlige Xiaomi Mi Band er en BLE-enhet, (antatt) den inneholder tre tjenester, som er tjenesten som gir enhetsinformasjon, tjenesten som gir trinn, og tjenesten som registrerer hjertefrekvens;
Karakteristikken i tjenesten til enhetsinformasjonen inkluderer produsentinformasjon, maskinvareinformasjon, versjonsinformasjon, etc.; pulstjenesten inkluderer pulskarakteristikken, etc., og verdien i hjertefrekvenskarakteristikken inneholder faktisk hjertefrekvensdataene, og beskrivelsen er verdien. Beskrivelse, for eksempel verdienheten, beskrivelse, tillatelse, osv.
GATT C/S
Med en foreløpig forståelse av GATT, vi vet at GATT er en typisk C/S-modus. Siden det er C/S, det er nødvendig for oss å skille mellom server og klient.
“GATT-server” vs. “GATT-klient”. Stadiet der disse to rollene eksisterer er etter at forbindelsen er etablert, og de skilles ut i henhold til statusen til dialogen. Det er lett å forstå at parten som holder dataene kalles GATT-serveren, og parten som får tilgang til dataene kalles GATT-klienten.
Dette er et konsept på et annet nivå enn enhetsrollen vi nevnte tidligere, og det er nødvendig å skille det. La oss bruke et enkelt eksempel for å illustrere:
Ta eksemplet med en mobiltelefon og en klokke for å illustrere. Før forbindelsen mellom mobiltelefonen og mobiltelefonen er etablert, vi bruker Bluetooth-søkefunksjonen på mobiltelefonen for å søke etter Bluetooth-enheten til klokken. Under denne prosessen, det er åpenbart at klokken sender BLE slik at andre enheter vet at den eksisterer. , det er den perifere rollen i denne prosessen, og mobiltelefonen er ansvarlig for skanneoppgaven, og spiller naturligvis rollen som Senter; etter at de to har etablert en GATT-forbindelse, når mobiltelefonen trenger å lese sensordata som antall skritt fra klokken, de to De interaktive dataene lagres i klokken, så på dette tidspunktet er klokken rollen til GATT-serveren, og mobiltelefonen er naturligvis GATT-klienten; og når klokken ønsker å lese SMS-anrop og annen informasjon fra mobiltelefonen, verge for dataene blir Mobiltelefon, så mobiltelefonen er serveren på dette tidspunktet, og klokken er kunden.
Service/Karakteristikk
Vi har allerede hatt en perseptuell forståelse av dem ovenfor, og så har vi litt praktisk informasjon:
- Karakteristikk er den minste logiske enheten av data.
- Analysen av data lagret i verdi og deskriptor bestemmes av serveringeniøren, det er ingen spesifikasjon.
- Tjeneste/kjennetegn har en unik UUID-identifikasjon, UUID har både 16-bit og 128-bit, det vi trenger å forstå er at 16-bit UUID er sertifisert av Bluetooth-organisasjonen og må kjøpes, selvfølgelig er det noen vanlige 16-bit UUID.For eksempel, UUID for hjertefrekvenstjenesten er 0X180D, som er uttrykt som 0X00001800-0000-1000-8000-00805f9b34fb i koden, og andre biter er fikset. 128-biters UUID kan tilpasses.
- GATT-tilkoblinger er eksklusive.