Bluetooth HFP обход потока аудио

В этой статье описывается операция и теория профиля Bluetooth без рук (HFP) обхода потоковой передачи звука.

В режиме обхода путь управления звуком Bluetooth проходит через аппаратное подключение, отличное от интерфейса хост-контроллера (HCI), например I2S, к контроллеру Bluetooth. Это другое аппаратное подключение часто I2S, но может быть любым интерфейсом, определенным ведущим контроллером Bluetooth. Это подключение называется "обходом" или "боковой полосой".

В то время как аудио ввод/вывод происходит через обходное подключение, синхронное подключение ориентированного (SCO) аудиопотока по-прежнему управляется через HCI. Windows 8 предоставляет драйвер профиля Bluetooth Hands-Free (HFP), чтобы упростить управление подключением SCO и другими аспектами профиля Hands-Free. Однако настраиваемый звуковой драйвер управляет вводом и выводом аудиоданных между Windows и обходным подключением.

Драйвер HFP и пользовательский драйвер управления для данных ввода-вывода звука имеют отдельные роли, требуя эффективного взаимодействия между ними. Эта связь обрабатывается набором операций ввода-вывода, передаваемым из пользовательского звукового драйвера драйверу Windows HFP.

Как правило, соединение обхода всегда присутствует. Служба Plug and Play (PnP) перечисляет оборудование, которое включает это подключение и загружает необходимый звуковой драйвер. Однако звуковая система может иметь или не иметь сопряжённые HFP-гарнитуры, а обходное подключение имеет смысл только в том случае, если по крайней мере одна HFP-гарнитура сопряжена.

Для каждого сопряженного устройства HFP драйвер Windows HFP регистрирует и активирует интерфейс устройства в классе интерфейса GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. Следующие условия применяются к устройствам HFP:

  • Когда Windows активирует драйвер HFP (обычно во время загрузки), драйвер HFP регистрирует и включает интерфейс для каждого парного устройства HFP.
  • Когда устройство HFP впервые сопряжено с работающей Windows, драйвер HFP регистрирует и включает интерфейс для устройства.
  • Если есть n спаренных устройств HFP, драйвер Windows HFP регистрирует n экземпляров интерфейса устройства.
  • При удалении подключенного устройства HFP драйвер Windows HFP отключает интерфейс устройства.
  • Если Windows останавливает драйвер HFP (обычно во время завершения работы или перезагрузки), драйвер HFP отключает интерфейс для каждого парного устройства HFP.
  • Звуковой драйвер должен обрабатывать несколько операций прибытия и удаления интерфейсов в любое время, а не только во время запуска или завершения работы.

Управление ресурсами I2S и SCO

В этом разделе рассматриваются предположения, сделанные в проектировании поддержки обходной потоковой передачи аудио через Bluetooth.

В настоящее время Windows предполагает, что существует только один контроллер узла Bluetooth. Кроме того, поддержка обхода Hands-Free Профиля (HFP) для синхронного соединения по схеме SCO предполагает наличие только одного обходного соединения, а любой канал, открытый через интерфейс драйвера устройства HFP, связан с этим единственным соединением.

Звуковые драйверы должны регулировать этот канал и единственное обходное подключение для одного потребителя по принципу «первым пришёл — первым обслужен». Самый простой способ достичь этого состоит в том, чтобы драйвер разрешал только одному из фильтров переводить свои выводы в состояние "ACQUIRE".

См. также

В следующих разделах содержатся дополнительные сведения о жизненном цикле подключения и некоторых функциях проектирования устройства HFP и его звукового драйвера: