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: