Partager via


Implémentation du microprogramme du sous-système d’alimentation et de batterie ACPI

Les plateformes Windows sont censées exposer leurs batteries et adaptateurs secteur dans le microprogramme via ACPI au moyen d’interfaces de méthode de contrôle standardisées, comme décrit dans la spécification ACPI.

Chaque plateforme Windows mobile doit avoir un périphérique source d’alimentation et une ou plusieurs batteries. Les informations sur ces sous-systèmes sont utilisées pour transmettre l’état de l’alimentation à l’utilisateur. Cet état inclut des informations telles que le niveau de charge de chaque batterie, l’état de charge de la batterie, et si la plateforme fonctionne sur une alimentation secteur ou courant continu. Le gestionnaire d’alimentation Windows agrège ces informations et les met à la disposition de la jauge de batterie Windows et d’autres composants de gestion de l’alimentation.

Cette rubrique détaille comment la plateforme doit exposer les informations du sous-système d’alimentation au gestionnaire d’alimentation Windows. Pour plus d’informations, consultez le chapitre 10, Power Source Devices, dans la spécification ACPI.

Notes

Certaines des informations décrites dans cet article sont propres à Windows, et ne sont pas détaillées dans la spécification ACPI récente.

Objet d’alimentation ACPI

Le microprogramme ACPI doit fournir et implémenter un seul périphérique source d’alimentation ACPI conformément à la section 10.3 de la spécification ACPI. Cet objet doit se signaler lui-même avec un ID matériel (_HID) « ACPI0003 ».

Remarque Pour les systèmes qui ont plusieurs sources d’alimentation, toutes les sources d’alimentation physiques doivent être multiplexées via un objet périphérique d’alimentation unique dans ACPI. Cet objet doit représenter l’état composite des entrées d’alimentation pour le système. Les systèmes clients ne doivent pas fournir plusieurs objets périphériques source d’alimentation. (Des objets de source d’alimentation supplémentaires peuvent être présents sur les systèmes serveurs qui ont plusieurs alimentations.)

Cet objet doit également implémenter la méthode Power Source (_PSR). Cette méthode retourne l’état de la source d’alimentation, et indique si elle est actuellement en ligne (alimentation secteur) ou hors connexion (sur batterie). La méthode _PSR ne doit signaler En ligne (alimentation secteur) que lorsque le système est connecté à l’alimentation principale. Lorsque l’état de _PSR change, la plateforme doit générer une interruption et une commande Notify(0x80) sur l’appareil dans l’espace de noms ACPI. Cette opération doit être effectuée immédiatement après que la plateforme a détecté le changement d’état physique.

Méthodes de contrôle de batterie ACPI

Le microprogramme ACPI doit fournir et implémenter un objet de méthode de contrôle ACPI pour chaque batterie du système conformément à la section 10.2 de la spécification ACPI. Chaque batterie doit effectuer toutes les opérations suivantes :

  • S’identifier avec un ID matériel (_HID) « PNP0C0A »
  • Implémenter la méthode Status (_STA) pour indiquer si la batterie est activée, désactivée ou absente
  • Signaler des informations statiques à l’aide de la méthode Battery Information Extended (_BIX)
  • Indiquer l’état de la batterie à l’aide de la méthode de contrôle Battery Status (_BST)
  • Prendre en charge les événements de niveau de charge à l’aide du mécanisme Battery Trip Point (_BTP).

Si vous le souhaitez, une batterie peut implémenter le Slot Unit Number (_SUN) ou indiquer l’ordre de la batterie à des fins d’affichage dans l’interface utilisateur.

La discussion suivante présente les détails de ces méthodes et décrit leurs exigences propres à Windows.

Implémentation ACPI des informations statiques de batterie

Le microprogramme ACPI doit implémenter la méthode _BIX pour chaque batterie, afin de fournir des informations statiques sur la batterie, notamment la capacité théorique, le nombre de cycles et le numéro de série. Le tableau suivant développe les définitions des champs décrits dans la section 10.2.2.2 de la spécification ACPI, et énumère les exigences propres à Windows pour ces informations.

Rubriques Description Exigences propres à Windows
Révision Indique la révision _BIX. Doit être défini sur 0x0.
Unité d’alimentation Détermine si les unités signalées par le matériel sont des milliampères et des milliampères/heures, ou des milliwatts et des milliwatt/heures. Doit être défini sur 0x0 pour indiquer que les unités sont des milliwatts et des milliwatt/heures. Cette valeur ne doit pas changer au moment de l’exécution.
Capacité théorique Indique la capacité d’origine de la batterie en milliwatt-heures. Doit être défini sur une valeur précise, et ne peut pas être défini sur 0x0 ou 0xFFFFFFFF. Cette valeur ne doit pas changer au moment de l’exécution.
Dernière charge complète de la batterie Indique la capacité de charge complète actuelle de la batterie. Doit être défini sur une valeur précise, et ne peut pas être défini sur 0x0 ou 0xFFFFFFFF. Cette valeur doit être mise à jour chaque fois que le nombre de cycles augmente. Cette valeur doit rester constante lorsque la batterie se décharge. Nous vous recommandons de mettre à jour cette valeur uniquement lorsque la batterie atteint une charge complète.
Technologie de la batterie Indique si la batterie est rechargeable ou à usage unique. Doit être défini sur 0x1 pour indiquer que la batterie est rechargeable.
Tension théorique Indique la tension théorique de la batterie. Doit être défini sur la tension théorique de la batterie lorsqu’elle est neuve, en millivolts. Ne doit pas être défini sur 0x0 ou 0xFFFFFFFF. Cette valeur ne doit pas changer au moment de l’exécution.
Capacité théorique d’Avertissement Indique un niveau d’avertissement de batterie faible fourni par l’OEM. Windows ignore cette valeur.
Capacité théorique de Faible Indique le niveau de batterie critique auquel Windows doit immédiatement s’arrêter ou se mettre en veille prolongée avant l’arrêt du système. Doit être défini sur une valeur comprise entre 0 et 5 % de la capacité théorique de la batterie.
Granularité de capacité de la batterie 1 Indique la quantité minimale de changement de charge restante qui peut être détectée par le matériel entre la capacité théorique d’Avertissement et la capacité théorique de Faible. Doit être défini sur une valeur ne dépassant pas 1 % de la capacité théorique de la batterie.
Granularité de capacité de la batterie 2 Indique la quantité minimale de changement de charge restante qui peut être détectée par le matériel entre la Dernière capacité en pleine charge et la capacité théorique d’Avertissement. Doit être défini sur une valeur ne dépassant pas 75 milliwatts (environ 0,25 % d’une batterie de 25 watts/heure). (1/400) de la capacité théorique de la batterie.
Nombre de cycles Indique le nombre de cycles de la batterie. Doit être défini sur une valeur supérieure à 0x0. Ne doit pas être défini sur 0xFFFFFFFF.
Précision de la mesure Indique la précision de la mesure de capacité de la batterie. Doit être défini sur 95 000 ou plus, ce qui indique une précision de 95 % ou plus.
Durée maximale d’échantillonnage Durée d’échantillonnage maximale prise en charge entre deux évaluations _BST successives, qui afficheront une différence de capacité restante. Aucune exigence spécifique.
Durée d’échantillonnage minimale Durée d’échantillonnage minimale prise en charge entre deux évaluations _BST successives, qui afficheront une différence de capacité restante. Aucune exigence spécifique.
Intervalle de moyenne maximal Intervalle de moyenne maximal, en millisecondes, pris en charge par la jauge de la batterie. Aucune exigence spécifique.
Intervalle de moyenne minimal Intervalle de moyenne minimal, en millisecondes, pris en charge par la jauge de la batterie. Aucune exigence spécifique.
Numéro de modèle Numéro de modèle de batterie fourni par l’OEM. Ne doit pas avoir la valeur Null.
Numéro de série Numéro de série de la batterie fournie par l’OEM. Ne doit pas avoir la valeur Null.
Type de batterie Informations sur le type de batterie fournies par l’OEM. Aucune exigence spécifique.
Informations OEM Informations fournies par l’OEM. Aucune exigence spécifique.

En plus de ces exigences, le microprogramme de la plateforme doit générer une interruption et une commande Notify(0x81) sur la batterie dans l’espace de noms ACPI chaque fois que l’une des données d’état de la batterie dans _BIX change. Cela inclut la dernière capacité en pleine charge, la capacité théorique et le nombre de cycles. Cette opération doit être effectuée immédiatement après la détection du changement d’état par la plateforme.

La dernière capacité en pleine charge représente la quantité d’énergie estimée que la batterie était censée contenir la dernière fois que la batterie a été complètement chargée. Windows part du principe que cette valeur est mise à jour uniquement lorsque la batterie a été chargée. Par conséquent, la dernière valeur de capacité en pleine charge ne doit pas changer pendant que la batterie se décharge. Nous vous recommandons de mettre à jour cette valeur uniquement lorsque la batterie atteint une charge complète.

Implémentation ACPI des informations d’état en temps réel de la batterie

Le microprogramme ACPI doit implémenter la méthode _BST pour chaque batterie afin de fournir des informations d’état en temps réel sur la batterie, y compris la capacité restante et le taux de drainage actuel. Le tableau suivant développe les définitions des champs décrits dans la section 10.2.2.6 de la spécification ACPI, et énumère les exigences propres à Windows pour ces informations.

Rubriques Description Exigences propres à Windows
État de la batterie Indique si la batterie est en cours de charge, en cours de décharge ou dans un état critique. L’État de la batterie doit signaler le chargement uniquement si la batterie est en cours de chargement. De même, l’État de la batterie doit signaler la décharge uniquement si la batterie est en cours de décharge. Une batterie qui n’est ni en cours de charge ni en cours de décharge ne doit signaler aucun bit.
Taux actuel de la batterie Fournit le taux actuel de drainage de la batterie, en milliwatts. Doit être une valeur supérieure à 0x0 et inférieure à 0xFFFFFFFF. Doit être précis dans les limites de la valeur de Précision de mesure dans _BIX.
Capacité restante de la batterie Fournit la capacité de batterie restante en milliwatt/heures. Doit être supérieur à 0x0 et inférieur à 0xFFFFFFFF. Doit être précis dans les limites de la valeur de Précision de mesure dans _BIX.
Tension actuelle de la batterie Indique la tension actuelle sur les bornes de la batterie. Cette valeur doit être comprise entre 0x0 et 0xFFFFFFFF en millivolts.

Lorsque des données dans _BST changent, la plateforme doit générer une interruption et une commande Notify(0x80) sur la batterie dans l’espace de noms ACPI. Cette opération doit être effectuée immédiatement après la détection du changement d’état physique par la plateforme. Cela inclut toute modification apportée au champ État de la batterie pour le bit de charge (Bit0) ou le bit de décharge (Bit1).

En outre, la plateforme doit implémenter la méthode _BTP (Battery Trip Point). _BTP permet à Windows de spécifier un seuil de capacité restante qui, lorsqu’il est dépassé, provoque la génération par la plateforme d’une interruption et d’une commande Notify(0x80) sur la batterie dans l’espace de noms ACPI. La méthode _BTP évite à Windows de devoir interroger régulièrement la batterie.

Méthodes de contrôle de batterie propres au système d’exploitation Windows

La spécification ACPI permet d’utiliser des méthodes de contrôle propres à l’appareil et au système d’exploitation via la méthode de contrôle _DSM (Device-Specific Method). _DSM est décrit dans la section 9.14.1 de la spécification ACPI.

Windows 8 prend en charge les méthodes _DSM suivantes pour les périphériques Control Method Battery.

Sens du taux de charge thermique

Rubriques Valeur Description
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID qui indique les extensions de la prise en charge du pilote Control Method Battery Windows.
ID de révision 0 Première révision de cette fonctionnalité.
Index de fonction 0x1 Définissez la limitation de charge de la batterie.
Arguments Limite thermique Valeur entière comprise entre 0 et 100 indiquant la limite de charge thermique. Une valeur de 40 pour cent indique que la batterie doit être chargée à 40 pour cent du débit maximal. Une valeur de zéro pour cent indique que le chargement de la batterie doit être arrêté jusqu’à ce que cette méthode soit rappelée.
Valeur(s) de retour None N/A

Batterie pouvant faire l’objet d’une maintenance par l’utilisateur

Rubriques Valeur Description
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID qui indique les extensions de la prise en charge du pilote Control Method Battery Windows.
ID de révision 0 Première révision de cette fonctionnalité.
Index de fonction 0x2 Indique que cette _DSM permet à OSPM de déterminer si la batterie peut ou non faire l’objet d’une maintenance par l’utilisateur.
Arguments Aucun Aucun argument n’est requis.
Valeur(s) de retour Package contenant un seul entier. 0x0 si la batterie ne peut pas faire l’objet d’une maintenance par l’utilisateur et ne peut pas être remplacée par l’utilisateur final, ou peut être remplacée par l’utilisateur final avec des outils supplémentaires. 0x1 si la batterie peut être remplacée par l’utilisateur final sans outil supplémentaire.

Surveillance de charge requise

Rubriques Valeur Description
UUID 4c2067e3-887d-475c-9720-4af1d3ed602e GUID qui indique les extensions de la prise en charge du pilote Control Method Battery Windows.
ID de révision 0 Première révision de cette fonctionnalité.
Index de fonction 0x3 Indique que cette _DSM permet à OSPM de déterminer si le périphérique Control Method Battery nécessite une réinitialisation périodique de la surveillance afin de maintenir une charge à courant élevée, et la période à laquelle la surveillance doit être réinitialisée.
Arguments Aucun Aucun argument n’est requis.
Valeur(s) de retour Package contenant un seul entier. 0x0 si la batterie ne nécessite pas de maintenance de surveillance. Les valeurs comprises entre 0x0000001e et 0x12C indiquent l’intervalle d’interrogation maximal en secondes. Toutes les autres valeurs sont ignorées et traitées comme 0x0n et la réinitialisation de la surveillance n’est pas nécessaire. Si un intervalle de surveillance valide est spécifié, Windows exécute la méthode _BST à un intervalle qui n’est pas supérieur à la valeur de surveillance spécifiée lorsque la valeur de BatteryState dans la méthode _BST est définie sur la charge. La mise à jour dynamique de cette valeur n’est pas prise en charge.

Windows fournit une vue détaillée des batteries système dans l’application de la barre d’état du Bureau. Chaque batterie, avec son état actuel, est listée dans l’interface utilisateur. L’exemple d’interface utilisateur suivant montre deux batteries.

L’ordre dans lequel Windows affiche les batteries peut être spécifié par le microprogramme. Pour ce faire, utilisez la méthode Slot User Number (_SUN) telle que définie dans la section 6.1.11 de la spécification ACPI. La méthode _SUN retourne un entier qui représente l’ID unique de la batterie. Windows liste chaque objet batterie dans l’ordre croissant en fonction de la valeur de la méthode _SUN.

Si un objet batterie inclut une méthode _SUN, tous les objets batterie doivent également fournir une méthode _SUN. Windows ne prend pas en charge le cas où certaines batteries ont une méthode _SUN et d’autres n’en ont pas. Si aucun objet _SUN n’est fourni, Windows trie les batteries en fonction de leur chemin complet d’instance de périphérique ; cette configuration est prise en charge, mais non recommandée.