バッテリと課金Battery and charging

バッテリの充電中のユーザー エクスペリエンスBattery charging user experience

このトピックでは、バッテリおよび Windows 10 での課金に関する推奨事項について説明します。This topic covers recommendations for battery and charging in Windows 10. Windows を実行しているすべてのデバイスでは、充電エクスペリエンス、フォーム ファクター、命令のセット、またはプラットフォーム アーキテクチャに関係なく、一貫性のあるバッテリがあります。All devices running Windows have a consistent battery charging experience, regardless of form factor, instruction set, or platform architecture. その結果、ユーザーには、バッテリの充電での一貫性および品質の経験があります。As a result, users have a consistent and quality experience with battery charging.

  1. 常に課金するには、充電器に接続しているときに発生します。Charging always occurs when connected to the charger.

    バッテリ障害の場合を除く Windows を実行しているデバイスはバッテリの充電充電器に接続されているときに、常にできます。Except for cases of battery failure, a device running Windows is always capable of charging the battery whenever it is connected to the charger.

  2. Windows は、充電器に接続しているときに常に起動します。Windows can always boot when connected to the charger.

    • Windows 10 デスクトップ エディション (Home、Pro、Enterprise、および教育機関向け):Windows 10 for desktop editions (Home, Pro, Enterprise, and Education):

      デバイスが S5 である場合 (シャット ダウン状態) 場合は、バッテリはリムーバブル常に Windows のバッテリ充電レベルと、バッテリの存在に関係なく、充電器に接続されている場合にブートが可能です。If the device is in the S5 (shutdown state), it can always boot into Windows when connected to the charger, regardless of the battery charge level and presence of the battery, if the battery is removable.

    • Windows 10 Mobile:Windows 10 Mobile:

      バッテリがシステムを起動するために十分な料金レベルを持っている、存在する必要があります。A battery must be present and have enough charge level in order for the system to boot up.

  3. ハードウェアは、自律的に、課金を管理します。Hardware autonomously manages charging.

    ハードウェアでは、ファームウェア、Windows、ドライバー、またはメインの CPU で実行されているその他のソフトウェアを必要とせず、デバイスのバッテリが請求されます。The hardware charges the device's battery without requiring firmware, Windows, drivers, or other software running on the main CPU(s). この要件は、システムのデスクトップ エディションの Windows 10 にのみ当てはまります。This requirement only applies to Windows 10 for desktop editions systems. Windows 10 Mobile システムには、バッテリを充電するために、アプリやその他のソフトウェア コンポーネントを充電する UEFI のサポートが必要です。Windows 10 Mobile systems may require the support of a UEFI charging app and/or other software components in order to charge the battery.

  4. 充電中または停止します自動的にバッテリが完全に充電されてエラーが発生します。Charging stops automatically when the battery is fully charged or when a fault occurs.

    ハードウェアでは、課金、バッテリは完全に充電されているときに自動的に停止します。The hardware automatically stops charging when the battery is completely charged. これは、ファームウェア、Windows、ドライバー、またはメインの CPU で実行されているその他のソフトウェアを必要とせずに実行されます。This is done without requiring firmware, Windows, drivers, or other software running on the main CPU(s). バッテリや温度のエラー状態は、課金は停止も自動的にします。If there is a battery or thermal fault condition, charging is also automatically stopped.

充電中、充電器に接続しているときに発生しますCharging occurs when connected to the charger

ユーザーは、課金充電器に接続されているときに自分のデバイスを期待します。Users expect their device to charge whenever it is connected to the charger. そのため、ハードウェア、デバイスが電源の状態に関係なく充電器に接続されているときにバッテリの充電を常に試みる必要があります。As such, the hardware must always attempt to charge the battery whenever the device is connected to the charger regardless of the power state. この期待はすべての (S0) など、アクティブな電源状態の間で true を保持 (S3) スリープ、休止状態 (S4) をシャット ダウン (S5) ハード オフ (G2/G3) S0 がアイドル状態とします。This expectation holds true across all of the power states including active (S0), Sleep (S3), Hibernate (S4), shutdown (S5), hard off (G2/G3) and S0 Idle. バッテリが完全に充電されて後またはエラー状態が発生した場合、課金に停止します。Charging may stop once the battery is fully charged or if a fault condition occurs.

Windows またはファームウェアが起動または実行時に割引料金でバッテリに課金されるデザインにお勧めしません。We do not recommend a design that charges the battery at a reduced rate when Windows or the firmware has not been booted or running. たとえば、バッテリでは、システムが完全にオフのときに、低速の料金で提供可能性がありますされ、デバイスが起動および ACPI ファームウェアを使用して、バッテリを定期的に監視することができます、充電器や、料金が高速に接続します。For example, the battery may charge at a slower rate when the system is completely off and connected to the charger and charge at a faster rate when the device is booted and ACPI firmware can be used to monitor the battery periodically.

最後に、設計であっても、熱の条件が、システムの場合、速度が低下バッテリが充電可能性があります。Finally, a design may charge the battery at a lower rate when the system is in a thermal condition. このシナリオでは、速度が低下するか、バッテリの充電全体を削除する熱を削減することがあります。In this scenario, heat may be reduced by slowing or eliminating battery charging altogether. 熱条件は、どのようなシステムの設計での例外です。Thermal conditions are the exception in any good system design.

Windows は AC 電源に接続されているときに起動可能な常にWindows is always bootable when connected to AC power

  • Windows 10 デスクトップ エディションの場合Windows 10 for desktop editions

    ユーザーが、すぐに起動して自分のデバイスを使用して、充電器に接続されているときに期待します。Users expect they can immediately boot and use their device whenever it is connected to the charger. そのため、デバイスがブート常に、AC 電源に接続しているときに正常に稼働する必要があります。As such, the device must always boot and be fully useable when connected to AC power. これは、(バッテリがリムーバブル) の場合は、バッテリの充電レベル、/バッテリ充電状態、およびバッテリの存在に関係なく true を保持します。This holds true regardless of the battery charge level, battery/charger state, and battery presence (if the battery is removable).

    デバイスには、ファームウェア、および Windows を起動する最小のバッテリ容量が必要とする場合、ハードウェアは必要がありますバッテリ容量が、プラットフォームによって常に予約されていることを確認します。If the device requires a minimum battery capacity to boot the firmware and Windows, the hardware must ensure that battery capacity is always reserved by the platform. 予約済みのバッテリ容量は、Windows に公開する必要がありますされません。The reserved battery capacity must not be exposed to Windows.

  • Windows 10 MobileWindows 10 Mobile

    システムが AC 電源に接続されているし、バッテリが存在する、システムは、バッテリがあるブート プロセス中にシステムの電源を十分に充電限り、オペレーティング システムを起動する試みる必要があります。When the system is connected to AC power and the battery is present, the system should attempt to boot to the operating system, as long as the battery has sufficient charge to power the system during the boot process.

ハードウェアが自律的に課金を管理します。Hardware autonomously manages charging

上で指定したは、ユーザーは、自分のデバイスへの充電器に接続されているときに課金のことを期待します。As specified above, users expect their device to charge when it is connected to the charger. その結果、ハードウェアは、ファームウェア、Windows、ドライバー、または 1 つとして、メインの CPU で実行されているその他のソフトウェアを必要とせず、バッテリを充電する必要があります。 またはこれらのコンポーネントの詳細は運用できない可能性がありますまたは任意の時点でエラー状態になる可能性があります。As a result, the hardware must charge the battery without requiring firmware, Windows, drivers or other software running on the main CPU(s) as one or more of these components may not be operational or may be in a fault state at any given time. この要件は、Windows 10 デスクトップ エディションのシステムにのみ適用されます。This requirement applies only to Windows 10 for desktop editions systems. Windows 10 Mobile システムには、バッテリを充電するために、アプリやその他のソフトウェア コンポーネントを充電する UEFI のサポートが必要です。Windows 10 Mobile systems may require the support of a UEFI charging app and/or other software components in order to charge the battery.

課金を停止します自動的と完全に請求されるか、エラーが発生したときCharging stops automatically when fully charged or when a fault occurs

ハードウェアでは、バッテリは完全に充電されている場合、または障害が発生した場合の課金を自動的に停止します。The hardware automatically stops charging when the battery is completely charged or if a fault occurred. 充電では、これは、ファームウェア、Windows、ドライバー、またはメインの CPU で実行されているその他のソフトウェアを必要とせず実行する必要があります。As with charging, this must be done without requiring firmware, Windows, drivers, or other software running on the main CPU(s). さらに、バッテリの安全性の規制に関するすべての条件に準拠するには、ハードウェアが必要です。Further, the hardware is required to comply with all battery safety regulatory conditions.

電源とインジケーターの課金Power and charging indicators

Windows では、複数の場所で、ユーザーに表示されるアイコンを使用して電源ソースとバッテリの状態インジケーターを提供します。Windows provides a power source and battery status indicator using icons the user can see in several places. 場所には、バッテリのシステム トレイ アイコンやロック画面が含まれます。Places include the battery system tray icon and lock screen.

デバイスが充電状態を示す LED などの物理的なインジケーターをこともできます。A device can also have a physical indicator such as an LED indicating the charging status. このインジケーターには、電力消費量にほとんど影響が必要です。This indicator must have little impact on the power consumption.

Windows の電源と充電アイコンWindows power and charging icons

Windows では、電源と充電 3 つの場所でステータスが表示されます。Windows displays power source and charging status in three locations:

  • ロック画面。On the lock screen:

    Windows では、ソースと料金の電源の状態で、バッテリ アイコンが表示されます。Windows displays a battery icon with the power source and charge status.

  • デスクトップのシステム トレイ (Windows 10 デスクトップ エディションのみ):Desktop system tray (Windows 10 for desktop editions only):

    Windows では、ソースと料金の電源の状態のバッテリ アイコンが表示されます。Windows displays a battery icon with power source and charge status. ユーザーは、バッテリ アイコンをクリックすると、残りの容量、推定残り、時間やバッテリごとの詳細 (複数のバッテリを備えている) 場合などの情報を表示できます。When the user clicks on the battery icon, they can view information such as capacity remaining, estimated time remaining, and per-battery details (if equipped with multiple batteries).

  • ステータス バー (モバイル SKU のみ):Status Bar (Mobile SKU only):

    Windows では、ソースと料金の電源の状態のバッテリ アイコンが表示されます。Windows displays a battery icon with power source and charge status. アクション センターを展開するには、画面の一番上から下へスワイプする、ユーザーは、実際のバッテリの割合を表示できます。When the user swipes down from the top of the screen to expand the action center, they can view the actual battery percentage.

  • バッテリー セーバーの設定:Battery Saver Settings:

    バッテリー セーバーの設定 ページで (設定 ->システム ->バッテリー セーバー)、Windows は、全体的なバッテリの割合、バッテリの状態 (充電中とを表示します。放電しています) と料金/放電して推定残り時間。In the Battery Saver settings page (Settings -> System -> Battery Saver), Windows displays the overall battery percentage, battery status (Charging vs. Discharging) and the Estimated Remaining Time to charge/discharge.

S0 がアイドル状態の対応プラットフォームでは、表示が表示されて Windows について簡単に点灯するか、表示、システムに接続されているか、電源のソースの変更をユーザーに通知する充電器から切断されているときに。For platforms capable of S0 Idle, if the display is visible, Windows briefly lights up the display when the system is connected to or disconnected from the charger to notify the user of a power source change.

インジケーターの充電プラットフォーム ハードウェアPlatform hardware charging indicators

アドレス シナリオのみ Windows が実行されていて、表示が、ユーザーに表示される Windows に組み込まれているアイコン。The icons built into Windows only address scenarios where Windows is running and the display is visible to the user. ただし、画面に表示されるインジケーターが表示されない、システムがシャット ダウンまたは S0 がアイドル状態の表示がオフの場合。However, the on-screen indicators are not visible when the system is shutdown or S0 Idle state where the display is off. 画面に視覚的な合図を表示することはできません、ため、プラットフォームは、電源が存在することを示す場合は、物理充電中インジケーターを含めることができます。Because the user cannot see visual cues on the screen, the platform may include a physical charging indicator to indicate power is present.

次のセクションでは、ドッキング ソリューションを使って S0 がアイドル状態のプラットフォームでのキーボードおよびマウスまたはタッチパッドを実装するための推奨事項を提供します。The following section provides our recommendation for implementing keyboards and mice/touchpads on S0 Idle platforms with docking solutions. このセクションでは、課題と考えられる解決策と共に原則についても説明します。This section also talks about the challenges and principles along with potential solutions. 両方の潜在的なソリューションがモバイルに適用され、A/C 電源ドックを固定します。Both potential solutions apply to mobile and A/C powered stationary docks.

機能を公開して、Windows サブシステムの課金Exposing the power and charging subsystem to Windows

Windows を実行しているすべてのモバイル デバイスには、1 つまたは複数のバッテリと AC アダプターなどの電源が含まれています。Every mobile device running Windows includes one or more batteries and a power source such as an AC adapter. これらのサブシステムからの情報は、電源管理の状態がユーザーに伝えます。Information from these subsystems conveys power management status to the user. 状態には、いつでも、AC アダプターとバッテリが充電中の状態とバッテリの推定の残り時間にバッテリ残容量が含まれています。The status includes remaining battery capacity at any time, state of the AC adapter and battery charging, and estimated remaining battery time. 電源のサブシステムの情報は、Windows のバッテリ メーターとその他の電源管理の診断ユーティリティで公開されます。The power subsystem information is exposed in the Windows battery meter and other power management diagnostic utilities.

次のセクションでは、ドッキング ソリューションを使って S0 がアイドル状態のプラットフォームでのキーボードおよびマウスまたはタッチパッドを実装するための推奨事項を提供します。The following section provides our recommendation for implementing keyboards and mice/touchpads on S0 Idle platforms with docking solutions. このセクションでは、課題と考えられる解決策と共に原則についても説明します。This section also talks about the challenges and principles along with potential solutions. 両方の潜在的なソリューションがモバイルに適用され、A/C 電源ドックを固定します。Both potential solutions apply to mobile and A/C powered stationary docks.

一般的な電源サブシステム ハードウェア トポロジTypical power subsystem hardware topologies

一般に、Windows には、power および課金のサブシステムの 2 つのハードウェア トポロジのいずれかが必要です。Generally, Windows expects one of two hardware topologies for the power and charging subsystem.

次の図は、Windows を実行している既存のデバイスで一般的では、プラットフォームの埋め込みコント ローラーを使用する最初のトポロジを示しています。The following figure illustrates the first topology that uses the platform's Embedded Controller, which is common in existing devices running Windows. 埋め込みコント ローラーは、電源のソース管理、バッテリの充電管理、電源ボタンと切り替えの検出と PS/2 と互換性のあるキーボードおよびマウス入力など、モバイル デバイスで複数の関数を実行します。The Embedded Controller performs multiple functions in a mobile device, including power source control, battery charge management, power button/switch detection and PS/2-compatible keyboard and mouse input. 埋め込みコント ローラーは通常、低いピン数 (LPC) バスを介して core シリコンに接続します。The embedded controller is typically connected to the core silicon through the Low Pin Count (LPC) bus. Windows を照会し、ACPI 埋め込みコント ローラー インターフェイスを通じて power サブシステム情報について通知されます。Windows queries and is notified about power subsystem information through the ACPI embedded controller interface.

電源と embeddded のコント ローラーとサブシステムの課金

次の図は、バッテリの充電コント ローラーと I²C などの軽量な周辺機器バス経由で、プラットフォームのコア シリコンに直接接続されている燃料計のコンポーネントを利用する、2 番目のトポロジを示します。The next figure illustrates the second topology, which makes use of a battery charge controller and fuel gauge component connected directly to the platform's core silicon over a lightweight peripheral bus such as I²C. この構成で Windows クエリし、は I²C バス経由で通信を使用して power サブシステム変更について通知します。In this configuration, Windows queries and is notified about power subsystem changes through communications over the I²C bus. デバイス ドライバーを使用して、バッテリのやサブシステムを充電中ではなく、ACPI 管理メソッドの環境は単純な周辺機器 (sp B) 操作の地域のサポートにより拡張されます。Instead of using a device driver for the battery or charging subsystem, the ACPI control method environment is extended with support for a Simple Peripheral (SPB) Operation Region. SPB の処理領域、ACPI コントロール メソッドとコードが、バッテリの充電コント ローラーとの通信に燃料ゲージ シリコンのコアに I²C 経由で接続されたコンポーネント。The SPB operation region allows the ACPI control method code to communicate to the battery charge controller and fuel gauge components connected to the core silicon over I²C.

電源とプラットフォーム コント ローラーを使用するサブシステムの課金

バッテリと電源のサブシステム ドライバー モデルBattery and power subsystem driver model

Windows 機能の堅牢なバッテリと電源サブシステムのデバイス ドライバー モデル。Windows features a robust battery and power subsystem device driver model. 電源管理の情報が、バッテリのデバイス ドライバーを介して Windows 電源マネージャーに伝達し、集計され、バッテリ装置 Irp を通じて Windows ユーザー インターフェイスと電源管理ソフトウェア Api のセットに公開されています。The power management information is conveyed to the Windows power manager through a battery device driver, then aggregated and exposed to the Windows user interface through the battery device IRPs and a set of power management software APIs.

バッテリのドライバー モデルは、ポート/ミニポート モデル、つまり、バッテリのモデルとインターフェイスを定義してミニポートを介して新しいバッテリ型を公開することができます。The battery driver model is a port/miniport model—that is, the battery model and interfaces are defined such that the new battery types can be exposed through a miniport. ただし、実際には、Windows エコシステムでどのように使用される重要ながある 2 つだけのミニポートにバッテリ ミニポート ドライバーが、ACPI をサポートしているメソッドのバッテリと無停電電源装置の USB 接続 (用 HID バッテリのミニポート ドライバーの制御UPS) デバイス。However, in practice, there are only two miniports that have any significant use in the Windows ecosystem - the battery miniport driver supporting the ACPI control method batteries and the HID battery miniport driver for USB-attached Uninterruptible Power Supply (UPS) devices.

バッテリと電源のシステム ドライバー モデル

すべての Pc はバッテリと充電サブシステム、ACPI コントロール メソッド インターフェイスを通じて公開する必要があります。All PCs are expected to expose the batteries and charging subsystem through the ACPI control method interface. バッテリのミニポート インターフェイスをプラットフォームに固有のバッテリ充電サブシステムの使用されません。The battery miniport interface should not be used for platform-specific battery charging subsystems. バッテリ情報と状態をポーリングする Windows を許可する ACPI 仕様で定義されているコントロールの方法はあります。There are ACPI specification-defined control methods that allow Windows to poll for battery information and status. 同様に、バッテリと AC からバッテリへの移行など、電源ソースの変更の Windows に通知するハードウェア プラットフォームを許可するにはイベント ドリブン モデルがあります。Similarly, there is an event-driven model to allow the hardware platform to notify Windows of battery and power source changes, such as a transition from AC to battery power.

ステータスのポーリングStatus polling

Windows の電源マネージャーは、バッテリの充電残量を含むとドレインの現在の比率から定期的に状態情報を要求します。The Windows power manager periodically requests status information from the battery including the charge capacity remaining and the current rate of drain. この要求は、電源マネージャー、上位のユーザー インターフェイス コンポーネントまたはアプリケーションで発生します。This request originates in the power manager, a higher-level user interface component, or application. 電源マネージャーは、デバイスのバッテリを I/O 要求パケット (IRP) に要求をオンにします。The power manager turns the request into an I/O Request Packet (IRP) to the battery device(s). バッテリは、ACPI コントロールのメソッドのインターフェイスを通じて公開される、ときに、コントロール メソッド バッテリ ドライバー (cmbatt.sys) は、適切な ACPI 制御メソッドを実行します。When the battery is exposed through the ACPI control method interface, the control-method battery driver (cmbatt.sys) executes the appropriate ACPI control methods. 状態の情報の場合、 _BST (バッテリの状態) のメソッドが実行されます。In the case of status information, the _BST (battery status) method is executed.

_BST メソッドは、ACPI ファームウェア power サブシステムから現在の情報を取得する必要があり、ACPI 仕様で指定された形式で、バッファーには、その情報をパッケージします。The _BST method requires the ACPI firmware to obtain current information from the power subsystem and then packages that information in a buffer with format specified by the ACPI specification. I²C を介して接続されている埋め込みコント ローラーまたはバッテリの充電器からバッテリの状態にアクセスするために必要な特定のコードは、ACPI ファームウェア、および構成するコードの一部内に含まれる、 _BST メソッド。The specific code required to access the battery status either from the embedded controller or the battery charger connected through I²C is contained within the ACPI firmware and part of the code comprising the _BST method. 最終的な結果、 _BST メソッドはコントロール メソッド バッテリ ドライバーに返される情報のバッファーが必要です。The net result of the _BST method is the buffer of information required which is returned to the control-method battery driver. コントロール メソッドのバッテリ ドライバーは、最後に、バッテリのドライバーと Windows の電源マネージャによって必要な形式にバッファーを変換します。The control method battery driver finally converts the buffer to the format required by the battery driver and Windows power manager.

状態変更通知State change notifications

電源とバッテリのサブシステムでは、Windows に状態の変更は、バッテリ電源 AC からの遷移を含め、いくつかの通知を生成します。The power and battery subsystem will generate several notifications to Windows for state changes, including transitions from AC to battery power. Windows によってこれらの状態変更のポーリング実用的ではないの高頻度をポーリングが必要になります。Polling by Windows for these state changes is not practical given the high frequency at which polling would be required. したがって、ハードウェア プラットフォームでは、バッテリの状態が大幅に変更されたときに Windows に通知するのに、イベント ドリブン モデルを使用する必要があります。Therefore, the hardware platform must use an event-driven model to notify Windows when the battery state changes significantly.

ときに、バッテリの状態の変更、含む残りの容量または充電状態、ACPI ファームウェアは、コントロールのメソッドのバッテリ デバイス上の Notify(0x80) を発行します。When the battery status changes, including remaining capacity or charging status, the ACPI firmware issues a Notify(0x80) on the control method battery device. Windows コントロール メソッド バッテリ ドライバーを評価し、 _BST メソッドと電源マネージャに更新された情報を返します。The Windows control method battery driver then evaluates the _BST method and returns the updated information to the power manager.

最後の完全なをなど、バッテリの静的なデータ変更は、容量、容量の設計とサイクル数を請求を ACPI ファームウェアは、コントロールのメソッドのバッテリ デバイス上の Notify(0x81) を発行します。When the battery static data changes, including last full charge capacity, design capacity and cycle count, the ACPI firmware issues a Notify(0x81) on the control method battery device. Windows コントロール メソッド バッテリ ドライバーを評価し、 _BIX メソッドと電源マネージャに更新された情報を返します。The Windows control method battery driver then evaluates the _BIX method and returns the updated information to the power manager.

プラットフォームのコアに直接接続されているバッテリ サブシステム ハードウェアで ACPI ファームウェア環境を通じて、システム コントロール割り込み (SCI) の場合は、埋め込みコント ローラーを搭載したプラットフォームとプラットフォームの場合の GPIO を中断します。シリコンします。The platform interrupts the ACPI firmware environment through the System Control Interrupt (SCI) in the case of an Embedded Controller-equipped platform and through a GPIO in the case of platforms with battery subsystem hardware connected directly to the core silicon.

埋め込みコント ローラーの ACPI 操作ACPI operation with an embedded controller

持つ、バッテリと電源サブシステムの一般的な埋め込みコント ローラーに接続されているプラットフォームでは、ACPI の制御メソッド環境とプラットフォーム ハードウェア間の通信を容易にするために、ACPI 埋め込みコント ローラー操作の領域を使用します。Platforms that have their battery and power subsystem connected to the typical embedded controller use the ACPI Embedded Controller operation region to facilitate communications between the ACPI control method environment and the platform hardware.

ACPI ファームウェアは、ACPI の仕様の 12.11.1 で説明したように、ACPI 名前空間での埋め込みコント ローラーを定義する必要がありますを含みます。The ACPI firmware must define the embedded controller in the ACPI namespace as described in section 12.11.1 of the ACPI specification, including:

  • 埋め込みコント ローラーの Device() ノードです。A Device() node for the embedded controller.
  • A_デバイスを示す HID オブジェクトは、埋め込みコント ローラー。A _HID object that indicates the device is an embedded controller.
  • A_埋め込みコント ローラーの IO リソースを示すために、CRS オブジェクト。A _CRS object to denote the IO resources for the embedded controller.
  • A_埋め込みコント ローラーの SCI を定義する GPE オブジェクト。A _GPE object that defines the SCI for the embedded controller.
  • バッテリの状態および情報のメソッドを含む、名前空間の他の ACPI コントロール メソッドのコードによってアクセスできる埋め込みコント ローラー内に含まれる情報を記述する操作領域。An operation region describing the information contained within the embedded controller that can be accessed by other ACPI control method code in the namespace, including battery status and information methods.

詳細については、ACPI 仕様のセクション 12 に説明します。Complete details are described in section 12 of the ACPI specification.

埋め込みコント ローラーからバッテリに関する情報へのアクセスAccessing battery information from the embedded controller

ACPI control メソッドは、埋め込みコント ローラーの操作のリージョンで説明されている値を読み取って、埋め込みコント ローラーからの情報にアクセスします。The ACPI control method accesses the information from the embedded controller by reading the values described in the embedded controller's operation region.

バッテリの状態が変更されたときに、オペレーティング システムを通知します。Notifying the operating system when battery state changes

埋め込みコント ローラーは、バッテリの状態の変更を検出すると、充電状態または残りの容量で指定したとおりに変更を含む_BTP、埋め込みコント ローラーは、SCI を生成し、設定、SCI_埋め込みの EVT ビットコント ローラーの状態コマンド (EC_SC) を登録します。When the embedded controller detects a change in battery state, including a change in charging state or remaining capacity as specified by _BTP, the embedded controller generates an SCI and sets the SCI_EVT bit in the embedded controller status command (EC_SC) register. ACPI の Windows ドライバーは埋め込みコント ローラーと通信し、クエリ コマンドを発行 (QR_EC) を発行できる通知に関する特定の情報を要求します。The Windows ACPI driver will communicate with the embedded controller and issue a query command (QR_EC) to request specific information about the notification to be issued. 埋め込みコント ローラー、対応するバイト値を設定、 _QXX メソッドを実行します。The embedded controller then sets a byte value corresponding to the _QXX method to be executed. たとえば、埋め込みコント ローラーとファームウェアの ACPI は、0x33 バッテリの状態情報を更新する値を定義できます。For example, the embedded controller and ACPI firmware can define value 0x33 to be an update to the battery status information. ACPI のドライバーが実行されている通知として 0x33 値を設定すると、埋め込みコント ローラー、 _QXX メソッド。When the embedded controller sets the value 0x33 as the notification, the ACPI driver will execute the _QXX method. 内容、 _QXX メソッドは、通常は名前空間の制御メソッド バッテリ デバイス上の Notify(0x80) します。The contents of the _QXX method will typically be a Notify(0x80) on the control method battery device in the namespace.

課金システムが、I²C ACPI 操作に接続されています。ACPI operation with an I²C connected charging system

プラットフォームは、バッテリと I²C などの低電力シリアル バスを介して core チップセットに接続されている電源サブシステムにも接続できます。Platforms may also connect their battery and power subsystem connected to the core chipset through a low-power serial bus such as I²C. これらの設計では、ACPI GenericSerialBus 操作の領域は ACPI 制御メソッドとバッテリ サブシステム ハードウェア間の通信に使用されます。In these designs, the ACPI GenericSerialBus operation region is used to communicate between the ACPI control methods and battery subsystem hardware. バッテリの状態が変更されたときに実行する ACPI 制御メソッドは、GPIO 割り込みにバッテリ サブシステムのハードウェアを接続できます。Connecting the battery subsystem hardware to a GPIO interrupt allows the ACPI control methods to be executed when a battery status changes.

バッテリと電源サブシステム ハードウェアが I²C を介して接続されているときに、ACPI ファームウェアを定義する必要があります。When the battery and power subsystem hardware is connected through I²C, the ACPI firmware must define:

  • GPIO コント ローラー デバイスなど、I²C 割り込みが接続先の Device() ノード:A Device() node for the GPIO controller device to which the I²C interrupt is connected, including:

    • _GPIO コント ローラーのハードウェア ID を記述する HID オブジェクト。_HID object describing the hardware ID of the GPIO controller.
    • _CSR コンテンツ GPIO コント ローラーの割り込みおよびハードウェアのリソースを記述するオブジェクト。_CSR object describing the interrupt and hardware resources of the GPIO controller.
    • _ACPI イベント メソッドの実行を 1 つまたは複数の GPIO 行にマップする AEI オブジェクト。_AEI object which maps one or more GPIO lines to ACPI event method execution. これにより、GPIO 行割り込みに応答して実行する ACPI メソッドです。This allows ACPI methods to be executed in response to GPIO line interrupts.
  • など、ゲージとハードウェアを充電するバッテリが燃料 I²C コント ローラーの Device() ノードが接続します。A Device() node for the I²C controller to which the battery fuel gauge and charging hardware are connected, including:

    • _HID と_CSR オブジェクトが、ハードウェア ID と I²C コント ローラーのリソースを記述します。_HID and _CSR objects describing the hardware ID and resources of the I²C controller.
    • 仮想のコマンドを記述する I²C デバイスのスコープ内で GenericSerialBus OperationRegion I²C デバイスを登録します。A GenericSerialBus OperationRegion within the scope of the I²C device describing the virtual command registers for the I²C device.
    • GenericSerialBus OperationRegion 内のフィールド定義します。Field definitions within the GenericSerialBus OperationRegion. フィールド定義では、I²C デバイスの仮想コマンド レジスタにアクセスする I²C デバイス外の ASL コードを許可します。The field definitions allow ASL code outside of the I²C device to access the virtual command registers for the I²C device.

GPIO コント ローラーを説明して、ACPI イベントに GPIO 行のマッピングは、バッテリの状態と I²C デバイスからの GPIO 割り込みが発生したときに実行される通知の制御メソッドを許可します。Describing the GPIO controller and mapping of GPIO lines to ACPI events allows the control methods for battery status and notification to be executed when a GPIO interrupt from an I²C device is raised. GenericSerialBus 操作の領域を記述すると、I²C バス経由で通信し、バッテリの燃料計とサブシステムの課金からレジスタと情報を読み取り、バッテリの状態の ACPI コードができます。Describing the GenericSerialBus operation region allows the ACPI code for battery status to communicate over the I²C bus and read registers and information from the battery fuel gauge and charging subsystem.

課金システムのバッテリ情報にアクセスAccessing battery information from the charging system

バッテリの状態は、バッテリのサブシステムのハードウェアが接続されている I²C バス経由でのコマンドを送受信して ACPI の制御メソッドによって実行できます。The battery status can be executed by ACPI control methods by sending and receiving commands over the I²C bus to which the battery subsystem hardware is connected. バックアップの状態とバッテリの静的情報メソッド コントロール メソッドのコードを読み取って、ACPI 名前空間で説明されている GenericSerialBus 操作リージョンからデータを書き込みます。The control method code backing the status and battery static information methods reads and writes data from the GenericSerialBus operation regions described in the ACPI namespace. コントロールのメソッドのコードでは、燃料からデータをゲージのデバイスまたはバッテリ容量に関する静的な情報と GenericSerialBus 操作地域 I²C バス経由でのサイクル数を読み取ります。The control method code reads the data from the fuel gauge device or static information about the battery capacity and cycle counts over the I²C bus through the GenericSerialBus operation region.

バッテリの状態が変更されたときに Windows を通知します。Notifying Windows when the battery state changes

状態の変更と、割り込みが物理的にシリコンのコア上の GPIO 回線に接続されている場合、バッテリのサブシステム ハードウェアにより、割り込みを生成できます。An interrupt can be generated by the battery subsystem hardware when the state changes and the interrupt is physically connected to a GPIO line on the core silicon. GPIO 行を使用して特定のコントロール メソッドの実行にマップできる、 _ACPI で説明されている、GPIO コント ローラーの下に AEI オブジェクト。The GPIO line can be mapped to a specific control method execution using the _AEI object under the GPIO controller described in ACPI. ACPI の Windows サブシステムが原因で、状態と更新する方法は静的な情報を再評価する Windows コントロール メソッドのバッテリ デバイスの Notify() はさらに特定の GPIO 行に関連付けられているメソッドを実行して GPIO 割り込みが発生したときバッテリの状態。When the GPIO interrupt occurs, the Windows ACPI subsystem runs the method associated with the specific GPIO line which can in turn do a Notify() on the control method battery device, causing Windows to re-evaluate the status and static information methods to update the battery status.

電源装置のオブジェクトの ACPI の実装ACPI implementation of power supply object

ACPI ファームウェアでは、ACPI power ソース デバイスを実装する必要があります。The ACPI firmware must implement an ACPI power source device. このオブジェクトは、ハードウェア ID を持つ自体を報告する必要があります (_HID) の"ACPI0003"。This object must report itself with a hardware ID (_HID) of "ACPI0003". このオブジェクトは、ACPI を実装する必要がありますも_PSR (電源) メソッドです。This object must also implement the ACPI _PSR (Power Source) method. このメソッドは、電源の状態を取得し、電源が現在オンライン (AC 電源) を伝達 (バッテリ) でオフラインまたはします。This method returns the status of the power source and conveys if the power source is currently online (AC power) or offline (on battery power). システムは、1 つを介して多重化する必要がありますのすべての入力の電源_PSR メソッド。All input power sources for the system must be multiplexed through a single _PSR method. たとえば、_場合は、システムの電源を DC バレル コネクタまたは別のドッキング コネクタを通じてオンライン PSR を伝達する必要があります。E.g., _PSR must convey online if the system is powered through a DC barrel connector or a separate dock connector. ACPI Power ソースの複数のデバイスを使用しません。Do not use multiple ACPI Power Source Devices.

_PSR メソッドは online (AC 電源) のみを報告する必要がありますが、システムをコンセントの電源に接続したとき。The _PSR method must only report online (AC power) when the system is connected to mains power. ときの状態_PSR 変更、プラットフォームは ACPI 名前空間で割り込みおよびデバイス上の Notify(0x80) を生成する必要があります。When the state of _PSR changes, the platform must generate an interrupt and a Notify(0x80) on the device in the ACPI namespace. これは、物理的な状態の変更が、プラットフォームによって検出された後にすぐに実行する必要があります。This must be performed immediately after the physical state change is detected by the platform.

バッテリの静的な情報の ACPI の実装ACPI implementation of battery static information

ACPI のファームウェアは、ACPI を実装する必要があります_容量の設計、サイクル数、およびシリアル番号を含む、バッテリに関する静的な情報を提供する各バッテリの BIX メソッド。The ACPI firmware must implement the ACPI _BIX method for each battery that provides static information about the battery, including design capacity, cycle count, and serial number. 次の表では、ACPI 仕様で説明されているフィールドの定義を拡張し、この情報を Windows に固有の要件を列挙します。The table below expands on the definitions of the fields described in the ACPI specification and enumerates Windows-specific requirements for this information.

フィールドField 説明Description Windows に固有の要件Windows-specific requirements
リビジョンRevision _BIX リビジョンをことを示します。Indicates _BIX revision 0x0 に設定する必要があります。Must be set to 0x0
電源装置Power Unit ハードウェアによって報告される単位を決定します。Determines the units reported by the hardware. 次のいずれかを行います。MA/MAh または mW/mWh します。Either: MA/MAh or mW/mWh. ユニットが mW/mWh 0x0 に設定する必要があります。Must be set to 0x0 to indicate units is mW/mWh
容量の設計Design Capacity MWh のバッテリの元の容量を示しますIndicates the original capacity of the battery in mWh 正確な値に設定する必要があり、0x0 または 0 xffffffff にすることはできませんMust be set to an accurate value and cannot be 0x0 or 0xFFFFFFFF
最後の完全充電の容量Last Full Charge Capacity バッテリの現在の完全充電の容量を示しますIndicates the current full charge capacity of the battery

正確な値に設定する必要があり、0x0 または 0 xffffffff にすることはできませんMust be set to an accurate value and cannot be 0x0 or 0xFFFFFFFF

この値は、それぞれを更新する必要があります時間サイクル カウントが増加します。This value must update each time cycle count increases.

バッテリ テクノロジBattery Technology バッテリが充電式または 1 回限りの使用を示します。Indicates if the battery is rechargeable or one-time use. バッテリが充電式を示す 0x1 に設定する必要があります。Must be set to 0x1 to indicate the battery is rechargeable
電圧の設計Design Voltage バッテリの電圧の設計を示しますIndicates the design voltage of the battery

MV の新しいバッテリの電圧の設計に設定する必要があります。Must be set to the design voltage of the battery when new in mV.

0x0 または 0 xffffffff に設定しない必要があります。Must not be set to 0x0 or 0xFFFFFFFF.

警告の容量の設計Design capacity of Warning OEM 提供のバッテリ警告レベルを示します。Indicates an OEM-provided low battery warning level. この値は、Windows によって無視されます。This value is ignored by Windows.
低の容量の設計Design capacity of Low すぐに、シャット ダウン状態または休止状態、システムの前に電源をオフに、Windows が必要、バッテリ切れレベルを示します。Indicates the critical battery level at which Windows must immediately Shutdown or Hibernate before the system powers off. 0x0 とバッテリの設計容量の 5% の間の値に設定する必要があります。Must be set to a value between 0x0 and 5% of the battery design capacity.
バッテリの容量の粒度 1Battery Capacity Granularity 1 容量が警告のデザインとデザインの容量の不足、ハードウェアで検出できる残りの料金変更の最小量を示します。Indicates the minimum amount of remaining charge change that can be detected by the hardware between the Design Capacity of Warning and Design Capacity of Low. 必要があります設定する値にバッテリ容量の設計の 1% を超える。Must be set to a value no larger than 1% of the battery design capacity.
バッテリの容量の粒度 2Battery Capacity Granularity 2 最後の完全充電の容量と容量の警告の設計のハードウェアで検出できる残りの料金変更の最小量を示します。Indicates the minimum amount of remaining charge change that can be detected by the hardware between Last Full Charge Capacity and Design Capacity of Warning. 必要があります値に設定する、75mW を超える (約。 25Whr バッテリの 25%) (1/400) は、バッテリ容量の設計の。Must be set to a value no larger than 75mW (approximately .25% of a 25Whr battery) which is (1/400) of the battery design capacity.
サイクル カウントCycle Count バッテリのサイクル数を示します。Indicates the battery cycle count. 必要があります設定する値を 0x0 より大きい。Must be set to a value larger than 0x0. 0 xffffffff に設定しない必要があります。Must not be set to 0xFFFFFFFF.
測定精度Measurement Accuracy バッテリ容量の測定値の精度を示します。Indicates the accuracy of the battery capacity measurement. 95,000 に設定する必要がありますまたはまたはそれ以上の 95% の精度を示すより優れています。Must be set to 95,000 or better, indicating 95% accuracy or better.
最大のサンプリング時間Max Sampling Time 最大値には、残りの容量の違いを表示する 2 つの連続する _BST 評価の間でのサンプリング時間がサポートされています。The maximum supported sampling time between two successive _BST evaluations which will show a difference in remaining capacity. 特定の要件はありません。No specific requirement.
最小のサンプリング時間Min Sampling Time サポートされる最小の残りの容量の違いを表示する 2 つの連続する _BST 評価の間でのサンプリング時間The minimum supported sampling time between two successive _BST evaluations which will show a difference in remaining capacity 特定の要件はありません。No specific requirement.
最大平均間隔Max Averaging Interval 最大バッテリ燃料計でサポートされている、ミリ秒単位の間隔の平均を計算します。The maximum averaging interval, in milliseconds, supported by the battery fuel gauge. 特定の要件はありません。No specific requirement.
平均間隔の最小値Min Averaging Interval 平均バッテリ燃料計でサポートされている、ミリ秒単位の間隔の最小値。The minimum averaging interval, in milliseconds, supported by the battery fuel gauge. 特定の要件はありません。No specific requirement.
モデル番号Model Number OEM 提供のバッテリ モデル番号OEM-provided battery model number NULL は指定できません。Must not be NULL.
シリアル番号Serial Number OEM 提供のバッテリのシリアル番号OEM-provided battery serial number NULL は指定できません。Must not be NULL.
バッテリのタイプBattery Type OEM 提供のバッテリの種類の情報OEM-provided battery type information 特定の要件はありません。No specific requirement.
OEM 情報OEM Information OEM から提供された情報OEM-provided information 特定の要件はありません。No specific requirement.

バッテリのリアルタイムの状態情報の ACPI の実装ACPI implementation of battery real-time status information

ACPI のファームウェアは、ACPI を実装する必要があります_残りの容量とドレインの現在の料金を含む、バッテリに関するリアルタイムの状態情報を提供する各バッテリの BST メソッド。The ACPI firmware must implement the ACPI _BST method for each battery which provides real-time status information about the battery, including remaining capacity and current rate of drain. 次の表では、ACPI 仕様で説明されているフィールドの定義を拡張し、この情報を Windows に固有の要件を列挙します。The table below expands on the definitions of the fields described in the ACPI specification and enumerates the Windows-specific requirements for this information.

フィールドField 説明Description Windows に固有の要件Windows-specific requirements
バッテリの状態Battery State バッテリに現在課金されているしは放電していますか、重大な状態にあるかどうかを示します。Indicates if the battery is currently being charged, is discharging or is in a critical state. バッテリの状態は、バッテリの充電中かどうかにのみ課金を報告する必要があります。The Battery State must report charging only if the battery is charging. 同様に、バッテリの状態する必要があります放電場合にのみ報告、バッテリは放電しています。Likewise, the Battery State MUST report discharging only if the battery is discharging. 課金も放電しているバッテリには、どちらのビットを報告する必要があります。A battery that is neither charging nor discharging must report neither bit.
バッテリ存在レートBattery Present Rate 現在の (mw)、バッテリからの消耗速度を提供します。Provides the current rate of drain in mW from the battery.

0x0 と 0 xffffffff 未満に以上である必要があります。Must be greater than 0x0 and less than 0xFFFFFFFF.

_BIX で測定精度の値の中で正確である必要があります。Must be accurate within the value of Measurement Accuracy in _BIX.

バッテリの残りの容量Battery Remaining Capacity MWh の残りのバッテリ容量を提供します。Provides the remaining battery capacity in mWh.

0x0 と 0 xffffffff 未満に以上である必要があります。Must be greater than 0x0 and less than 0xFFFFFFFF.

_BIX で測定精度の値の中で正確である必要があります。Must be accurate within the value of Measurement Accuracy in _BIX

バッテリの存在の電圧Battery Present Voltage バッテリの端末間での現在の電圧を示します。Indicates the current voltage across the terminals of the battery. 値を 0x0 と 0 xffffffff mV の間である必要があります。Must be between a value of 0x0 and 0xFFFFFFFF in mV.

ときにデータを_BST の変更、プラットフォームは ACPI 名前空間、割り込みとバッテリ デバイス上の Notify(0x80) を生成する必要があります。When any data in _BST changes, the platform must generate an interrupt and a Notify(0x80) on the battery device in the ACPI namespace. これは、物理的な状態の変更が、プラットフォームによって検出された後にすぐに実行する必要があります。This must be performed immediately after the physical state change is detected by the platform. すべての変更が含まれます (つまり、ビット 0) の課金または放電 (つまり Bit1) のバッテリの状態 フィールドでビット。This includes any change in the Battery State field for the charging (i.e. Bit0) or discharging (i.e. Bit1) bits.

また、プラットフォームを実装する必要があります、 _BTP-バッテリ トリップ ポイント-メソッド。Additionally, the platform must implement the _BTP-Battery Trip Point-method. _BTP はこと、超えた場合に、プラットフォーム生成する必要がある割り込みとバッテリ デバイス上の Notify(0x80) ACPI 名前空間の残り容量のしきい値を指定する Windows を使用できます。_BTP allows Windows to specify a remaining capacity threshold that when crossed, the platform must generate an interrupt and a Notify(0x80) on the battery device in the ACPI namespace. _BTP メソッドでは、Windows を防止、バッテリを定期的にポーリングする必要がなくなります。The _BTP method prevents Windows from needing to poll the battery periodically.

バッテリの制御メソッドBattery control methods

ACPI 仕様により、デバイスとオペレーティング システムに固有の制御メソッドをデバイスに固有のメソッドを使用または_DSM 制御メソッド。The ACPI specification affords for device and operating system-specific control methods through the Device-Specific Method or _DSM control method. _DSM は、ACPI 仕様の 9.14.1 で説明します。_DSM is described in section 9.14.1 of the ACPI specification.

次の Windows サポート_コントロール メソッド バッテリ デバイス用 DSM メソッド。Windows supports the following _DSM methods for control-method battery devices.

温度の料金レートの方向Thermal charge rate direction

フィールドField ValueValue 説明Description
UUIDUUID 4c2067e3-887d-475c-9720-4af1d3ed602e4c2067e3-887d-475c-9720-4af1d3ed602e Windows コントロール メソッド バッテリのドライバー サポートの拡張機能を示す GUIDGUID indicating extensions to the Windows control method battery driver support
リビジョン IDRevision ID 0x00x0 この機能の最初のリビジョンFirst revision of this capability
関数インデックスFunction Index 0x10x1 セットのバッテリ充電のスロットルSet battery charge throttle
ArgumentsArguments 温度の上限Thermal Limit

整数の値は 0 から 100 の熱の料金の上限を示します。Integer value from 0 to 100 indicating the thermal charge limit.

40% の値は、最大転送率の 40% のバッテリを充電する必要がありますを示します。A value of 40% indicates the battery should be charged at 40% of maximum rate.

0% の値は、バッテリの充電を停止するまで、このメソッドが再度呼び出されることを示します。A value of 0% indicates battery charging should be stopped until this method is called again.

戻り値Return Value(s) なしNone なしn/a

ユーザーによる保守バッテリUser serviceable battery

フィールドField ValueValue 説明Description
UUIDUUID 4c2067e3-887d-475c-9720-4af1d3ed602e4c2067e3-887d-475c-9720-4af1d3ed602e Windows コントロール メソッド バッテリのドライバー サポートの拡張機能を示す GUIDGUID indicating extensions to the Windows control method battery driver support
リビジョン IDRevision ID 0x00x0 この機能の最初のリビジョンFirst revision of this capability
関数インデックスFunction Index 0x20x2 この _DSM あるバッテリ装置がユーザーに処理できるかどうかを判断する OSPM を示します。Indicates this _DSM is for OSPM to determine if the battery device is user-serviceable or not.
ArgumentsArguments なしNone 引数は必要ありません。No arguments required.
戻り値Return Value(s) 1 つの整数を含むパッケージ。Package containing a single integer.

0x0 バッテリ ユーザーによる保守でないと、エンドユーザーに置き換えることができませんまたはその他のツールをエンドユーザーに置き換えることができます。0x0 if the battery is not user-serviceable and cannot be replaced by the end user, or can be replaced by the end user with additional tools.

0x1 の場合は追加のツールがない場合、エンドユーザーは、バッテリを置き換えることができます。0x1 if the battery can be replaced by the end-user without additional tools.

必要なウォッチドッグの課金Charging watchdog required

フィールドField ValueValue 説明Description
UUIDUUID 4c2067e3-887d-475c-9720-4af1d3ed602e4c2067e3-887d-475c-9720-4af1d3ed602e Windows コントロール メソッド バッテリのドライバー サポートの拡張機能を示す GUIDGUID indicating extensions to the Windows control method battery driver support
リビジョン IDRevision ID 0x00x0 この機能の最初のリビジョンFirst revision of this capability
関数インデックスFunction Index 0x30x3 コントロールのメソッドのバッテリが高現在充電、および、ウォッチドッグをリセットする必要があります期間を維持するために定期的なウォッチドッグのリセットを必要と判断する OSPM です。 ただしこの _DSM ことを示します。Indicates this _DSM is for the OSPM to determine if the control method battery requires periodic watchdog resetting to maintain high current charging and the period at which the watchdog must be reset
ArgumentsArguments なしNone 引数は必要ありません。No arguments required.
戻り値Return Value(s) 1 つの整数を含むパッケージ。Package containing a single integer. バッテリがウォッチドッグ サービスを要求していない場合は 0x0。0x0 if the battery does not require watchdog servicing.

0x0000001e 0x12C を含む値では、秒単位で最大したい間隔を示します。Values inclusive of 0x0000001e and 0x12C indicate the maximum poling interval in seconds.

その他のすべての値は無視され、0x0 として扱われます、ウォッチドッグをリセットする必要はありません。All other values are ignored and are treated as 0x0 and watchdog resetting is not required.

Windows が不要になったウォッチドッグに指定された値よりも間隔で _BST メソッドを実行、有効なウォッチドッグ間隔が指定されている場合に課金 _BST メソッドで BatteryState の値を設定するたびにします。If a valid watchdog interval is specified, Windows will execute the _BST method at an interval no longer than the watchdog value specified whenever the value of BatteryState in the _BST method is set to charging.

この値の動的更新はサポートされていません。Dynamic update of this value is not supported.

サード パーティのバッテリ ミニポート ドライバー3rd Party Battery Miniport Drivers

Windows 10 では、Oem および ihv 側が独自サード パーティ製バッテリ ミニポート ドライバーを Microsoft cmbatt.sys ドライバーを置き換えようし、バッテリ ハードウェアと直接通信を開発できます。In Windows 10, OEMs and IHVs can develop their own 3rd party battery miniport drivers to replace the Microsoft cmbatt.sys driver and communicate directly with the battery hardware. バッテリ ドライバーのサンプルは、GitHub では、WDK サンプル キットの一部として、Microsoft によって提供されます。A sample battery driver is provided by Microsoft on GitHub and as part of the WDK samples kit .

USB 充電 (デスクトップ エディションの Windows 10)USB charging (Windows 10 for desktop editions)

Microsoft では、モバイル デバイスの USB の課金をサポートするオプションを提供するために値を認識します。Microsoft recognizes the value in providing the option to support USB charging of a mobile device. 携帯電話の充電器を標準化するために、EU の移動などの作業を標準化を USB 充電器はさまざまな Windows スマート フォン、MP3 プレーヤー、GNSS デバイスなどを含むデバイス全体では広く利用可能なと職場です。Microsoft では、Windows を実行するデバイスを含む複数のデバイスの課金に使用できる 1 つの充電器を提供する場合の値を認識できます。With standardization efforts such as the EU's move to standardize mobile phone chargers, USB chargers are widely available and work across a wide variety of devices including Windows Phones, MP3 players, GNSS devices, etc. Microsoft understands the value of offering a single charger that can be used to charge multiple devices including a device running Windows. さらに、指定された広範な業界標準のサポート USB 充電はコストと環境への影響を軽減する補助の利点。Further, given the broad industry support for USB charging there are auxiliary benefits that reduce costs and environmental impact.

Windows 8 以降、モバイル デバイスでしたが電源や以下に示すバッテリの充電要件を満たしていることを USB で課金されます。Beginning with Windows 8, a mobile device could be powered and/or charged through USB provided that the battery charging requirements outlined below are met. さらに、さまざまなユーザー動作の品質を確保するために満たす必要があります USB に固有の要件があります。In addition, there are a number of USB-specific requirements that must be met to ensure a quality user experience.

  1. USB 電源/料金は、プラットフォーム ファームウェアの完全に実装しなければなりません。USB power/charge must be implemented entirely in the platform firmware. オペレーティング システム、ドライバー、またはアプリケーションのサポートを要求できません。Support must not require an operating system, driver, or application.

  2. 別のデバイスに接続されている場合は、デバイスを列挙します。The device MUST NOT enumerate when connected to another device. その結果、これらのポートは既定では 500 ma に制限は、標準的な PC の USB ポートに接続しているときに、デバイスを充電できません。As a result, the device will not charge when connected to a standard PC USB port as these ports are limited to 500mA by default. 唯一の例外は、デバッグおよびファームウェアのプログラミングを工場出荷時の初期のこのポートを使用する場合は。The only exceptions are when this port is used for debugging and for initial factory firmware programming.

  3. デバイスは、ポートの充電専用の USB から課金をサポートします。The device supports charging from a dedicated USB charging port. デバイスを充電する必要があるときに準拠した充電器に接続されている、 USB バッテリの充電仕様バージョン 1.2します。The device must charge when connected to a charger that is compliant with the USB Battery Charging specification version 1.2. デバイスでは、標準 USB 充電器に接続されているときに、標準の充電あたり 1.5 a 以上は描画する必要があります。The device should not draw more than 1.5A per charging standards when connected to a standard USB charger. OEM は、次の条件が満たされていれば、現在のレベルが高いをサポートすることもあります。The OEM may opt to support higher current levels provided the following conditions are met:

    • デバイスは、充電器の種類を特定の充電器の種類の適切なレートで課金に自動的に検出します。The device automatically detects the charger type and charges at the appropriate rate for the specific charger type.
    • デバイスと充電器は、すべての関連する電気と安全性規格を満たしています。The device and charger meet all relevant electrical and safety standards.
    • OEM では、デバイスと、充電器と関連付けられているケーブルが付属しています。The OEM ships the charger and associated cable with the device.
  4. 標準的なマイクロ AB ソケット、USB C (推奨) または独自のドッキング コネクタのどちらかで USB 充電はサポートされています。USB charging is supported over either a standard micro-AB receptacle, USB-C (recommended) or a proprietary dock connector. マイクロ B ソケットは、デバイスで許可されていません。A micro-B receptacle is NOT allowed on the device. コネクタをドッキングする独自を使用して、OEM は標準 USB 充電器から課金を有効にするデバイスに適切なケーブルを出荷する必要があります。If using a proprietary dock connector, the OEM must ship an appropriate cable with the device to enable charging from a standard USB charger.

  5. Micro AB ポートが実装されている場合、デバイスにケーブルを自動的に検出する必要があります、構成を入力し、適切な役割を想定しています。If the micro-AB port is implemented, the device must automatically detect the cable type, configuration, and assume the appropriate role. マイクロ B プラグが挿入される、デバッグが、ポートで有効になっていない場合は、充電器の役割を想定する必要があります。If a micro-B plug is inserted and debugging is not enabled on the port, the charger role should be assumed. マイクロ B プラグが挿入される場合は、ポートでのデバッグが有効になっているデバッグ ロールと仮定されます (つまり課金はサポートされていません)。If a micro-B plug is inserted and debugging is enabled on the port, the debug role should be assumed (i.e. charging is not supported). Micro A プラグが挿入される USB ホストの役割と見なされますがアタッチされている USB デバイスが Windows によって認識されます。If a micro-A plug is inserted, the USB host role is assumed where attached USB devices is recognized by Windows.

  6. Micro AB ポートは、デバッグ ポートとしても機能、デバイスが充電器とデバッグのロールを切り替えるには、ファームウェアを意味を提供する必要があります。If the micro-AB port also functions as a debug port, the device must provide a means through firmware to switch between the charger and debug role. 既定の設定、エンドユーザーに出荷する必要がありますがデバッグ無効になっています。The default setting as shipped to the end user must have debug DISABLED.

  7. Micro AB ポートは、デバッグ ポートとしても機能する場合、デバイスは、専用バレル コネクタまたは独自のドッキングのコネクタを通じて代替入力 power パスを指定する必要があります。If the micro-AB port also functions as a debug port, the device should provide an alternative input power path through either a dedicated barrel connector or proprietary dock connector.

USB 充電 (Windows 10 Mobile)USB charging (Windows 10 Mobile)

USB」セクションを参照してください、 Windows Phone のハードウェア開発ガイドします。Please refer to the USB section in the Windows Phone Hardware Development guide.

プラットフォーム デザイナーとレビュー担当者のチェックリストPlatform designer and implementer checklists

プラットフォーム設計を検証して、次のチェックリストを使用して、バッテリを充電サブシステム ガイダンスが記載されているシステム ファームウェアが従います。You can use the following checklists to validate the platform design and system firmware adhere to the battery and charging subsystem guidance outlined.

バッテリのサブシステムと ACPI ファームウェアの実装のチェックリストBattery subsystem and ACPI firmware implementation checklist

システム デザイナーは、ACPI ファームウェア バッテリと電源サブシステム情報 Windows の適切なレポートを作成することを確認するには、次のタスクが完了していることを確認する必要があります。System designers should ensure they have completed the following tasks in their ACPI firmware to ensure correct reporting of battery and power subsystem information to Windows:

  • ACPI 名前空間には、各バッテリ デバイス Device() オブジェクトを追加します。Add a Device() object for each battery device in the ACPI namespace.

  • バッテリの各デバイスには、次のコントロールのメソッドとオブジェクトを提供する必要があります。Each battery device must provide the following control methods and objects:

    • _HID PNP0C0A の値。_HID with a value of PNP0C0A.

    • _拡張 BIX バッテリ情報:_BIX-Battery Information Extended:

      最後の完全充電の容量、容量の設計およびサイクル数を含む、バッテリの静的な情報を伝えます。Conveys the battery static information including the last full charge capacity, design capacity and cycle count.

    • _BST バッテリの状態:_BST-Battery Status:

      現在のバッテリ状態、残りの容量では、ドレインのレートを含む、充電状態を伝達します。Conveys the current battery status, including the remaining capacity, rate of drain, and charging state.

    • _BTP バッテリ トリップ ポイント:_BTP-Battery Trip Point:

      ポーリングの定期的な作業を削減する、イベント ドリブンのバッテリの状態モデルを使用できます。Enables an event-driven battery status model to reduce periodic work for polling. _BTP は、残り充電の容量がバッテリの状態情報を更新する Windows を要求するバッテリ デバイスで Notify(0x80) で発行する必要があります、プラットフォームのしきい値を指定する Windows を使用できます。_BTP allows Windows to specify a threshold of remaining charge capacity at which the platform should issue at Notify(0x80) on the battery device to request Windows to update the battery status information.

    • _STA 一般の状態:_STA-General Status:

      バッテリがバッテリをリムーバブルありますデバイスに存在する場合、またはがあるバッテリ ポータブル ドッキング ステーションに把握して Windows を使用できます。Allows Windows to know if the battery is present in the device where a battery may be removable or where there may be a battery in a portable dock.

  • AC アダプターの 1 つの Device() オブジェクトを追加/電源 ACPI 名前空間。Add a single Device() object for an AC adapter / Power Source in the ACPI namespace.

  • 電源のソース デバイスは、次のコントロールのメソッドとオブジェクトを提供する必要があります。The power source device must provide the following control methods and objects:

    • _HID ACPI0003 の値を持つ_HID with a value of ACPI0003

    • _PSR 電源に接続します。_PSR-Power Source:

      電源が現在オンライン (AC 電源) を伝達する (バッテリ) でオフラインまたはします。Conveys if the power source is currently online (AC power) or offline (on battery power). を介して、デバイスを多重化する必要がありますのすべての入力の電源、 _PSR メソッド。All input power sources for the device must be multiplexed through the _PSR method. たとえば、_場合は、デバイスの電源を DC バレル コネクタまたは別のドッキングのコネクタを通じてオンライン PSR を伝達する必要があります。For example, the _PSR must convey online if the device is powered through a DC barrel connector or separate dock connector. ACPI Power ソースの複数のデバイスを使用しません。Do not use multiple ACPI Power Source Devices.

  • _BIX メソッドは、フィールドとバッテリの静的情報上記で説明されている制約をサポートする必要があります。The _BIX method must support the fields and constraints described in the battery static information above:

    • リビジョン0x0 にフィールドを設定する必要があります。The Revision field must be set to 0x0.
    • 電力装置0x0 のフィールドを設定する必要があります。The Power Unit field must be set of 0x0.
    • 設計容量最後の完全充電の容量値のバッテリ充電サブシステムから正確な値に設定し、設定されていない 0 xffffffff または 0x00000000 と等しくする必要があります。The Design Capacity and Last Full Charge Capacity values must be set to accurate values from the battery and charging subsystem and not set equal to 0xFFFFFFFF or 0x00000000.
    • バッテリ テクノロジフィールドは 0x1 に設定する必要があります。The Battery Technology field must be set to 0x1.
    • 電圧の設計フィールドは、正確に設定と等しくない 0x00000000 または 0 xffffffff に指定する必要があります。The Design Voltage field must be set accurately and not equal to 0x00000000 or 0xFFFFFFFF.
    • 設計能力の低いする必要がありますに設定する休止状態またはシャット ダウンするために必要な最小値、システム完全にオンの状態から。The Design Capacity of Low must be set to the minimum value required to Hibernate or Shutdown the system from a fully on state.
    • バッテリ容量の粒度 1バッテリ容量の粒度 2フィールドする必要がありますに設定する値のバッテリ容量の設計の 1% を超える。The Battery Capacity Granularity 1 and Battery Capacity Granularity 2 fields must be set to a value no larger than 1% of the battery design capacity.
    • サイクル数フィールド正確には必須、バッテリのサブシステムから。The Cycle Count field must be accurately filled in from the battery subsystem.
    • 測定精度80,000 d または向上にフィールドを設定する必要があります。The Measurement Accuracy field must be set to 80,000d or better.
    • モデル番号とシリアル番号フィールドを NULL に設定しない必要があります。The Model Number and Serial Number fields must not be set to NULL.
  • 提供、_により、リアルタイムのバッテリの状態をポーリングする Windows BST メソッド。Provide a _BST method that allows Windows to poll for real-time battery status. 内のフィールド、 _BST メソッドする必要がありますすべてから返される動的に、基になる電源とバッテリの充電サブシステム。The fields in the _BST method must all be returned dynamically from the underlying power and battery charging subsystem. 精度の測定値の中でその正確度をする必要があります、 _BIX メソッド。Their accuracy must be within the value of Measurement Accuracy in the _BIX method.

  • 提供、 _BTP メソッドを残りを指定する Windows 充電、Notify(0x80) バッテリ デバイス上で Windows を容量のしきい値、プラットフォームが中断されます。Provide a _BTP method that allows Windows to specify a remaining charge capacity threshold at which the platform will interrupt Windows with a Notify(0x80) on the battery device.

  • バッテリの状態の変更に応答を Notify(0x80) が発行されたのみを確認または_BTP 充電の容量制限旅行します。Ensure a Notify(0x80) is only issued in response to a battery status change or _BTP charge capacity limit trip. Notify(0x80) を定期的に実行しないでください。Do not execute a Notify(0x80) periodically.

  • バッテリ レベルがで指定された値に達したとき_BIX します。DesignCapacityofLow、プラットフォームは、コントロール メソッド バッテリ デバイス上の Notify(0x80) を生成する必要があります。When the battery level reaches the value specified in _BIX.DesignCapacityofLow, the platform must generate a Notify(0x80) on the control method battery device.

  • 複数のバッテリをシステムでは、各バッテリの制御メソッド バッテリ デバイスを完全に実装します。For systems with multiple batteries, fully implement a control method battery device for each battery.

    • 名前空間内の最初のバッテリをデバッグ目的で支援するために、システムのプライマリ バッテリとなります。The first battery in the namespace should be the primary battery for the system to aid in debugging purposes.
  • 実装、_バッテリがユーザーに処理できるかを示す場合は、各バッテリ装置 DSM メソッド。Implement the _DSM method under each battery device to indicate if the battery is user-serviceable.

  • 実装、_充電中に定期的なウォッチドッグがリセットされた場合に DSM メソッドが必要と Windows の定期的な実行が保証されます、_ポーリング ウィンドウ内の BST メソッド。Implement the _DSM method if a periodic watchdog reset is required during charging and Windows will guarantee periodic execution of the _BST method within that polling window.

  • 実装、 _DSM メソッドの熱のモデル、プラットフォームで必要な場合はバッテリの充電レートを制御します。Implement the _DSM method if battery charging rate control is required for the thermal model on the platform.