Pag-unlad ng BLE: Ano ang GATT at paano ito gumagana?

Talaan ng nilalaman

Ang Konsepto ng GATT

Upang maisakatuparan ang pag-unlad na may kaugnayan sa BLE, dapat tayong magkaroon ng ilang pangunahing kaalaman, siyempre, dapat itong napaka-simple.

GATT Tungkulin ng device:

Ang unang bagay na dapat maunawaan ay ang pagkakaiba sa pagitan ng dalawang tungkuling ito ay nasa antas ng hardware, at ang mga ito ay mga kamag-anak na konsepto na lumalabas nang magkapares:

"Central device": medyo malakas, ginagamit para i-scan at ikonekta ang mga peripheral na device, gaya ng mga mobile phone, tablet, atbp.

"Peripheral device": medyo simple ang function, maliit ang konsumo ng kuryente, at nakakonekta ang central device para magbigay ng data, gaya ng mga wristband, smart thermometer, atbp.

Sa katunayan, sa pinakapangunahing antas, ito ay dapat na isang pagkakaiba sa pagitan ng iba't ibang mga tungkulin sa proseso ng pagtatatag ng isang koneksyon. Alam namin na kung gusto ng isang Bluetooth device na ipaalam sa iba ang pagkakaroon nito, kailangan nitong patuloy na mag-broadcast sa labas ng mundo, habang ang kabilang partido ay kailangang mag-scan at tumugon sa broadcast packet, upang maitatag ang koneksyon. Sa prosesong ito, ang taong responsable sa pagsasahimpapawid ay Peripheral , at ang Central ang responsable sa pag-scan.

Tandaan tungkol sa proseso ng koneksyon sa pagitan ng dalawa:

Maaaring kumonekta ang central device sa maraming peripheral device nang sabay-sabay. Kapag nakakonekta na ang peripheral device, hihinto agad ito sa pagsasahimpapawid, at magpapatuloy sa pagsasahimpapawid pagkatapos madiskonekta. Isang device lang ang maaaring magtangkang kumonekta anumang oras, na pumipila ng mga koneksyon.

GATT protokol

Ang teknolohiya ng BLE ay nakikipag-usap batay sa GATT. Ang GATT ay isang attribute transmission protocol. Maaari itong ituring bilang isang application layer protocol para sa paghahatid ng katangian.

Ang istraktura nito ay napaka-simple:   

Maiintindihan mo ito bilang xml:

Ang bawat GATT ay binubuo ng Mga Serbisyo na gumaganap ng iba't ibang mga function;

Ang bawat Serbisyo ay binubuo ng iba't ibang Katangian;

Ang bawat Katangian ay binubuo ng isang halaga at isa o higit pang Descriptor;

Ang Serbisyo at Katangian ay katumbas ng mga tag (Ang Serbisyo ay katumbas ng kategorya nito, at Katangian ay katumbas ng pangalan nito), habang ang value ay talagang naglalaman ng data, at Descriptor ay isang paliwanag at paglalarawan ng halagang ito. Siyempre, maaari nating ilarawan at ilarawan ito mula sa iba't ibang mga anggulo. Paglalarawan, kaya maaaring magkaroon ng maraming Deskriptor.

Halimbawa:Ang karaniwang Xiaomi Mi Band ay isang BLE device, (ipinagpapalagay) na naglalaman ito ng tatlong Serbisyo, na kung saan ay ang Serbisyong nagbibigay ng impormasyon ng device, ang Serbisyong nagbibigay ng mga hakbang, at ang Serbisyong nakakakita ng tibok ng puso;

Ang katangiang nilalaman sa serbisyo ng impormasyon ng device ay kinabibilangan ng impormasyon ng tagagawa, impormasyon ng hardware, impormasyon ng bersyon, atbp.; Kasama sa Serbisyo sa rate ng puso ang katangian ng tibok ng puso, atbp., at ang halaga sa katangian ng rate ng puso ay aktwal na naglalaman ng data ng rate ng puso, at ang descriptor ay ang halaga. Paglalarawan, gaya ng unit ng halaga, paglalarawan, pahintulot, atbp.

GATT C/S

Sa paunang pag-unawa sa GATT, alam namin na ang GATT ay isang tipikal na C/S mode. Dahil ito ay C/S, ito ay kinakailangan para sa amin na makilala sa pagitan ng Server at client.

"GATT server" kumpara sa "GATT client". Ang yugto kung saan umiiral ang dalawang tungkuling ito ay pagkatapos maitatag ang koneksyon, at ang mga ito ay nakikilala ayon sa katayuan ng diyalogo. Madaling maunawaan na ang partidong may hawak ng data ay tinatawag na GATT server, at ang partidong nag-a-access sa data ay tinatawag na GATT client.

Ito ay isang konsepto sa ibang antas mula sa papel ng device na binanggit namin dati, at ito ay kinakailangan upang makilala ito. Gumamit tayo ng isang simpleng halimbawa upang ilarawan:

Kunin ang halimbawa ng isang mobile phone at isang relo upang ilarawan. Bago maitatag ang koneksyon sa pagitan ng mobile phone at mobile phone, ginagamit namin ang Bluetooth search function ng mobile phone upang hanapin ang Bluetooth device ng relo. Sa prosesong ito, kitang-kita na ang relo ay nagbo-broadcast ng BLE para malaman ng ibang mga device ang pagkakaroon nito. , ito ang papel ng peripheral sa prosesong ito, at ang mobile phone ay responsable para sa gawain sa pag-scan, at natural na gumaganap ang papel ng Center; pagkatapos magtatag ang dalawa ng koneksyon sa GATT, kapag kailangang basahin ng mobile phone ang data ng sensor tulad ng bilang ng mga hakbang mula sa relo, ang dalawa Ang interactive na data ay naka-save sa relo, kaya sa oras na ito ang relo ang papel ng GATT server, at ang mobile phone ay natural na GATT client; at kapag ang relo ay gustong magbasa ng mga tawag sa SMS at iba pang impormasyon mula sa mobile phone, ang tagapag-alaga ng data ay nagiging Mobile phone, kaya ang mobile phone ang server sa oras na ito, at ang relo ay ang kliyente.

Serbisyo/Katangian

Nagkaroon na kami ng perceptual na pag-unawa sa mga ito sa itaas, at pagkatapos ay mayroon kaming ilang praktikal na impormasyon:

  1. Ang katangian ay ang pinakamaliit na lohikal na yunit ng data.
  2. Ang pagsusuri ng data na nakaimbak sa halaga at descriptor ay tinutukoy ng inhinyero ng Server, walang detalye.
  3. Ang Serbisyo/Katangian ay may natatanging pagkakakilanlan ng UUID, ang UUID ay may parehong 16-bit at 128-bit, ang kailangan nating maunawaan ay ang 16-bit na UUID ay na-certify ng Bluetooth na organisasyon at kailangang bilhin, siyempre mayroong ilang karaniwang ones 16-bit UUID.Halimbawa, ang UUID ng serbisyo ng Heart Rate ay 0X180D, na ipinahayag bilang 0X00001800-0000-1000-8000-00805f9b34fb sa code, at ang iba pang mga bit ay naayos. Maaaring i-customize ang 128-bit UUID.
  4. Eksklusibo ang mga koneksyon sa GATT.

Mag-scroll sa Tuktok