Розробка BLE: що таке GATT і як він працює?

Зміст

Концепція ГАТТ

Щоб здійснювати розробку, пов’язану з BLE, ми повинні мати певні базові знання, звичайно, вони повинні бути дуже простими.

ГАТТ Роль пристрою:

Перше, що слід зрозуміти, це те, що різниця між цими двома ролями відбувається на апаратному рівні, і вони є відносними поняттями, які з’являються парами:

«Центральний пристрій»: відносно потужний, використовується для сканування та підключення периферійних пристроїв, таких як мобільні телефони, планшети тощо.

«Периферійний пристрій»: функція відносно проста, споживання енергії невелике, а центральний пристрій підключається для надання даних, наприклад браслетів, інтелектуальних термометрів тощо.

Фактично, на найфундаментальнішому рівні це має бути розрізнення між різними ролями в процесі встановлення зв’язку. Ми знаємо, що якщо пристрій Bluetooth хоче повідомити іншим про своє існування, йому потрібно постійно транслювати зв’язок із зовнішнім світом, тоді як інша сторона має сканувати та відповідати на широкомовний пакет, щоб можна було встановити з’єднання. У цьому процесі особа, відповідальна за трансляцію, є периферійним, а центральний відповідає за сканування.

Примітка про процес підключення між двома:

Центральний пристрій може підключатися до кількох периферійних пристроїв одночасно. Після підключення периферійного пристрою він негайно припинить трансляцію та продовжить трансляцію після відключення. Лише один пристрій може намагатися підключитися в будь-який час, ставлячи з’єднання в чергу.

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

Технологія BLE спілкується на основі GATT. GATT — це протокол передачі атрибутів. Його можна розглядати як протокол прикладного рівня для передачі атрибутів.

Його структура дуже проста:   

Ви можете зрозуміти це як xml:

Кожна ГАТТ складається зі Служб, які виконують різні функції;

Кожна послуга складається з різних характеристик;

Кожна характеристика складається зі значення та одного або кількох дескрипторів;

Service і Characteristic еквівалентні тегам (Service еквівалентно своїй категорії, а Characteristic еквівалентно своїй назві), тоді як значення фактично містить дані, а Descriptor є поясненням і описом цього значення. Звичайно, ми можемо описувати і описувати його з різних сторін. Опис, тому може бути кілька дескрипторів.

Наприклад: звичайний браслет 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 є винятковими.

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