BLE-utveckling: Vad är GATT och hur fungerar det?

Innehållsförteckning

Begreppet GATT

För att genomföra BLE-relaterad utveckling måste vi ha vissa grundkunskaper, självklart måste det vara väldigt enkelt.

GATT Enhetsroll:

Det första att förstå är att skillnaden mellan dessa två roller är på hårdvarunivå, och de är relativa begrepp som visas i par:

"Central enhet": relativt kraftfull, används för att skanna och ansluta kringutrustning, såsom mobiltelefoner, surfplattor, etc.

"Kringutrustning": funktionen är relativt enkel, strömförbrukningen är liten och den centrala enheten är ansluten för att tillhandahålla data, såsom armband, smarta termometrar, etc.

I själva verket borde det på den mest grundläggande nivån vara en distinktion mellan olika roller i processen att upprätta en koppling. Vi vet att om en Bluetooth-enhet vill låta andra veta att den finns, måste den kontinuerligt sända till omvärlden, medan den andra parten behöver skanna och svara på sändningspaketet, så att anslutningen kan upprättas. I denna process är ansvarig för sändningen Perifer , och Central är ansvarig för scanning.

Notera om anslutningsprocessen mellan de två:

Den centrala enheten kan ansluta till flera kringutrustningar samtidigt. När kringutrustningen är ansluten kommer den att sluta sända omedelbart och fortsätta att sända efter frånkoppling. Endast en enhet kan försöka ansluta när som helst och köa anslutningar.

GATT protokoll

BLE-tekniken kommunicerar baserat på GATT. GATT är ett attributöverföringsprotokoll. Det kan betraktas som ett applikationslagerprotokoll för attributöverföring.

Dess struktur är mycket enkel:   

Du kan förstå det som xml:

Varje GATT består av tjänster som utför olika funktioner;

Varje tjänst är sammansatt av olika egenskaper;

Varje egenskap består av ett värde och en eller flera deskriptorer;

Service och Characteristic är likvärdiga med taggar (Service motsvarar dess kategori, och Characteristic motsvarar dess namn), medan värde faktiskt innehåller data, och Descriptor är en förklaring och beskrivning av detta värde. Naturligtvis kan vi beskriva och beskriva det från olika vinklar. Beskrivning, så det kan finnas flera beskrivningar.

Till exempel: Det vanliga Xiaomi Mi Bandet är en BLE-enhet, (antaget) innehåller tre tjänster, som är tjänsten som tillhandahåller enhetsinformation, tjänsten som tillhandahåller steg och tjänsten som upptäcker hjärtfrekvens;

Den egenskap som ingår i tjänsten för enhetsinformationen inkluderar tillverkarinformation, hårdvaruinformation, versionsinformation etc.; pulstjänsten inkluderar pulskaraktäristiken etc. och värdet i pulskarakteristiken innehåller faktiskt pulsdata, och deskriptorn är värdet. Beskrivning, såsom värdeenhet, beskrivning, tillstånd, etc.

GATT C/S

Med en preliminär förståelse av GATT vet vi att GATT är ett typiskt C/S-läge. Eftersom det är C/S är det nödvändigt för oss att skilja på Server och klient.

"GATT-server" kontra "GATT-klient". Stadiet där dessa två roller existerar är efter att anslutningen har upprättats, och de särskiljs efter statusen för dialogen. Det är lätt att förstå att parten som håller data kallas GATT-servern, och parten som kommer åt data kallas GATT-klienten.

Detta är ett koncept på en annan nivå än enhetsrollen vi nämnde tidigare, och det är nödvändigt att skilja det. Låt oss använda ett enkelt exempel för att illustrera:

Ta exemplet med en mobiltelefon och en klocka för att illustrera. Innan anslutningen mellan mobiltelefonen och mobiltelefonen upprättas använder vi mobilens Bluetooth-sökfunktion för att söka efter klockans Bluetooth-enhet. Under denna process är det uppenbart att klockan sänder BLE så att andra enheter vet dess existens. , det är kringutrustningens roll i denna process, och mobiltelefonen är ansvarig för skanningsuppgiften och spelar naturligtvis rollen som Center; efter att de två upprättat en GATT-anslutning, när mobiltelefonen behöver läsa sensordata såsom antalet steg från klockan, de två. Den interaktiva informationen sparas i klockan, så vid denna tidpunkt är klockan rollen av GATT server, och mobiltelefonen är naturligtvis GATT-klienten; och när klockan vill läsa SMS-samtal och annan information från mobiltelefonen blir väktaren av datan Mobiltelefon, så mobiltelefonen är servern vid denna tidpunkt och klockan är klienten.

Service/egenskaper

Vi har redan haft en perceptuell förståelse av dem ovan, och sedan har vi lite praktisk information:

  1. Karakteristisk är den minsta logiska enheten av data.
  2. Analysen av data lagrad i värde och deskriptor bestäms av serveringenjören, det finns ingen specifikation.
  3. Tjänst/egenskap har en unik UUID-identifikation, UUID har både 16-bitars och 128-bitars, vad vi behöver förstå är att 16-bitars UUID är certifierat av Bluetooth-organisationen och måste köpas, självklart finns det några vanliga en 16-bitars UUID. Till exempel är UUID för hjärtfrekvenstjänsten 0X180D, vilket uttrycks som 0X00001800-0000-1000-8000-00805f9b34fb i koden, och andra bitar är fixerade. 128-bitars UUID kan anpassas.
  4. GATT-anslutningar är exklusiva.

Bläddra till början