Audio Bluetooth de bajo consumo (LE)
En este artículo se proporciona información general sobre el audio Bluetooth LE introducido en Windows 11 versión 22H2 (KB5026446).
Introducción
Audio Bluetooth de bajo consumo (LE) permite la transmisión de audio unidifusión o multidifusión a dispositivos Bluetooth de bajo consumo (LE) a través de un transporte isócrono. A partir de la versión 5.3 de la especificación del núcleo Bluetooth, no hay ninguna interfaz de controlador de host (HCI) definida estándar para que las plataformas host envíen y reciban datos isocrónicos hacia y desde el controlador Bluetooth. En este documento se define la ruta de acceso de audio específica del proveedor de Windows Bluetooth (VSAP) para permitir que las plataformas usen soluciones específicas del proveedor para habilitar el streaming de audio Bluetooth LE. La interfaz de software de VSAP usa extensiones de clase de audio de Windows (ACX) y más propiedades de interfaz definidas en este documento.
Terminología y requisitos
Además de los términos definidos en esta tabla, este documento también hace referencia a los términos definidos por las extensiones de clase de audio de Windows.
Término | Definición |
---|---|
Audio LE | Short for Bluetooth LE Audio |
Audio clásico | Streaming de audio Bluetooth que usa el perfil de manos libres (HFP) y el perfil de distribución de audio avanzado (A2DP) |
Dispositivo de audio | Un único dispositivo Bluetooth LE Audio remoto o un conjunto de dispositivos Bluetooth LE Audio que componen un único punto de conexión de audio desde la perspectiva de Windows. |
BAP | El perfil de audio básico define cómo los dispositivos pueden distribuir y consumir audio mediante comunicaciones bluetooth de baja energía (LE). |
TMAP | El perfil de audio multimedia y telefonía especifica configuraciones interoperables de los perfiles y los servicios de audio de nivel inferior. |
ASCS | El servicio de control de secuencias de audio define una manera estándar para que los dispositivos Bluetooth LE Audio configuren y establezcan secuencias de audio de unidifusión. |
PACS | El Servicio de funcionalidades de audio publicado define una manera estándar de que los dispositivos Bluetooth LE Audio notifiquen sus funcionalidades de códec de audio compatibles. |
CIS | El transporte de transmisiones isocronosas conectadas se usa para enviar y recibir datos de audio de unidifusión entre dispositivos Bluetooth LE. |
BIS | El transporte de stream isocrónico de difusión se usa para transferencias de datos de audio sin conexión. |
ACX | Corto para extensiones de clase de audio, que es el modelo de controlador requerido por todos los controladores de audio para admitir el audio Bluetooth LE en Windows. |
Circuitos de streaming | Uno o varios objetos ACXCIRCUIT creados por la pila de controladores de audio específicos del proveedor para su ruta de acceso de streaming. |
Circuito de perfil | Objeto ACXCIRCUIT creado por la implementación del perfil de audio Bluetooth LE en Windows. Este ACXCIRCUIT actúa como circuito principal tal como se define en la especificación acX y no es un circuito de streaming. |
En este documento se supone que está familiarizado con los términos definidos anteriormente y los siguientes comandos de HCI definidos en la especificación Bluetooth Core 5.3:
- HCI_Read_Local_Supported_Codecs (v2)
- HCI_Read_Local_Supported_Codec_Capabilities
- HCI_LE_Set_CIG_Parameters
- HCI_LE_Create_CIS
- HCI_Configure_Data_Path
- HCI_LE_Setup_ISO_Data_Path
- HCI_LE_Remove_ISO_Data_Path
- HCI_LE_Remove_CIG
Bluetooth LE Audio VSAP requiere que los controladores de audio usen el marco ACX. La adopción de ACX para Bluetooth LE Audio proporciona varias ventajas, como:
- Admite el modelo de controlador de audio preferido para Windows en el futuro.
- Usa la compatibilidad nativa de ACX con soluciones de audio de varias pilas sin necesidad de un DDI dedicado entre controladores.
- No requiere controladores de audio IHV para retransmitir solicitudes del sistema de audio a la pila de Bluetooth. En su lugar, ACX puede enviar solicitudes directamente a la pila bluetooth a través del circuito de perfil.
Arquitectura
Definiciones
Los siguientes componentes están implicados en las diferentes variantes de arquitectura de VSAP.
Marco de Windows ACX
Este componente permite la compatibilidad con un punto de conexión de audio de varias pilas. Para Bluetooth LE Audio, los componentes de software que componen un punto de conexión de audio son la pila de controladores de audio específicos del proveedor y el perfil de audio Bluetooth LE de Windows.
Pila de controladores de audio específicos del proveedor
Este componente específico del proveedor es responsable de enviar y recibir datos de audio Bluetooth LE hacia y desde un controlador Bluetooth a través de una interfaz de audio definida por el proveedor. Constará como mínimo de un controlador de streaming ACX para administrar los datos de audio entrantes y salientes. Se pueden incluir más controladores ACX si son partes necesarias del punto de conexión de audio ACX de varios circuitos. Este componente también se conoce como controlador de streaming de ACX de IHV en este documento.
Perfil de audio de Bluetooth LE de Windows
Este componente contiene la implementación del perfil de audio básico (BAP), el perfil de control de volumen y el perfil de control de micrófono. Es responsable de crear el ACXCIRCUIT principal para cada dispositivo Bluetooth LE Audio o conjunto de dispositivos emparejados con Windows, notificar formatos de audio notificados por el dispositivo remoto y el controlador Bluetooth, y administra el estado de los canales y grupos isócronos.
Pila principal de Bluetooth de Windows
Este componente proporciona una interfaz para permitir que el perfil de audio Bluetooth LE de Windows consulte las funcionalidades de códec compatibles desde el controlador Bluetooth local y administre el estado de los canales y grupos isócronos.
Códec LC3
Este subcomponente es responsable de traducir entre audio LC3 comprimido y audio PCM. Admitirá tanto la codificación como las capacidades de descodificación y se pueden implementar en el software como parte de la pila del controlador de audio específico (VSAP) del proveedor, o en hardware como parte del DSP de audio o el controlador Bluetooth. El diagrama menciona LC3 por nombre, ya que es el códec estándar compatible con bluetooth SIG. Sin embargo, los códecs futuros y los códecs específicos del proveedor compatibles con Windows también se pueden incorporar a la arquitectura de forma similar.
Variantes de arquitectura
La arquitectura de VSAP de audio Bluetooth LE admite diferentes variantes para streaming.
- Streaming de audio Bluetooth LE de banda lateral sin descarga de audio
- Streaming de audio Bluetooth LE de banda lateral con descarga de audio
- Proveedor específico del streaming de audio Bluetooth LE de banda
En los diagramas siguientes, el sistema operativo proporciona los componentes sombreados y los componentes no sombreados.
Arquitectura de audio Bluetooth LE de banda lateral sin descarga de audio
Una arquitectura de banda lateral usa una interfaz de audio específica del proveedor para permitir que la pila del controlador de audio envíe y reciba datos de audio al controlador Bluetooth. Esta ruta de acceso de datos es independiente de la ruta de acceso de datos de HCI que se usa para otros datos bluetooth, como la señalización de mensajes entre el cliente de unidifusión y el servidor de unidifusión remota. En el diagrama siguiente se modela una arquitectura de banda lateral donde el códec LC3 se hospeda en el controlador Bluetooth. También es válido tener el códec LC3 hospedado como parte de la pila de controladores de audio específicos del proveedor para la codificación y descodificación de software. En ese caso, el audio que se envía al controlador Bluetooth se formatearía como fotogramas de audio LC3 en lugar de audio PCM.
En el diagrama siguiente se muestra una arquitectura de audio Bluetooth LE de banda lateral con un códec LC3 en el controlador Bluetooth.
En el diagrama siguiente se muestra una arquitectura de audio Bluetooth LE de banda lateral con un códec LC3 en la pila de controladores de audio.
Arquitectura de audio Bluetooth LE de banda lateral con descarga de audio
Una arquitectura de banda lateral con descarga de audio incluye un componente de hardware DSP de audio para proporcionar una solución de streaming de audio Bluetooth LE con ventajas de ahorro de energía. En los diagramas siguientes se muestra una posible arquitectura con el códec LC3 en el controlador Bluetooth y el códec del DSP de audio.
En el diagrama siguiente se muestra un audio Bluetooth LE de banda lateral con arquitectura de descarga de audio con un códec LC3 en el controlador Bluetooth.
En el diagrama siguiente se muestra un audio Bluetooth LE de banda lateral con arquitectura de descarga de audio con un códec LC3 en el DSP de audio.
Arquitectura específica del proveedor en la arquitectura de audio Bluetooth LE de banda
La arquitectura de banda de VSAP permite que una canalización personalizada envíe y reciba datos de audio Bluetooth LE de la pila de controladores de audio específicos del proveedor a la HCI del controlador Bluetooth. Esta arquitectura incluye un nuevo componente, el "Componente de combinación ISO de IHV". Este componente es responsable de administrar el control de flujo de los datos ISO. También compartirá el control de flujo de comandos de HCI con la pila de Windows Bluetooth Core si necesita enviar comandos HCI.
En el diagrama siguiente se muestra un proveedor específico de la arquitectura de audio Bluetooth LE de banda.
Diseño detallado
Requisitos de formato de audio
Duraciones de fotogramas de audio
Los perfiles de audio Bluetooth LE permiten a las implementaciones admitir el streaming de audio con duraciones de fotogramas de audio de 7,5 milisegundos o 10 milisegundos. Windows requiere los códecs proporcionados por los IHD para admitir ambas duraciones de fotogramas para garantizar la interoperabilidad con dispositivos accesorio Bluetooth LE Audio y la coexistencia de calidad con otros dispositivos Bluetooth LE conectados al sistema.
Definiciones del modo de procesamiento de señal
Bluetooth LE Audio admite una amplia gama de formatos de streaming para admitir diferentes escenarios de usuario. Las especificaciones BAP y TMAP definen formatos admitidos obligatorios para la certificación. Windows aplica modos de procesamiento de señal de audio para correlacionar el formato que se va a usar con el escenario que realiza el sistema. Los controladores de audio compatibles con Bluetooth LE Audio indicarán la compatibilidad con los modos y formatos de procesamiento de señal en la tabla siguiente. Además, Bluetooth LE Audio no admite el modo de procesamiento de señal sin procesar, por lo que los controladores de audio no anunciarán ningún formato compatible para este modo.
Representar modos de procesamiento de señal de audio de transmisión
Bluetooth LE Audio requiere que los formatos de audio de representación se declaren para los siguientes modos de procesamiento de señal:
- Valor predeterminado (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
- Este modo se usa para escenarios de representación unidireccional, como la reproducción de música, las notificaciones y el audio del juego de vídeo.
- Comunicaciones (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
- Este modo se usa para escenarios bidireccionales, como llamadas de voz.
Las tablas siguientes son listas de formatos para cada caso de uso y modo de procesamiento de señal. Los formatos de audio se ordenan de la mayoría de los preferidos a los menos preferidos.
Sonidos del sistema, reproducción de música y audio de videojuegos cuando se conecta a un dispositivo estéreo o conjunto coordinado de dispositivos
Modo de procesamiento de señal: valor predeterminado
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
48 kHz | 2 | 16 | 7.5 ms | 96 kbps | 48_3 |
48 kHz | 2 | 16 | 7.5 ms | 80 kbps | 48_1 |
48 kHz | 2 | 16 | 10 ms | 96 kbps | 48_4 |
48 kHz | 2 | 16 | 10 ms | 80 kbps | 48_2 |
24 KHz | 2 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 2 | 16 | 10 ms | 48 kbps | 24_2 |
Sonidos del sistema, reproducción de música y audio del juego de vídeo cuando está conectado a un único miembro de un conjunto coordinado (auriculares individuales o audífonos)
Modo de procesamiento de señal: valor predeterminado
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
48 kHz | 1 | 16 | 7.5 ms | 96 kbps | 48_3 |
48 kHz | 1 | 16 | 7.5 ms | 80 kbps | 48_1 |
48 kHz | 1 | 16 | 10 ms | 96 kbps | 48_4 |
48 kHz | 1 | 16 | 10 ms | 80 kbps | 48_2 |
24 KHz | 1 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 1 | 16 | 10 ms | 48 kbps | 24_2 |
16 KHz | 1 | 16 | 7.5 ms | 32 kbps | 16_1 |
16 KHz | 1 | 16 | 10 ms | 32 kbps | 16_2 |
Representación de la grabadora de voz, llamadas VOIP o audio del juego de vídeo con chat de voz
Modo de procesamiento de señal: Comunicaciones
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
32 kHz | 1 | 16 | 7.5 ms | 64 kbps | 32_1 |
32 kHz | 1 | 16 | 10 ms | 64 kbps | 32_2 |
24 KHz | 1 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 1 | 16 | 10 ms | 48 kbps | 24_2 |
16 KHz | 1 | 16 | 7.5 ms | 32 kbps | 16_1 |
16 KHz | 1 | 16 | 10 ms | 32 kbps | 16_2 |
Modos de procesamiento de señal de audio de secuencia de captura
Bluetooth LE Audio requiere que los formatos de audio de captura se declaren para el modo de procesamiento de señal predeterminado (AUDIO_SIGNALPROCESSINGMODE_DEFAULT). La lista de formatos de captura admitidos se encuentra en la tabla siguiente.
Los formatos de audio se ordenan de la mayoría de los preferidos a los menos preferidos.
Capturar grabadora de voz, llamadas VOIP o audio de videojuegos con chat de voz
Modo de procesamiento de señal: valor predeterminado
Frecuencia de muestreo | Recuento de canales | Profundidad de bits | Duración del fotograma | Velocidad de datos de audio | Id. de configuración del códec BAP (tabla 3.11 de la especificación BAP) |
---|---|---|---|---|---|
32 kHz | 1 | 16 | 7.5 ms | 64 kbps | 32_1 |
32 kHz | 1 | 16 | 10 ms | 64 kbps | 32_2 |
24 KHz | 1 | 16 | 7.5 ms | 48 kbps | 24_1 |
24 KHz | 1 | 16 | 10 ms | 48 kbps | 24_2 |
16 KHz | 1 | 16 | 7.5 ms | 32 kbps | 16_1 |
16 KHz | 1 | 16 | 10 ms | 32 kbps | 16_2 |
Configuraciones y topologías de flujo definidas
Configuraciones de solo representación
Configuración básica del perfil de audio 1
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias mono. El único dispositivo puede ser un dispositivo independiente o un único miembro conectado de un conjunto coordinado.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia | Render: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: Alta confiabilidad |
Llamada de voz sin micrófono en el dispositivo de audio | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Reproducción de videojuegos | Render: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Configuración básica del perfil de audio 4
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias estéreo. El dispositivo de audio es capaz de procesar dos canales de audio en un único CIS.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia | Representación: modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: Asignación de canales de audio de alta confiabilidad: front-left y front right |
Reproducción de videojuegos | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia Asignación de canal de audio: frontal izquierda y derecha |
Configuración básica del perfil de audio 6(i)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias estéreo. El dispositivo de audio solo es capaz de procesar un canal de audio en cada uno de los dos CIS.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: Alta confiabilidad |
Llamada de voz sin micrófono en el dispositivo de audio | Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia Asignación de canal de audio: frontal izquierda o derecha |
Reproducción de videojuegos | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia Asignación de canal de audio: frontal izquierda y derecha |
Configuración básica del perfil de audio 6(ii)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un conjunto coordinado de dispositivos de audio. El conjunto es capaz de procesar dos canales de audio con cada miembro que procesa un único canal.
Ejemplos de casos de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Reproducción de contenido multimedia | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: Alta confiabilidad |
Llamada de voz sin micrófono en ninguno de los dispositivos | Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Reproducción de videojuegos | Modo de procesamiento de señal: valor predeterminado Recuento de canales: 2 Captura: Ninguno |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: baja latencia |
Configuraciones bidireccionales
Las configuraciones bidireccionales se usan cuando el perfil de audio Bluetooth LE detecta que una aplicación pretende crear una captura y representar una secuencia en un dispositivo remoto o un conjunto de dispositivos. Dado que las aplicaciones controlan las secuencias de captura y representación por separado, los controladores de audio IHV y los controladores Bluetooth permitirán que el audio fluya a través de una sola dirección de un CIS bidireccional después de que se aprovisione mediante los comandos HCI Configurar ruta de acceso de datos y ruta de acceso de datos ISO de configuración de LE.
Configuración básica del perfil de audio 3
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio con una secuencia mono bidireccional establecida en un único CIS.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Reproducción de videojuegos con chat de voz | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 8(i)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias de representación estéreo y secuencias de captura mono. El dispositivo es capaz de procesar un canal de audio en un único CIS para una dirección determinada.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Reproducción de videojuegos con chat de voz | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 2 Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 8(ii)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un conjunto coordinado de dispositivos de audio. Cada miembro del conjunto recibe un canal de representación de audio. Un único miembro de conjunto tiene una secuencia de captura establecida. El miembro set con la secuencia de captura es el primer miembro establecido que se conecta al equipo que también admite secuencias de captura.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 1 Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Reproducción de videojuegos con chat de voz | Render: Modo de procesamiento de señal: Comunicaciones Recuento de canales: 2 Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuraciones de solo captura
Configuración básica del perfil de audio 2
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite secuencias de captura mono.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Llamada de voz sin altavoz en el dispositivo | Representación: Ninguno Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 1 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 9(i)
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un único dispositivo de audio que admite el envío de datos de audio estéreo. El dispositivo es capaz de codificar un canal de audio en un único CIS.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Captura de micrófono multicanal | Representación: Ninguno Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Configuración básica del perfil de audio 9(ii)
El equipo está conectado a un único dispositivo de audio que admite secuencias de captura mono.
La siguiente configuración de audio se define en la tabla 4.1 de la especificación de Bluetooth BAP.
El equipo está conectado a un conjunto de dispositivos de audio. Cada miembro del conjunto envía un canal de audio al equipo.
Caso de uso | Configuración de audio de Windows | Configuración del controlador Bluetooth |
---|---|---|
Captura de micrófono multicanal | Representación: Ninguno Captura: Modo de procesamiento de señal: valor predeterminado Recuento de canales: 1 |
Recuento de CIS: 2 Recuento de CIG: 1 Configuración de QoS de BAP: latencia baja |
Si el dispositivo remoto o el conjunto de dispositivos admite audio bidireccional, las configuraciones de una secuencia de captura solo son las mismas que las configuraciones bidireccionales. Esto permite realizar transiciones de solo escenarios de captura a escenarios bidireccionales sin necesidad de volver a crear las secuencias.
Estructuras de datos
Propiedades de la interfaz de audio Bluetooth LE definidas por Microsoft
Propiedades de creación de flujos
Las siguientes propiedades se comparten entre la pila de controladores de audio específicos del proveedor y el perfil de audio Bluetooth LE a través de los DDIs acXOBJECTBAG para informar a las decisiones sobre la creación y configuración del punto de conexión de flujo, como se muestra en el escenario de creación de secuencias.
BluetoothLEAudio_CodecCapabilities
El controlador de audio establece esta propiedad para indicar la compatibilidad con las funcionalidades de streaming de audio compatibles con el controlador de audio o el DSP de audio. El valor de la propiedad se establece con el DDI AcxObjectBagAddBlob y el formato del valor es el mismo que un registro PAC que se define en la especificación PACS.
El perfil de audio de Bluetooth LE de Windows lee la propiedad para determinar las posibles configuraciones de códec y composición del flujo que se va a usar.
Campo | Octeto |
---|---|
Recuento de funcionalidades | 0 |
Códec ID[i] | 1-6 |
Longitud de funcionalidades específicas del códec[i] | 7 |
Funcionalidades específicas del códec | 8... n |
Longitud de metadatos (m) | n + 1 |
Metadatos | n+2... m |
Los valores de campo se definen en las tablas 3.2 y 3.4 de la especificación PACS.
Bluetooth_DatapathID
El controlador de audio establece esta propiedad para indicar el identificador de ruta de acceso de datos usado como parámetro para los comandos HCI_LE_Setup_ISO_Data_Path y HCI_Configure_Data_Path. El valor de la propiedad se establece mediante la DDI AcxObjectBagAddUI8.
El perfil de audio Bluetooth LE lee y usa esta propiedad es como parámetro en HCI_Configure_Data_Path y comandos HCI_LE_Setup_ISO_Data_Path. Este identificador se aplica a todas las secuencias isócrónicas creadas para el ACXSTREAM asociado al contenedor de objetos.
Campo | Octeto |
---|---|
Identificador de ruta de acceso de datos | 0 |
Si el controlador de audio no establece la propiedad, el sistema operativo usa el valor 1 como parámetro para los comandos de HCI.
Bluetooth_DatapathConfiguration
El controlador de audio establece esta propiedad para proporcionar configuraciones específicas del proveedor al controlador Bluetooth a través del comando HCI_Configure_Data_Path. No será mayor que 255 bytes, que es la carga más grande que acepta un controlador Bluetooth para un comando HCI. El valor de la propiedad se establece mediante acxObjectBagAddBlob DDI. Esta configuración se aplica para todo el identificador de ruta de acceso de datos establecido por el controlador de audio.
BluetoothLEAudio_CodecConfiguration
Esta propiedad se establecerá mediante el perfil de audio Bluetooth LE mediante el DDI AcxObjectBagAddBlob después de configurar la configuración del códec con un dispositivo de audio. La estructura del valor es:
Campo | Octeto |
---|---|
Recuento de configuraciones | 0 |
Formato de codificación[i] | 3 |
Id. de empresa[i] | 1-2 |
Id. de códec específico del proveedor[i] | 3-4 |
Longitud de configuración específica del códec[i] | 5 |
Configuración específica del códec[i] | 6... n |
Los valores de campo se definen en la tabla 4.3 de la especificación del servicio de control de secuencias de audio Bluetooth.
La pila de controladores de audio específica del proveedor debe leer esta propiedad si el códec LC3 está en el controlador de streaming acX o en el DSP de audio.
Interfaces
Identificadores de enlace de plantilla de punto de conexión de audio
Usado por la fábrica de circuitos ACX del controlador de audio para saber cuándo se crea un circuito ACX para un dispositivo Bluetooth emparejado.
Los siguientes identificadores de componente se usan para crear circuitos de audio Bluetooth LE:
// {5C52FDB5-722A-4AB7-A342-70163B7E9B5C}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_RENDER_COMPONENT_ID,
0x5c52fdb5, 0x722a, 0x4ab7, 0xa3, 0x42, 0x70, 0x16, 0x3b, 0x7e, 0x9b, 0x5c);
// {1DFF2EE3-AE89-441C-BDE3-24F885C55DF8}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_CAPTURE_COMPONENT_ID,
0x1dff2ee3, 0xae89, 0x441c, 0xbd, 0xe3, 0x24, 0xf8, 0x85, 0xc5, 0x5d, 0xf8);
Interfaz de compatibilidad con audio Bluetooth LE
Lo usa la pila de controladores de audio para indicar que está disponible para streaming de Audio BLUETOOTH LE. Reloj de nivel de servicio de Audio Bluetooth de Windows para esta interfaz y espere hasta que se publique antes de habilitar la compatibilidad con Bluetooth LE Audio.
Los siguientes identificadores de interfaz se usan para publicar la interfaz de compatibilidad con audio Bluetooth LE:
// {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE,
0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);
Secuencias
Inicialización del controlador de audio
Cuando el controlador acX streaming de IHV se carga y determina que admite el streaming de audio Bluetooth LE, mostrará compatibilidad con la tecnología mediante la creación de un objeto ACXFACTORYCIRCUIT y el registro de enlaces de plantilla Bluetooth con ACX mediante los identificadores definidos en identificadores de enlace de plantilla de punto de conexión de audio.
Creación de puntos de conexión
- Cuando un dispositivo de audio LE está emparejado con el sistema, el perfil de audio bluetooth LE:
- Lee las funcionalidades de audio publicadas del dispositivo remoto.
- Detecta las funcionalidades compatibles con el controlador enviando los comandos HCI_Read_Local_Support_Codecs [v2] y HCI_Read_Local_Supported_Codec_Capabilities.
- Crea un ACXCIRCUIT con los formatos admitidos establecidos en función de las funcionalidades de códec compatibles con el controlador Bluetooth y el dispositivo de audio remoto. Si el controlador no admite ningún códec porque la compatibilidad con códecs está en el controlador de audio DSP o audio, los formatos admitidos se establecen en los formatos admitidos por el dispositivo de audio remoto.
- Una vez creado el ACXCIRCUIT , ACX solicita al generador de circuitos ACX del controlador de streaming ACX de IHV que cree un ACXCIRCUIT para el procesamiento de flujos.
- Cuando se recibe una solicitud para crear un circuito, el controlador de streaming ACX de IHV:
- Crea objetos ACXCIRCUIT, ACXPIN, ACXOBJECTBAG y ACXSTREAMBRIDGE .
- Si el códec específico lc3 o proveedor se hospeda en el controlador de audio o DSP, el controlador de streaming ACX de IHV establece la propiedad BluetoothLEAudio_CodecCapabilities en acXOBJECTBAG.
- El controlador de streaming de ACX de IHV puede establecer Bluetooth_DatapathID o Bluetooth_DatapathConfiguration en ACXOBJECTBAG si se conoce en este momento.
- Una vez creados ambos circuitos, ACX invoca la devolución de llamada EvtAcxPinConnected en el pin de puente del controlador ACX de IHV.
- Cuando se invoca la devolución de llamada EvtAcxPinConnected , se invoca el controlador de streaming ACX de IHV:
- Recupera el pin de puente del circuito de perfil con AcxTarget... API para recuperar los formatos admitidos por el circuito de perfil.
- Recorre en iteración la lista de ACXDATAFORMATestablecidos por el circuito de perfil. Si el códec de audio Bluetooth se hospeda en el controlador de audio o DSP de audio, el controlador de audio IHV actualiza sus ACXDATAFORMATcon los formatos compatibles con el códec y el circuito de perfil. De lo contrario, todos los formatos se copian en el pin host del controlador de streaming acX de IHV.
- Establece la lista de formatos actualizada en el pin de puente si se crea un motor de audio para la descarga de streaming.
- Una vez actualizados los formatos, ACX habilita ambas interfaces y se crea un punto de conexión de audio.
Creación de flujos
- Cuando una aplicación solicita crear una secuencia de audio, ACX invoca las devoluciones de llamada EvtCircuitCreateStream registradas para cada circuito, empezando por el controlador de streaming ACX de IHV.
- Cuando se invoca su devolución de llamada EvtCircuitCreateStream , el controlador de streaming ACX de IHV:
- Establece o actualiza las propiedades Bluetooth_DatapathId y Bluetooth_DataPathConfiguration en el ACXOBJECTBAG asociado a ACXSTREAMBRIDGE.
- Crea un ACXSTREAM con devoluciones de llamada establecidas para transiciones de estado de flujo y procesamiento de flujos RT
- Crea un elemento de motor de audio en la secuencia si la canalización de audio admite la descarga de streaming.
- Agrega ACXSTREAM a su puente de flujo. Esto invoca la devolución de llamada EvtCircuitCreateStream del perfil de audio Bluetooth LE.
- Cuando se invoca su devolución de llamada EvtAcxCircuitCreateStream , el perfil de audio Bluetooth LE:
- Guarda las propiedades localmente del ACXOBJECTBAG establecido por el controlador de streaming ACX de IHV para futuras devoluciones de llamada de transición de flujo.
- Si el punto de conexión de audio es para la transmisión por unidifusión del perfil de audio Bluetooth LE:
- Realiza la operación de códec de configuración tal como se define en la especificación BAP. Los parámetros de la operación se derivan del ACXDATAFORMAT especificado en la devolución de llamada EvtAcxCircuitCreateStream y los demás parámetros de flujo de ACXOBJECTBAG o las funcionalidades de códec compatibles con el controlador Bluetooth.
- Establece la propiedad BluetoothLEAudio_CodecConfiguration en ACXOBJECTBAG con el valor usado para configurar los dispositivos de audio remoto.
- Si el controlador de streaming acX de IHV necesita actualizar su identificador de ruta de acceso de datos o la configuración de ruta de acceso de datos en función de los valores del contenedor de objetos establecidos por el perfil, puede invocar las operaciones de conjunto de KSPROPERTY para actualizar el valor almacenado por el circuito de perfil.
- Crea un ACXSTREAM con devoluciones de llamada establecidas para transiciones de estado de flujo.
Transiciones de estado de transmisión
ACX decide el orden del circuito de las transiciones de estado de flujo en función del flujo de audio y si el estado está pasando a un estado más activo o menos activo.
- Para Representar secuencias que van desde un estado menos activo a un estado más activo, el circuito de perfil recibe primero el evento, seguido del circuito de streaming.
- Para Representar secuencias que van de un estado más activo a un estado menos activo, el circuito de streaming recibe primero el evento, seguido del circuito de perfil.
- En El caso de las secuencias de captura que van de un estado menos activo a un estado más activo, el circuito de streaming recibe primero el evento, seguido del circuito de perfil.
- En El caso de las secuencias de captura que van de un estado más activo a un estado menos activo, el circuito de perfil con recibe primero el evento, seguido del circuito de streaming.
Preparación de la secuencia
Cuando se invoca su devolución de llamada EvtAcxStreamPrepareHardware , el perfil de audio Bluetooth LE:
- Asigna recursos para un flujo de unidifusión por:
- Configurar un CIG con el comando HCI_LE_Set_CIG_Parameters.
- Enviar la operación de configuración de ASCS QoS para sincronizar la configuración con el dispositivo remoto.
Cuando se invoca su devolución de llamada EvtAcxStreamPrepareHardware , el controlador de streaming ACX de IHV asigna los recursos de streaming necesarios e inicializa la canalización de audio para que esté en estado adquirido.
Iniciar secuencia
Cuando se invoca su devolución de llamada EvtAcxStreamRun , el perfil de audio Bluetooth LE:
- Aplica cualquier configuración de ruta de acceso de datos establecida por el controlador de streaming ACX en el procedimiento de creación de flujos mediante el comando HCI_Configure_Data_Path.
- Comienza el procedimiento de inicio de la secuencia por:
- Realización del procedimiento Enable del flujo de unidifusión BAP para un flujo de unidifusión:
- Envío de la operación Habilitar a los puntos de conexión remotos.
- Crear CISes si aún no se han creado con el comando HCI_LE_Create_CIS.
- Realización del procedimiento Enable del flujo de unidifusión BAP para un flujo de unidifusión:
- Si la ruta de acceso de datos aún no está configurada, el perfil de audio Bluetooth LE:
- Establece las rutas de acceso de datos ISO mediante el comando HCI_LE_Setup_ISO_Data_Path
- Si el controlador de streaming ACX de IHV establece la propiedad BluetoothLEAudio_CodecCapabilities , el valor del campo Codec_ID de HCI_LE_Setup_ISO_Data_Path se establecerá en transparente (0x3) tal como se define en los números asignados por Bluetooth. De lo contrario, el valor será el mismo que el id. de códec usado en la operación de códec de configuración en el procedimiento de creación de flujos.
- Establece las rutas de acceso de datos ISO mediante el comando HCI_LE_Setup_ISO_Data_Path
- Si la secuencia de audio es una secuencia de captura de unidifusión, el perfil de audio Bluetooth LE realiza la operación de inicio listo del receptor BAP.
Cuando se invoca su devolución de llamada EvtAcxStreamRun , el controlador de streaming ACX de IHV comienza a procesar los datos de audio entrantes desde el sistema de audio de Windows (render) o el controlador Bluetooth (captura).
Pausar secuencia
Cuando se invoca su devolución de llamada EvtAcxStreamPause , el perfil de audio Bluetooth LE:
- Realiza el procedimiento de deshabilitación del flujo de unidifusión BAP.
- Quita la ruta de acceso de datos ISO mediante el comando HCI_LE_Remove_ISO_Data_Path.
- Realiza el procedimiento listo para detener el receptor ASCS si la secuencia de audio es una secuencia de captura de unidifusión.
Cuando se invoca su devolución de llamada EvtAcxStreamPause , el controlador de streaming ACX de IHV pausa su canalización de procesamiento de audio.
Secuencia de versión
Cuando se invoca su devolución de llamada EvtAcxStreamReleaseHardware , el perfil de audio bluetooth LE realiza el procedimiento de liberación de secuencia de unidifusión BAP mediante:
- Envío de la operación de liberación de ASCS al dispositivo de audio Bluetooth LE remoto
- Desconectar el CIS si no lo usa otra secuencia activa.
- Quitar el CIG si todos los CISes están desconectados.
Cuando se invoca su devolución de llamada EvtAcxStreamReleaseHardware , el controlador de streaming ACX de IHV libera sus recursos de canalización de audio.
Desconexión de puntos de conexión
El perfil de audio Bluetooth LE de Windows actualiza el estado de conexión de un punto de conexión si el dispositivo de unidifusión remota no tiene una conexión LE-ACL al equipo o informa a través de sus contextos de audio disponibles PACS que no están disponibles para streaming. Cuando el punto de conexión está desconectado, el servicio de audio de Windows invalida las secuencias activas al punto de conexión. Esto da lugar a que se produzcan las secuencias de pausa y versión de la secuencia.
Eliminación de puntos de conexión
Se quita un punto de conexión Bluetooth LE Audio del sistema cuando se destruye el circuito de perfil o el circuito de streaming. El circuito de perfil se puede quitar cuando se quita el emparejamiento del dispositivo de unidifusión remota de Windows o la radio Bluetooth está deshabilitada.
- Cuando el perfil de audio Bluetooth LE de Windows quita su circuito, ACX deshabilita sus interfaces de punto de conexión para indicar al servicio de audio de Windows que se debe quitar el punto de conexión.
- Cuando las interfaces están deshabilitadas, el servicio de audio de Windows invalida las secuencias activas al punto de conexión bluetooth LE Audio, esta operación da como resultado la pausa de la secuencia y libera las devoluciones de llamada que se invocarán en el circuito de streaming.
- Para completar la eliminación del punto de conexión, ACX invalida el circuito del controlador de streaming acX de IHV, lo que da como resultado la invocación de la devolución de llamada de limpieza del circuito.
- Cuando se invoca su devolución de llamada de limpieza, el controlador de streaming ACX de IHV libera su circuito.
Volumen y silenciación
El circuito de streaming ACX de IHV solo debe incluir elementos de volumen y silenciar si el controlador de streaming requiere un motor de audio. Al usar un motor de audio, las marcas de configuración deben establecerse como tales:
ACX_AUDIOENGINE_CONFIG audioEngineCfg;
ACX_AUDIOENGINE_CONFIG_INIT(&audioEngineCfg);
…
audioEngineCfg.Flags |= AcxAudioEngineConfigVolumeSecondary; // Use this control only if endpoint doesn't have one.
audioEngineCfg.MuteElement = muteElement;
audioEngineCfg.Flags |= AcxAudioEngineConfigMuteSecondary; // Use this control only if endpoint doesn't have one.
audioEngineCfg.PeakMeterElement = peakmeterElement;
audioEngineCfg.Flags |= AcxAudioEngineConfigPeakMeterSecondary; // Use this control only if endpoint doesn't have one.
Esto es necesario para permitir que los puntos de conexión de Bluetooth LE Audio usen los perfiles de control de micrófono y volumen definidos por Bluetooth SIG para los cambios de volumen y silenciar los puntos de conexión de audio de unidifusión.
Si el dispositivo remoto Bluetooth LE Audio no admite los servicios de control de volumen o micrófono, o el punto de conexión se crea para el audio de difusión, el volumen y silenciar los elementos del motor de audio servirán como reserva para controlar las solicitudes de cambio del sistema de audio. El sistema de audio de Windows controla los cambios en el volumen y silenciar. Si no hay ningún motor de audio y el dispositivo remoto no admite el volumen, ni los servicios de micrófono o el punto de conexión de audio es para el audio de difusión.
Coexistencia de bluetooth LE y audio clásico
Windows se asegurará de que solo el audio clásico o el audio LE esté activo para un dispositivo de audio Bluetooth emparejado que admita ambas tecnologías. Si el audio LE está activo, los DDIs de banda lateral para A2DP y HFP para el dispositivo remoto están deshabilitados y el circuito de perfil se crea para el punto de conexión de audio LE. Si el audio clásico está activo, los DDIs de banda lateral para A2DP y HFP para el dispositivo remoto están habilitados y el circuito de perfil no se crea para el punto de conexión de audio LE.
Administración de energía
Bluetooth LE Audio no tiene ningún requisito de administración de energía ni fluye fuera de lo que ya está definido por WDF.
Temas relacionados
- Extensiones de clase de audio de ACX
- Especificación de perfil de audio básico de Bluetooth
- Especificación de Bluetooth Core 5.3
- Especificación del servicio Funcionalidades de audio publicadas por Bluetooth
- Especificación del servicio de control de secuencias de audio Bluetooth
- Números asignados por Bluetooth
- Directrices de omisión de Bluetooth HFP para controladores de audio
- Bluetooth HFP omite el streaming de audio