Разработка на BLE: Какво е GATT и как работи?

Съдържание

Концепцията на ГАТТ

За да извършим разработка, свързана с BLE, трябва да имаме определени основни познания, разбира се, трябва да е много просто.

ГАТТ Роля на устройството:

Първото нещо, което трябва да разберете е, че разликата между тези две роли е на хардуерно ниво и те са относителни концепции, които се появяват по двойки:

„Централно устройство“: относително мощно, използвано за сканиране и свързване на периферни устройства, като мобилни телефони, таблети и др.

„Периферно устройство“: функцията е сравнително проста, консумацията на енергия е малка и централното устройство е свързано, за да предоставя данни, като ленти за китки, интелигентни термометри и др.

Всъщност, на най-фундаменталното ниво, това трябва да е разграничение между различните роли в процеса на установяване на връзка. Знаем, че ако Bluetooth устройство иска да уведоми другите за съществуването си, то трябва непрекъснато да излъчва към външния свят, докато другата страна трябва да сканира и да отговори на излъчвания пакет, за да може да се установи връзката. В този процес лицето, отговорно за излъчването, е периферното устройство, а централното е отговорно за сканирането.

Забележка относно процеса на свързване между двете:

Централното устройство може да се свърже с множество периферни устройства едновременно. След като периферното устройство е свързано, то ще спре излъчването незабавно и ще продължи да излъчва след прекъсване на връзката. Само едно устройство може да се опита да се свърже по всяко време, поставяйки връзки на опашка.

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

BLE технологията комуникира въз основа на GATT. GATT е протокол за предаване на атрибути. Може да се разглежда като протокол на приложния слой за предаване на атрибути.

Структурата му е много проста:   

Можете да го разберете като xml:

Всеки GATT се състои от услуги, които изпълняват различни функции;

Всяка услуга се състои от различни характеристики;

Всяка характеристика се състои от стойност и един или повече дескриптори;

Услугата и характеристиката са еквивалентни на тагове (услугата е еквивалентна на своята категория, а характеристиката е еквивалентна на името си), докато стойността всъщност съдържа данни, а дескрипторът е обяснение и описание на тази стойност. Разбира се, можем да го опишем и опишем от различни ъгли. Описание, така че може да има множество дескриптори.

Например: Общата Xiaomi Mi Band е BLE устройство, (предполага се) съдържа три услуги, които са услугата, която предоставя информация за устройството, услугата, която предоставя стъпки, и услугата, която открива сърдечния ритъм;

Характеристиката, съдържаща се в услугата информация за устройството, включва информация за производителя, информация за хардуера, информация за версията и т.н.; Услугата за сърдечен ритъм включва характеристиката на сърдечната честота и т.н., а стойността в характеристиката на сърдечната честота всъщност съдържа данните за сърдечната честота, а дескрипторът е стойността. Описание, като единица стойност, описание, разрешение и др.

ГАТТ C/S

С предварително разбиране на 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 връзките са изключителни.

Преминете към Top