BLE arendus: mis on GATT ja kuidas see toimib?

Sisukord

GATTi kontseptsioon

BLE-ga seotud arenduse läbiviimiseks peavad meil olema teatud baasteadmised, loomulikult peavad need olema väga lihtsad.

GATT Seadme roll:

Kõigepealt tuleb mõista, et nende kahe rolli eristamine on riistvara tasemel ja need on suhtelised mõisted, mis esinevad paarikaupa:

"Keskseade": suhteliselt võimas, kasutatakse välisseadmete (nt mobiiltelefonid, tahvelarvutid jne) skannimiseks ja ühendamiseks.

"Välisseade": funktsioon on suhteliselt lihtne, energiatarve on väike ja keskseade on ühendatud andmete edastamiseks, nagu randmepaelad, nutikad termomeetrid jne.

Tegelikult peaks see kõige fundamentaalsemal tasandil olema erinevate rollide eristamine ühenduse loomise protsessis. Teame, et kui Bluetooth-seade soovib teistele oma olemasolust teada anda, peab see ühenduse loomiseks pidevalt edastama edastust välismaailmale, samal ajal kui teine ​​osapool peab skannima edastuspaketti ja sellele vastama. Selles protsessis on edastamise eest vastutav isik perifeerne ja skannimise eest vastutab keskpunkt.

Märkus nende kahe ühendamise protsessi kohta:

Keskseade saab korraga ühenduse luua mitme välisseadmega.Kui välisseade on ühendatud, lõpetab see kohe leviedastuse ja jätkab leviedastust pärast ühenduse katkestamist. Ühenduse loomist saab igal ajal proovida ainult üks seade, seades ühendused järjekorda.

GATT protokoll

BLE-tehnoloogia suhtleb GATT-i alusel. GATT on atribuutide edastamise protokoll. Seda võib pidada atribuutide edastamise rakenduskihi protokolliks.

Selle struktuur on väga lihtne:   

Saate sellest aru saada kui xml:

Iga GATT koosneb teenustest, mis täidavad erinevaid funktsioone;

Iga teenus koosneb erinevatest karakteristikutest;

Iga tunnus koosneb väärtusest ja ühest või mitmest deskriptorist;

Service ja Characteristic on samaväärsed siltidega (teenus on samaväärne selle kategooriaga ja Characteristic on samaväärne selle nimega), samas kui väärtus sisaldab tegelikult andmeid ning deskriptor on selle väärtuse selgitus ja kirjeldus. Muidugi saame seda kirjeldada ja kirjeldada erinevate nurkade alt. Kirjeldus, nii et deskriptoreid võib olla mitu.

Näiteks: tavaline Xiaomi Mi Band on BLE-seade, (eeldatavalt) see sisaldab kolme teenust, milleks on seadme teavet pakkuv teenus, samme pakkuv teenus ja pulsisageduse tuvastav teenus;

Seadme teabe teenuses sisalduv omadus sisaldab teavet tootja kohta, riistvara teavet, versiooni teavet jne; südame löögisageduse teenus sisaldab pulsikarakteristikut jne ning pulsikarakteristiku väärtus sisaldab tegelikult pulsiandmeid ja deskriptor on väärtus. Kirjeldus, näiteks väärtusühik, kirjeldus, luba jne.

GATT C/S

GATT-i esialgse arusaamaga teame, et GATT on tüüpiline C/S-režiim. Kuna tegemist on C/S-ga, on meil vaja vahet teha serveril ja kliendil.

"GATT server" vs "GATT klient". Etapp, kus need kaks rolli eksisteerivad, on pärast ühenduse loomist ja neid eristatakse vastavalt dialoogi olekule. On lihtne mõista, et osapoolt, kes andmeid hoiab, nimetatakse GATT-serveriks ja andmetele juurdepääsu osapoolt GATT-i kliendiks.

See on kontseptsioon, mis erineb seadme rollist, mida me varem mainisime, ja seda on vaja eristada. Kasutame illustreerimiseks lihtsat näidet:

Illustreerimiseks võtke näiteks mobiiltelefon ja kell. Enne mobiiltelefoni ja mobiiltelefoni vahelise ühenduse loomist kasutame kella Bluetooth-seadme otsimiseks mobiiltelefoni Bluetooth-otsingu funktsiooni. Selle protsessi käigus on ilmne, et kell edastab BLE-d, et teised seadmed teaksid selle olemasolust. , see on selles protsessis välisseadme roll ja mobiiltelefon vastutab skannimisülesande eest ja loomulikult mängib keskuse rolli; kui need kaks loovad GATT-ühenduse, kui mobiiltelefon peab lugema anduri andmeid, näiteks kella sammude arvu, siis kaks interaktiivsed andmed salvestatakse kellasse, nii et kell on praegu GATT-i roll. server ja mobiiltelefon on loomulikult GATT-klient; ja kui kell tahab mobiiltelefonist SMS-kõnesid ja muud infot lugeda, saab andmete eestkostjaks Mobiiltelefon, seega mobiiltelefon on sel ajal server ja kell klient.

Teenindus/omadus

Meil on neist eespool juba tajutav arusaam ja siis on meil praktilist teavet:

  1. Iseloomulik on andmete väikseim loogiline ühik.
  2. Väärtuses ja deskriptoris salvestatud andmete analüüsi määrab Serveri insener, spetsifikatsiooni pole.
  3. Teenusel/omadusel on ainulaadne UUID identifikaator, UUID-l on nii 16-bitine kui ka 128-bitine, millest me peame mõistma, et 16-bitine UUID on Bluetoothi ​​organisatsiooni poolt sertifitseeritud ja see tuleb osta, loomulikult on mõned tavalised need 16-bitised UUID. Näiteks südame löögisageduse teenuse UUID on 0X180D, mis on koodis väljendatud kujul 0X00001800-0000-1000-8000-00805f9b34fb ja muud bitid on fikseeritud. 128-bitist UUID-d saab kohandada.
  4. GATT-ühendused on eksklusiivsed.

Leidke Top