Condividi tramite


Batteria e ricarica

Esperienza utente di ricarica della batteria

Questo argomento illustra i consigli per la batteria e la ricarica in Windows 10. Tutti i dispositivi che eseguono Windows hanno un'esperienza di ricarica della batteria coerente, indipendentemente dal fattore di forma, dal set di istruzioni o dall'architettura della piattaforma. Di conseguenza, gli utenti hanno un'esperienza coerente e di qualità con la ricarica della batteria.

  1. La ricarica si verifica sempre quando si è connessi al caricatore.

    Ad eccezione dei casi di guasto della batteria, un dispositivo che esegue Windows è sempre in grado di ricaricare la batteria ogni volta che è connesso al caricatore.

  2. Windows può sempre avviarsi quando è connesso al caricatore.

    • Windows 10 per le edizioni desktop (Home, Pro, Enterprise ed Education):

      Se il dispositivo si trova nello stato di arresto S5, può essere sempre avviato in Windows quando è connesso al caricatore, indipendentemente dal livello di carica della batteria e dalla presenza della batteria, se la batteria è rimovibile.

    • Windows 10 Mobile:

      Una batteria deve essere presente e avere un livello di carica sufficiente per l'avvio del sistema.

  3. L'hardware gestisce in modo autonomo la ricarica.

    L'hardware addebita la batteria del dispositivo senza richiedere firmware, Windows, driver o altro software in esecuzione nelle CPU principali. Questo requisito si applica solo alle Windows 10 per i sistemi delle edizioni desktop. Windows 10 Mobile sistemi possono richiedere il supporto di un'app di ricarica UEFI e/o di altri componenti software per caricare la batteria.

  4. La ricarica si interrompe automaticamente quando la batteria è completamente carica o quando si verifica un errore.

    L'hardware arresta automaticamente la ricarica quando la batteria è completamente carica. Questa operazione viene eseguita senza richiedere firmware, Windows, driver o altro software in esecuzione nelle CPU principali. Se c'è una batteria o una condizione di guasto termico, anche la ricarica viene arrestata automaticamente.

La ricarica si verifica quando si è connessi al caricatore

Gli utenti si aspettano che il dispositivo venga addebitato ogni volta che è connesso al caricatore. Di conseguenza, l'hardware deve sempre tentare di caricare la batteria ogni volta che il dispositivo è connesso al caricatore indipendentemente dallo stato di alimentazione. Questa aspettativa vale per tutti gli stati di alimentazione, tra cui attivo (S0), Sospensione (S3), Ibernazione (S4), arresto (S5), disco rigido (G2/G3) e S0 Inattività. La ricarica può interrompersi una volta che la batteria è completamente carica o se si verifica una condizione di errore.

Non consigliamo un progetto che carica la batteria a una velocità ridotta quando Windows o il firmware non è stato avviato o in esecuzione. Ad esempio, la batteria può caricarsi a una velocità più lenta quando il sistema è completamente spento e collegato al caricatore e caricarsi a una velocità più veloce quando il dispositivo viene avviato e il firmware ACPI può essere usato per monitorare periodicamente la batteria.

Infine, un design può caricare la batteria a una velocità inferiore quando il sistema si trova in una condizione termica. In questo scenario, il calore può essere ridotto rallentando o eliminando del tutto la ricarica della batteria. Le condizioni termiche sono l'eccezione in qualsiasi buona progettazione del sistema.

Windows è sempre avviabile quando si è connessi all'alimentazione AC

  • Windows 10 per edizioni desktop

    Gli utenti si aspettano che possano avviare immediatamente e usare il dispositivo ogni volta che è connesso al caricatore. Di conseguenza, il dispositivo deve essere sempre avviato e completamente utilizzabile quando è connesso all'alimentazione AC. Questo vale indipendentemente dal livello di carica della batteria, dallo stato della batteria/caricatore e dalla presenza della batteria (se la batteria è rimovibile).

    Se il dispositivo richiede una capacità minima della batteria per avviare il firmware e Windows, l'hardware deve garantire che la capacità della batteria sia sempre riservata dalla piattaforma. La capacità della batteria riservata non deve essere esposta a Windows.

  • Windows 10 Mobile

    Quando il sistema è connesso all'alimentazione AC e la batteria è presente, il sistema deve tentare di avviare il sistema operativo, purché la batteria abbia una carica sufficiente per alimentare il sistema durante il processo di avvio.

L'hardware gestisce in modo autonomo la ricarica

Come specificato in precedenza, gli utenti si aspettano che il dispositivo venga addebitato quando è connesso al caricatore. Di conseguenza, l'hardware deve caricare la batteria senza richiedere firmware, Windows, driver o altro software in esecuzione sulle CPU principali perché uno o più di questi componenti potrebbero non essere operativi o potrebbero essere in uno stato di errore in qualsiasi momento. Questo requisito si applica solo alle Windows 10 per i sistemi di edizioni desktop. Windows 10 Mobile sistemi possono richiedere il supporto di un'app di ricarica UEFI e/o di altri componenti software per caricare la batteria.

L'addebito si interrompe automaticamente quando viene addebitato completamente o quando si verifica un errore

L'hardware arresta automaticamente la ricarica quando la batteria è completamente carica o se si è verificato un errore. Come per la ricarica, questa operazione deve essere eseguita senza richiedere firmware, Windows, driver o altro software in esecuzione nelle CPU principali. Inoltre, l'hardware è necessario per rispettare tutte le condizioni normative di sicurezza della batteria.

Indicatori di alimentazione e ricarica

Windows fornisce un indicatore di alimentazione e stato della batteria usando le icone che l'utente può visualizzare in diverse posizioni. Le posizioni includono l'icona della barra della batteria e la schermata di blocco.

Un dispositivo può anche avere un indicatore fisico, ad esempio un LED che indica lo stato di ricarica. Questo indicatore deve avere un impatto minimo sul consumo energetico.

Icone di alimentazione e ricarica di Windows

Windows visualizza lo stato di alimentazione e ricarica in tre posizioni:

  • Nella schermata di blocco:

    Windows visualizza un'icona della batteria con lo stato di alimentazione e carica.

  • Barra delle applicazioni desktop (Windows 10 solo per le edizioni desktop):

    Windows visualizza un'icona della batteria con fonte di alimentazione e stato di carica. Quando l'utente fa clic sull'icona della batteria, può visualizzare informazioni quali capacità rimanente, tempo stimato rimanente e dettagli per batteria (se dotati di più batterie).

  • Barra di stato (solo SKU per dispositivi mobili):

    Windows visualizza un'icona della batteria con fonte di alimentazione e stato di carica. Quando l'utente scorre verso il basso dalla parte superiore dello schermo per espandere il centro notifiche, può visualizzare la percentuale di batteria effettiva.

  • Impostazioni risparmio batteria:

    Nella pagina Impostazioni risparmio batteria (Impostazioni -> Sistema -> Risparmio batteria), Windows visualizza la percentuale complessiva della batteria, lo stato della batteria (ricarica e scaricamento) e il tempo rimanente stimato da caricare/scaricare.

Per le piattaforme in grado di inattività S0, se lo schermo è visibile, Windows illumina brevemente lo schermo quando il sistema è connesso o disconnesso dal caricatore per notificare all'utente una modifica della fonte di alimentazione.

Indicatori di ricarica hardware della piattaforma

Le icone integrate in Windows indirizzano solo gli scenari in cui Windows è in esecuzione e la visualizzazione è visibile all'utente. Tuttavia, gli indicatori sullo schermo non sono visibili quando il sistema è arrestato o lo stato di inattività S0 in cui lo schermo è spento. Poiché l'utente non può visualizzare segnali visivi sullo schermo, la piattaforma può includere un indicatore di ricarica fisico per indicare che l'alimentazione è presente.

La sezione seguente fornisce la raccomandazione per l'implementazione di tastiere e mouse/touchpad nelle piattaforme S0 Inattive con soluzioni di ancoraggio. Questa sezione illustra anche le sfide e i principi insieme alle possibili soluzioni. Entrambe le possibili soluzioni si applicano ai dock stazionari mobili e A/C.

Esposizione del sottosistema di alimentazione e ricarica a Windows

Ogni dispositivo mobile che esegue Windows include una o più batterie e una fonte di alimentazione, ad esempio una scheda AC. Le informazioni di questi sottosistemi trasmettono lo stato di risparmio energia all'utente. Lo stato include la capacità rimanente della batteria in qualsiasi momento, lo stato dell'adattatore AC e la ricarica della batteria e il tempo della batteria rimanente stimato. Le informazioni sul sottosistema di alimentazione vengono esposte nel contatore della batteria di Windows e in altre utilità di diagnostica per il risparmio energia.

La sezione seguente fornisce la raccomandazione per l'implementazione di tastiere e mouse/touchpad nelle piattaforme S0 Inattive con soluzioni di ancoraggio. Questa sezione illustra anche le sfide e i principi insieme alle possibili soluzioni. Entrambe le possibili soluzioni si applicano ai dock stazionari mobili e A/C.

Topologie hardware tipiche del sottosistema di alimentazione

In genere, Windows prevede una delle due topologie hardware per il sottosistema di alimentazione e ricarica.

La figura seguente illustra la prima topologia che usa il controller incorporato della piattaforma, comune nei dispositivi esistenti che eseguono Windows. Il controller incorporato esegue più funzioni in un dispositivo mobile, tra cui il controllo del codice sorgente dell'alimentazione, la gestione della carica della batteria, il rilevamento del pulsante di alimentazione/interruttore e la tastiera compatibile con PS/2 e l'input del mouse. Il controller incorporato è in genere connesso al processore principale tramite il bus LPC (Low Pin Count). Le query di Windows e ricevono una notifica sulle informazioni sul sottosistema di alimentazione tramite l'interfaccia del controller incorporato ACPI.

sottosistema di alimentazione e ricarica con un controller incorporato

La figura successiva illustra la seconda topologia, che usa un controller di carica della batteria e un componente del misuratore del carburante connessi direttamente al processore principale della piattaforma su un bus periferico leggero, ad esempio I²C. In questa configurazione, windows esegue query e riceve una notifica sulle modifiche del sottosistema di alimentazione tramite le comunicazioni tramite il bus I²C. Invece di usare un driver di dispositivo per il sottosistema di ricarica o batteria, l'ambiente del metodo di controllo ACPI viene esteso con il supporto per un'area operativa SPB (Simple Peripheral). L'area operativa SPB consente al codice del metodo di controllo ACPI di comunicare con il controller di carica della batteria e i componenti del misuratore di carburante connessi al processore core su I²C.

sottosistema di alimentazione e ricarica tramite il controller della piattaforma

Modello di driver del sottosistema batteria e alimentazione

Windows offre un modello di driver di dispositivo affidabile per il sottosistema di alimentazione e batteria. Le informazioni di risparmio energia vengono trasmesse al risparmio energia di Windows tramite un driver di dispositivo a batteria, quindi aggregate ed esposte all'interfaccia utente di Windows tramite i runtime di integrazione del dispositivo batteria e un set di API software di risparmio energia.

Il modello di driver della batteria è un modello porta/miniport, ovvero il modello e le interfacce della batteria sono definiti in modo che i nuovi tipi di batteria possano essere esposti tramite un miniport. Tuttavia, in pratica, ci sono solo due miniport che hanno un uso significativo nell'ecosistema Windows: il driver miniport della batteria che supporta le batterie del metodo di controllo ACPI e il driver miniport a batteria HID per i dispositivi di alimentazione uninterruptibili collegati da USB (UPS).

modello di driver di alimentazione e batteria

Tutti i PC devono esporre le batterie e il sottosistema di ricarica tramite l'interfaccia del metodo di controllo ACPI. L'interfaccia miniport della batteria non deve essere usata per i sottosistemi di ricarica della batteria specifici della piattaforma. Esistono metodi di controllo definiti dalla specifica ACPI che consentono a Windows di eseguire il polling delle informazioni e dello stato della batteria. Analogamente, esiste un modello basato su eventi per consentire alla piattaforma hardware di notificare le modifiche della batteria e della fonte di alimentazione di Windows, ad esempio una transizione dall'ac alla potenza della batteria.

Polling dello stato

Windows Power Manager richiede periodicamente informazioni sullo stato dalla batteria, inclusa la capacità di carica rimanente e la frequenza corrente di scarico. Questa richiesta ha origine nel power manager, un componente dell'interfaccia utente di livello superiore o un'applicazione. Il risparmio energia trasforma la richiesta in un pacchetto di richiesta I/O (IRP) al dispositivo della batteria. Quando la batteria viene esposta tramite l'interfaccia del metodo di controllo ACPI, il driver della batteria del metodo di controllo (cmbatt.sys) esegue i metodi di controllo ACPI appropriati. Nel caso di informazioni sullo stato, viene eseguito il metodo _BST (stato della batteria).

Il metodo _BST richiede al firmware ACPI di ottenere informazioni correnti dal sottosistema di alimentazione e quindi pacchetti che in un buffer con formato specificato dalla specifica ACPI. Il codice specifico necessario per accedere allo stato della batteria dal controller incorporato o dal caricatore della batteria connesso tramite I²C è contenuto nel firmware ACPI e parte del codice che comprende il metodo _BST. Il risultato netto del metodo _BST è il buffer di informazioni necessarie che vengono restituite al driver della batteria del metodo di controllo. Il driver della batteria del metodo di controllo converte infine il buffer nel formato richiesto dal driver della batteria e da Windows Power Manager.

Notifiche di modifica dello stato

Il sottosistema alimentazione e batteria genererà diverse notifiche a Windows per le modifiche dello stato, incluse le transizioni da AC a batteria. Il polling da Parte di Windows per queste modifiche allo stato non è pratico in base alla frequenza elevata in cui sarebbe necessario eseguire il polling. Pertanto, la piattaforma hardware deve usare un modello basato su eventi per notificare a Windows quando lo stato della batteria cambia significativamente.

Quando lo stato della batteria cambia, inclusa la capacità rimanente o lo stato di ricarica, il firmware ACPI genera una notifica (0x80) sul dispositivo della batteria del metodo di controllo. Il driver della batteria del metodo di controllo Windows valuta quindi il metodo _BST e restituisce le informazioni aggiornate al risparmio energia.

Quando i dati statici della batteria cambiano, tra cui l'ultima capacità di carica completa, la capacità di progettazione e il numero di cicli, il firmware ACPI genera una notifica (0x81) sul dispositivo della batteria del metodo di controllo. Il driver del metodo di controllo Windows valuta quindi il metodo _BIX e restituisce le informazioni aggiornate al risparmio energia.

La piattaforma interrompe l'ambiente firmware ACPI tramite system control interrupt (SCI) nel caso di una piattaforma con controller incorporata e tramite un GPIO nel caso di piattaforme con sottosistema batteria connessa direttamente al silicio principale.

Operazione ACPI con un controller incorporato

Le piattaforme che hanno la batteria e il sottosistema di alimentazione connessi al tipico controller incorporato usano l'area di operazione controller embedded ACPI per facilitare le comunicazioni tra l'ambiente del metodo di controllo ACPI e l'hardware della piattaforma.

Il firmware ACPI deve definire il controller incorporato nello spazio dei nomi ACPI, come descritto nella sezione 12.11.1 della specifica ACPI, tra cui:

  • Nodo Device() per il controller incorporato.
  • Oggetto _HID che indica che il dispositivo è un controller incorporato.
  • Oggetto _CRS per indicare le risorse di I/O per il controller incorporato.
  • Oggetto _GPE che definisce sci per il controller incorporato.
  • Un'area operativa che descrive le informazioni contenute all'interno del controller incorporato a cui è possibile accedere da altri codici del metodo di controllo ACPI nello spazio dei nomi, tra cui lo stato della batteria e i metodi informativi.

I dettagli completi sono descritti nella sezione 12 della specifica ACPI.

Accesso alle informazioni sulla batteria dal controller incorporato

Il metodo di controllo ACPI accede alle informazioni dal controller incorporato leggendo i valori descritti nell'area operativa del controller incorporato.

Notifica al sistema operativo quando lo stato della batteria cambia

Quando il controller incorporato rileva una modifica dello stato della batteria, inclusa una modifica dello stato di ricarica o della capacità rimanente, come specificato da _BTP, il controller incorporato genera una sci e imposta il SCI_EVT bit nel comando stato del controller incorporato (EC_SC). Il driver ACPI di Windows comunica con il controller incorporato e rilascia un comando di query (QR_EC) per richiedere informazioni specifiche sulla notifica da inviare. Il controller incorporato imposta quindi un valore di byte corrispondente al metodo _QXX da eseguire. Ad esempio, il controller incorporato e il firmware ACPI possono definire il valore 0x33 essere un aggiornamento alle informazioni sullo stato della batteria. Quando il controller incorporato imposta il valore 0x33 come notifica, il driver ACPI eseguirà il metodo _QXX. Il contenuto del metodo _QXX in genere sarà un oggetto Notify(0x80) nel dispositivo della batteria del metodo di controllo nello spazio dei nomi.

Operazione ACPI con un sistema di ricarica connesso I²C

Le piattaforme possono anche connettere la batteria e il sottosistema di alimentazione connessi al chipset principale tramite un bus seriale a bassa potenza, ad esempio I²C. In questi progetti, l'area operativa GENERICSerialBus ACPI viene usata per comunicare tra i metodi di controllo ACPI e l'hardware del sottosistema della batteria. La connessione dell'hardware del sottosistema della batteria a un interruzione GPIO consente l'esecuzione dei metodi di controllo ACPI quando lo stato della batteria cambia.

Quando l'hardware del sottosistema di alimentazione e batteria è connesso tramite I²C, il firmware ACPI deve definire:

  • Nodo Device() per il dispositivo controller GPIO a cui è connesso l'interruzione I²C, tra cui:

    • _HID oggetto che descrive l'ID hardware del controller GPIO.
    • _CSR oggetto che descrive le risorse di interruzione e hardware del controller GPIO.
    • _AEI oggetto che esegue il mapping di una o più righe GPIO all'esecuzione del metodo di evento ACPI. Ciò consente l'esecuzione dei metodi ACPI in risposta agli interruzioni della riga GPIO.
  • Nodo Device() per il controller I²C a cui è connesso il misuratore del carburante della batteria e l'hardware di ricarica, tra cui:

    • _HID e oggetti _CSR che descrivono l'ID hardware e le risorse del controller I²C.
    • GenericSerialBus OperationRegion nell'ambito del dispositivo I²C che descrive i registri dei comandi virtuali per il dispositivo I²C.
    • Definizioni di campo all'interno dell'operazione GenericSerialBusRegion. Le definizioni di campo consentono al codice ASL all'esterno del dispositivo I²C di accedere ai registri dei comandi virtuali per il dispositivo I²C.

La descrizione del controller GPIO e il mapping delle linee GPIO agli eventi ACPI consente di eseguire i metodi di controllo per lo stato della batteria e la notifica quando viene generato un interruzione GPIO da un dispositivo I²C. La descrizione dell'area dell'operazione GenericSerialBus consente al codice ACPI di comunicare sullo stato della batteria tramite il bus I²C e leggere le informazioni e i registri dal misuratore del carburante della batteria e dal sottosistema di ricarica.

Accesso alle informazioni sulla batteria dal sistema di ricarica

Lo stato della batteria può essere eseguito dai metodi di controllo ACPI inviando e ricevendo comandi sul bus I²C a cui è connesso l'hardware del sottosistema della batteria. Il codice del metodo di controllo esegue il backup dello stato e dei metodi di informazioni statiche della batteria legge e scrive i dati dalle aree dell'operazione GenericSerialBus descritte nello spazio dei nomi ACPI. Il codice del metodo di controllo legge i dati dal dispositivo del misuratore di carburante o informazioni statiche sulla capacità della batteria e il numero di cicli sul bus I²C tramite l'area operativa GenericSerialBus.

Notifica a Windows quando lo stato della batteria cambia

Un interruzione può essere generata dall'hardware del sottosistema batteria quando lo stato cambia e l'interruzione è fisicamente connessa a una linea GPIO sul silicio principale. La riga GPIO può essere mappata a un'esecuzione specifica del metodo di controllo usando l'oggetto _AEI nel controller GPIO descritto in ACPI. Quando si verifica l'interruzione GPIO, il sottosistema ACPI di Windows esegue il metodo associato alla linea GPIO specifica che può a sua volta eseguire una notifica() nel dispositivo della batteria del metodo di controllo, causando la rivalutazione dello stato e dei metodi informativi statici di Windows per aggiornare lo stato della batteria.

Implementazione ACPI dell'oggetto di alimentazione

Il firmware ACPI deve implementare un dispositivo di alimentazione ACPI. Questo oggetto deve segnalare se stesso con un ID hardware (_HID) di "ACPI0003". Questo oggetto deve anche implementare il metodo ACPI _PSR (Power Source). Questo metodo restituisce lo stato della fonte di alimentazione e trasmette se la fonte di alimentazione è attualmente online (alimentazione AC) o offline (sulla batteria). Tutte le origini di alimentazione di input per il sistema devono essere multiplexed tramite un singolo metodo di _PSR. Ad esempio, _PSR deve trasmettere online se il sistema è alimentato tramite un connettore del barile DC o un connettore ancoraggio separato. Non usare più dispositivi di alimentazione ACPI.

Il metodo _PSR deve segnalare solo online (alimentazione AC) quando il sistema è connesso all'alimentazione principale. Quando lo stato di _PSR cambia, la piattaforma deve generare un'interruzione e una notifica (0x80) nel dispositivo nello spazio dei nomi ACPI. Questa operazione deve essere eseguita immediatamente dopo la modifica dello stato fisico rilevata dalla piattaforma.

Implementazione ACPI delle informazioni statiche della batteria

Il firmware ACPI deve implementare il metodo ACPI _BIX per ogni batteria che fornisce informazioni statiche sulla batteria, tra cui capacità di progettazione, numero di cicli e numero di serie. La tabella seguente si espande sulle definizioni dei campi descritti nella specifica ACPI ed enumera i requisiti specifici di Windows per queste informazioni.

Campo Descrizione Requisiti specifici di Windows
Revisione Indica _BIX revisione Deve essere impostato su 0x0
Unità di alimentazione Determina le unità segnalate dall'hardware. O: MA/MAh o mW/mWh. Deve essere impostato su 0x0 per indicare le unità è mW/mWh
Capacità di progettazione Indica la capacità originale della batteria in mWh Deve essere impostato su un valore accurato e non può essere 0x0 o 0xFFFFFFFF
Ultima capacità full charge Indica la capacità di carica completa corrente della batteria

Deve essere impostato su un valore accurato e non può essere 0x0 o 0xFFFFFFFF

Questo valore deve aggiornare ogni aumento del numero di cicli.

Tecnologia batteria Indica se la batteria è ricaricabile o un uso una sola volta. Deve essere impostato su 0x1 per indicare che la batteria è in corso
Tensione di progettazione Indica la tensione di progettazione della batteria

Deve essere impostato sulla tensione di progettazione della batteria quando è nuovo in mV.

Non deve essere impostato su 0x0 o 0xFFFFFFFF.

Capacità di progettazione dell'avviso Indica un livello di avviso della batteria basso fornito dall'OEM. Questo valore viene ignorato da Windows.
Capacità di progettazione bassa Indica il livello critico della batteria a cui Windows deve arrestare o ibernare immediatamente prima che il sistema venga spento. Deve essere impostato su un valore compreso tra 0x0 e il 5% della capacità di progettazione della batteria.
Granularità della capacità della batteria 1 Indica la quantità minima di modifiche rimanenti di carica che possono essere rilevate dall'hardware tra la capacità di progettazione di avviso e la capacità di progettazione bassa. Deve essere impostato su un valore non superiore all'1% della capacità di progettazione della batteria.
Granularità della capacità della batteria 2 Indica la quantità minima di modifica rimanente dell'addebito che può essere rilevata dall'hardware tra l'ultima capacità di carica completa e la capacità di progettazione dell'avviso. Deve essere impostato su un valore non superiore a 75mW (circa il 25% di una batteria da 25Whr), ovvero (1/400) della capacità di progettazione della batteria.
Conteggio cicli Indica il numero di cicli della batteria. Deve essere impostato su un valore maggiore di 0x0. Non deve essere impostato su 0xFFFFFFFF.
Precisione della misurazione Indica l'accuratezza della misurazione della capacità della batteria. Deve essere impostato su 95.000 o superiore, indicando l'accuratezza del 95% o superiore.
Tempo massimo campionamento Tempo massimo di campionamento supportato tra due valutazioni successive _BST che mostreranno una differenza nella capacità rimanente. Nessun requisito specifico.
Tempo di campionamento minimo Tempo di campionamento minimo supportato tra due valutazioni successive _BST che mostreranno una differenza nella capacità rimanente Nessun requisito specifico.
Intervallo medio massimo Intervallo di media massimo, in millisecondi, supportato dal misuratore del carburante della batteria. Nessun requisito specifico.
Intervallo medio minimo Intervallo minimo di media, in millisecondi, supportato dal misuratore del carburante della batteria. Nessun requisito specifico.
Numero di modello Numero di modello di batteria fornito dall'OEM Non deve essere NULL.
Numero di serie Numero di serie della batteria fornito dall'OEM Non deve essere NULL.
Tipo di batteria Informazioni sul tipo di batteria fornite dall'OEM Nessun requisito specifico.
Informazioni OEM Informazioni fornite dall'OEM Nessun requisito specifico.

Implementazione ACPI delle informazioni sullo stato della batteria in tempo reale

Il firmware ACPI deve implementare il metodo ACPI _BST per ogni batteria che fornisce informazioni sullo stato in tempo reale sulla batteria, inclusa la capacità rimanente e la frequenza di scaricamento corrente. La tabella seguente si espande sulle definizioni dei campi descritti nella specifica ACPI ed enumera i requisiti specifici di Windows per queste informazioni.

Campo Descrizione Requisiti specifici di Windows
Stato della batteria Indica se la batteria è attualmente carica, sta scaricando o è in uno stato critico. Lo stato della batteria deve segnalare la ricarica solo se la batteria è in carica. Allo stesso modo, lo stato della batteria DEVE segnalare lo scarico solo se la batteria sta scaricando. Una batteria che non è né carica né scaricamento deve segnalare nessun bit.
Frequenza di presentazione della batteria Fornisce la velocità corrente di scarico in mW dalla batteria.

Deve essere maggiore di 0x0 e minore di 0xFFFFFFFF.

Deve essere accurato all'interno del valore dell'accuratezza della misurazione in _BIX.

Capacità rimanente della batteria Fornisce la capacità rimanente della batteria in mWh.

Deve essere maggiore di 0x0 e minore di 0xFFFFFFFF.

Deve essere accurato all'interno del valore di Accuratezza misurazione in _BIX

Batteria corrente tensione Indica la tensione corrente tra i terminali della batteria. Deve essere compreso tra un valore di 0x0 e 0xFFFFFFFF in mV.

Quando vengono modificati dati in _BST, la piattaforma deve generare un'interruzione e una notifica (0x80) nel dispositivo a batteria nello spazio dei nomi ACPI. Questa operazione deve essere eseguita immediatamente dopo che la modifica dello stato fisico viene rilevata dalla piattaforma. Ciò include qualsiasi modifica nel campo Stato batteria per i bit di ricarica (ad esempio Bit0) o la scaricamento (ad esempio Bit1).

Inoltre, la piattaforma deve implementare il _BTP-Battery Trip Point-method. _BTP consente a Windows di specificare una soglia di capacità rimanente che, quando viene superata, la piattaforma deve generare un interrupt e una notifica (0x80) nel dispositivo a batteria nello spazio dei nomi ACPI. Il metodo _BTP impedisce a Windows di eseguire periodicamente il polling della batteria.

Metodi di controllo della batteria

La specifica ACPI consente metodi di controllo specifici del dispositivo e del sistema operativo tramite il metodo di controllo Device-Specific o _DSM. _DSM è descritto nella sezione 9.14.1 della specifica ACPI.

Windows supporta i metodi di _DSM seguenti per i dispositivi a batteria del metodo di controllo.

Direzione della tariffa termica

Campo Valore Descrizione
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID che indica le estensioni per il supporto del driver della batteria del metodo di controllo Di Windows
ID revisione 0x0 Prima revisione di questa funzionalità
Indice della funzione 0x1 Impostare la limitazione della carica della batteria
Argomenti Limite termico

Valore intero compreso tra 0 e 100 che indica il limite di carica termica.

Un valore pari al 40% indica che la batteria deve essere caricata al 40% della velocità massima.

Un valore pari a 0% indica che la ricarica della batteria deve essere arrestata fino a quando questo metodo non viene chiamato di nuovo.

Valori restituiti Nessuno n/d

Batteria utilizzabile dall'utente

Campo Valore Descrizione
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID che indica le estensioni per il supporto del driver della batteria del metodo di controllo Di Windows
ID revisione 0x0 Prima revisione di questa funzionalità
Indice della funzione 0x2 Indica che questa _DSM è destinata a OSPM per determinare se il dispositivo a batteria è utilizzabile o meno dall'utente.
Argomenti nessuno Non sono richiesti argomenti.
Valori restituiti Pacchetto contenente un singolo numero intero.

0x0 se la batteria non è utilizzabile dall'utente e non può essere sostituita dall'utente finale o può essere sostituita dall'utente finale con strumenti aggiuntivi.

0x1 se la batteria può essere sostituita dall'utente finale senza altri strumenti.

Watchdog di ricarica obbligatorio

Campo Valore Descrizione
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID che indica le estensioni per il supporto del driver della batteria del metodo di controllo Di Windows
ID revisione 0x0 Prima revisione di questa funzionalità
Indice della funzione 0x3 Indica che questo _DSM è destinato a OSPM per determinare se la batteria del metodo di controllo richiede la reimpostazione periodica del watchdog per mantenere la carica corrente elevata e il periodo in cui il watchdog deve essere reimpostato
Argomenti nessuno Non sono richiesti argomenti.
Valori restituiti Pacchetto contenente un singolo numero intero. 0x0 se la batteria non richiede la manutenzione watchdog.

I valori inclusi di 0x0000001e e 0x12C indicano l'intervallo massimo di poling in secondi.

Tutti gli altri valori vengono ignorati e vengono considerati come 0x0 e la reimpostazione del watchdog non è necessaria.

Se viene specificato un intervallo watchdog valido, Windows eseguirà il metodo _BST a intervalli non più del valore watchdog specificato ogni volta che il valore di BatteryState nel metodo _BST viene impostato per l'addebito.

L'aggiornamento dinamico di questo valore non è supportato.

Driver miniport batteria di terze parti

In Windows 10, gli OEM e gli IHD possono sviluppare driver miniport a batteria di terze parti per sostituire il driver microsoft cmbatt.sys e comunicare direttamente con l'hardware della batteria. Un driver di batteria di esempio viene fornito da Microsoft su GitHub e come parte del kit di esempi WDK .

Ricarica USB (Windows 10 per le edizioni desktop)

Microsoft riconosce il valore nell'offrire la possibilità di supportare la ricarica USB di un dispositivo mobile. Con gli sforzi di standardizzazione, ad esempio il passaggio dell'UE per standardizzare i caricatori per telefoni cellulari, i caricatori USB sono ampiamente disponibili e funzionano in un'ampia gamma di dispositivi, tra cui Windows Phone, lettori MP3, dispositivi GNSS e così via. Microsoft riconosce il valore dell'offerta di un singolo caricatore che può essere usato per caricare più dispositivi, tra cui un dispositivo che esegue Windows. Inoltre, dato il ampio supporto del settore per la ricarica USB, vi sono vantaggi ausiliari che riducono i costi e l'impatto ambientale.

A partire da Windows 8, un dispositivo mobile potrebbe essere alimentato e/o caricato tramite USB a condizione che siano soddisfatti i requisiti di ricarica della batteria descritti di seguito. Inoltre, esistono diversi requisiti specifici per USB che devono essere soddisfatti per garantire un'esperienza utente di qualità.

  1. L'alimentazione/ricarica USB deve essere implementata interamente nel firmware della piattaforma. Il supporto non deve richiedere un sistema operativo, un driver o un'applicazione.

  2. Il dispositivo NON DEVE enumerare quando si è connessi a un altro dispositivo. Di conseguenza, il dispositivo non verrà addebitato quando si è connessi a una porta USB PER PC standard perché queste porte sono limitate a 500 mA per impostazione predefinita. Le uniche eccezioni sono quando questa porta viene usata per il debug e per la programmazione iniziale del firmware della factory.

  3. Il dispositivo supporta la ricarica da una porta di ricarica USB dedicata. Il dispositivo deve essere caricato quando è connesso a un caricatore conforme alla specifica USB Battery Charge versione 1.2. Il dispositivo non deve disegnare più di 1,5A per ogni standard di ricarica quando è connesso a un caricatore USB standard. L'OEM può scegliere di supportare livelli correnti più elevati a condizione che vengano soddisfatte le condizioni seguenti:

    • Il dispositivo rileva automaticamente il tipo di caricatore e gli addebiti in base alla tariffa appropriata per il tipo di caricatore specifico.
    • Il dispositivo e il caricatore soddisfano tutti gli standard di sicurezza ed elettrici pertinenti.
    • L'OEM fornisce il caricatore e il cavo associato al dispositivo.
  4. La ricarica USB è supportata su un connettore standard micro-AB, USB-C (scelta consigliata) o un connettore di dock proprietario. Non è consentito un micro-B receptacle nel dispositivo. Se si usa un connettore dock proprietario, l'OEM deve spedire un cavo appropriato con il dispositivo per abilitare la ricarica da un caricatore USB standard.

  5. Se viene implementata la porta micro-AB, il dispositivo deve rilevare automaticamente il tipo di cavo, la configurazione e assumere il ruolo appropriato. Se viene inserito un plug-B micro-B e il debug non è abilitato sulla porta, si deve assumere il ruolo del caricatore. Se viene inserito un plug-B micro-B e il debug è abilitato sulla porta, si deve presupporre il ruolo di debug (ad esempio, l'addebito non è supportato). Se viene inserito un plug-A micro-A, viene assunto il ruolo host USB in cui i dispositivi USB collegati vengono riconosciuti da Windows.

  6. Se la porta micro-AB funziona anche come porta di debug, il dispositivo deve fornire un mezzo attraverso il firmware per passare dal caricatore al ruolo di debug. L'impostazione predefinita fornita all'utente finale deve avere il debug DISABLED.

  7. Se la porta micro-AB funziona anche come porta di debug, il dispositivo deve fornire un percorso di alimentazione di input alternativo tramite un connettore a barile dedicato o un connettore dock proprietario.

Elenchi di controllo per la finestra di progettazione e l'implementazione della piattaforma

È possibile usare gli elenchi di controllo seguenti per convalidare la progettazione della piattaforma e il firmware del sistema conformi alle linee guida per la batteria e il sottosistema di ricarica descritti.

Elenco di controllo per l'implementazione del firmware ACPI e del sottosistema della batteria

I progettisti di sistema devono assicurarsi di aver completato le attività seguenti nel firmware ACPI per garantire la corretta segnalazione delle informazioni sulla batteria e sul sottosistema di alimentazione a Windows:

  • Aggiungere un oggetto Device() per ogni dispositivo a batteria nello spazio dei nomi ACPI.

  • Ogni dispositivo a batteria deve fornire i metodi e gli oggetti di controllo seguenti:

    • _HID con un valore PNP0C0A.
    • _BIX-Battery Information Extended:

    Trasmette le informazioni statiche della batteria, tra cui l'ultima capacità di carica completa, la capacità di progettazione e il conteggio dei cicli.

    • stato della batteria _BST:

      Trasmette lo stato corrente della batteria, inclusa la capacità rimanente, la velocità di scaricamento e lo stato di ricarica.

    • _BTP-Battery Trip Point:

      Consente a un modello di stato della batteria basato su eventi di ridurre il lavoro periodico per il polling. _BTP consente a Windows di specificare una soglia di capacità di carica rimanente in cui la piattaforma deve emettere in Notify(0x80) nel dispositivo a batteria per richiedere a Windows di aggiornare le informazioni sullo stato della batteria.

    • stato _STA generale:

      Consente a Windows di sapere se la batteria è presente nel dispositivo in cui una batteria può essere rimovibile o dove potrebbe esserci una batteria in un dock portatile.

  • Aggiungere un singolo oggetto Device() per un adattatore AC/Power Source nello spazio dei nomi ACPI.

  • Il dispositivo di alimentazione deve fornire i metodi e gli oggetti di controllo seguenti:

    • _HID con un valore ACPI0003

    • _PSR-Power Source:

      Trasmette se la fonte di alimentazione è attualmente online (alimentazione AC) o offline (alimentazione a batteria). Tutte le fonti di alimentazione di input per il dispositivo devono essere multiplexing tramite il metodo _PSR. Ad esempio, il _PSR deve comunicare online se il dispositivo è alimentato tramite un connettore dc barrel o un connettore di dock separato. Non usare più dispositivi di alimentazione ACPI.

  • Il metodo _BIX deve supportare i campi e i vincoli descritti nelle informazioni statiche della batteria riportate sopra:

    • Il campo Revisione deve essere impostato su 0x0.
    • Il campo Power Unit deve essere impostato su 0x0.
    • I valori Capacità progettazione e Capacità di carica completa devono essere impostati su valori accurati dal sottosistema di ricarica e batteria e non impostati su 0xFFFFFFFF o 0x00000000.
    • Il campo Tecnologia batteria deve essere impostato su 0x1.
    • Il campo Tensione progettazione deve essere impostato in modo accurato e non uguale a 0x00000000 o 0xFFFFFFFF.
    • La capacità di progettazione di low deve essere impostata sul valore minimo necessario per ibernare o arrestare il sistema da uno stato completo.
    • I campi Granularità capacità batteria 1 e Capacità batteria 2 devono essere impostati su un valore diverso dal 1% della capacità della batteria.
    • Il campo Conteggio cicli deve essere compilato con precisione dal sottosistema della batteria.
    • Il campo Precisione misura deve essere impostato su 80.000d o superiore.
    • I campi Numero modello e numero di serie non devono essere impostati su NULL.
  • Fornire un metodo _BST che consente a Windows di eseguire il polling dello stato della batteria in tempo reale. I campi nel metodo _BST devono essere restituiti dinamicamente dal sottosistema di alimentazione e ricarica della batteria sottostante. La loro accuratezza deve essere all'interno del valore di Precisione misura nel metodo _BIX.

  • Fornire un metodo _BTP che consente a Windows di specificare una soglia di capacità di carica rimanente in corrispondenza della quale la piattaforma interrompeRà Windows con una notifica (0x80) nel dispositivo della batteria.

  • Assicurarsi che una notifica(0x80) venga rilasciata solo in risposta a una modifica dello stato della batteria o _BTP viaggio di capacità di carica. Non eseguire periodicamente una notifica (0x80).

  • Quando il livello della batteria raggiunge il valore specificato in _BIX. DesignCapacityofLow, la piattaforma deve generare una notifica (0x80) nel dispositivo della batteria del metodo di controllo.

  • Per i sistemi con più batterie, implementare completamente un dispositivo della batteria del metodo di controllo per ogni batteria.

    • La prima batteria nello spazio dei nomi deve essere la batteria primaria per il sistema a scopo di debug.
  • Implementare il metodo _DSM in ogni dispositivo della batteria per indicare se la batteria è utilizzabile dall'utente.

  • Implementare il metodo _DSM se è necessaria una reimpostazione periodica del watchdog durante l'addebito e Windows garantisce l'esecuzione periodica del metodo _BST all'interno di tale finestra di polling.

  • Implementare il metodo _DSM se il controllo della frequenza di ricarica della batteria è necessario per il modello termica sulla piattaforma.