Разработка BLE: что такое ГАТТ и как оно работает?

Содержание

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

Для осуществления разработки, связанной с BLE, нам необходимы определенные базовые знания, конечно, они должны быть очень простыми.

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

Первое, что нужно понять, это то, что различие между этими двумя ролями находится на аппаратном уровне, и это относительные понятия, которые появляются парами:

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

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

Фактически, на самом фундаментальном уровне должно быть разграничение разных ролей в процессе установления связи. Мы знаем, что если устройство Bluetooth хочет сообщить другим о своем существовании, ему необходимо постоянно передавать информацию во внешний мир, в то время как другой стороне необходимо сканировать широковещательный пакет и отвечать на него, чтобы можно было установить соединение. В этом процессе за трансляцию отвечает Периферийное устройство, а за сканирование отвечает Центральное устройство.

Примечание о процессе соединения между ними:

Центральное устройство может одновременно подключаться к нескольким периферийным устройствам. Как только периферийное устройство будет подключено, оно немедленно прекратит вещание и продолжит вещание после отключения. Только одно устройство может попытаться подключиться в любой момент, ставя соединения в очередь.

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

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

Его структура очень проста:   

Вы можете понять это как XML:

Каждое ГАТТ состоит из Служб, выполняющих различные функции;

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

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

Сервис и Характеристика эквивалентны тегам (Услуга эквивалентна своей категории, а Характеристика эквивалентна своему названию), тогда как значение фактически содержит данные, а Дескриптор является пояснением и описанием этого значения. Конечно, мы можем описывать и описывать это с разных сторон. Описание, поэтому дескрипторов может быть несколько.

Например: Обычный Xiaomi Mi Band — это устройство BLE, (предположительно) оно содержит три службы: службу, предоставляющую информацию об устройстве, службу, предоставляющую шаги, и службу, определяющую частоту сердечных сокращений;

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

ГАТТ К/С

Имея предварительное представление о ГАТТ, мы знаем, что ГАТТ — это типичный режим C/S. Поскольку это C/S, нам необходимо различать Сервер и клиент.

«Сервер GATT» и «клиент GATT». Этап существования этих двух ролей наступает после установления связи, и они различаются в зависимости от статуса диалога. Легко понять, что сторона, хранящая данные, называется сервером ГАТТ, а сторона, имеющая доступ к данным, называется клиентом ГАТТ.

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

Для иллюстрации возьмем пример мобильного телефона и часов. Прежде чем соединение между мобильным телефоном и мобильным телефоном будет установлено, мы используем функцию поиска Bluetooth мобильного телефона для поиска устройства Bluetooth часов. Во время этого процесса очевидно, что часы транслируют BLE, чтобы другие устройства знали о его существовании. , это роль периферийного устройства в этом процессе, а мобильный телефон отвечает за задачу сканирования и, естественно, играет роль центра; после того, как двое установят соединение GATT, когда мобильному телефону необходимо прочитать данные датчиков, такие как количество шагов, с часов, два интерактивных данных сохраняются в часах, поэтому в это время часы играют роль GATT. сервер, а мобильный телефон, естественно, является клиентом ГАТТ; и когда часы хотят прочитать SMS-вызовы и другую информацию с мобильного телефона, хранителем данных становится мобильный телефон, поэтому мобильный телефон в это время является сервером, а часы — клиентом.

Сервис/Характеристика

У нас уже было перцептивное понимание их выше, а затем у нас есть некоторая практическая информация:

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

Наверх