Bagikan melalui


Baterai dan pengisian daya

Pengalaman pengguna pengisian daya baterai

Topik ini mencakup rekomendasi untuk baterai dan pengisian daya dalam Windows 10. Semua perangkat yang menjalankan Windows memiliki pengalaman pengisian baterai yang konsisten, terlepas dari faktor bentuk, set instruksi, atau arsitektur platform. Akibatnya, pengguna memiliki pengalaman yang konsisten dan berkualitas dengan pengisian daya baterai.

  1. Pengisian daya selalu terjadi saat terhubung ke pengisi daya.

    Kecuali untuk kasus kegagalan baterai, perangkat yang menjalankan Windows selalu mampu mengisi daya baterai setiap kali tersambung ke pengisi daya.

  2. Windows selalu dapat melakukan boot ketika tersambung ke pengisi daya.

    • Windows 10 untuk edisi desktop (Home, Pro, Enterprise, dan Education):

      Jika perangkat dalam status S5 (matikan), perangkat selalu dapat melakukan boot ke Windows saat tersambung ke pengisi daya, terlepas dari tingkat pengisian daya baterai dan keberadaan baterai, jika baterai dapat dilepas.

    • Windows 10 Mobile:

      Baterai harus ada dan memiliki tingkat pengisian daya yang cukup agar sistem dapat boot up.

  3. Perangkat keras secara otonom mengelola pengisian daya.

    Perangkat keras mengisi daya baterai perangkat tanpa memerlukan firmware, Windows, driver, atau perangkat lunak lain yang berjalan pada CPU utama. Persyaratan ini hanya berlaku untuk Windows 10 untuk sistem edisi desktop. Windows 10 Mobile sistem mungkin memerlukan dukungan aplikasi pengisian daya UEFI dan/atau komponen perangkat lunak lainnya untuk mengisi daya baterai.

  4. Pengisian daya berhenti secara otomatis ketika baterai terisi penuh atau ketika kesalahan terjadi.

    Perangkat keras secara otomatis berhenti mengisi daya ketika baterai terisi penuh. Ini dilakukan tanpa memerlukan firmware, Windows, driver, atau perangkat lunak lain yang berjalan pada CPU utama. Jika ada baterai atau kondisi kesalahan termal, pengisian daya juga dihentikan secara otomatis.

Pengisian daya terjadi saat tersambung ke pengisi daya

Pengguna mengharapkan perangkat mereka untuk mengisi daya setiap kali terhubung ke pengisi daya. Dengan demikian, perangkat keras harus selalu mencoba mengisi daya baterai setiap kali perangkat terhubung ke pengisi daya terlepas dari status daya. Harapan ini berlaku di semua status daya termasuk aktif (S0), Tidur (S3), Hibernate (S4), matikan (S5), hard off (G2/G3) dan S0 Diam. Pengisian daya dapat berhenti setelah baterai terisi penuh atau jika terjadi kondisi kesalahan.

Kami tidak merekomendasikan desain yang mengisi daya baterai pada tingkat yang berkurang ketika Windows atau firmware belum di-boot atau berjalan. Misalnya, baterai dapat mengisi daya pada laju yang lebih lambat ketika sistem benar-benar mati dan terhubung ke pengisi daya dan mengisi daya dengan kecepatan yang lebih cepat ketika perangkat di-boot dan firmware ACPI dapat digunakan untuk memantau baterai secara berkala.

Akhirnya, desain dapat mengisi daya baterai pada tingkat yang lebih rendah ketika sistem dalam kondisi termal. Dalam skenario ini, panas dapat dikurangi dengan memperlambat atau menghilangkan pengisian daya baterai sama sekali. Kondisi termal adalah pengecualian dalam desain sistem yang baik.

Windows selalu dapat di-boot ketika tersambung ke daya AC

  • Windows 10 untuk edisi desktop

    Pengguna mengharapkan mereka dapat segera boot dan menggunakan perangkat mereka setiap kali terhubung ke pengisi daya. Dengan demikian, perangkat harus selalu boot dan sepenuhnya dapat digunakan ketika terhubung ke daya AC. Hal ini berlaku terlepas dari tingkat pengisian daya baterai, status baterai/pengisi daya, dan keberadaan baterai (jika baterai dapat dilepas).

    Jika perangkat memerlukan kapasitas baterai minimum untuk mem-boot firmware dan Windows, perangkat keras harus memastikan bahwa kapasitas baterai selalu dicadangkan oleh platform. Kapasitas baterai yang dipesan tidak boleh diekspos ke Windows.

  • Windows 10 Mobile

    Ketika sistem terhubung ke daya AC dan baterai ada, sistem harus mencoba untuk boot ke sistem operasi, selama baterai memiliki daya yang cukup untuk menyalakan sistem selama proses boot.

Perangkat keras secara otonom mengelola pengisian daya

Seperti yang ditentukan di atas, pengguna mengharapkan perangkat mereka untuk mengisi daya saat terhubung ke pengisi daya. Akibatnya, perangkat keras harus mengisi daya baterai tanpa memerlukan firmware, Windows, driver, atau perangkat lunak lain yang berjalan pada CPU utama karena satu atau beberapa komponen ini mungkin tidak beroperasi atau mungkin dalam keadaan kesalahan pada waktu tertentu. Persyaratan ini hanya berlaku untuk Windows 10 untuk sistem edisi desktop. Windows 10 Mobile sistem mungkin memerlukan dukungan aplikasi pengisian daya UEFI dan/atau komponen perangkat lunak lainnya untuk mengisi daya baterai.

Pengisian daya berhenti secara otomatis ketika terisi penuh atau ketika kesalahan terjadi

Perangkat keras secara otomatis berhenti mengisi daya ketika baterai benar-benar terisi daya atau jika terjadi kesalahan. Seperti halnya pengisian daya, ini harus dilakukan tanpa memerlukan firmware, Windows, driver, atau perangkat lunak lain yang berjalan pada CPU utama. Selanjutnya, perangkat keras diperlukan untuk mematuhi semua kondisi peraturan keamanan baterai.

Indikator daya dan pengisian daya

Windows menyediakan sumber daya dan indikator status baterai menggunakan ikon yang dapat dilihat pengguna di beberapa tempat. Tempat-tempat termasuk ikon baki sistem baterai dan layar kunci.

Perangkat juga dapat memiliki indikator fisik seperti LED yang menunjukkan status pengisian daya. Indikator ini harus memiliki sedikit dampak pada konsumsi daya.

Ikon daya dan pengisian daya Windows

Windows menampilkan sumber daya dan status pengisian daya di tiga lokasi:

  • Pada layar kunci:

    Windows menampilkan ikon baterai dengan sumber daya dan status pengisian daya.

  • Baki sistem desktop (hanya Windows 10 untuk edisi desktop):

    Windows menampilkan ikon baterai dengan sumber daya dan status pengisian daya. Ketika pengguna mengklik ikon baterai, mereka dapat melihat informasi seperti kapasitas yang tersisa, perkiraan waktu tersisa, dan detail per baterai (jika dilengkapi dengan beberapa baterai).

  • Bilah Status (khusus SKU Seluler):

    Windows menampilkan ikon baterai dengan sumber daya dan status pengisian daya. Saat pengguna menggesek ke bawah dari bagian atas layar untuk memperluas pusat tindakan, mereka dapat melihat persentase baterai aktual.

  • Setelan Penghemat Baterai:

    Di halaman pengaturan Penghemat Baterai (Pengaturan -> Sistem -> Penghemat Baterai), Windows menampilkan persentase baterai keseluruhan, status baterai (Pengisian vs. Pengisian Daya) dan Perkiraan Waktu Tersisa untuk mengisi daya/mengeluarkan daya.

Untuk platform yang mampu menganggur S0, jika tampilan terlihat, Windows secara singkat menyalakan layar ketika sistem tersambung atau terputus dari pengisi daya untuk memberi tahu pengguna tentang perubahan sumber daya.

Indikator pengisian daya perangkat keras platform

Ikon yang disertakan dalam skenario alamat hanya Windows di mana Windows berjalan dan tampilan terlihat oleh pengguna. Namun, indikator di layar tidak terlihat ketika sistem dimatikan atau status S0 Menganggur di mana tampilan mati. Karena pengguna tidak dapat melihat isjin visual di layar, platform mungkin menyertakan indikator pengisian daya fisik untuk menunjukkan adanya daya.

Bagian berikut memberikan rekomendasi kami untuk mengimplementasikan keyboard dan mice/touchpad pada platform S0 Idle dengan solusi docking. Bagian ini juga berbicara tentang tantangan dan prinsip bersama dengan solusi potensial. Kedua solusi potensial berlaku untuk dermaga stasium bertenaga A/C dan seluler.

Mengekspos subsistem daya dan pengisian daya ke Windows

Setiap perangkat seluler yang menjalankan Windows mencakup satu atau beberapa baterai dan sumber daya seperti adaptor AC. Informasi dari subsistem ini menyampaikan status manajemen daya kepada pengguna. Status ini mencakup sisa kapasitas baterai kapan saja, status adaptor AC dan pengisian baterai, dan perkiraan waktu baterai yang tersisa. Informasi subsistem daya diekspos dalam pengukur baterai Windows dan utilitas diagnostik manajemen daya lainnya.

Bagian berikut memberikan rekomendasi kami untuk mengimplementasikan keyboard dan mice/touchpad pada platform S0 Idle dengan solusi docking. Bagian ini juga berbicara tentang tantangan dan prinsip bersama dengan solusi potensial. Kedua solusi potensial berlaku untuk dermaga stasium bertenaga A/C dan seluler.

Topologi perangkat keras subsistem daya umum

Umumnya, Windows mengharapkan salah satu dari dua topologi perangkat keras untuk subsistem daya dan pengisian daya.

Gambar berikut mengilustrasikan topologi pertama yang menggunakan Pengontrol Tersemat platform, yang umum di perangkat yang ada yang menjalankan Windows. Pengontrol Tersemat melakukan beberapa fungsi di perangkat seluler, termasuk kontrol sumber daya, manajemen pengisian daya baterai, deteksi tombol daya/sakelar, dan input keyboard dan mouse yang kompatibel dengan PS/2. Pengontrol yang disematkan biasanya terhubung ke silikon inti melalui bus Jumlah Pin Rendah (LPC). Kueri Windows dan diberi tahu tentang informasi subsistem daya melalui antarmuka pengontrol tersemat ACPI.

daya dan pengisian subsistem dengan pengontrol tertanam

Gambar berikutnya menggambarkan topologi kedua, yang menggunakan pengontrol pengisi daya baterai dan komponen pengukur bahan bakar yang terhubung langsung ke silikon inti platform melalui bus periferal ringan seperti I²C. Dalam konfigurasi ini, kueri Windows dan diberi tahu tentang perubahan subsistem daya melalui komunikasi melalui bus I²C. Alih-alih menggunakan driver perangkat untuk subsistem baterai atau pengisian daya, lingkungan metode kontrol ACPI diperluas dengan dukungan untuk Wilayah Operasi Simple Peripheral (SPB). Wilayah operasi SPB memungkinkan kode metode kontrol ACPI untuk berkomunikasi dengan pengontrol pengisi daya baterai dan komponen pengukur bahan bakar yang terhubung ke silikon inti melalui I²C.

daya dan pengisian subsistem menggunakan pengontrol platform

Model driver subsistem baterai dan daya

Windows memiliki model driver perangkat baterai dan subsistem daya yang kuat. Informasi manajemen daya disampaikan kepada manajer daya Windows melalui driver perangkat baterai, lalu diagregasi dan diekspos ke antarmuka pengguna Windows melalui IRP perangkat baterai dan satu set API perangkat lunak manajemen daya.

Model driver baterai adalah model port/miniport—yaitu, model baterai dan antarmuka didefinisikan sedemikian rupa sehingga jenis baterai baru dapat diekspos melalui miniport. Namun, dalam praktiknya, hanya ada dua miniport yang memiliki penggunaan signifikan dalam ekosistem Windows - driver miniport baterai yang mendukung baterai metode kontrol ACPI dan driver miniport baterai HID untuk perangkat Uninterruptible Power Supply (UPS) yang terpasang USB.

model driver baterai dan sistem daya

Semua PC diharapkan untuk mengekspos baterai dan mengisi subsistem melalui antarmuka metode kontrol ACPI. Antarmuka miniport baterai tidak boleh digunakan untuk subsistem pengisian daya baterai khusus platform. Ada metode kontrol yang ditentukan spesifikasi ACPI yang memungkinkan Windows melakukan polling untuk informasi dan status baterai. Demikian pula, ada model berbasis peristiwa untuk memungkinkan platform perangkat keras memberi tahu Windows tentang perubahan baterai dan sumber daya, seperti transisi dari AC ke daya baterai.

Polling status

Manajer daya Windows secara berkala meminta informasi status dari baterai termasuk sisa kapasitas pengisian daya dan laju pengurasan saat ini. Permintaan ini berasal dari manajer daya, komponen antarmuka pengguna tingkat lebih tinggi, atau aplikasi. Manajer daya mengubah permintaan menjadi Paket Permintaan I/O (IRP) ke perangkat baterai. Ketika baterai diekspos melalui antarmuka metode kontrol ACPI, driver baterai metode kontrol (cmbatt.sys) menjalankan metode kontrol ACPI yang sesuai. Dalam kasus informasi status, metode _BST (status baterai) dijalankan.

Metode _BST mengharuskan firmware ACPI untuk mendapatkan informasi saat ini dari subsistem daya dan kemudian mengemas informasi tersebut dalam buffer dengan format yang ditentukan oleh spesifikasi ACPI. Kode khusus yang diperlukan untuk mengakses status baterai baik dari pengontrol yang disematkan atau pengisi daya baterai yang terhubung melalui I²C terkandung dalam firmware ACPI dan bagian dari kode yang terdiri dari metode _BST. Hasil bersih dari metode _BST adalah buffer informasi yang diperlukan yang dikembalikan ke driver baterai metode kontrol. Driver baterai metode kontrol akhirnya mengonversi buffer ke format yang diperlukan oleh pengandar baterai dan pengelola daya Windows.

Pemberitahuan perubahan status

Subsistem daya dan baterai akan menghasilkan beberapa pemberitahuan ke Windows untuk perubahan status, termasuk transisi dari AC ke daya baterai. Polling oleh Windows untuk perubahan status ini tidak praktis mengingat frekuensi tinggi di mana polling akan diperlukan. Oleh karena itu, platform perangkat keras harus menggunakan model berbasis peristiwa untuk memberi tahu Windows ketika status baterai berubah secara signifikan.

Ketika status baterai berubah, termasuk kapasitas yang tersisa atau status pengisian daya, firmware ACPI mengeluarkan Notify (0x80) pada perangkat baterai metode kontrol. Driver baterai metode kontrol Windows kemudian mengevaluasi metode _BST dan mengembalikan informasi yang diperbarui ke manajer daya.

Ketika data statis baterai berubah, termasuk kapasitas pengisian daya penuh terakhir, kapasitas desain, dan jumlah siklus, firmware ACPI mengeluarkan Notify (0x81) pada perangkat baterai metode kontrol. Driver baterai metode kontrol Windows kemudian mengevaluasi metode _BIX dan mengembalikan informasi yang diperbarui ke manajer daya.

Platform ini mengganggu lingkungan firmware ACPI melalui Gangguan Kontrol Sistem (SCI) dalam kasus platform yang dilengkapi Pengontrol Tertanam dan melalui GPIO dalam kasus platform dengan perangkat keras subsistem baterai yang terhubung langsung ke silikon inti.

Operasi ACPI dengan pengontrol yang disematkan

Platform yang memiliki subsistem baterai dan daya yang terhubung ke pengontrol tertanam umum menggunakan wilayah operasi ACPI Embedded Controller untuk memfasilitasi komunikasi antara lingkungan metode kontrol ACPI dan perangkat keras platform.

Firmware ACPI harus menentukan pengontrol yang disematkan di namespace ACPI seperti yang dijelaskan dalam bagian 12.11.1 dari spesifikasi ACPI, termasuk:

  • Simpul Device() untuk pengontrol yang disematkan.
  • Objek _HID yang menunjukkan perangkat adalah pengontrol tersemat.
  • Objek _CRS untuk menunjukkan sumber daya IO untuk pengontrol yang disematkan.
  • Objek _GPE yang menentukan SCI untuk pengontrol yang disematkan.
  • Wilayah operasi yang menjelaskan informasi yang terkandung dalam pengontrol tertanam yang dapat diakses oleh kode metode kontrol ACPI lainnya di namespace layanan, termasuk status baterai dan metode informasi.

Detail lengkap dijelaskan dalam bagian 12 spesifikasi ACPI.

Mengakses informasi baterai dari pengontrol yang disematkan

Metode kontrol ACPI mengakses informasi dari pengontrol yang disematkan dengan membaca nilai yang dijelaskan di wilayah operasi pengontrol yang disematkan.

Memberi tahu sistem operasi ketika status baterai berubah

Ketika pengontrol tersemat mendeteksi perubahan status baterai, termasuk perubahan status pengisian daya atau kapasitas yang tersisa seperti yang ditentukan oleh _BTP, pengontrol yang disematkan menghasilkan SCI dan mengatur bit SCI_EVT dalam register perintah status pengontrol tersemat (EC_SC). Driver Windows ACPI akan berkomunikasi dengan pengontrol yang disematkan dan mengeluarkan perintah kueri (QR_EC) untuk meminta informasi spesifik tentang pemberitahuan yang akan dikeluarkan. Pengontrol yang disematkan kemudian menetapkan nilai byte yang sesuai dengan metode _QXX yang akan dijalankan. Misalnya, pengontrol tersemat dan firmware ACPI dapat menentukan nilai 0x33 menjadi pembaruan informasi status baterai. Ketika pengontrol yang disematkan menetapkan nilai 0x33 sebagai pemberitahuan, driver ACPI akan menjalankan metode _QXX. Isi metode _QXX biasanya akan menjadi Notify(0x80) pada perangkat baterai metode kontrol di namespace layanan.

Operasi ACPI dengan sistem pengisian daya yang terhubung dengan I²C

Platform juga dapat menghubungkan subsistem baterai dan daya mereka yang terhubung ke chipset inti melalui bus serial berdaya rendah seperti I²C. Dalam desain ini, wilayah operasi ACPI GenericSerialBus digunakan untuk berkomunikasi antara metode kontrol ACPI dan perangkat keras subsistem baterai. Menghubungkan perangkat keras subsistem baterai ke gangguan GPIO memungkinkan metode kontrol ACPI dijalankan ketika status baterai berubah.

Ketika perangkat keras subsistem baterai dan daya terhubung melalui I²C, firmware ACPI harus menentukan:

  • Node Device() untuk perangkat pengontrol GPIO tempat interupsi I²C terhubung, termasuk:

    • _HID objek yang menjelaskan ID perangkat keras pengontrol GPIO.
    • _CSR objek yang menjelaskan sumber daya interupsi dan perangkat keras pengontrol GPIO.
    • _AEI objek yang memetakan satu atau beberapa baris GPIO ke eksekusi metode peristiwa ACPI. Ini memungkinkan metode ACPI dijalankan sebagai respons terhadap gangguan baris GPIO.
  • Simpul Device() untuk pengontrol I²C tempat pengukur bahan bakar baterai dan perangkat keras pengisian daya terhubung, termasuk:

    • _HID dan _CSR objek yang menjelaskan ID perangkat keras dan sumber daya pengontrol I²C.
    • GenericSerialBus OperationRegion dalam cakupan perangkat I²C yang menjelaskan daftar perintah virtual untuk perangkat I²C.
    • Definisi bidang dalam GenericSerialBus OperationRegion. Definisi bidang memungkinkan kode ASL di luar perangkat I²C untuk mengakses daftar perintah virtual untuk perangkat I²C.

Menjelaskan pengontrol GPIO dan pemetaan garis GPIO ke peristiwa ACPI memungkinkan metode kontrol untuk status baterai dan pemberitahuan dijalankan ketika GPIO mengganggu perangkat I²C dinaikkan. Menjelaskan wilayah operasi GenericSerialBus memungkinkan kode ACPI untuk status baterai berkomunikasi melalui bus I²C dan membaca register dan informasi dari pengukur bahan bakar baterai dan subsistem pengisian daya.

Mengakses informasi baterai dari sistem pengisian daya

Status baterai dapat dijalankan dengan metode kontrol ACPI dengan mengirim dan menerima perintah melalui bus I²C tempat perangkat keras subsistem baterai terhubung. Kode metode kontrol yang mendukung status dan metode informasi statis baterai membaca dan menulis data dari wilayah operasi GenericSerialBus yang dijelaskan di namespace ACPI. Kode metode kontrol membaca data dari perangkat pengukur bahan bakar atau informasi statis tentang kapasitas baterai dan jumlah siklus melalui bus I²C melalui wilayah operasi GenericSerialBus.

Memberi tahu Windows ketika status baterai berubah

Gangguan dapat dihasilkan oleh perangkat keras subsistem baterai ketika status berubah dan gangguan terhubung secara fisik ke garis GPIO pada silikon inti. Baris GPIO dapat dipetakan ke eksekusi metode kontrol tertentu menggunakan objek _AEI di bawah pengontrol GPIO yang dijelaskan dalam ACPI. Ketika gangguan GPIO terjadi, subsistem Windows ACPI menjalankan metode yang terkait dengan baris GPIO tertentu yang pada gilirannya dapat melakukan Notify() pada perangkat baterai metode kontrol, menyebabkan Windows mengevaluasi kembali status dan metode informasi statis untuk memperbarui status baterai.

Implementasi ACPI objek catu daya

Firmware ACPI harus mengimplementasikan perangkat sumber daya ACPI. Objek ini harus melaporkan dirinya dengan ID perangkat keras (_HID) "ACPI0003". Objek ini juga harus menerapkan metode ACPI _PSR (Power Source). Metode ini mengembalikan status sumber daya dan menyampaikan apakah sumber daya saat ini online (daya AC) atau offline (pada daya baterai). Semua sumber daya input untuk sistem harus di-multipleks melalui satu metode _PSR. Misalnya, _PSR harus menyampaikan secara online jika sistem didukung melalui konektor laras DC atau konektor dock terpisah. Jangan gunakan beberapa Perangkat Sumber Daya ACPI.

Metode _PSR hanya boleh melaporkan daya online (AC) ketika sistem terhubung ke daya utama. Ketika status _PSR berubah, platform harus menghasilkan interupsi dan Notify(0x80) pada perangkat di namespace ACPI. Ini harus dilakukan segera setelah perubahan status fisik terdeteksi oleh platform.

Implementasi ACPI informasi statis baterai

Firmware ACPI harus menerapkan metode acpi _BIX untuk setiap baterai yang memberikan informasi statis tentang baterai, termasuk kapasitas desain, jumlah siklus, dan nomor seri. Tabel di bawah ini memperluas definisi bidang yang dijelaskan dalam spesifikasi ACPI dan menghitung persyaratan khusus Windows untuk informasi ini.

Bidang Deskripsi Persyaratan khusus Windows
Revisi Menunjukkan revisi _BIX Harus diatur ke 0x0
Unit Daya Menentukan unit yang dilaporkan oleh perangkat keras. Baik: MA/MAh atau mW/mWh. Harus diatur ke 0x0 untuk menunjukkan unit adalah mW/mWh
Kapasitas Desain Menunjukkan kapasitas asli baterai dalam mWh Harus diatur ke nilai yang akurat dan tidak dapat 0x0 atau 0xFFFFFFFF
Kapasitas Pengisian Daya Penuh Terakhir Menunjukkan kapasitas pengisian daya penuh baterai saat ini

Harus diatur ke nilai yang akurat dan tidak dapat 0x0 atau 0xFFFFFFFF

Nilai ini harus diperbarui setiap kali jumlah siklus meningkat.

Teknologi Baterai Menunjukkan apakah baterai dapat diisi ulang atau sekali pakai. Harus diatur ke 0x1 untuk menunjukkan baterai dapat diisi ulang
Tegangan Desain Menunjukkan tegangan desain baterai

Harus diatur ke tegangan desain baterai ketika baru dalam mV.

Tidak boleh diatur ke 0x0 atau 0xFFFFFFFF.

Kapasitas desain Peringatan Menunjukkan tingkat peringatan baterai rendah yang disediakan OEM. Nilai ini diabaikan oleh Windows.
Kapasitas desain Rendah Menunjukkan tingkat baterai kritis di mana Windows harus segera Dimatikan atau Hibernasi sebelum sistem mati. Harus diatur ke nilai antara 0x0 dan 5% dari kapasitas desain baterai.
Granularitas Kapasitas Baterai 1 Menunjukkan jumlah minimum sisa perubahan biaya yang dapat dideteksi oleh perangkat keras antara Kapasitas Desain Peringatan dan Kapasitas Desain Rendah. Harus diatur ke nilai yang tidak lebih besar dari 1% dari kapasitas desain baterai.
Granularitas Kapasitas Baterai 2 Menunjukkan jumlah minimum sisa perubahan biaya yang dapat dideteksi oleh perangkat keras antara Kapasitas Biaya Penuh Terakhir dan Kapasitas Desain Peringatan. Harus diatur ke nilai yang tidak lebih besar dari 75mW (sekitar .25% dari baterai 25Whr) yaitu (1/400) dari kapasitas desain baterai.
Jumlah Siklus Menunjukkan jumlah siklus baterai. Harus diatur ke nilai yang lebih besar dari 0x0. Tidak boleh diatur ke 0xFFFFFFFF.
Akurasi Pengukuran Menunjukkan akurasi pengukuran kapasitas baterai. Harus diatur ke 95.000 atau lebih baik, menunjukkan akurasi 95% atau lebih baik.
Waktu Pengambilan Sampel Maks Waktu pengambilan sampel maksimum yang didukung antara dua evaluasi _BST berturut-turut yang akan menunjukkan perbedaan dalam kapasitas yang tersisa. Tidak ada persyaratan khusus.
Waktu Pengambilan Sampel Min Waktu pengambilan sampel minimum yang didukung antara dua evaluasi _BST berturut-turut yang akan menunjukkan perbedaan kapasitas yang tersisa Tidak ada persyaratan khusus.
Interval Rata-Rata Maks Interval rata-rata maksimum, dalam milidetik, didukung oleh pengukur bahan bakar baterai. Tidak ada persyaratan khusus.
Interval Rata-rata Min Interval rata-rata minimum, dalam milidetik, didukung oleh pengukur bahan bakar baterai. Tidak ada persyaratan khusus.
Nomor Model Nomor model baterai yang disediakan OEM Tidak boleh NULL.
Nomor Seri Nomor seri baterai yang disediakan OEM Tidak boleh NULL.
Jenis Baterai Informasi jenis baterai yang disediakan OEM Tidak ada persyaratan khusus.
Informasi OEM Informasi yang disediakan OEM Tidak ada persyaratan khusus.

Implementasi ACPI informasi status real time baterai

Firmware ACPI harus menerapkan metode acpi _BST untuk setiap baterai yang memberikan informasi status real time tentang baterai, termasuk kapasitas yang tersisa dan laju pengurasan saat ini. Tabel di bawah ini memperluas definisi bidang yang dijelaskan dalam spesifikasi ACPI dan menghitung persyaratan khusus Windows untuk informasi ini.

Bidang Deskripsi Persyaratan khusus Windows
Status Baterai Menunjukkan apakah baterai saat ini sedang diisi dayanya, sedang dibuang atau dalam keadaan kritis. Status Baterai harus melaporkan pengisian daya hanya jika baterai sedang diisi dayanya. Demikian juga, Status Baterai HARUS melaporkan pengisian daya hanya jika baterai habis. Baterai yang tidak mengisi daya maupun pengisian daya tidak boleh melaporkan bit.
Tarif Baterai Saat Ini Menyediakan laju pengurasan saat ini dalam mW dari baterai.

Harus lebih besar dari 0x0 dan kurang dari 0xFFFFFFFF.

Harus akurat dalam nilai Akurasi Pengukuran dalam _BIX.

Kapasitas Sisa Baterai Menyediakan kapasitas baterai yang tersisa dalam mWh.

Harus lebih besar dari 0x0 dan kurang dari 0xFFFFFFFF.

Harus akurat dalam nilai Akurasi Pengukuran dalam _BIX

Tegangan Hadir Baterai Menunjukkan tegangan saat ini di seluruh terminal baterai. Harus antara nilai 0x0 dan 0xFFFFFFFF dalam mV.

Ketika data apa pun dalam _BST berubah, platform harus menghasilkan gangguan dan Notify(0x80) pada perangkat baterai di namespace ACPI. Ini harus dilakukan segera setelah perubahan status fisik terdeteksi oleh platform. Ini termasuk perubahan apa pun di bidang Status Baterai untuk bit pengisian daya (yaitu Bit0) atau pengisian daya (yaitu Bit1).

Selain itu, platform harus mengimplementasikan metode titik perjalanan _BTP-Battery. _BTP memungkinkan Windows menentukan sisa ambang kapasitas yang ketika disilangkan, platform harus menghasilkan interupsi dan Notify(0x80) pada perangkat baterai di namespace ACPI. Metode _BTP mencegah Windows perlu melakukan polling baterai secara berkala.

Metode kontrol baterai

Spesifikasi ACPI mampu untuk perangkat dan metode kontrol khusus sistem operasi melalui Metode Device-Specific atau metode kontrol _DSM. _DSM dijelaskan dalam bagian 9.14.1 dari spesifikasi ACPI.

Windows mendukung metode _DSM berikut untuk perangkat baterai metode kontrol.

Arah tarif biaya termal

Bidang Nilai Deskripsi
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID yang menunjukkan ekstensi ke dukungan driver baterai metode kontrol Windows
ID Revisi 0x0 Revisi pertama kemampuan ini
Indeks Fungsi 0x1 Mengatur pembatasan pengisian daya baterai
Argumen Batas Termal

Nilai bilangan bulat dari 0 hingga 100 menunjukkan batas biaya termal.

Nilai 40% menunjukkan baterai harus diisi dengan tarif maksimum 40%.

Nilai 0% menunjukkan pengisian daya baterai harus dihentikan sampai metode ini dipanggil lagi.

Nilai yang Dikembalikan Tidak ada n/a

Baterai yang dapat diperbaiki pengguna

Bidang Nilai Deskripsi
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID yang menunjukkan ekstensi ke dukungan driver baterai metode kontrol Windows
ID Revisi 0x0 Revisi pertama kemampuan ini
Indeks Fungsi 0x2 Menunjukkan _DSM ini adalah untuk OSPM untuk menentukan apakah perangkat baterai dapat dilayanan pengguna atau tidak.
Argumen Tidak ada Tidak ada argumen yang diperlukan.
Nilai yang Dikembalikan Paket yang berisi satu bilangan bulat.

0x0 jika baterai tidak dapat dilayankan pengguna dan tidak dapat digantikan oleh pengguna akhir, atau dapat digantikan oleh pengguna akhir dengan alat tambahan.

0x1 apakah baterai dapat digantikan oleh pengguna akhir tanpa alat tambahan.

Diperlukan pengawas pengisian daya

Bidang Nilai Deskripsi
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID yang menunjukkan ekstensi ke dukungan driver baterai metode kontrol Windows
ID Revisi 0x0 Revisi pertama kemampuan ini
Indeks Fungsi 0x3 Menunjukkan _DSM ini adalah untuk OSPM untuk menentukan apakah baterai metode kontrol memerlukan pengaturan ulang pengawas berkala untuk mempertahankan pengisian daya arus tinggi dan periode di mana pengawas harus diatur ulang
Argumen Tidak ada Tidak ada argumen yang diperlukan.
Nilai yang Dikembalikan Paket yang berisi satu bilangan bulat. 0x0 jika baterai tidak memerlukan layanan pengawas.

Nilai yang termasuk 0x0000001e dan 0x12C menunjukkan interval poling maksimum dalam hitungan detik.

Semua nilai lain diabaikan dan diperlakukan sebagai 0x0 dan pengaturan ulang pengawas tidak diperlukan.

Jika interval pengawas yang valid ditentukan, Windows akan menjalankan metode _BST pada interval tidak lebih dari nilai pengawas yang ditentukan setiap kali nilai BatteryState dalam metode _BST diatur ke pengisian daya.

Pembaruan dinamis nilai ini tidak didukung.

Driver Miniport Baterai Pihak Ke-3

Dalam Windows 10, OEM dan IHV dapat mengembangkan driver miniport baterai pihak ke-3 mereka sendiri untuk menggantikan driver Microsoft cmbatt.sys dan berkomunikasi langsung dengan perangkat keras baterai. Contoh driver baterai disediakan oleh Microsoft di GitHub dan sebagai bagian dari kit sampel WDK .

Pengisian daya USB (Windows 10 untuk edisi desktop)

Microsoft mengenali nilai dalam menyediakan opsi untuk mendukung pengisian daya USB perangkat seluler. Dengan upaya standardisasi seperti langkah Uni Eropa untuk menstandarkan pengisi daya ponsel, pengisi daya USB tersedia secara luas dan bekerja di berbagai perangkat termasuk Windows Phone, pemutar MP3, perangkat GNSS, dll. Microsoft memahami nilai penawaran pengisi daya tunggal yang dapat digunakan untuk menagih beberapa perangkat termasuk perangkat yang menjalankan Windows. Selanjutnya, mengingat dukungan industri yang luas untuk pengisian daya USB ada manfaat tambahan yang mengurangi biaya dan dampak lingkungan.

Dimulai dengan Windows 8, perangkat seluler dapat ditenagai dan/atau diisi dayanya melalui USB asalkan persyaratan pengisian daya baterai yang diuraikan di bawah ini terpenuhi. Selain itu, ada sejumlah persyaratan khusus USB yang harus dipenuhi untuk memastikan pengalaman pengguna yang berkualitas.

  1. Daya/pengisian daya USB harus diimplementasikan sepenuhnya di firmware platform. Dukungan tidak boleh memerlukan sistem operasi, driver, atau aplikasi.

  2. Perangkat TIDAK BOLEH menghitung ketika tersambung ke perangkat lain. Akibatnya, perangkat tidak akan mengenakan biaya ketika terhubung ke port USB PC standar karena port ini dibatasi hingga 500mA secara default. Satu-satunya pengecualian adalah ketika port ini digunakan untuk penelusuran kesalahan dan untuk pemrograman firmware pabrik awal.

  3. Perangkat mendukung pengisian daya dari port pengisian daya USB khusus. Perangkat harus mengisi daya saat terhubung ke pengisi daya yang sesuai dengan spesifikasi Pengisian Daya Baterai USB versi 1.2. Perangkat tidak boleh menggambar lebih dari 1,5A per standar pengisian daya saat terhubung ke pengisi daya USB standar. OEM dapat memilih untuk mendukung tingkat saat ini yang lebih tinggi asalkan kondisi berikut terpenuhi:

    • Perangkat secara otomatis mendeteksi jenis pengisi daya dan biaya dengan tarif yang sesuai untuk jenis pengisi daya tertentu.
    • Perangkat dan pengisi daya memenuhi semua standar kelistrikan dan keselamatan yang relevan.
    • OEM mengirimkan pengisi daya dan kabel terkait dengan perangkat.
  4. Pengisian daya USB didukung melalui resepsi ulang micro-AB standar, USB-C (disarankan) atau konektor dock eksklusif. Resepsi ulang micro-B TIDAK diizinkan pada perangkat. Jika menggunakan konektor dock eksklusif, OEM harus mengirimkan kabel yang sesuai dengan perangkat untuk mengaktifkan pengisian daya dari pengisi daya USB standar.

  5. Jika port micro-AB diimplementasikan, perangkat harus secara otomatis mendeteksi jenis kabel, konfigurasi, dan mengasumsikan peran yang sesuai. Jika steker micro-B dimasukkan dan penelusuran kesalahan tidak diaktifkan pada port, peran pengisi daya harus diasumsikan. Jika steker micro-B dimasukkan dan penelusuran kesalahan diaktifkan pada port, peran debug harus diasumsikan (yaitu pengisian daya tidak didukung). Jika steker micro-A dimasukkan, peran host USB diasumsikan di mana perangkat USB yang terpasang dikenali oleh Windows.

  6. Jika port micro-AB juga berfungsi sebagai port debug, perangkat harus menyediakan sarana melalui firmware untuk beralih antara peran pengisi daya dan debug. Pengaturan default seperti yang dikirim ke pengguna akhir harus menonaktifkan debug.

  7. Jika port micro-AB juga berfungsi sebagai port debug, perangkat harus menyediakan jalur daya input alternatif melalui konektor barel khusus atau konektor dock kepemilikan.

Perancang platform dan daftar periksa pelaksana

Anda dapat menggunakan daftar periksa berikut untuk memvalidasi desain platform dan firmware sistem yang mematuhi panduan subsistem baterai dan pengisian daya yang diuraikan.

Subsistem baterai dan daftar periksa implementasi firmware ACPI

Perancang sistem harus memastikan mereka telah menyelesaikan tugas-tugas berikut di firmware ACPI mereka untuk memastikan pelaporan informasi subsistem baterai dan daya yang benar ke Windows:

  • Tambahkan objek Device() untuk setiap perangkat baterai di namespace ACPI.

  • Setiap perangkat baterai harus menyediakan metode kontrol dan objek berikut:

    • _HID dengan nilai PNP0C0A.
    • _BIX-Informasi Baterai Diperpanjang:

    Menyampaikan informasi statis baterai termasuk kapasitas pengisian daya penuh terakhir, kapasitas desain, dan jumlah siklus.

    • Status Baterai _BST:

      Menyampaikan status baterai saat ini, termasuk kapasitas yang tersisa, laju pengosongan, dan status pengisian daya.

    • _BTP-Battery Trip Point:

      Memungkinkan model status baterai berbasis peristiwa untuk mengurangi pekerjaan berkala untuk polling. _BTP memungkinkan Windows menentukan ambang batas kapasitas pengisian daya yang tersisa di mana platform harus dikeluarkan di Notify(0x80) pada perangkat baterai untuk meminta Windows memperbarui informasi status baterai.

    • Status _STA-Umum:

      Memungkinkan Windows untuk mengetahui apakah baterai ada di perangkat di mana baterai mungkin dapat dilepas atau di mana mungkin ada baterai di dermaga portabel.

  • Tambahkan satu objek Perangkat() untuk adaptor AC/Sumber Daya di namespace ACPI.

  • Perangkat sumber daya harus menyediakan metode dan objek kontrol berikut:

    • _HID dengan nilai ACPI0003

    • sumber daya _PSR:

      Menyampaikan apakah sumber daya saat ini online (daya AC) atau offline (pada daya baterai). Semua sumber daya input untuk perangkat harus di-multipleks melalui metode _PSR. Misalnya, _PSR harus menyampaikan secara online jika perangkat didukung melalui konektor barel DC atau konektor dock terpisah. Jangan gunakan beberapa Perangkat Sumber Daya ACPI.

  • Metode _BIX harus mendukung bidang dan batasan yang dijelaskan dalam informasi statis baterai di atas:

    • Bidang Revisi harus diatur ke 0x0.
    • Bidang Power Unit harus diatur dari 0x0.
    • Nilai Kapasitas Desain dan Kapasitas Pengisian Daya Penuh Terakhir harus diatur ke nilai yang akurat dari subsistem baterai dan pengisian daya dan tidak diatur sama dengan 0xFFFFFFFF atau 0x00000000.
    • Bidang Teknologi Baterai harus diatur ke 0x1.
    • Bidang Tegangan Desain harus diatur secara akurat dan tidak sama dengan 0x00000000 atau 0xFFFFFFFF.
    • Kapasitas Desain Rendah harus diatur ke nilai minimum yang diperlukan untuk Hibernasi atau Matikan sistem dari status sepenuhnya aktif.
    • Bidang Granularitas Kapasitas Baterai 1 dan Granularitas Kapasitas Baterai 2 harus diatur ke nilai yang tidak lebih besar dari 1% dari kapasitas desain baterai.
    • Bidang Jumlah Siklus harus diisi secara akurat dari subsistem baterai.
    • Bidang Akurasi Pengukuran harus diatur ke 80.000d atau lebih baik.
    • Bidang Nomor Model dan Nomor Seri tidak boleh diatur ke NULL.
  • Berikan metode _BST yang memungkinkan Windows melakukan polling untuk status baterai real time. Bidang dalam metode _BST semuanya harus dikembalikan secara dinamis dari subsistem pengisian daya dan baterai yang mendasar. Akurasinya harus berada dalam nilai Akurasi Pengukuran dalam metode _BIX.

  • Berikan metode _BTP yang memungkinkan Windows menentukan sisa ambang kapasitas pengisian daya di mana platform akan mengganggu Windows dengan Notifikasi (0x80) pada perangkat baterai.

  • Pastikan Notifikasi (0x80) hanya dikeluarkan sebagai respons terhadap perubahan status baterai atau _BTP perjalanan batas kapasitas pengisian daya. Jangan jalankan Notify(0x80) secara berkala.

  • Ketika tingkat baterai mencapai nilai yang ditentukan dalam _BIX. DesignCapacityofLow, platform harus menghasilkan Notify(0x80) pada perangkat baterai metode kontrol.

  • Untuk sistem dengan beberapa baterai, terapkan sepenuhnya perangkat baterai metode kontrol untuk setiap baterai.

    • Baterai pertama di namespace harus menjadi baterai utama bagi sistem untuk membantu dalam tujuan penelusuran kesalahan.
  • Terapkan metode _DSM di bawah setiap perangkat baterai untuk menunjukkan apakah baterai dapat dilayankan pengguna.

  • Terapkan metode _DSM jika pengaturan ulang pengawas berkala diperlukan selama pengisian daya dan Windows akan menjamin eksekusi berkala metode _BST dalam jendela polling tersebut.

  • Terapkan metode _DSM jika kontrol laju pengisian daya baterai diperlukan untuk model termal pada platform.