Распрацоўка BLE: што такое GATT і як гэта працуе?

Змест

Канцэпцыя ГАТТ

Для распрацоўкі, звязанай з BLE, мы павінны мець пэўныя базавыя веды, вядома, яны павінны быць вельмі простымі.

ГАТТ Роля прылады:

Першае, што трэба зразумець, гэта тое, што адрозненне паміж гэтымі дзвюма ролямі адбываецца на апаратным узроўні, і гэта адносныя паняцці, якія з'яўляюцца парамі:

«Цэнтральная прылада»: адносна магутная, выкарыстоўваецца для сканавання і падключэння перыферыйных прылад, такіх як мабільныя тэлефоны, планшэты і г.д.

«Перыферыйная прылада»: функцыя адносна простая, энергаспажыванне невялікае, а цэнтральная прылада падлучана для прадастаўлення дадзеных, такіх як бранзалеты, разумныя тэрмометры і г.д.

Фактычна, на самым фундаментальным узроўні гэта павінна быць адрозненне паміж рознымі ролямі ў працэсе ўстанаўлення сувязі. Мы ведаем, што калі прылада Bluetooth хоча паведаміць іншым аб сваім існаванні, яна павінна бесперапынна вяшчаць у знешні свет, у той час як іншы бок павінен сканаваць і адказваць на пакет вяшчання, каб можна было ўсталяваць злучэнне. У гэтым працэсе асоба, адказная за трансляцыю, - Peripheral, а Central адказвае за сканаванне.

Заўвага аб працэсе злучэння паміж імі:

Цэнтральная прылада можа падключацца да некалькіх перыферыйных прылад адначасова. Пасля падлучэння перыферыйнай прылады яна неадкладна спыніць вяшчанне і працягне вяшчанне пасля адключэння. Толькі адна прылада можа спрабаваць падключыцца ў любы час, ставячы злучэнні ў чаргу.

ГАТТ пратакол

Тэхналогія BLE падтрымлівае сувязь на аснове GATT. GATT - гэта пратакол перадачы атрыбутаў. Яго можна разглядаць як пратакол прыкладнога ўзроўню для перадачы атрыбутаў.

Яго структура вельмі простая:   

Вы можаце зразумець гэта як xml:

Кожнае GATT складаецца з Паслуг, якія выконваюць розныя функцыі;

Кожная паслуга складаецца з розных характарыстык;

Кожная характарыстыка складаецца са значэння і аднаго або некалькіх дэскрыптараў;

Service і Characteristic эквівалентныя тэгам (Service эквівалентна сваёй катэгорыі, а Characteristic эквівалентна сваёй назве), у той час як значэнне фактычна змяшчае дадзеныя, а Descriptor з'яўляецца тлумачэннем і апісаннем гэтага значэння. Вядома, мы можам апісаць і апісаць гэта з розных бакоў. Апісанне, таму можа быць некалькі дэскрыптараў.

Напрыклад: звычайны Xiaomi Mi Band з'яўляецца прыладай BLE, (меркавана) яна змяшчае тры службы: служба, якая прадастаўляе інфармацыю аб прыладзе, служба, якая забяспечвае крокі, і служба, якая вызначае частату сардэчных скарачэнняў;

Характарыстыка, якая змяшчаецца ў службовай інфармацыі аб прыладзе, уключае інфармацыю пра вытворцу, інфармацыю аб абсталяванні, інфармацыю аб версіі і г.д.; Паслуга сардэчнага рытму ўключае ў сябе характарыстыку сардэчнага рытму і г.д., і значэнне ў характарыстыцы сардэчнага рытму фактычна змяшчае даныя аб частаце сардэчных скарачэнняў, а дэскрыптар з'яўляецца значэннем. Апісанне, такое як адзінка значэння, апісанне, дазвол і г.д.

К/С ГАТТ

Маючы папярэдняе разуменне GATT, мы ведаем, што GATT - гэта тыповы рэжым C/S. Паколькі гэта C/S, нам неабходна адрозніваць сервер і кліент.

"Сервер GATT" супраць "кліента GATT". Стадыя, на якой існуюць гэтыя дзве ролі, наступае пасля ўсталявання сувязі, і яны адрозніваюцца ў залежнасці ад статусу дыялогу. Лёгка зразумець, што бок, які захоўвае дадзеныя, называецца серверам GATT, а бок, які атрымлівае доступ да дадзеных, называецца кліентам GATT.

Гэта канцэпцыя на іншым узроўні, чым роля прылады, якую мы згадвалі раней, і яе неабходна адрозніваць. Давайце для ілюстрацыі скарыстаемся простым прыкладам:

Для ілюстрацыі возьмем мабільны тэлефон і гадзіннік. Перш чым усталяваць сувязь паміж мабільным тэлефонам і мабільным тэлефонам, мы выкарыстоўваем функцыю пошуку Bluetooth мабільнага тэлефона для пошуку прылады Bluetooth гадзінніка. Падчас гэтага працэсу відавочна, што гадзіннік транслюе BLE, каб іншыя прылады ведалі пра яго існаванне. , гэта роля перыферыйнага прылады ў гэтым працэсе, а мабільны тэлефон адказвае за задачу сканавання і, натуральна, выконвае ролю цэнтра; пасля таго, як абодва ўсталююць злучэнне GATT, калі мабільны тэлефон павінен счытваць дадзеныя датчыка, такія як колькасць крокаў з гадзінніка, два інтэрактыўныя дадзеныя захоўваюцца ў гадзінніку, таму ў гэты час гадзіннік выконвае ролю GATT сервер, а мабільны тэлефон, натуральна, кліент GATT; і калі гадзіннік хоча прачытаць SMS-званкі і іншую інфармацыю з мабільнага тэлефона, захавальнікам даных становіцца мабільны тэлефон, таму мабільны тэлефон у гэты час з'яўляецца серверам, а гадзіннік - кліентам.

Служба/Характарыстыка

Вышэй мы ўжо зразумелі іх з пункту гледжання ўспрымання, а потым у нас ёсць некаторая практычная інфармацыя:

  1. Характарыстыка - найменшая лагічная адзінка даных.
  2. Аналіз дадзеных, якія захоўваюцца ў значэнні і дэскрыптары, вызначаецца інжынерам сервера, спецыфікацыі няма.
  3. Сэрвіс/Характарыстыка мае унікальную ідэнтыфікацыю UUID, UUID мае як 16-бітны, так і 128-бітны, тое, што мы павінны разумець, гэта тое, што 16-бітны UUID сертыфікаваны арганізацыяй Bluetooth і яго трэба набыць, вядома, ёсць некаторыя агульныя 16-бітны UUID. Напрыклад, UUID службы Heart Rate - 0X180D, які выражаецца ў кодзе як 0X00001800-0000-1000-8000-00805f9b34fb, а іншыя біты фіксаваныя. 128-бітны UUID можна наладзіць.
  4. Злучэнні GATT эксклюзіўныя.

Пракрутка да пачатку