Dezvoltare BLE: Ce este GATT și cum funcționează?

Cuprins

Conceptul GATT

Pentru a realiza dezvoltarea legată de BLE, trebuie să avem anumite cunoștințe de bază, desigur, trebuie să fie foarte simplu.

GATT Rolul dispozitivului:

Primul lucru de înțeles este că distincția dintre aceste două roluri este la nivel hardware și sunt concepte relative care apar în perechi:

„Dispozitiv central”: relativ puternic, folosit pentru a scana și conecta dispozitive periferice, cum ar fi telefoane mobile, tablete etc.

„Dispozitiv periferic”: funcția este relativ simplă, consumul de energie este mic, iar dispozitivul central este conectat pentru a furniza date, cum ar fi brățări, termometre inteligente etc.

De fapt, la nivelul cel mai fundamental, ar trebui să fie o distincție între diferitele roluri în procesul de stabilire a unei conexiuni. Știm că, dacă un dispozitiv Bluetooth dorește să-i informeze pe ceilalți despre existența sa, trebuie să transmită continuu către lumea exterioară, în timp ce cealaltă parte trebuie să scaneze și să răspundă la pachetul de difuzare, astfel încât conexiunea să poată fi stabilită. În acest proces, persoana responsabilă pentru difuzare este Peripheral, iar Central este responsabilă pentru scanare.

Notă despre procesul de conectare între cele două:

Dispozitivul central se poate conecta la mai multe dispozitive periferice în același timp. Odată ce dispozitivul periferic este conectat, acesta va opri difuzarea imediat și va continua transmisia după deconectare. Doar un dispozitiv poate încerca să se conecteze în orice moment, punând în coadă conexiunile.

GATT protocol

Tehnologia BLE comunică pe baza GATT. GATT este un protocol de transmisie a atributelor. Poate fi privit ca un protocol de nivel de aplicație pentru transmisia de atribute.

Structura sa este foarte simplă:   

Îl poți înțelege ca xml:

Fiecare GATT este compus din Servicii care îndeplinesc diferite funcții;

Fiecare Serviciu este compus din Caracteristici diferite;

Fiecare Caracteristică constă dintr-o valoare și unul sau mai mulți Descriptori;

Service și Characteristic sunt echivalente cu etichete (Service este echivalent cu categoria sa, iar Characteristic este echivalent cu numele său), în timp ce valoarea conține de fapt date, iar Descriptor este o explicație și o descriere a acestei valori. Desigur, îl putem descrie și descrie din diferite unghiuri. Descriere, deci pot exista mai mulți Descriptori.

De exemplu: Banda obișnuită Xiaomi Mi este un dispozitiv BLE, (presupus) că conține trei Servicii, care sunt Serviciul care furnizează informații despre dispozitiv, Serviciul care oferă pași și Serviciul care detectează ritmul cardiac;

Caracteristica conținută în serviciul informațiilor despre dispozitiv include informații despre producător, informații despre hardware, informații despre versiune etc.; Serviciul de ritm cardiac include caracteristica ritmului cardiac etc., iar valoarea din caracteristica ritmului cardiac conține de fapt datele ritmului cardiac, iar descriptorul este valoarea. Descriere, cum ar fi unitatea de valoare, descrierea, permisiunea etc.

GATT C/S

Cu o înțelegere preliminară a GATT, știm că GATT este un mod tipic C/S. Deoarece este C/S, este necesar să facem distincția între Server și client.

„Server GATT” vs. „Client GATT”. Etapa în care există aceste două roluri este după stabilirea conexiunii și se disting în funcție de statutul dialogului. Este ușor de înțeles că partea care deține datele se numește server GATT, iar partea care accesează datele se numește client GATT.

Acesta este un concept la un nivel diferit de rolul dispozitivului pe care l-am menționat anterior și este necesar să-l distingem. Să folosim un exemplu simplu pentru a ilustra:

Luați exemplul unui telefon mobil și al unui ceas pentru a ilustra. Înainte de stabilirea conexiunii dintre telefonul mobil și telefonul mobil, folosim funcția de căutare Bluetooth a telefonului mobil pentru a căuta dispozitivul Bluetooth al ceasului. În timpul acestui proces, este evident că ceasul transmite BLE, astfel încât alte dispozitive să cunoască existența acestuia. , este rolul perifericului în acest proces, iar telefonul mobil este responsabil pentru sarcina de scanare și, în mod natural, joacă rolul de Centru; după ce cei doi stabilesc o conexiune GATT, atunci când telefonul mobil trebuie să citească datele senzorului, cum ar fi numărul de pași de la ceas, cei doi Datele interactive sunt salvate în ceas, deci în acest moment ceasul este rolul GATT server, iar telefonul mobil este în mod firesc clientul GATT; iar când ceasul dorește să citească apeluri SMS și alte informații de pe telefonul mobil, gardianul datelor devine Telefon mobil, astfel încât telefonul mobil este serverul în acest moment, iar ceasul este clientul.

Serviciu/Caracteristică

Am avut deja o înțelegere perceptivă a acestora mai sus și apoi avem câteva informații practice:

  1. Caracteristica este cea mai mică unitate logică de date.
  2. Analiza datelor stocate în valoare și descriptor este determinată de inginerul Server, nu există specificații.
  3. Serviciul/Caracteristica are o identificare unică UUID, UUID are atât 16 biți, cât și 128 de biți, ceea ce trebuie să înțelegem este că UUID-ul pe 16 biți este certificat de organizația Bluetooth și trebuie achiziționat, desigur că există unele comune cele UUID pe 16 biți. De exemplu, UUID-ul serviciului Heart Rate este 0X180D, care este exprimat ca 0X00001800-0000-1000-8000-00805f9b34fb în cod, iar alți biți sunt fixați. UUID-ul pe 128 de biți poate fi personalizat.
  4. Conexiunile GATT sunt exclusive.

Derulaţi în sus