Begreppet GATT

Att genomföra BLE-relaterad utveckling, vi måste ha vissa grundläggande kunskaper, naturligtvis, det måste 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 förekommer i par:

“Central enhet”: relativt kraftfull, används för att skanna och ansluta kringutrustning, som mobiltelefoner, tabletter, 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, på den mest grundläggande nivån, det bör 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, den behöver 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, ansvarig för sändningen är Perifer , och Central ansvarar för scanning.

Notera om anslutningsprocessen mellan de två:

Den centrala enheten kan ansluta till flera kringutrustningar samtidigt. När kringutrustningen är ansluten, den kommer att sluta sändas omedelbart, och fortsätt sända efter frånkoppling. Endast en enhet kan försöka ansluta när som helst, kö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:   

1671506971 1

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 motsvarar taggar (Tjänsten motsvarar sin 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, vi kan beskriva och beskriva det från olika vinklar. Beskrivning, så det kan finnas flera deskriptorer.

Till exempel:Det vanliga Xiaomi Mi Band är en BLE-enhet, (antogs) den innehåller tre tjänster, vilka är tjänsten som tillhandahåller enhetsinformation, tjänsten som tillhandahåller steg, och tjänsten som känner av 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 hjärtfrekvenskarakteristiken innehåller faktiskt hjärtfrekvensdata, och deskriptorn är värdet. Beskrivning, till exempel värdeenheten, beskrivning, tillstånd, etc.

GATT C/S

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

“GATT-server” mot. “GATT-klient”. Stadiet där dessa två roller existerar är efter att anslutningen har upprättats, och de särskiljs efter dialogens status. Det är lätt att förstå att den part som innehar uppgifterna kallas GATT-servern, och den part 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 särskilja 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, vi använder Bluetooth-sökfunktionen på mobiltelefonen för att söka efter klockans Bluetooth-enhet. Under denna process, det är uppenbart att klockan sänder BLE så att andra enheter vet dess existens. , det är den perifera rollen i denna process, och mobiltelefonen ansvarar för skanningsuppgiften, och spelar naturligtvis rollen som Center; efter att de två upprättat en GATT-förbindelse, när mobiltelefonen behöver läsa sensordata som antalet steg från klockan, de två Den interaktiva datan sparas i klockan, så vid denna tidpunkt är klockan rollen som GATT-servern, och mobiltelefonen är naturligtvis GATT-klienten; och när klockan vill läsa SMS-samtal och annan information från mobiltelefonen, väktaren av uppgifterna blir Mobiltelefon, så mobiltelefonen är servern vid denna tidpunkt, och klockan är kunden.

Service/egenskaper

Vi har redan haft en perceptuell förståelse av dem ovan, och så 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, naturligtvis finns det några vanliga 16-bitars UUID. Till exempel, UUID för hjärtfrekvenstjänsten är 0X180D, som uttrycks som 0X00001800-0000-1000-8000-00805f9b34fb i koden, och andra bitar är fixade. 128-bitars UUID kan anpassas.
  4. GATT-anslutningar är exklusiva.