Compartilhar via


Bluetooth HFP bypass streaming de áudio

Este artigo explica a operação e a teoria do streaming de áudio de bypass de hfp (perfil sem mãos) bluetooth.

No modo de bypass, o caminho de controle de áudio Bluetooth flui por meio de uma conexão de hardware diferente da HCI (interface do controlador de host), como i2S, para o controlador Bluetooth. Essa outra conexão de hardware geralmente é I2S, mas pode ser qualquer interface determinada pelo controlador de host Bluetooth. Essa conexão é conhecida como uma conexão "bypass" ou "sideband".

Embora a E/S de áudio ocorra por meio da conexão de bypass, o fluxo de áudio SCO (orientado para conexão síncrona) over-the-air ainda é gerenciado por meio do HCI. Windows 8 fornece um driver HFP (Perfil de Hands-Free Bluetooth) para simplificar o gerenciamento da conexão SCO e outros aspectos do perfil de Hands-Free. No entanto, um driver de áudio personalizado controla a E/S de dados de áudio entre o Windows e a conexão de bypass.

O driver HFP e o driver de controle personalizado para dados de E/S de áudio têm funções separadas, exigindo uma comunicação eficiente entre eles. Essa comunicação é tratada por um conjunto de IOCTLs passados do driver de áudio personalizado para o driver HFP do Windows.

Normalmente, a conexão de bypass está sempre presente. O serviço PnP (Plug and Play) enumera o hardware que inclui essa conexão e carrega o driver de áudio necessário. No entanto, o sistema de áudio pode ou não ter nenhum fone de ouvido HFP emparelhado e a conexão de bypass só será útil se pelo menos um fone de ouvido HFP estiver emparelhado.

Para cada dispositivo HFP emparelhado, o driver HFP do Windows registra e habilita uma interface de dispositivo na classe de interface GUID_DEVINTERFACE_BLUETOOTH_HFP_SCO_HCIBYPASS. As seguintes condições se aplicam a dispositivos HFP:

  • Quando o Windows ativa o driver HFP (geralmente durante a inicialização), o driver HFP registra e habilita uma interface para cada dispositivo HFP emparelhado.
  • Quando um dispositivo HFP é emparelhado pela primeira vez com o Windows já em execução, o driver HFP registra e habilita uma interface para o dispositivo.
  • Se houver n dispositivos HFP emparelhados, o driver HFP do Windows registrará n instâncias da interface do dispositivo.
  • Quando um dispositivo HFP emparelhado é removido, o driver HFP do Windows desabilita a interface do dispositivo.
  • Quando o Windows interrompe o driver HFP (geralmente durante o desligamento ou reinicialização), o driver HFP desabilita a interface para cada dispositivo HFP emparelhado.
  • O driver de áudio deve lidar com várias chegadas e remoções de interfaces a qualquer momento, não apenas durante a inicialização ou desligamento.

Gerenciando recursos I2S e SCO

Esta seção discute as suposições feitas no design do suporte de streaming de áudio de bypass bluetooth.

Atualmente, o Windows pressupõe que há apenas um controlador de host Bluetooth. Além disso, o suporte de bypass orientado à conexão síncrona (HFP) do perfil de Hands-Free (SCO) pressupõe que há apenas uma conexão de bypass, e qualquer canal aberto por meio da interface do driver de dispositivo HFP está associado a essa conexão única.

Os drivers de áudio devem arbitrar esse canal e a conexão de bypass único para um único consumidor por 1 a 0. A maneira mais simples de conseguir isso é que o driver permita que apenas um único filtro faça a transição de seus pinos para o estado ACQUIRE.

Confira também

Os tópicos a seguir fornecem mais informações sobre o ciclo de vida da conexão e alguns recursos de design de um dispositivo HFP e seu driver de áudio: