Sviluppo BLE: cos'è il GATT e come funziona?

Sommario

Il concetto di GATT

Per realizzare lo sviluppo relativo a BLE, dobbiamo avere alcune conoscenze di base, ovviamente, deve essere molto semplice.

GATT Ruolo del dispositivo:

La prima cosa da capire è che la distinzione tra questi due ruoli è a livello hardware, e sono concetti relativi che compaiono in coppia:

"Dispositivo centrale": relativamente potente, utilizzato per scansionare e collegare dispositivi periferici, come telefoni cellulari, tablet, ecc.

"Dispositivo periferico": la funzione è relativamente semplice, il consumo energetico è ridotto e il dispositivo centrale è collegato per fornire dati, come braccialetti, termometri intelligenti, ecc.

In effetti, al livello più fondamentale, dovrebbe esserci una distinzione tra diversi ruoli nel processo di creazione di una connessione. Sappiamo che se un dispositivo Bluetooth vuole far conoscere ad altri la sua esistenza, deve trasmettere continuamente al mondo esterno, mentre l'altra parte deve scansionare e rispondere al pacchetto trasmesso, in modo che la connessione possa essere stabilita. In questo processo, la persona responsabile della trasmissione è Periferica e Centrale è responsabile della scansione.

Nota sul processo di connessione tra i due:

Il dispositivo centrale può connettersi a più dispositivi periferici contemporaneamente. Una volta collegato, il dispositivo periferico interromperà immediatamente la trasmissione e continuerà a trasmettere dopo la disconnessione. Solo un dispositivo alla volta può tentare di connettersi, mettendo in coda le connessioni.

GATT protocollo

La tecnologia BLE comunica in base al GATT. GATT è un protocollo di trasmissione degli attributi. Può essere considerato un protocollo del livello applicativo per la trasmissione degli attributi.

La sua struttura è molto semplice:   

Puoi capirlo come xml:

Ciascun GATT è composto da Servizi che svolgono diverse funzioni;

Ogni Servizio è composto da diverse Caratteristiche;

Ciascuna Caratteristica è composta da un valore e da uno o più Descrittori;

Servizio e Caratteristica sono equivalenti ai tag (Servizio è equivalente alla sua categoria e Caratteristica è equivalente al suo nome), mentre valore contiene effettivamente dati e Descrittore è una spiegazione e descrizione di questo valore. Naturalmente, possiamo descriverlo e descriverlo da diverse angolazioni. Descrizione, quindi possono esserci più descrittori.

Ad esempio: la comune Xiaomi Mi Band è un dispositivo BLE, (presunto) contiene tre servizi, che sono il servizio che fornisce informazioni sul dispositivo, il servizio che fornisce i passaggi e il servizio che rileva la frequenza cardiaca;

Le caratteristiche contenute nel servizio delle informazioni sul dispositivo includono informazioni sul produttore, informazioni sull'hardware, informazioni sulla versione, ecc.; il Servizio frequenza cardiaca include le caratteristiche della frequenza cardiaca, ecc., e il valore nella caratteristica della frequenza cardiaca contiene effettivamente i dati della frequenza cardiaca e il descrittore è il valore. Descrizione, come unità di valore, descrizione, autorizzazione, ecc.

GATT C/S

Con una comprensione preliminare del GATT, sappiamo che GATT è una tipica modalità C/S. Poiché è C/S, è necessario distinguere tra Server e client.

"Server GATT" e "client GATT". La fase in cui esistono questi due ruoli è quella successiva alla creazione della connessione e si distinguono in base allo stato del dialogo. È facile capire che la parte che detiene i dati è chiamata server GATT e la parte che accede ai dati è chiamata client GATT.

Questo è un concetto a un livello diverso rispetto al ruolo del dispositivo di cui abbiamo parlato prima, ed è necessario distinguerlo. Usiamo un semplice esempio per illustrare:

Prendiamo l'esempio di un telefono cellulare e di un orologio per illustrare. Prima che venga stabilita la connessione tra il telefono cellulare e il telefono cellulare, utilizziamo la funzione di ricerca Bluetooth del telefono cellulare per cercare il dispositivo Bluetooth dell'orologio. Durante questo processo, è ovvio che l'orologio trasmette BLE in modo che altri dispositivi ne sappiano l'esistenza. , è il ruolo di periferica in questo processo, e il telefono cellulare è responsabile dell'attività di scansione e svolge naturalmente il ruolo di Centro; dopo che i due hanno stabilito una connessione GATT, quando il telefono cellulare ha bisogno di leggere i dati del sensore come il numero di passi dall'orologio, i due dati interattivi vengono salvati nell'orologio, quindi in questo momento l'orologio ha il ruolo del GATT server, e il telefono cellulare è naturalmente il client GATT; e quando l'orologio vuole leggere le chiamate SMS e altre informazioni dal telefono cellulare, il guardiano dei dati diventa Telefono cellulare, quindi in questo momento il telefono cellulare è il server e l'orologio è il client.

Servizio/caratteristica

Ne abbiamo già avuto una comprensione percettiva sopra, e poi abbiamo alcune informazioni pratiche:

  1. La caratteristica è la più piccola unità logica di dati.
  2. L'analisi dei dati memorizzati in valore e descrittore è determinata dall'ingegnere del server, non esiste alcuna specifica.
  3. Il servizio/caratteristica ha un'identificazione UUID univoca, l'UUID è sia a 16 bit che a 128 bit, ciò che dobbiamo capire è che l'UUID a 16 bit è certificato dall'organizzazione Bluetooth e deve essere acquistato, ovviamente ci sono alcuni comuni quelli UUID a 16 bit. Ad esempio, l'UUID del servizio Frequenza cardiaca è 0X180D, che è espresso come 0X00001800-0000-1000-8000-00805f9b34fb nel codice, e gli altri bit sono fissi. L'UUID a 128 bit può essere personalizzato.
  4. Le connessioni GATT sono esclusive.

Scorrere fino a Top