Bagikan melalui


Manajemen daya Bluetooth untuk platform siaga modern

Perangkat radio Bluetooth memungkinkan komunikasi RF jarak pendek antara PC dan perangkat input, perangkat audio, atau periferal pengguna yang terpasang bluetooth lainnya. Dalam PC siaga modern, driver untuk radio Bluetooth harus mengelola status daya perangkat ini sesuai dengan pedoman yang disajikan dalam artikel ini.

Radio Bluetooth

Dalam sistem Windows, bagaimana status daya perangkat radio Bluetooth dikelola tergantung pada bus tempat radio terhubung. Pada platform perangkat keras yang mendukung model daya siaga modern, Windows mendukung radio Bluetooth yang terhubung ke UART atau ke Universal Serial Bus (USB). (Secara teori, model driver bus transportasi Bluetooth yang diperkenalkan di Windows 8 harus mendukung bus komunikasi yang mendasar. Saat ini, Microsoft memverifikasi kompatibilitas siaga modern hanya untuk radio Bluetooth yang terhubung ke UART atau USB, atau diintegrasikan ke dalam System on a Chip (SoC)).

Sama seperti pada tumpukan driver Windows yang khas, kebijakan daya radio Bluetooth dikelola oleh pemilik kebijakan daya tunggal (PPO) - khususnya BthPort (bthport.sys). BthPort bekerja bersama dengan driver khusus transportasi (UART atau USB) yang sesuai untuk mengarahkan radio ke status daya yang diinginkan dengan tepat. Dalam kasus USB, ini dilakukan melalui USB Selective Suspend melalui pengontrol host USB. Dalam kasus UART, driver bus transportasi tambahan yang disediakan vendor mengoordinasikan permintaan dari BthPort ke perangkat radio Bluetooth melalui koneksi bus khusus sistem. Untuk mengontrol perangkat keras, driver menggunakan kombinasi komunikasi bus dalam band, koordinasi dengan plug-in power-engine (PEP), dan/atau sinyal out-of-band melalui pin GPIO.

Perangkat radio Bluetooth biasanya mendukung beberapa mode berdaya rendah, beberapa di antaranya mungkin milik perangkat itu sendiri. Tumpukan driver Windows Bluetooth mengharuskan radio Bluetooth mendukung tiga status daya perangkat berikut:

  • Aktif (D0)
  • Tidur (D2)
  • Nonaktif (D3)

Manajemen daya perangkat untuk radio Bluetooth diharapkan beroperasi secara konsisten di semua status daya sistem. Radio Bluetooth tidak memasuki mode manajemen daya khusus ketika sistem memasuki siaga modern. Sebaliknya, radio Bluetooth ditransisikan masuk dan keluar dari status Tidur (D2) berdasarkan batas waktu diam yang dikelola oleh BthPort. Untuk mendukung bangun dari siaga modern pada perangkat input HID yang terpasang Bluetooth, radio tetap dalam status Tidur (D2) dan dipersenjatai untuk bangun. Hanya perangkat Bluetooth HID yang dipasangkan yang diizinkan untuk membangunkan sistem selama siaga modern. Radio Bluetooth diperkirakan akan memiliki konsumsi daya yang sangat rendah—kurang dari satu miliwatt—dalam status Tidur (D2) jika tidak ada perangkat yang terhubung melalui tautan RF. Konsumsi daya dapat diharapkan bervariasi berdasarkan jumlah perangkat terkait, jenis perangkat tersebut, dan pola aktivitasnya.

Radio Bluetooth juga harus mendukung kemampuan untuk mematikan radio melalui antarmuka pengguna manajemen radio. Kontrol antarmuka pengguna ini dibangun ke dalam Windows. Setelah radio Bluetooth dimatikan melalui antarmuka pengguna ini, radio dialihkan ke status daya Nonaktif (D3), di mana diharapkan akan mengonsumsi hampir nol watt.

Versi Windows sebelumnya, termasuk Windows 8 dan Windows 8 RT, mengharuskan vendor perangkat Bluetooth untuk menyediakan DLL kontrol radio. Namun, dimulai dengan Windows 8.1 dan Windows RT 8.1, semua radio Bluetooth di platform siaga modern harus mendukung Spesifikasi Inti Bluetooth Versi 4.0. Dengan demikian, vendor tidak lagi diharuskan untuk menyediakan DLL perangkat lunak untuk mengimplementasikan fungsi kontrol radio on/off. Windows sekarang menangani fungsi ini dan akan mengabaikan DLL tersebut, bahkan jika ada.

Mode manajemen daya

Dari sudut pandang perangkat lunak, radio Bluetooth mendukung tiga mode manajemen daya, terlepas dari bus tempat radio terhubung. Driver Windows Bluetooth memiliki definisi dari tiga mode dan mengelola transisi ke dan keluar dari mode ini. Tabel berikut menjelaskan tiga mode daya radio Bluetooth.

Mode Deskripsi Status daya perangkat (Dx) Konsumsi daya rata-rata Latensi keluar ke aktif Mekanisme transisi

Aktif

Radio Bluetooth secara aktif berkomunikasi dengan perangkat terkait atas nama aplikasi pada sistem operasi.

D0

Bervariasi, khusus untuk skenario dan perangkat terkait.

T/A

T/A

Tidur (sebagian besar menganggur dengan siklus tugas tingkat rendah)

Radio Bluetooth dalam keadaan berdaya rendah. Sistem telah dipasangkan dengan perangkat Bluetooth jarak jauh, tetapi tidak ada koneksi di antara keduanya. Artinya, perangkat telah terputus. Pengontrol Bluetooth harus dapat menghasilkan sinyal bangun (ke SoC jika radio tidak terintegrasi) ketika data baru tiba dari perangkat yang dipasangkan.

Atau, radio Bluetooth tidak memiliki asosiasi.

Atau, radio Bluetooth memiliki koneksi aktif yang menganggur (tidak ada data yang dikirim/diterima) dan tautan dalam mode sniff.

D2

< 4 miliwatt

< 100 milidetik

Driver Windows Bluetooth memulai transisi D2 menggunakan IRP daya D2.

Driver Windows Bluetooth memulai IRP wait-wake yang tertunda di driver bus transportasi yang mendasar. Jika perangkat Bluetooth terpasang melalui USB, status ini setara dengan penangguhan selektif. (Suspensi selektif Bluetooth mengharuskan perangkat ditandai sebagai berkemampuan bangun jarak jauh dan didukung sendiri di deskriptor perangkat USB.)

Nonaktif

Radio Bluetooth benar-benar mati (nol watt) atau dalam keadaan berdaya rendah di mana tidak ada status radio yang dipertahankan. Radio Bluetooth tidak mampu menghasilkan sinyal bangun ke SoC dalam keadaan ini. Radio Bluetooth juga tidak dapat memancarkan atau menerima sinyal radio apa pun—semua komponen RF dimatikan.

D3

0 watt

< 2 detik

Driver Windows Bluetooth memulai transisi D3 menggunakan IRP daya D3.

Driver bus transportasi atau firmware ACPI sistem dapat menghilangkan daya atau mengalihkan saluran GPIO untuk transisi perangkat keras radio Bluetooth ke status Nonaktif (D3).

Radio Bluetooth juga mendukung mode terkait di mana pemancar radio dapat dimatikan oleh perangkat lunak sebagai respons terhadap permintaan dari pengguna. Ketika radio diaktifkan untuk perangkat Bluetooth, perangkat ini berada dalam status Aktif (D0) atau Tidur (D2). Ketika radio untuk perangkat Bluetooth dinonaktifkan oleh pengguna, Windows menghentikan aktivitas Bluetooth dengan menghapus driver protokol dan anak-anaknya, dan kemudian transisi tumpukan perangkat radio ke status Nonaktif (D3).

Mekanisme manajemen daya perangkat lunak

Manajemen daya perangkat radio Bluetooth didorong oleh transisi status Dx perangkat yang dimulai oleh BthPort sebagai pemilik kebijakan daya (PPO). PPO memutuskan kapan perangkat beralih antara status Aktif (D0), Tidur (D2), dan Nonaktif (D3).

Ketika radio tidak memiliki perangkat terkait, Windows mentransisikan perangkat ke D2 dan mempertahankannya dalam keadaan itu sampai pengguna memulai proses pemasangan. Ketika radio dikaitkan dengan satu atau beberapa perangkat, driver Windows Bluetooth menggunakan batas waktu menganggur untuk memutuskan kapan harus transisi radio Bluetooth dari D0 ke D2. Algoritma ini menggunakan pola penggunaan Bluetooth oleh sistem operasi dan aplikasi untuk menentukan kapan harus transisi radio ke status D2. Misalnya, radio beralih ke D2 beberapa detik setelah tombol terakhir menekan keyboard Bluetooth jika tidak ada aktivitas lain di radio Bluetooth.

Driver Windows Bluetooth mentransisikan perangkat ke D0 sebagai respons terhadap salah satu hal berikut:

  • Pengguna memulai proses pemasangan.
  • Aplikasi meminta penggunaan fungsi bluetooth.
  • Radio Bluetooth telah menghasilkan permintaan bangun berdasarkan input dari perangkat terkait.

Tidak seperti perangkat lain, radio Bluetooth mengikuti pola manajemen daya yang sama selama siaga modern (tampilan sistem nonaktif) yang dilakukannya ketika sistem biasanya beroperasi dan layar menyala. Itu karena radio Bluetooth diharapkan tersedia untuk membangunkan SoC ketika input diterima dari perangkat terkait kapan saja selama siaga modern. Misalnya, jika pengguna telah mengaitkan keyboard Bluetooth dengan komputer Windows, menekan tombol apa pun pada keyboard harus membangunkan komputer dari siaga modern dan menyalakan layar.

Jika tidak ada perangkat yang terkait dengan radio, radio diharapkan dikonfigurasi untuk mengonsumsi kurang dari satu miliwatt ketika berada dalam status Tidur (D2).

Ketika radio Bluetooth dalam status Nonaktif (D3), diharapkan mengonsumsi hampir nol watt.

Catatan implementasi driver

Jika radio Bluetooth terhubung melalui UART atau diintegrasikan ke dalam SoC itu sendiri, vendor perangkat Bluetooth diperlukan untuk mengimplementasikan dan menyediakan driver bus transportasi. Pengemudi bus transportasi bertanggung jawab atas hal-hal berikut:

  • Menerjemahkan permintaan paket Bluetooth HCI dari driver Windows Bluetooth (Bthmini.sys) ke perintah yang dikirim melalui bus transportasi ke radio Bluetooth.
  • Transisi perangkat radio Bluetooth ke berbagai mode manajemen daya yang memetakan ke status daya perangkat Aktif (D0), Tidur (D2), dan Mati (D3). Driver juga menerapkan rutinitas yang menangani peristiwa manajemen daya.
  • Mengonfigurasi radio Bluetooth untuk membangunkan SoC ketika perangkat menghasilkan input, dan mengubah status baris GPIO opsional dari SoC ke radio Bluetooth yang digunakan untuk manajemen daya.
  • Menghitung dan mengelola daya perangkat lain (seperti pemancar FM atau perangkat GPS) yang memiliki bus yang sama dengan radio Bluetooth. Jika perangkat lain terhubung secara fisik ke bus bersama, tetapi tidak terekspos ke sistem operasi, pengemudi bus transportasi harus benar-benar mematikan perangkat ini.

Untuk detail tentang menerapkan sopir bus transportasi, lihat Driver Bus Transportasi untuk Panduan Penanganan Kontrol Daya Bluetooth. Driver bus transportasi harus ditulis menggunakan Windows Driver Framework (WDF). Contoh driver tersedia di Bluetooth Serial HCI Bus Driver.

Untuk mengaktifkan manajemen daya radio Bluetooth, driver bus transportasi harus melakukan tindakan berikut:

  • Aktifkan dukungan untuk manajemen daya diam run-time dan mengekspos dukungan untuk status daya perangkat Aktif (D0), Tidur (D2), dan Nonaktif (D3).
  • Tunjukkan kepada driver Windows Bluetooth bahwa perangkat radio Bluetooth mampu memberi sinyal peristiwa bangun dari status D2.
  • Mendukung mempersenjatai perangkat radio Bluetooth untuk membangunkan SoC dan melucuti sinyal bangun perangkat Bluetooth ke SoC. Dukungan ini mungkin memerlukan penanganan satu atau beberapa interupsi GPIO dan menjalankan metode bangun dalam WDF.
  • Ubah status baris GPIO opsional dari SoC ke perangkat radio Bluetooth saat perangkat beralih antara status Aktif (D0), Tidur (D2), dan Nonaktif (D3).

Jika radio Bluetooth diintegrasikan ke dalam SoC itu sendiri, driver bus transportasi dapat mendaftar dengan kerangka kerja manajemen daya Windows untuk mengomunikasikan status daya radio Bluetooth ke plug-in power-engine (PEP) khusus SoC. Ini dicapai dengan mengatur anggota IdleTimeoutType dari struktur WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS ke nilai SystemManagedIdleTimeout.

Jika radio Bluetooth tersambung melalui USB, tumpukan driver Windows USB Bluetooth bawaan harus digunakan. Tumpukan menangani semua operasi manajemen daya.

Manajemen radio

Status pemancar radio Bluetooth terikat langsung ke status daya perangkat. Pemancar radio diperkirakan akan menyala ketika radio berada dalam status daya Aktif (D0) atau Tidur (D2). Pemancar radio harus dimatikan ketika radio beralih ke status Nonaktif (D3).

Ketika pengguna mematikan radio Bluetooth, Windows menghentikan aktivitas Bluetooth dengan membatalkan operasi I/O yang tertunda dan membongkar driver protokol dan anak-anak mereka. Tumpukan driver Windows Bluetooth kemudian mengeluarkan perintah HCI_Reset ke pengontrol untuk mengatur ulang radio ke status defaultnya. Dalam status default, pengontrol tidak boleh mampu mengirimkan atau menerima sinyal radio apa pun. Akhirnya, pengontrol beralih ke status Nonaktif (D3).

Menanggapi transisi ke Nonaktif (D3), driver bus transportasi harus mematikan perangkat Bluetooth ke status daya terendah menggunakan metode khusus perangkat. Implementasi umumnya adalah mengubah status garis GPIO dari SoC ke radio Bluetooth untuk menonaktifkan daya ke modul Bluetooth. Implementasi alternatif adalah mengharuskan firmware ACPI untuk menghapus daya dari modul Bluetooth menggunakan metode kontrol _PS0 dan _PS3.

Ketika pengguna menyalakan radio Bluetooth, Windows mentransisikan radio ke status Aktif (D0), menginisialisasi ulang radio, lalu menghitung ulang driver protokol anak. Ketika radio beralih ke Aktif (D0), setiap garis GPIO yang diperlukan harus dialihkan sebagai bagian dari urutan D0 normal untuk radio Bluetooth. Jika firmware ACPI digunakan untuk mematikan radio, firmware ACPI harus memulihkan daya menggunakan metode kontrol _PS0.

Sebagai bagian dari urutan normal ini, driver bus transportasi harus menandai perangkat sebagai Perangkat yang Terhubung Secara Internal dengan mengatur ContainerId radio Bluetooth ke nilai GUID tertentu, {00000000-0000-000-ffff-ffffffffff}. Ini memungkinkan elemen antarmuka pengguna radio Windows untuk mendeteksi bahwa radio Bluetooth yang diekspos oleh driver bus transportasi internal ke komputer dan bukan radio yang terpasang secara eksternal yang kontrol radionya tidak sesuai.

Konfigurasi daya perangkat keras yang didukung

Konfigurasi perangkat keras manajemen daya untuk radio Bluetooth tergantung pada bus komunikasi. Secara umum, semua radio Bluetooth diharapkan memiliki fitur manajemen daya perangkat keras berikut yang sama:

  • Dukungan untuk status Nonaktif (D3) sebagai sarana untuk mematikan radio sebagai respons terhadap permintaan pengguna. Mematikan radio menempatkan radio Bluetooth dalam keadaan berdaya rendah yang hampir nol watt.
  • Mekanisme untuk memasuki status Sleep (D2) berdaya rendah di mana koneksi tetap ada ke perangkat terkait, tetapi tidak ada transfer aktif.
  • Mekanisme untuk menghasilkan gangguan bangun ketika perangkat terkait memiliki data untuk SoC dan SoC berada dalam keadaan daya rendah di mana bus tempat perangkat radio Bluetooth terpasang saat ini tidak aktif.

Masing-masing bus yang didukung (USB, UART, dan integrasi ke Dalam SoC) untuk perangkat radio Bluetooth mendukung ketiga fitur manajemen daya perangkat keras dasar dalam daftar sebelumnya. Selain itu, setiap radio Bluetooth dapat memiliki fitur manajemen daya khusus vendor atau khusus perangkat, tetapi ini berada di luar cakupan topik ini.

Vendor radio Bluetooth didorong untuk menerapkan fitur manajemen daya bernilai tambah dengan cara yang otonom dalam perangkat keras dan tidak memerlukan perangkat lunak driver tambahan yang disediakan vendor pada sistem Windows. Vendor radio Bluetooth juga didorong untuk mengimplementasikan driver mereka dan perangkat lunak manajemen daya mereka dengan cara yang mengabstraksikan perbedaan khusus platform ke dalam firmware ACPI sistem alih-alih ke dalam kode driver perangkat atau file .inf driver. Pendekatan ini memungkinkan satu paket driver untuk perangkat Bluetooth digunakan kembali di platform tambahan tanpa memerlukan pembaruan ke sumber driver, biner, atau paket penginstalan yang ditandatangani.

Radio Bluetooth yang terhubung melalui UART di luar SoC

Jika radio Bluetooth terhubung melalui UART dan secara fisik terletak di luar SoC, vendor radio Bluetooth harus menyediakan driver bus transportasi yang mengekspos radio Bluetooth dan fungsi perangkat lainnya (misalnya, radio FM) yang memiliki jalur komunikasi yang sama melalui UART. Driver bus juga bertanggung jawab untuk mengelola sumber daya GPIO apa pun yang mengontrol konsumsi daya radio Bluetooth dan kemampuan bangun.

Tidak seperti kelas perangkat lainnya, garis GPIO yang mengontrol daya dan bangun Bluetooth dikelola langsung oleh driver bus transportasi alih-alih diabstraksi oleh metode kontrol ACPI. Skema kontrol ini adalah hasil dari desain driver bus multifungsi yang menghitung radio Bluetooth dan fungsi lain yang memiliki port UART yang sama. Dalam desain ini, driver Windows ACPI, Acpi.sys, tidak dimuat dalam tumpukan driver untuk Bluetooth dan radio FM, sehingga tidak mungkin untuk menggunakan eksekusi metode kontrol ACPI sebagai cara untuk merespons transisi status Dx perangkat.

Ketika radio Bluetooth terhubung ke port UART pada SoC, integrator sistem harus menggunakan pin pada pengontrol GPIO pada SoC untuk mengontrol daya ke radio. Dalam firmware ACPI, pin ini harus ditetapkan sebagai sumber daya I/O GPIO ke objek perangkat yang mewakili perangkat root driver bus transportasi. Pin GPIO dapat dihubungkan langsung ke radio Bluetooth jika radio mendukung mematikan perangkat dengan power-gating internal.

Jika radio Bluetooth mendukung power-gating, sumber daya untuk radio Bluetooth dapat dihubungkan ke rel daya sistem apa pun.

Jika radio tidak mendukung power-gating internal yang dikontrol oleh pin GPIO, integrator sistem harus menempatkan radio Bluetooth pada power rail yang dapat dialihkan. Pin GPIO dari SoC kemudian terhubung ke perangkat keras peralihan daya. Dalam desain ini, metode kontrol ACPI tidak dapat digunakan untuk melacak jumlah referensi atau untuk mengagregasi status daya beberapa perangkat yang berbagi rel daya yang sama, sehingga radio Bluetooth harus diisolasi pada rel daya yang dapat dialihkan sendiri.

Integrator sistem harus menggunakan pin tambahan pada pengontrol GPIO pada SoC untuk menerima gangguan bangun dari radio Bluetooth. Interupsi pada pin ini harus mampu membangunkan SoC dari status daya terendahnya. Dalam beberapa desain SoC, pin seperti itu disebut sebagai pin GPIO yang selalu aktif karena pengontrol GPIO dapat mendeteksi gangguan pada pin ini setiap saat, terlepas dari status daya SoC. Kemampuan always-on mungkin terbatas pada perangkat keras ke sekumpulan pin GPIO tertentu pada SoC atau dapat dikonfigurasi dalam firmware. Sangat penting bahwa integrator sistem meninjau desain ini dengan vendor SoC untuk memastikan gangguan bangun radio Bluetooth akan menyebabkan SoC keluar dari status daya menganggur terdalamnya. (Setiap saat selama siaga modern, sistem berada di S0. sistem siaga modern tidak mendukung S3.)

Ketika semua fungsi yang dijumlahkan oleh sopir bus transportasi telah dimatikan dan perangkat bus transportasi yang dijumlahkan ACPI memasuki D3, pin GPIO yang selalu aktif dapat dimatikan. Ini terjadi ketika radio untuk semua fungsi perangkat yang dijumlahkan oleh pengemudi bus transportasi telah dimatikan oleh pengguna.

Radio Bluetooth pada USB

Jika radio Bluetooth terpasang pada SoC atau silikon inti melalui bus USB, radio harus dinyalakan dari sumber selain bus USB. Dalam spesifikasi USB, radio seperti itu digambarkan sebagai didukung sendiri, dan kemampuan ini harus dilaporkan dalam deskriptor USB perangkat Bluetooth.

Demikian pula, perangkat keras perangkat USB harus mengiklankan dukungan untuk bangun jarak jauh, yang merupakan kemampuan bagi radio Bluetooth untuk menghasilkan sinyal resume USB in-band untuk membangunkan pengontrol host USB. Kemampuan bangun jarak jauh juga harus diiklankan dalam deskriptor USB radio Bluetooth.

Radio Bluetooth harus mendukung kemampuan yang didukung sendiri dan bangun dari jarak jauh sehingga dapat memasuki status Tidur (D2) dan mengaktifkan penangguhan selektif.

Jika radio Bluetooth berada dalam status Tidur (D2) dan data dari perangkat terkait tersedia untuk host, radio Bluetooth harus menghasilkan sinyal resume bangun jarak jauh untuk membangunkan host. Sinyal resume out-of-band menggunakan garis GPIO ke silikon inti tidak didukung. Radio Bluetooth, termasuk sirkuit koneksi USB-nya, diperkirakan akan mengonsumsi daya kurang dari satu miliwatt dalam status Tidur (D2).

Kekhawatiran bangun

Radio Bluetooth diharapkan dapat menghasilkan gangguan bangun ketika dalam status Tidur (D2). Gangguan bangun harus menyebabkan SoC menyala, bahkan jika SoC berada dalam status daya terendahnya. Tabel berikut ini meringkas dua mekanisme sinyal bangun Bluetooth.

Bus koneksi Jalur sinyal perangkat keras Komentar dan catatan

UART (dengan sopir bus transportasi yang disediakan vendor)

GPIO dari radio Bluetooth ke SoC.

Radio harus terhubung ke pin GPIO yang dapat membangunkan SoC dari status daya terendahnya.

USB

Sinyal resume USB in-band dari suspensi selektif.

Bangun GPIO out-of-band tidak didukung.

Pengujian dan validasi

Vendor perangkat Bluetooth didorong untuk menguji dan memvalidasi operasi manajemen daya perangkat radio Bluetooth.

Transisi antara status Aktif (D0), Tidur (D2), dan Nonaktif (D3) dapat dengan mudah diamati menggunakan alat Xperf, seperti yang dijelaskan di bagian lain.

Aktivitas driver Bluetooth dapat dipantau dengan menggunakan instrumentasi ETW yang terpasang di Windows. Pengembang driver didorong untuk menggunakan instrumentasi Event Tracing for Windows (ETW) untuk mengekspos perubahan status manajemen daya yang signifikan pada driver dan mengamatinya dengan menggunakan alat Xperf atau windows Pemantau Peristiwa bawaan.

Jika radio Bluetooth terpasang melalui USB, utilitas Powercfg.exe bawaan dapat digunakan bersama dengan opsi baris perintah /energy untuk memvalidasi bahwa radio memasuki status Tidur (D2) dan ditangguhkan. Untuk menggunakan utilitas Powercfg.exe:

  • Buka jendela Wantian Perintah sebagai Administrator.
  • Ubah ke direktori akar drive (cd \).
  • Masukkan perintah powercfg.exe /energy.
  • Tunggu default 60 detik.
  • Utilitas Powercfg.exe akan menghasilkan jumlah kesalahan dan kondisi peringatan pada sistem, seperti yang ditunjukkan pada cuplikan layar berikut.
  • Setelah alat menulis informasi ringkasan ke jendela prompt perintah, alat ini menghasilkan file HTML yang diberi nama Energy-report.html. Buka file dan cari kesalahan atau kondisi peringatan dari perangkat Usb Bluetooth. Contoh ringkasan berikut melaporkan bahwa perangkat Usb Bluetooth belum memasuki status Tidur (D2) saat diam.

Vendor perangkat Bluetooth yang menyediakan driver dan aplikasi profil Bluetooth pihak ketiga tambahan harus memverifikasi bahwa perangkat lunak mereka mendukung penghapusan mendadak dan memungkinkan infrastruktur manajemen radio untuk mematikan radio Bluetooth dengan benar tepat waktu. Skenario ini harus divalidasi saat profil atau aplikasi sedang digunakan. Misalnya, untuk driver audio, harus ada streaming audio Bluetooth saat radio dimatikan. Kemudian radio harus dihidupkan kembali dan aliran audio dimulai ulang untuk memverifikasi bahwa radio masih berfungsi.

Daftar periksa manajemen daya Bluetooth

Integrator sistem, vendor radio Bluetooth, dan vendor SoC harus menggunakan daftar periksa berikut untuk memastikan bahwa desain manajemen daya sistem mereka kompatibel dengan Windows 8 dan Windows 8.1:

  • Tentukan bus komunikasi untuk radio Bluetooth dalam desain sistem. Radio Bluetooth terhubung melalui UART atau dilampirkan melalui USB.

  • Pastikan radio Bluetooth mendukung mode tidur berdaya rendah yang mengonsumsi kurang dari satu miliwatt ketika tidak ada perangkat yang terkait.

    Konsumsi daya radio Bluetooth dalam mode tidur dapat bervariasi berdasarkan jumlah perangkat terkait yang saat ini ada, tetapi umumnya tidak boleh melebihi lima miliwatt kapan saja.

  • Pastikan radio Bluetooth mendukung kemampuan manajemen daya dasar yang diperlukan berikut:

    • Dukungan untuk status Nonaktif (D3) sebagai cara untuk memungkinkan pengguna menonaktifkan radio.
    • Mekanisme untuk memasuki status Sleep (D2) berdaya rendah di mana koneksi dipertahankan ke perangkat terkait, tetapi tidak ada transfer aktif.
    • Mekanisme untuk membangunkan SoC ketika perangkat terkait menghasilkan data dan SoC dalam keadaan berdaya rendah.
  • Jika radio Bluetooth terhubung melalui bus non-USB (UART atau diintegrasikan ke dalam SoC), vendor radio Bluetooth harus mengembangkan pengemudi bus transportasi. Pengemudi bus transportasi harus melakukan hal berikut:

    • Mendukung fitur dan persyaratan yang dirinci dalam Driver Bus Transportasi untuk Panduan Penanganan Kontrol Daya Bluetooth.
    • Terjemahkan permintaan Bluetooth dari driver Windows Bluetooth (Bthmini.sys) ke perintah ke radio Bluetooth melalui bus UART atau bus SoC internal eksklusif.
    • Transisi perangkat radio Bluetooth ke berbagai mode manajemen daya yang memetakan status Aktif (D0), Tidur (D2), dan Nonaktif (D3). Driver juga harus menerapkan rutinitas yang menangani runtime integrasi manajemen daya perangkat (Dx).
    • Konfigurasikan radio Bluetooth untuk membangunkan SoC saat perangkat menghasilkan input, dan ubah status setiap baris GPIO opsional yang menghubungkan SoC ke radio Bluetooth untuk tujuan manajemen daya.
    • Menghitung perangkat lain (misalnya, pemancar FM) yang mungkin dibagikan di radio Bluetooth.
    • Gunakan Windows Driver Framework (WDF) untuk pengembangan driver.
    • Diimplementasikan berdasarkan Driver Bus HCI Serial Bluetooth.
  • Jika radio Bluetooth terhubung melalui USB, vendor radio Bluetooth harus:

    • Aktifkan dukungan untuk penangguhan selektif di radio.
    • Pastikan radio memiliki kemampuan remote-wake dan self-powered yang diatur dalam deskriptor perangkat USB.
    • Pastikan radio (termasuk komponen USB) mengonsumsi kurang dari satu miliwatt.
  • Terlepas dari bus koneksi, radio Bluetooth harus melakukan hal berikut untuk radio yang terhubung secara internal:

    • Pastikan semua komponen RF dimatikan sebagai respons terhadap perintah HCI_Reset dikirim ke radio sebagai persiapan untuk mematikan radio. Radio tidak boleh mampu mentransmisikan atau menerima sinyal radio.
    • Masukkan mode daya terendahnya saat diatur ke status Nonaktif (D3).
  • Jika radio Bluetooth terhubung melalui UART, integrator sistem harus menghubungkan sinyal bangun dari radio Bluetooth ke pin GPIO pada SoC yang dapat membangunkan SoC dari keadaan daya terendah.

    • SoC dapat memerlukan sinyal bangun untuk dirutekan ke sekumpulan pin GPIO terbatas yang telah dikonfigurasi sebelumnya agar selalu aktif.
    • Atau, SoC dapat mendukung konfigurasi pin GPIO ke pin always-on dalam firmware sistem selama boot.
  • Integrator sistem harus menguji dan memverifikasi bahwa radio Bluetooth memasuki status Tidur (D2) ketika tidak ada perangkat terkait.

  • Integrator sistem harus menguji dan memverifikasi bahwa radio Bluetooth memasuki status Tidur (D2) ketika semua perangkat terkait tidak memiliki transfer aktif.

  • Integrator sistem harus menguji dan memverifikasi bahwa radio Bluetooth dapat membangunkan SoC dari status daya terendah ketika radio berada dalam status Tidur (D2).

  • Integrator sistem harus menguji dan memverifikasi bahwa radio Bluetooth tidak menghasilkan sinyal bangun yang memacu saat dalam status Tidur (D2).

  • Integrator sistem harus menguji dan memverifikasi bahwa perangkat lunak pihak ketiga add-on, seperti driver profil dan aplikasi, bekerja dengan baik dengan manajemen radio Bluetooth. Radio harus dimatikan dan dinyalakan saat perangkat lunak pihak ketiga aktif digunakan (misalnya, memutar audio atau mentransfer file).