Bluetooth® Special Interest Group (SIG) [1] и [2] определяет протокольный стек для технологий Bluetooth с низкой энергией (BLE) и Bluetooth с основной скоростью/улучшенной скоростью передачи данных (BR/EDR). Фундаментальными целями этих спецификаций является разработка интерактивных сервисов и приложений по совместимым протоколам радиосвязи и компонентов данных.
Этот рисунок показывает архитектуру стека Bluetooth.
Устройства Bluetooth могут быть одним из следующих двух типов:
Одиночный режим - Поддерживает профиль BR/EDR или LE
Двойной режим - Поддерживает профили BR/EDR и LE
В последующих разделах приведены подробные сведения об архитектуре стека протоколов BLE и стека протоколов Bluetooth BR/EDR.
Этот рисунок сравнивает стек протокола BLE с образцом модели Open System Interconnection (OSI).
На предыдущем рисунке стек протокола BLE показан вместе с образцом модели OSI.
В физическом слое (PHY) есть взаимно-однозначное отображение
Уровень канала передачи данных OSI (DLL) преобразуется в протокол управления и адаптации логического канала BLE (L2CAP) и уровень канала (LL)
В стеке BLE более высокие слои обеспечивают услуги уровня приложений, роли и режимы устройств, управление соединениями и протокол безопасности
Функциональность стека протоколов BLE разделена между тремя основными слоями: Контроллер, Хост, и Профили приложений и службы.
Слой контроллера включает в себя BLE PHY, LL и интерфейс главного контроллера (HCI) на стороне контроллера.
BLE PHY. Радиоинтерфейс BLE PHY работает на той же нелицензированной частоте 2,4 ГГц Industrial, Scientific и Medical (ISM), полосе как Wi-Fi®. Беспроводной интерфейс BLE PHY также включает следующие характеристики:
Рабочая радиочастота (RF) находится в области значений от 2,4000 ГГц до 2,4835 ГГц включительно.
Пропускная способность канала составляет 2 МГц. Рабочая полоса разделена на 40 каналов, k = 0,..., 39. Центральная частота k-го канала составляет 2402 + k × 2 МГц.
Пакеты пользовательских данных передаются с использованием каналов в области значений [0, 36].
Рекламные пакеты данных передаются по каналам 37, 38 и 39.
Реализована схема модуляции Гауссовой манипуляции частотой (GFSK).
BLE PHY использует частотно-скачкообразный расширенный спектр (FHSS), чтобы уменьшить помехи и противостоять влиянию затухающих каналов. Время между скачками частоты может варьироваться от 7,5 мс до 4 с и устанавливается во время соединения для каждого ведомого устройства.
Поддержка пропускной способности 1 Мбит/с обязательна для устройств, совместимых со спецификацией версии 4.x. При скорости передачи данных 1 Мбит/с передача не кодируется.
Опционально устройства, совместимые со спецификацией Bluetooth Core версии 5.1, поддерживают следующие дополнительные скорости передачи данных:
Закодированная передача со скоростью 500 кбит/с или 125 кбит/с
Некодированная передача со скоростью передачи 2 Мбит/с
LL. LL выполняет задачи, подобные слою управления доступом к среде (MAC) модели OSI. В Bluetooth LL-интерфейсах непосредственно с BLE PHY и управляет состоянием ссылки радиосвязи, чтобы определить роль устройства как ведущего, ведомого, рекламодателя или сканера.
HCI на стороне контроллера. Интерфейс HCI на стороне контроллера обрабатывает интерфейс между хостом и контроллером. HCI задает набор команд и событий для передачи и приема пакетных данных. При приеме пакетов от контроллера HCI извлекает необработанные данные в контроллере, чтобы отправить в хост.
Хост включает HCI на стороне хоста, L2CAP, протокол атрибутов (ATT), профиль типовых атрибутов (GATT), протокол менеджера безопасности (SMP) и профиль типового доступа (GAP).
HCI на стороне хоста. HCI на стороне хоста обрабатывает интерфейс между хостом и контроллером. HCI задает набор команд и событий для передачи и приема пакетных данных. При передаче данных HCI преобразует необработанные данные в пакеты, чтобы отправить их от хоста к контроллеру.
L2CAP. Этот L2CAP инкапсулирует данные из более высоких слоев BLE в стандартный формат пакета BLE для передачи или извлекает данные из стандартного пакета LL BLE при приеме в соответствии с строением ссылки, заданной на уровнях ATT и SMP.
ATT. ATT передает атрибутные данные между клиентами и серверами в профилях на основе GATT. ATT определяет роли архитектуры клиент-сервер. Роли обычно соответствуют ведущему элементу и подчиненному элементу, как определено на слое ссылки. В целом устройство может быть клиентом, сервером или обоими, независимо от того, является ли оно ведущим или ведомым устройством. ATT также выполняет организацию данных в атрибуты, как показано на этом рисунке.
Атрибуты устройства представлены как:
Указатель атрибута является 16-битным значением идентификатора, назначенным сервером, чтобы позволить клиенту ссылаться на эти атрибуты.
Тип атрибута является универсально уникальным идентификатором (UUID), заданным Bluetooth SIG. Для примера UUID- 0x2A37 представляет собой измерение сердечного ритма.
Значение атрибута является полем переменной длины. UUID, сопоставленный с сервисной записью и с классом услуги, содержащим значение атрибута, определяет длину поля значения атрибута.
Разрешения атрибутов - это наборы значений разрешений, сопоставленных с каждым атрибутом. Эти разрешения задают права на чтение и запись для атрибута и уровень безопасности, необходимый для разрешения на чтение и запись.
ГАТТ. GATT предоставляет ссылку среды для всех профилей на основе GATT. GATT инкапсулирует ATT и отвечает за координацию обмена профилями в ссылке BLE. Профили включают информацию и данные, такие как назначение указателя, UUID и набор разрешений.
Для устройств, которые реализуют профиль GATT,
Это client - устройство, которое инициирует команды и запросы к серверу. Клиент может получать ответы, указания и уведомления.
Этот server является устройством, которое принимает входящие команды и запросы от клиента. Сервер отправляет клиенту ответы, указания и уведомления.
GATT использует архитектуру клиент-сервер. Роли не фиксированы и определяются, когда устройство инициирует определенную процедуру. Роли освобождаются после завершения процедуры.
Терминология, используемая в ГАТТ, включает:
Service - набор данных и связанное с ними поведение, используемый для выполнения конкретной функции или функции
Characteristic - значение, используемое в службе вместе с соответствующими разрешениями
Characteristic descriptor - Описание связанного поведения характеристики
GATT-Client - GATT-клиент инициирует команды и запросы к серверу и может получать ответы, указания и уведомления, отправляемые сервером
GATT-Server - Сервер GATT принимает входящие команды и запросы от клиента и отправляет ответы, показания и уведомления клиенту
SMP. SMP применяет алгоритмы безопасности для шифрования и расшифровки пакетов данных. Этот слой определяет инициатор и ответчик, соответствующий ведущему и ведомому устройствам, после установления соединения.
GAP. GAP задает роли, режимы и процедуры устройства. Он также управляет установлением соединения и безопасностью. GAP взаимодействует непосредственно с слоем Application Profiles and Services (App).
App слоя является прямым пользовательским интерфейсом, определяющим профили, которые обеспечивают совместимость между различными приложениями. Спецификация ядра Bluetooth позволяет поставщикам определять собственные профили для вариантов использования, не определенных профилями SIG.
Примечание
Для получения дополнительной информации об архитектуре стека протоколов BLE см. 3 томов, часть C, разделы 2 и 2,1 спецификации ядра Bluetooth [1].
Этот рисунок сравнивает блок схему стека протоколов Bluetooth BR/EDR и с образцом модели OSI.
Ниже показано отображение стека BR/EDR к образцу модели OSI:
Слои BR/EDR Radio и Baseband и Link Control стека Bluetooth BR/EDR сопоставлены с уровнем OSI PHY.
Протокол Ссылки Manager (LMP), L2CAP, протокол замены кабеля (RFCOMM) и слои PPP стека Bluetooth BR/EDR сопоставлены с уровнем ссылки данных OSI.
Пользовательский протокол дейтаграммы (UDP), протокол управления передачей (TCP) и слои интернет-протокола (IP) стека Bluetooth BR/EDR сопоставляются с комбинированным, сетевым, транспортным и сеансовым слоями образца модели OSI.
На прикладное взаимно-однозначное отображение есть слой.
Протоколы ядра Bluetooth и радио Bluetooth требуются большинству устройств Bluetooth. Основные протоколы включают эти слои.
Радио BR/EDR. Радио BR/EDR является самым низким заданным слоем спецификации Bluetooth. Режим BR является обязательным, в то время как режим EDR является необязательным. Этот слой определяет требования к устройству приемопередатчика Bluetooth, работающему в полосе частот ISM 2,4 ГГц. Он реализует метод FHSS 1600 скачков/сек. Радио переходит псевдослучайным способом на 79 назначенных каналах Bluetooth. Каждый канал Bluetooth имеет полосу пропускания 1 МГц. Каждая частота расположена на (2402 + k) МГц, где k = 0,1,... 78. Метод модуляции для режима BR и EDR является GFSK и дифференциальной манипуляции фазы сдвига (DPSK), соответственно. Скорость передачи данных 1 Msymbols/s. Радио Bluetooth BR/EDR использует топологию временного деления (TDD), в которой передача данных происходит в одном направлении за один раз. Коробка передач чередуется в двух направлениях, один за другим.
Управление основной полосой и ссылкой. Слой управления основной полосой и ссылкой активизирует ссылку PHY RF между различными устройствами Bluetooth, формируя пикосеть. Основной диапазон обрабатывает обработку канала и синхронизацию, а управление ссылкой - управление доступом к каналу. Этот слой предоставляет эти два различных типа ссылок PHY RF с их соответствующими пакетами основной полосы:
Синхронное соединение-ориентированное (SCO) - поддерживает аудио трафик в реальном времени
Asynchronous connection-oriented (ACL) - Поддерживает передачу пакета данных
Протокол диспетчера каналов (LMP). LMP- слоя отвечает в первую очередь за ссылку настройки и ссылки строения между различными устройствами Bluetooth. Эти процессы включают в себя установление функций безопасности, таких как аутентификация и шифрование путем генерации, обмена и проверки ссылок и ключей шифрования. Кроме того, этот слой управляет режимами степени и коэффициентами заполнения устройства радиосвязи Bluetooth и состояниями соединения модуля Bluetooth в пикосети.
L2CAP. Этот L2CAP адаптирует протоколы более высокого уровня по основной полосе частот. Он защищает протоколы более высокого уровня от деталей протоколов нижнего уровня. Этот L2CAP предоставляет услуги, ориентированные на соединение и не поддерживающие соединение, протоколам более высокого уровня. Это включает возможность мультиплексирования протоколов, операции сегментации и повторной сборки и групповые абстракции.
SDP. Сервисы Discovery являются важным аспектом среды Bluetooth. Протокол обнаружения услуг (SDP) предоставляет средства для приложений для запроса услуг и характеристик услуг, после чего может быть установлено соединение между двумя или более устройствами Bluetooth. SDP сильно отличается от обнаружения услуг в традиционных сетевых окружениях. SDP построен на верхнюю часть из L2CAP.
Протокол замены кабеля в стеке Bluetooth BR/EDR использует RFCOMM для обеспечения эмуляции последовательных портов по L2CAP. RFCOMM эмулирует сигналы управления и данные RS-232 основной полосе частот Bluetooth и предоставляет транспортные возможности для услуг более высокого уровня, которые используют последовательный интерфейс в качестве транспортного механизма. RFCOMM также обеспечивает несколько одновременных подключений к одному устройству и позволяет подключать к нескольким устройствам.
Спецификация протокола управления телефонией, двоичный (TCS binary), определяет сигнализацию управления вызовом, чтобы установить данные и речевые вызовы между устройствами Bluetooth. Он построен на верхнюю часть из L2CAP. Кроме того, двоичный код TCS определяет процедуры управления мобильностью для обработки устройств Bluetooth.
В сложение к основным протоколам стек Bluetooth BR/EDR включает протоколы, принятые от других стандартных органов. Эти принятые протоколы определены в спецификациях, выпущенных другими стандартными организациями, и включены в среду Bluetooth.
ППС. Протокол «точка-точка» (PPP) является стандартным протоколом Internet Engineering Task Force (IETF) [3] для транспортировки IP-датаграмм по ссылке «точка-точка». PPP проходит через RFCOMM, чтобы реализовать соединения «точка-точка».
TCP, UDP и IP. Эти слои являются базовыми протоколами IETF набора протоколов TCP/IP.
TCP - Этот протокол обеспечивает надежное виртуальное соединение между устройствами для реализации передачи данных. TCP обрабатывает данные как поток байтов и передает их без каких-либо ошибок или дублирования.
UDP - Этот протокол является альтернативой TCP и обеспечивает ненадежное подключение датаграмм между устройствами. Поскольку сквозное соединение в UDP отсутствует, данные передаются по каналам без каких-либо гарантий обслуживания.
IP - Этот слой является протоколом слоя сети, который включает услугу дейтаграмм между устройствами, поддерживая как TCP, так и UDP.
Использование TCP, UDP и IP в стеке Bluetooth BR/EDR позволяет общаться с любым другим устройством, подключенным к Интернету.
OBEX. Протокол обмена объектами (OBEX) является протоколом уровня сеанса, разработанным Ассоциацией инфракрасных данных (IrDA) для обмена объектами. Протокол OBEX обеспечивает функциональность, аналогичную HTTP, но более простым способом. HTTP является протоколом прикладного слоя и расположен выше TCP/IP. Протокол OBEX предоставляет клиенту надежный транспорт для подключения к серверу. Он также предоставляет модель для представления объектов и операций.
WAE и WAP. Bluetooth BR/EDR стек включает в свою архитектуру окружение беспроводных приложений (WAE) и протокол беспроводных приложений (WAP). Преимущества использования функций WAE/WAP в стеке Bluetooth:
Создайте шлюзы приложений, которые выступают в качестве интерфейса между серверами WAP и некоторыми другими приложениями на ПК
Обеспечивает такие функции, как удаленное управление и выборка данных с ПК на трубку Bluetooth
Повторно используйте верхние программные обеспечения, разработанные для приложения WAP окружения
Дополнительные сведения см. в разделе «Слой APP».
Альтернативный менеджер MAC/PHY (AMP) является вторичным контроллером в базовой системе Bluetooth. После установления L2CAP соединения между двумя устройствами по радио BR/EDR, менеджер AMP может обнаружить AMP, которые доступны на другом устройстве. Если AMP является общим для двух устройств, центральная система Bluetooth предоставляет механизмы для перемещения трафика данных от контроллера BR/EDR к контроллеру AMP.
Каждый менеджер AMP состоит из слоя адаптации протокола (PAL) поверх MAC и PHY. PAL сопоставляет протоколы Bluetooth с конкретными протоколами базовых MAC и PHY.
L2CAP каналы могут быть созданы на AMP или перемещены в нее. Если физическая ссылка AMP имеет тайм-аут контроля ссылки, L2CAP каналы могут быть перемещены назад на радио BR/EDR. Чтобы минимизировать потребление степени в устройстве, AMP активируются или отключаются по мере необходимости.
HCI обеспечивает интерфейс команды для радио BR/EDR, контроллера основной полосы частот и менеджера ссылки. Это единый стандартный интерфейс для доступа к возможностям основной полосы Bluetooth, состоянию оборудования и регистрам управления.
Примечание
Для получения дополнительной информации об архитектуре стека протоколов Bluetooth BR/EDR см. том 1, Часть A, разделы 2 и 2.1 Спецификации ядра Bluetooth [1].
[1] Группа специальных интересов Bluetooth (SIG). Bluetooth Core Спецификации. Версия 5.1. https://www.bluetooth.com/.
[2] Веб-сайт Bluetooth Technology. Bluetooth Technology Website | Официальный сайт Bluetooth Technology. Доступ к 6 ноября 2019 года. https://www.bluetooth.com/.
[3] IETF. «Стандарты Интернета». Доступ к 6 ноября 2019 года. https://www.ietf.org/.
[4] Bluetooth Стек - обзор | ScienceDirect Topics. Доступ к 15 ноября 2019 года. https://www.sciencedirect.com/.