Bagikan melalui


Bluetooth Low Energy (LE) Audio

Artikel ini memberikan gambaran umum tentang Bluetooth LE Audio yang diperkenalkan di Windows 11 versi 22H2 (KB5026446).

Pendahuluan

Bluetooth LE Audio memungkinkan streaming unicast atau menyiarkan audio secara broadcast ke perangkat Bluetooth LE melalui transport isokron. Pada versi 5.3 dari spesifikasi inti Bluetooth, belum ada antarmuka pengontrol host standar yang ditetapkan untuk platform host dalam mengirim dan menerima data isochronous ke dan dari pengontrol Bluetooth. Dokumen ini mendefinisikan jalur audio khusus vendor Windows Bluetooth (VSAP) untuk memungkinkan platform menggunakan solusi khusus vendor untuk mengaktifkan streaming Bluetooth LE Audio. Antarmuka perangkat lunak VSAP menggunakan ekstensi kelas audio Windows (ACX) dan lebih banyak properti antarmuka yang ditentukan dalam dokumen ini.

Terminologi dan prasyarat

Selain istilah yang ditentukan dalam tabel ini, dokumen ini juga mereferensikan istilah yang ditentukan oleh ekstensi kelas audio Windows.

Istilah Definisi
Audio LE Kependekan dari Bluetooth LE Audio
Audio klasik Streaming audio Bluetooth yang menggunakan profil hands-free (HFP) dan profil distribusi audio tingkat lanjut (A2DP)
Perangkat Audio Satu perangkat Bluetooth LE Audio jarak jauh atau set perangkat Bluetooth LE Audio yang bersama-sama menyusun satu titik akhir audio dari perspektif Windows.
BAP Profil Audio Dasar menentukan bagaimana perangkat dapat mendistribusikan dan mengonsumsi audio menggunakan komunikasi Bluetooth Low Energy (LE).
TMAP Profil Audio Telepon dan Media menentukan konfigurasi yang dapat dioperasikan dari layanan dan profil audio tingkat bawah.
ASCS Layanan Kontrol Aliran Audio mendefinisikan cara standar bagi perangkat Audio LE Bluetooth untuk mengonfigurasi dan membuat aliran audio unicast.
PACS Layanan Kemampuan Audio yang Diterbitkan mendefinisikan cara standar bagi perangkat Audio LE Bluetooth untuk melaporkan kemampuan codec audio yang didukung.
CIS Transportasi Connected Isochronous Streams digunakan untuk mengirim dan menerima data audio unicast antara perangkat Bluetooth LE.
BIS Transportasi Streaming Isochronous Siaran digunakan untuk transfer data audio tanpa koneksi.
ACX Kependekan dari ekstensi kelas audio, yang merupakan model driver yang diperlukan oleh semua driver audio untuk mendukung Bluetooth LE Audio di Windows.
Sirkuit streaming Satu atau beberapa objek ACXCIRCUIT yang dibuat oleh Vendor Specific Audio Driver Stack untuk jalur streamingnya.
Sirkuit profil Objek ACXCIRCUIT yang dibuat oleh implementasi profil Bluetooth LE Audio di Windows. ACXCIRCUIT ini berfungsi sebagai sirkuit kepala seperti yang didefinisikan dalam spesifikasi ACX dan bukan sirkuit streaming.

Dokumen ini mengasumsikan keakraban dengan istilah yang ditentukan sebelumnya dan perintah HCI berikut yang ditentukan dalam spesifikasi 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 memerlukan driver audio untuk menggunakan kerangka kerja ACX. Mengadopsi ACX untuk Bluetooth LE Audio memberikan beberapa keuntungan, seperti:

  • Mendukung model driver audio pilihan untuk Windows ke depannya.
  • Menggunakan dukungan asli ACX untuk solusi audio multi-stack tanpa memerlukan DDI khusus antara driver.
  • Tidak memerlukan driver audio IHV untuk meneruskan permintaan dari sistem audio ke lapisan Bluetooth. Sebagai gantinya, ACX dapat mengirim permintaan langsung ke tumpukan Bluetooth melalui sirkuit profil.

Arsitektur

Definisi

Komponen berikut terlibat dalam varian arsitektur VSAP yang berbeda.

Kerangka kerja ACX Windows

Komponen ini memungkinkan dukungan untuk ujung audio multi-lapisan. Untuk Bluetooth LE Audio, komponen perangkat lunak yang menyusun titik akhir audio adalah tumpukan driver audio spesifik vendor dan profil Windows Bluetooth LE Audio.

Rangkaian driver audio khusus untuk vendor

Komponen khusus vendor ini bertanggung jawab untuk mengirim dan menerima data Audio LE Bluetooth ke dan dari pengontrol Bluetooth melalui antarmuka audio yang ditentukan vendor. Ini harus terdiri dari driver streaming ACX minimum untuk mengelola data audio masuk dan keluar. Driver ACX tambahan dapat disertakan jika mereka diperlukan sebagai bagian dari titik akhir audio ACX dengan multi sirkuit. Komponen ini juga disebut sebagai Driver Streaming IHV ACX dalam dokumen ini.

Profil Windows Bluetooth LE Audio

Komponen ini berisi implementasi Profil Audio Dasar (BAP), Profil Kontrol Volume, dan Profil Kontrol Mikrofon. Ini bertanggung jawab untuk menciptakan kontrol ACXCIRCUIT untuk setiap perangkat Bluetooth LE Audio atau satu set perangkat yang terhubung ke Windows, melaporkan format audio yang dilaporkan oleh perangkat jarak jauh dan pengontrol Bluetooth, serta mengelola status saluran dan kelompok isochronous.

Lapisan inti Bluetooth Windows

Komponen ini menyediakan antarmuka sehingga Profil Audio LE Bluetooth Windows dapat mengkueri kemampuan codec yang didukung dari pengontrol Bluetooth lokal dan mengelola status saluran dan grup isokronous.

Codec LC3

Subkomponen ini bertanggung jawab untuk menerjemahkan antara audio LC3 terkompresi dan audio PCM. Ini akan mendukung kemampuan pengodean dan dekode dan dapat diimplementasikan baik dalam perangkat lunak sebagai bagian dari tumpukan driver audio spesifik vendor (VSAP), atau dalam perangkat keras sebagai bagian dari DSP audio atau Pengontrol Bluetooth. Diagram ini menyebutkan LC3 berdasarkan nama karena ini adalah codec standar yang didukung oleh Bluetooth SIG. Namun, codec di masa mendatang dan codec khusus vendor yang didukung oleh Windows juga dapat dimasukkan ke dalam arsitektur dengan cara yang sama.

Varian Arsitektur

Arsitektur BLUETOOTH LE Audio VSAP mendukung varian yang berbeda untuk streaming.

  1. Streaming Audio Sideband Bluetooth LE tanpa pemindahan audio
  2. Streaming Audio LE Bluetooth Sideband dengan offload audio
  3. Streaming Audio LE Bluetooth inband spesifik vendor

Dalam diagram berikut, komponen yang diarsir disediakan oleh IHV dan komponen yang tidak diarsir disediakan oleh OS.

Arsitektur Audio Bluetooth LE Sideband tanpa pemindahan beban audio

Arsitektur sideband menggunakan antarmuka audio khusus vendor untuk memungkinkan tumpukan driver audio mengirim dan menerima data audio ke pengontrol Bluetooth. Jalur data ini terpisah dari jalur data HCI yang digunakan untuk data Bluetooth lainnya, seperti pesan sinyal antara klien unicast dan server unicast jarak jauh. Diagram berikut memodelkan arsitektur sideband di mana codec LC3 dihosting oleh pengontrol Bluetooth. Ini juga valid untuk memiliki codec LC3 yang dihosting sebagai bagian dari Vendor Specific Audio Driver Stack untuk pengodean dan decoding perangkat lunak. Dalam hal ini, audio yang dikirim ke pengontrol Bluetooth akan diformat sebagai bingkai audio LC3 alih-alih audio PCM.

Diagram berikut menunjukkan arsitektur Bluetooth Audio LE sideband dengan codec LC3 pada pengontrol Bluetooth.

Diagram arsitektur Bluetooth LE Audio sideband dengan codec LC3 yang terletak di pengontrol Bluetooth.

Diagram berikut menunjukkan arsitektur Bluetooth LE Audio Sideband dengan codec LC3 pada tumpukan driver audio.

Diagram arsitektur Sideband Bluetooth LE Audio dengan codec LC3 yang terletak di tumpukan driver audio.

Arsitektur Audio Bluetooth Low Energy (LE) Sideband dengan offload audio

Arsitektur sideband dengan offload audio mencakup komponen perangkat keras DSP audio untuk memberikan solusi streaming Bluetooth LE Audio dengan manfaat hemat daya. Diagram berikut menunjukkan arsitektur yang mungkin dengan codec LC3 di pengontrol Bluetooth dan codec di DSP audio.

Diagram berikut menunjukkan sideband Bluetooth LE Audio dengan arsitektur pemindahan beban audio menggunakan codec LC3 pada pengontrol Bluetooth.

Diagram Sideband Bluetooth LE Audio dengan arsitektur offload audio, menampilkan codec LC3 di pengontrol Bluetooth.

Diagram berikut menunjukkan Audio LE Bluetooth sideband dengan arsitektur offload audio dengan codec LC3 di DSP audio.

Diagram Sideband Bluetooth LE Audio dengan arsitektur offload audio, menampilkan codec LC3 di DSP audio.

Arsitektur Audio LE Bluetooth inband spesifik vendor

Arsitektur inband VSAP memungkinkan alur kustom untuk mengirim dan menerima data Bluetooth LE Audio dari tumpukan driver audio khusus vendor ke HCI pengontrol Bluetooth. Arsitektur ini mencakup komponen baru, "Komponen Penggabungan ISO IHV." Komponen ini bertanggung jawab untuk mengelola kontrol alur untuk data ISO. Ini juga akan berbagi kontrol alur perintah HCI dengan Windows Bluetooth Core Stack jika perlu mengirim perintah HCI.

Diagram berikut menunjukkan arsitektur LE Audio INBAND spesifik vendor inband Bluetooth.

Diagram arsitektur AUDIO LE Bluetooth inband khusus vendor.

Desain terperinci

Persyaratan format audio

Durasi bingkai audio

Profil Audio LE Bluetooth memungkinkan implementasi untuk mendukung streaming audio dengan durasi bingkai audio 7,5 milidetik atau 10 milidetik. Windows memerlukan codec yang disediakan oleh IHV untuk mendukung kedua durasi bingkai untuk memastikan interoperabilitas dengan perangkat aksesori Bluetooth LE Audio dan koeksistensi kualitas dengan perangkat BLUETOOTH LE lainnya yang terhubung ke sistem.

Definisi mode pemrosesan sinyal

Bluetooth LE Audio mendukung berbagai format streaming untuk mendukung skenario pengguna yang berbeda. Spesifikasi BAP dan TMAP menentukan format wajib yang didukung untuk sertifikasi. Windows menerapkan mode pemrosesan sinyal audio untuk menghubungkan format yang akan digunakan dengan skenario yang dilakukan oleh sistem. Driver audio yang mendukung Bluetooth LE Audio akan menunjukkan dukungan untuk mode dan format pemrosesan sinyal dalam tabel berikut. Selain itu, Bluetooth LE Audio tidak mendukung mode pemrosesan sinyal mentah, sehingga driver audio tidak boleh mengiklankan format yang didukung untuk mode ini.

Merender mode pemrosesan sinyal audio streaming

Bluetooth LE Audio mengharuskan format audio render dideklarasikan untuk mode pemrosesan sinyal berikut:

  • Default (AUDIO_SIGNALPROCESSINGMODE_DEFAULT)
    • Mode ini digunakan untuk skenario render searah, seperti pemutaran musik, pemberitahuan, dan audio video game.
  • Komunikasi (AUDIO_SIGNALPROCESSINGMODE_COMMUNICATIONS)
    • Mode ini digunakan untuk skenario dua arah, seperti panggilan suara.

Tabel berikut adalah daftar format untuk setiap kasus penggunaan dan mode pemrosesan sinyal. Format audio diurutkan dari yang paling disukai daripada yang paling tidak disukai.

Suara sistem, pemutaran musik, dan audio video game saat terhubung ke perangkat stereo atau set perangkat terkoordinasi

Mode pemrosesan sinyal: Default

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Laju Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi 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 milidetik 96 kbps 48_4
48 kHz 2 16 10 milidetik 80 kbps 48_2
24 kHz 2 16 7,5 ms 48 kbps 24_1
24 kHz 2 16 10 milidetik 48 kbps 24_2
Suara sistem, pemutaran musik, dan audio video game saat terhubung ke satu anggota set terkoordinasi (earbud tunggal atau alat bantu dengar)

Mode pemrosesan sinyal: Default

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Laju Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi 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 milidetik 96 kbps 48_4
48 kHz 1 16 10 milidetik 80 kbps 48_2
24 kHz 1 16 7,5 milidetik 48 kbps 24_1
24 kHz 1 16 10 milidetik 48 kbps 24_2
16 kHz 1 16 7,5 ms 32 kbps 16_1
16 kHz 1 16 10 milidetik 32 kbps 16_2
Merender perekam suara, panggilan VOIP, atau audio video game dengan obrolan suara

Mode pemrosesan sinyal: Komunikasi

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Kecepatan Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP)
32 kHz 1 16 7,5 milidetik 64 kbps 32_1
32 kHz 1 16 10 milidetik 64 kbps 32_2
24 kHz 1 16 7,5 ms 48 kbps 24_1
24 kHz 1 16 10 milidetik 48 kbps 24_2
16 kHz 1 16 7,5 ms 32 kbps 16_1
16 kHz 1 16 10 milidetik 32 kbps 16_2
Menangkap mode pemrosesan sinyal audio aliran

Bluetooth LE Audio mengharuskan format pengambilan audio untuk dideklarasikan dalam mode pemrosesan sinyal Default (AUDIO_SIGNALPROCESSINGMODE_DEFAULT). Daftar format pengambilan yang didukung ada dalam tabel berikut.

Format audio diurutkan dari yang paling disukai daripada yang paling tidak disukai.

Menangkap perekam suara, panggilan VOIP, atau audio video game dengan obrolan suara

Mode pemrosesan sinyal: Default

Frekuensi Pengambilan Sampel Jumlah Saluran Kedalaman Bit Durasi Bingkai Kecepatan Data Audio ID Konfigurasi Codec BAP (Tabel 3.11 dari Spesifikasi BAP)
32 kilohertz 1 16 7,5 ms 64 kbps 32_1
32 kHz 1 16 10 milidetik 64 kbps 32_2
24 kHz 1 16 7,5 ms 48 kbps 24_1
24 kHz 1 16 10 milidetik 48 kbps 24_2
16 kHz 1 16 7,5 ms 32 kbps 16_1
16 kHz 1 16 10 milidetik 32 kbps 16_2

Konfigurasi aliran dan topologi yang ditentukan

Konfigurasi khusus untuk render saja
Konfigurasi profil audio dasar 1

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 1.

PC terhubung ke satu perangkat audio yang mendukung aliran mono. Perangkat tunggal mungkin perangkat mandiri atau satu anggota yang terhubung dari set terkoordinasi.

Gunakan Contoh Kasus Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Render:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Rekaman: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Keandalan tinggi
Panggilan suara tanpa mikrofon pada perangkat audio Render:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Pemutaran video game Render:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Konfigurasi profil audio dasar 4

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 4.

PC terhubung ke satu perangkat audio yang mendukung aliran stereo. Perangkat audio mampu memproses dua saluran audio pada satu CIS.

Gunakan Contoh Kasus Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Render: Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Alokasi Saluran Audio Dengan Keandalan Tinggi: Kiri depan dan kanan depan
Pemutaran video game Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Alokasi Saluran Audio: Kiri depan dan kanan depan
Konfigurasi profil audio dasar 6(i)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 6 I.

PC terhubung ke satu perangkat audio yang mendukung aliran stereo. Perangkat audio hanya mampu memproses satu saluran audio di masing-masing dari dua CIS

Gunakan Contoh Kasus Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Keandalan tinggi
Panggilan suara tanpa mikrofon pada perangkat audio Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Alokasi Saluran Audio: Kiri depan atau kanan depan
Pemutaran video game Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Alokasi Saluran Audio: Kiri depan dan kanan depan
Konfigurasi profil audio dasar 6(ii)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 6 II.

PC terhubung ke sekumpulan perangkat audio terkoordinasi. Set ini mampu memproses dua saluran audio dengan setiap anggota memproses satu saluran.

Gunakan Contoh Kasus Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Pemutaran media Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Pengambilan: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Keandalan tinggi
Panggilan suara tanpa mikrofon di salah satu perangkat Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Pemutaran video game Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 2
Tangkap: Tidak ada
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan QoS BAP: Latensi rendah
Konfigurasi dua arah

Konfigurasi dua arah digunakan saat profil Audio LE Bluetooth mendeteksi bahwa aplikasi berniat untuk membuat tangkapan dan merender aliran ke perangkat jarak jauh atau sekumpulan perangkat. Karena aplikasi mengontrol pengambilan dan pemrosesan aliran secara terpisah, driver audio IHV dan pengontrol Bluetooth akan memungkinkan audio mengalir melalui satu arah dari CIS dua arah setelah disiapkan menggunakan perintah HCI "Configure Data Path" dan "LE Setup ISO Data Path".

Konfigurasi profil audio dasar 3

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 3.

PC terhubung ke satu perangkat audio dengan aliran mono dua arah yang dibuat pada satu CIS.

Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Pemutaran video game dengan obrolan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Konfigurasi profil audio dasar 8(i)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 8 I.

PC terhubung ke satu perangkat audio yang mendukung aliran render stereo dan aliran pengambilan mono. Perangkat ini mampu memproses satu saluran audio pada satu CIS untuk arah tertentu.

Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Pemutaran video game dengan obrolan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 2
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Konfigurasi profil audio dasar 8(ii)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 8 II.

PC terhubung ke sekumpulan perangkat audio terkoordinasi. Setiap anggota set menerima satu saluran audio render. Satu anggota set memiliki stream penangkapan yang sudah ditetapkan. Anggota set dengan aliran pengambilan adalah anggota set pertama yang terhubung ke PC yang juga mendukung aliran pengambilan.

Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara Render:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 1
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Pemutaran video game dengan obrolan suara Membuat:
Mode Pemrosesan Sinyal: Komunikasi
Jumlah Saluran: 2
Tangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Konfigurasi khusus pengambilan
Konfigurasi profil audio dasar 2

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 2.

PC terhubung ke satu perangkat audio yang mendukung aliran pengambilan mono.

Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Panggilan suara tanpa speaker di perangkat Render: Tidak ada
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 1
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Konfigurasi profil audio dasar 9(i)

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram yang mengilustrasikan konfigurasi profil audio dasar 9 I.

PC terhubung ke satu perangkat audio yang mendukung pengiriman data audio stereo. Perangkat ini mampu mengodekan satu saluran audio pada satu CIS.

Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Rekaman mikrofon multi saluran Render: Tidak ada
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah
Konfigurasi profil audio dasar 9(ii)

PC terhubung ke satu perangkat audio yang mendukung aliran pengambilan mono.

Konfigurasi audio berikut didefinisikan dalam tabel 4.1 dari spesifikasi BAP Bluetooth

Diagram memperlihatkan konfigurasi profil audio dasar 9(ii) dengan PC yang tersambung ke satu perangkat audio.

PC terhubung ke satu set perangkat audio. Setiap anggota set mengirimkan satu saluran audio ke PC.

Kasus Penggunaan Pengaturan Windows Audio Pengaturan Pengontrol Bluetooth
Rekaman mikrofon multi saluran Render: Tidak ada
Menangkap:
Mode Pemrosesan Sinyal: Default
Jumlah Saluran: 1
Jumlah CIS: 2
Jumlah CIG: 1
Pengaturan BAP QoS: Latensi Rendah

Jika perangkat jarak jauh atau set perangkat mendukung audio dua arah, konfigurasi untuk aliran tangkapan saja sama dengan konfigurasi dua arah. Ini memungkinkan transisi dari hanya menangkap skenario ke skenario dua arah tanpa perlu membuat ulang aliran.

Struktur data

Microsoft menentukan properti antarmuka Bluetooth LE Audio

Properti pembuatan stream

Properti berikut digunakan bersama oleh tumpukan driver audio spesifik vendor dan Profil Audio LE Bluetooth melalui ACXOBJECTBAGDDIs untuk memberikan informasi keputusan tentang pembuatan dan konfigurasi titik akhir aliran, sebagaimana ditunjukkan dalam skenario Pembuatan Aliran.

Kemampuan_Kodek_AudioBluetoothLE

Properti ini diatur oleh driver audio untuk menunjukkan dukungan untuk kemampuan streaming audio yang didukung di driver audio atau DSP audio. Nilai properti diatur menggunakan DDI AcxObjectBagAddBlob dan format nilainya sama dengan catatan PAC seperti yang didefinisikan dalam spesifikasi PACS.

Profil Windows Bluetooth LE Audio membaca properti untuk menentukan kemungkinan konfigurasi codec dan komposisi streaming yang akan digunakan.

Bidang Oktet
Jumlah Kapabilitas 0
ID Codec[i] 1-6
Panjang Kapabilitas Khusus Codec[i] 7
Kemampuan Khusus Codec 8... n
Panjang Metadata (m) n + 1
Metainformasi n+2... m

Nilai bidang ditentukan dalam tabel 3.2 dan 3.4 dari spesifikasi PACS.

Bluetooth_DatapathID

Properti ini diatur oleh driver audio untuk menunjukkan ID jalur data yang digunakan sebagai parameter untuk perintah HCI_LE_Setup_ISO_Data_Path dan HCI_Configure_Data_Path. Nilai properti diatur menggunakan AcxObjectBagAddUI8 DDI.

Profil Audio LE Bluetooth membaca dan menggunakan properti ini sebagai parameter dalam perintah HCI_Configure_Data_Path dan HCI_LE_Setup_ISO_Data_Path. ID ini diterapkan untuk semua aliran isochronous yang dibuat untuk ACXSTREAM yang terkait dengan kumpulan objek.

Bidang Oktet
ID jalur data 0

Jika properti tidak diatur oleh driver audio, maka OS menggunakan nilai 1 sebagai parameter untuk perintah HCI.

Bluetooth_DatapathConfiguration

Properti ini diatur oleh driver audio untuk menyediakan konfigurasi khusus vendor ke pengontrol Bluetooth melalui perintah HCI_Configure_Data_Path. Ini tidak boleh lebih besar dari 255 byte, yang merupakan payload terbesar yang diterima pengontrol Bluetooth untuk perintah HCI. Nilai properti diatur menggunakan AcxObjectBagAddBlob DDI. Konfigurasi ini diterapkan untuk semua ID jalur data yang ditetapkan oleh driver audio.

BluetoothLEAudio_CodecConfiguration

Properti ini harus diatur oleh profil Audio LE Bluetooth menggunakan DDI AcxObjectBagAddBlob setelah konfigurasi codec dikonfigurasi dengan perangkat audio. Struktur nilainya adalah:

Bidang Oktet
Jumlah Konfigurasi 0
Format Pengkodian[i] 3
ID Perusahaan[i] 1-2
ID Codec Spesifik Vendor[i] 3-4
Panjang Konfigurasi Tertentu Codec[i] 5
Konfigurasi Spesifik Codec[i] 6... n

Nilai bidang ditentukan dalam tabel 4.3 dari Spesifikasi Layanan Kontrol Aliran Audio Bluetooth.

Tumpukan driver audio khusus vendor harus membaca properti ini jika codec LC3 berada di driver streaming ACX atau DSP audio.

Antarmuka

ID pengikatan templat titik akhir audio

Digunakan oleh rangkaian ACX pada driver audio untuk mengetahui kapan sirkuit ACX dibuat untuk perangkat Bluetooth yang dipasangkan.

ID komponen berikut digunakan untuk membuat sirkuit Bluetooth LE Audio:

// {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);

Antarmuka dukungan Bluetooth LE Audio

Digunakan oleh tumpukan driver audio untuk menunjukkan bahwa itu tersedia untuk streaming Bluetooth LE Audio. Tonton tingkat layanan Windows Bluetooth Audio untuk antarmuka ini dan tunggu hingga diterbitkan sebelum mengaktifkan dukungan Bluetooth LE Audio.

ID antarmuka berikut digunakan untuk menerbitkan antarmuka dukungan Bluetooth LE Audio:

// {BA02FA1B-0FD0-4A0F-A748-4FAE2E2D2F67}
DEFINE_GUID(GUID_BLUETOOTH_LEAUDIO_SUPPORT_INTERFACE, 
0xba02fa1b, 0x0fd0, 0x4a0f, 0xa7, 0x48, 0x4f, 0xae, 0x2e, 0x2d, 0x2f, 0x67);

Urutan-urutan

Inisialisasi driver audio

Ketika driver IHV ACX Streaming memuat dan menentukan bahwa ia mendukung streaming Bluetooth LE Audio, ia akan menunjukkan dukungan untuk teknologi dengan membuat objek ACXFACTORYCIRCUIT dan mendaftar untuk pengikatan templat Bluetooth dengan ACX menggunakan ID yang ditentukan dalam ID Pengikatan Templat Titik Akhir Audio.

Diagram alur yang mengilustrasikan urutan inisialisasi driver Bluetooth LE Audio.

Pembuatan titik akhir

  1. Saat perangkat AUDIO LE dipasangkan dengan sistem, Profil Audio LE Bluetooth:
    1. Membaca kemampuan audio yang dipublikasikan oleh perangkat jarak jauh.
    2. Menemukan kemampuan yang didukung pengontrol dengan mengirim perintah HCI_Read_Local_Support_Codecs [v2] dan HCI_Read_Local_Supported_Codec_Capabilities.
    3. Membuat ACXCIRCUIT dengan format yang didukung yang ditetapkan berdasarkan kemampuan codec yang didukung oleh pengontrol Bluetooth dan perangkat audio jarak jauh. Jika pengontrol tidak mendukung codec apa pun karena dukungan codec ada di DSP audio atau driver audio, maka format yang didukung diatur ke format yang didukung oleh perangkat audio jarak jauh.
  2. Setelah ACXCIRCUIT dibuat, ACX meminta pabrik sirkuit ACX dari driver streaming IHV ACX untuk membuat ACXCIRCUIT guna pemrosesan aliran.
  3. Ketika permintaan untuk membuat sirkuit diterima, driver streaming IHV ACX:
    1. Membuat objek ACXCIRCUIT, ACXPIN, ACXOBJECTBAG, dan ACXSTREAMBRIDGE .
    2. Jika kodek LC3 atau kodek khusus vendor ditempatkan di driver audio atau DSP, maka driver streaming IHV ACX mengatur properti BluetoothLEAudio_CodecCapabilities pada ACXOBJECTBAG.
    3. Driver streaming IHV ACX dapat mengatur Bluetooth_DatapathID atau Bluetooth_DatapathConfiguration pada ACXOBJECTBAG jika diketahui saat ini.
  4. Setelah kedua sirkuit dibuat, ACX memanggil callback EvtAcxPinConnected pada pin jembatan driver ACX milik IHV.
  5. Ketika callback EvtAcxPinConnected dipanggil, driver streaming IHV ACX melakukan:
    1. Mengambil pin penghubung sirkuit profil menggunakan API AcxTarget... untuk memperoleh format yang didukung oleh sirkuit profil.
    2. Melakukan iterasi melalui daftar ACXDATAFORMATyang ditetapkan oleh sirkuit profil. Jika codec audio Bluetooth di-host oleh driver audio atau DSP audio, maka driver audio IHV akan memperbarui ACXDATAFORMAT dengan format-format yang didukung oleh codec dan sirkuit profil. Jika tidak, semua format disalin ke pin host untuk driver streaming IHV ACX.
    3. Mengatur daftar format diperbarui pada pin penghubung jika mesin audio dibuat untuk streaming offload.
  6. Setelah format diperbarui, ACX mengaktifkan kedua antarmuka, dan titik akhir audio dibuat.

Diagram alur yang menggambarkan proses pembuatan titik akhir Bluetooth LE Audio.

Pembuatan aliran

  1. Ketika aplikasi meminta untuk membuat aliran audio, ACX memanggil panggilan balik EvtCircuitCreateStream terdaftar untuk setiap sirkuit, dimulai dengan driver streaming IHV ACX.
  2. Ketika callback EvtCircuitCreateStream diaktifkan, driver streaming IHV ACX:
    1. Mengatur atau memperbarui properti Bluetooth_DatapathId dan Bluetooth_DataPathConfiguration pada ACXOBJECTBAG yang dilampirkan ke ACXSTREAMBRIDGE.
    2. Membuat ACXSTREAM dengan panggilan balik yang ditetapkan untuk transisi status aliran dan pemrosesan aliran RT
    3. Membuat elemen mesin audio pada aliran jika alur audio mendukung streaming offload.
    4. Menambahkan ACXSTREAM ke jembatan alirannya. Ini memanggil callback EvtCircuitCreateStream dari profil Bluetooth LE Audio.
  3. Ketika panggilan balik EvtAcxCircuitCreateStream dipanggil, profil Audio LE Bluetooth:
    1. Menyimpan properti secara lokal dari ACXOBJECTBAG yang ditetapkan oleh driver streaming IHV ACX untuk keperluan panggilan balik transisi aliran di masa mendatang.
    2. Jika titik akhir audio ditujukan untuk streaming unicast, maka profil Audio LE Bluetooth:
      1. Melakukan Operasi Kodek Konfigurasi seperti yang didefinisikan dalam spesifikasi BAP. Parameter untuk operasi berasal dari ACXDATAFORMAT yang ditentukan dalam callback EvtAcxCircuitCreateStream dan parameter stream lainnya di ACXOBJECTBAG atau kemampuan codec yang didukung oleh Pengontrol Bluetooth.
      2. Mengatur properti BluetoothLEAudio_CodecConfiguration pada ACXOBJECTBAG dengan nilai yang digunakan untuk mengonfigurasi perangkat audio jarak jauh.
  4. Jika driver streaming IHV ACX perlu memperbarui ID jalur data atau konfigurasi jalur data berdasarkan nilai tas objek yang ditetapkan oleh profil, maka dapat memanggil operasi set KSPROPERTY untuk memperbarui nilai yang disimpan oleh sirkuit profil.
    1. Membuat ACXSTREAM dengan panggilan balik yang ditetapkan untuk transisi status aliran.

Diagram alur memperlihatkan proses pembuatan aliran Bluetooth LE Audio.

Transisi keadaan aliran

ACX memutuskan urutan sirkuit transisi status aliran berdasarkan aliran audio dan apakah status bertransisi ke status aktif atau kurang aktif.

  • Untuk aliran render yang berpindah dari keadaan kurang aktif ke keadaan yang lebih aktif, sirkuit profil menerima event terlebih dahulu, disusul oleh sirkuit streaming.
  • Untuk aliran Render yang berubah dari status lebih aktif ke status kurang aktif, sirkuit streaming menerima peristiwa terlebih dahulu, diikuti oleh sirkuit profil. 
  • Untuk aliran Capture yang bergerak dari keadaan kurang aktif ke keadaan lebih aktif, sirkuit streaming menerima kejadian terlebih dahulu dan diikuti oleh sirkuit profil. 
  • Untuk Mengambil aliran dari status yang lebih aktif ke status kurang aktif, sirkuit profil dengan menerima peristiwa terlebih dahulu, diikuti oleh sirkuit streaming.

Menyiapkan streaming

Ketika panggilan balik EvtAcxStreamPrepareHardware dipanggil, profil Audio LE Bluetooth:

  1. Mengalokasikan sumber daya untuk aliran unicast dengan:
    1. Mengonfigurasi CIG dengan perintah HCI_LE_Set_CIG_Parameters.
    2. Mengirim operasi QoS konfigurasi ASCS untuk menyinkronkan pengaturan dengan perangkat jarak jauh.

Diagram alur yang mengilustrasikan persiapan streaming Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamPrepareHardware dipanggil, driver streaming IHV ACX mengalokasikan sumber daya streaming yang diperlukan dan menginisialisasi alur audio untuk berada dalam status diperoleh.

Diagram alur yang menggambarkan persiapan streaming Bluetooth LE Audio untuk sirkuit streaming.

Mulai streaming

Ketika panggilan balik EvtAcxStreamRun dieksekusi, profil Bluetooth Audio LE:

  1. Menerapkan pengaturan konfigurasi jalur data apa pun yang ditetapkan oleh driver streaming ACX dalam prosedur pembuatan aliran menggunakan perintah HCI_Configure_Data_Path.
  2. Memulai prosedur memulai streaming dengan:
    1. Melakukan aliran unicast BAP Aktifkan prosedur untuk aliran unicast:
      1. Mengirim operasi Enable ke titik akhir jarak jauh.
      2. Membuat CIS jika belum dibuat menggunakan perintah HCI_LE_Create_CIS.
  3. Jika jalur data belum dikonfigurasi, profil Bluetooth Audio LE:
    1. Menetapkan jalur data ISO menggunakan perintah HCI_LE_Setup_ISO_Data_Path
      1. Jika driver streaming IHV ACX mengatur properti BluetoothLEAudio_CodecCapabilities , nilai bidang Codec_ID di HCI_LE_Setup_ISO_Data_Path harus diatur ke transparan (0x3) seperti yang didefinisikan dalam Bluetooth Assigned Numbers. Jika tidak, nilainya harus sama dengan ID Codec yang digunakan dalam proses konfigurasi codec pada prosedur pembentukan aliran.
  4. Jika aliran audio adalah aliran unicast yang ditangkap, profil Audio LE Bluetooth melakukan operasi kesiapan mulai penerima BAP.

Diagram alur memperlihatkan proses memulai aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamRun dipanggil, driver streaming IHV ACX mulai memproses data audio masuk dari sistem audio Windows (render) atau pengontrol Bluetooth (pengambilan).

Diagram alur yang mengilustrasikan proses mulai streaming Bluetooth LE Audio untuk sirkuit streaming.

Menjeda aliran

Ketika panggilan balik EvtAcxStreamPause diaktifkan, profil Bluetooth LE Audio:

  1. Melakukan prosedur nonaktifkan aliran unicast BAP.
  2. Menghapus jalur data ISO menggunakan perintah HCI_LE_Remove_ISO_Data_Path.
  3. Melakukan prosedur siap hentikan penerima ASCS jika aliran audio adalah aliran pengambilan unicast.

Diagram alur yang menggambarkan proses jeda aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamPause dipanggil, driver streaming IHV ACX menjeda alur pemrosesan audionya.

Diagram alur memperlihatkan proses jeda streaming Bluetooth LE Audio untuk sirkuit streaming.

Aliran rilis

Ketika panggilan balik EvtAcxStreamReleaseHardware dipanggil, Profil Audio LE Bluetooth melakukan prosedur rilis aliran unicast BAP dengan:

  1. Mengirim operasi Rilis ASCS ke perangkat Audio LE Bluetooth jarak jauh
  2. Memutuskan sambungan CIS jika tidak digunakan oleh aliran aktif lain.
  3. Menghapus CIG ketika semua CIS terputus.

Diagram alur yang mengilustrasikan proses pelepasan aliran Bluetooth LE Audio untuk sirkuit profil.

Ketika panggilan balik EvtAcxStreamReleaseHardware dipanggil, driver streaming IHV ACX merilis sumber daya alur audionya.

Diagram alur yang menggambarkan proses pelepasan aliran Bluetooth LE Audio untuk sirkuit streaming.

Pemutusan antarmuka akhir

Profil Audio Bluetooth LE Windows memperbarui status koneksi titik akhir jika perangkat unicast jarak jauh tidak memiliki koneksi LE-ACL ke PC atau melaporkan melalui konteks audio PACS yang tersedia bahwa perangkat tersebut tidak dapat digunakan untuk streaming. Ketika titik akhir terputus, layanan audio Windows membatalkan aliran aktif apa pun ke titik akhir. Hal ini menyebabkan urutan jeda dan pelepasan aliran terjadi.

Penghapusan perangkat akhir

Titik akhir Bluetooth LE Audio dihapus dari sistem saat sirkuit profil atau sirkuit streaming dihancurkan. Sirkuit profil dapat dihapus ketika pencocokan perangkat unicast remote dihapus dari Windows atau radio Bluetooth dinonaktifkan.

  1. Ketika profil Windows Bluetooth LE Audio menghapus sirkuitnya, ACX menonaktifkan antarmuka endpoint untuk memberi sinyal ke layanan audio Windows bahwa endpoint tersebut harus dihapus.
  2. Ketika antarmuka dinonaktifkan, layanan audio Windows membatalkan aliran aktif apa pun ke titik akhir Bluetooth LE Audio, operasi ini menghasilkan jeda aliran dan merilis panggilan balik untuk dipanggil di sirkuit streaming.
  3. Untuk menyelesaikan penghapusan titik akhir, ACX membatalkan sirkuit driver streaming IHV ACX, yang mengakibatkan WDF memanggil panggilan balik pembersihan sirkuit.
  4. Ketika panggilan balik pembersihannya dipanggil, driver streaming IHV ACX merilis sirkuitnya.

Diagram alur memperlihatkan proses penghapusan titik akhir Bluetooth LE Audio.

Volume dan bisu

Sirkuit streaming IHV ACX hanya boleh menyertakan elemen volume dan bisu jika driver streaming memerlukan mesin audio. Saat menggunakan mesin audio, bendera konfigurasi harus diatur seperti:

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.

Ini diperlukan untuk memungkinkan titik akhir Bluetooth LE Audio menggunakan profil kontrol volume dan mikrofon yang ditentukan oleh Bluetooth SIG untuk mengatur perubahan volume dan fungsi bisu pada titik akhir audio unicast.

Jika perangkat Audio LE Bluetooth jarak jauh tidak mendukung layanan kontrol volume atau mikrofon, atau titik akhir dibuat untuk menyiarkan audio, maka elemen volume dan bisu di mesin audio akan berfungsi sebagai fallback untuk menangani permintaan perubahan dari sistem audio. Sistem audio Windows mengelola perubahan pada volume dan senyap. Jika tidak ada mesin audio dan perangkat jarak jauh tidak mendukung volume, atau layanan mikrofon atau titik akhir audio adalah untuk menyiarkan audio.

Bluetooth LE dan coexistensi audio konvensional

Windows harus memastikan bahwa hanya audio klasik atau audio LE yang aktif untuk perangkat audio Bluetooth berpasangan yang mendukung kedua teknologi tersebut. Jika audio LE aktif, maka DDI sideband untuk A2DP dan HFP untuk perangkat jarak jauh dinonaktifkan dan sirkuit profil dibuat untuk titik akhir audio LE. Jika audio klasik aktif, DDI sideband untuk A2DP dan HFP untuk perangkat jarak jauh diaktifkan dan sirkuit profil tidak dibuat untuk titik akhir audio LE.

Manajemen daya

Bluetooth LE Audio tidak memiliki persyaratan atau alur manajemen daya di luar apa yang sudah ditentukan oleh WDF.