Bluetooth: Архитектура — Host Controller Interface (HCI) — Bluetooth и все, что с ним связано

Bluetooth: Архитектура — Host Controller Interface (HCI)


Общее описание
HCI представляет собой командный интерфейс контроллера Baseband и менеджера связи, а так же предоставляет доступ к параметрам конфигурации устройства Bluetooth . Этот интерфейс предоставляет единообразный способ доступа к параметрам Baseband.

Нижние программные уровни стека Bluetooth

Хост – устройство, к которому подключен модуль Bluetooth.
На рисунке изображен обзор нижних программных уровней. Аппаратное ПО (микропрограмма) HCI преобразует команды интерфейса контроллера хоста в команды для физического оборудования Bluetooth (для Baseband и менеджера связей), а так же управляет статусными регистрами, регистрами управления и регистрами событий.
Между драйвером HCI и аппаратным ПО HCI могут существовать несколько слоев. Эти промежуточные слои не контролируют данные, передаваемые транспортным уровнем хост контроллера.
Драйвер HCI осуществляет обмен данными и командами с аппаратным ПО HCI. Для обеспечения передачи этих данных служит драйвер транспортного уровня хост контроллера (драйвер физической шины).
Хост получает асинхронные уведомления о событиях HCI независимо от того, как используется транспортный уровень. Когда хост обнаруживает, что произошло событие, он анализирует пакеты полученных событий для того, чтобы определить, какое событие произошло.

Транспортный уровень контроллера хоста
Стек драйверов хоста имеет транспортный уровень между драйвером контроллера хоста и хостом. Транспортный уровень прозрачен для передачи данных. Драйвер контроллера хоста, являющийся интерфейсом к контроллеру, должен быть независимым от способа передачи данных. К способу передачи данных не должны предъявляться требования знания данных, передаваемых драйвером контроллера самому контроллеру. Это позволяет изменять интерфейс (HCI) или контроллер, не влияя на транспортный уровень.

Обзор команд и событий HCI

Общие события — события могут возникать от команд или других событий, возникающий в любое время.
Установка устройства — команды используются для переключения контроллера в определенное состояние.
Контроллер управления потоком — эти команды совместно с событиями используются для управления потоком от хоста к контроллеру.
Информация контроллера — эти команды позволяют хосту обнаруживать локальную информацию об устройстве.
Конфигурация контроллера — эти команды совместно с событиями позволяют настраивать общие конфигурационные параметры.
Обнаружение устройств эти команды совместно с событиями позволяют устройству обнаруживать другие устройства.
Установка соединения — эти команды совместно с событиями позволяют устройству подключаться к другому устройству.
Информация о другом устройстве — эти команды совместно с событиями позволяют обнаруживать информацию о других устройствах.
Синхронные соединения — эти команды совместно с событиями позволяют создавать синхронные соединения.
Состояние соединения — эти команды совместно с событиями позволяют настраивать связь, преимущественно для операций, уменьшающих энергопотребление.
Структура сети Piconet — эти команды совместно с событиями позволяют обнаруживать и настраивать сеть Piconet.
Качество обслуживания — эти команды совместно с событиями позволяют настраивать параметры качества обслуживания.
Физические связи — эти команды совместно с событиями позволяют настраивать физическую связь.
Управление потоком хоста — эти команды совместно с событиями позволяют использовать управление потоком данных совместно с хостом.
Информация о связи — эти команды совместно с событиями позволяют читать информацию о связи.
Аутентификация и шифрование — эти команды совместно с событиями позволяют аутентифицировать другое устройство и зашифровать связь с ним.
Тестирование — эти команды совместно с событиями позволяют переводить устройство в тестовый режим.

Управление потоком HCI

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

Управление потоком от контроллера к хосту
В некоторых реализациях может быть необходимым управление потоком в направлении от контроллера к хосту. Данный набор команд может использоваться для включения или отключения управления потоком в данном направлении.

Ссылка на оригинал.

Have any Question or Comment?

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Май 2021
Пн Вт Ср Чт Пт Сб Вс
 12
3456789
10111213141516
17181920212223
24252627282930
31