Compartilhar via


Streaming de áudio de bypass HFP por bluetooth

Este artigo explica a operação e a teoria do perfil viva-voz Bluetooth (HFP) que ignora o streaming de áudio.

No modo de bypass, o caminho de controle de áudio Bluetooth flui através de uma conexão de hardware alternativa à interface HCI (interface do controlador de host), como I2S, até 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 por conexão síncrona) transmitido pelo ar ainda é gerenciado por meio do HCI. O Windows 8 fornece um driver HFP (Perfil de Hands-Free Bluetooth) para simplificar o gerenciamento da conexão SCO e outros aspectos do perfil 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. O processo de comunicação é gerenciado 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 Plug and Play (PnP) 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 do 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 de I2S e SCO

Esta seção discute as suposições feitas no design do suporte para transmissão de áudio bypass em Bluetooth.

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

Os drivers de áudio devem arbitrar este canal e a única conexão de bypass para um único consumidor, seguindo o critério "primeiro a chegar, primeiro a ser atendido". A maneira mais simples de fazer isso é que o driver permita que apenas um único filtro faça a transição de seus pinos para o estado ACQUIRE.

Consulte 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: