電池和電源子系統硬體設計
從Windows 8開始,系統硬體設計工具可以在其 Windows 平臺中電池和電源子系統的兩個不同的硬體拓撲之間進行選擇。
硬體拓撲
一般而言,Windows 預期電源和充電子系統有兩個硬體拓撲的其中一個。
第一個拓撲會顯示在下列區塊圖中。 此拓撲在執行 Windows 7 的電腦中很常見,會在平臺中使用內嵌控制器。 內嵌控制器通常會在行動裝置 Windows 電腦中執行多個功能,包括電源控制、電池計量管理、電源按鈕/開關偵測,以及 PS/2 相容的鍵盤和滑鼠輸入。 內嵌控制器通常會透過低針腳計數 (LPC) 匯流排連線到核心晶片。 Windows 查詢,並透過 ACPI 內嵌控制器介面收到電源子系統資訊的通知。
第二個拓撲會顯示在下列區塊圖中。 此拓撲會使用電池充電控制器和油量計元件,這些元件會透過簡單的周邊匯流排直接連線到平臺的核心晶片,例如 I}C。 在此組態中,Windows 會透過 I¹C 匯流排的通訊來查詢電源子系統變更,並收到通知。 簡單的周邊匯流排 (SPB) 作業區域可讓韌體中的 ACPI 控制方法程式碼與透過 IーC 匯流排連接到核心晶片的電池充電控制器和油量計元件進行通訊。
使用內嵌控制器的 ACPI 作業
其電池和電源子系統連線到一般平臺內嵌控制器的平臺會使用 ACPI 內嵌控制器作業區域,來協助 ACPI 控制方法環境和平臺硬體之間的通訊。
ACPI 韌體必須在 ACPI 命名空間中定義內嵌控制器。 此定義包含下列專案:
- 內嵌控制器的 Device () 節點。
- 指出裝置為內嵌控制器的_HID物件。
- _CRS 物件,表示內嵌控制器的 I/O 資源。
- 定義內嵌控制器 SCI 的_GPE物件。
- 作業區域,描述內嵌控制器中所含的資訊,這些資訊可由命名空間中的其他 ACPI 控制項方法程式碼存取,包括電池狀態和資訊方法。
For more information, see section 12.11, "Defining an Embedded Controller Device in ACPI Namespace", in the ACPI 5.0 specification.
從內嵌控制器存取電池資訊
ACPI 控制項方法會讀取內嵌控制器作業區域中所述的值,以從內嵌控制器存取訊號。
當電池狀態變更 (內嵌控制器時通知 Windows)
當內嵌控制器偵測到電池狀態變更時,包括充電狀態變更或_BTP所指定的剩餘容量,內嵌控制器會產生 SCI,並在內嵌控制器狀態命令中設定SCI_EVT位, (EC_SC) 暫存器。 Windows ACPI 驅動程式Acpi.sys會與內嵌控制器通訊,併發出查詢命令 (QR_EC) ,以要求發出通知的特定資訊。 內嵌控制器會設定對應至要執行之_QXX方法的位元組值。 例如,內嵌控制器和 ACPI 韌體可以定義值0x33為電池狀態資訊的更新。 當內嵌控制器將值設定為通知0x33時,Acpi.sys會執行 _QXX 方法。 _QXX方法通常會在命名空間的 Control Method Battery 裝置上發出 Notify (0x80) 命令。
耗電量
在現代待命系統上必須特別小心,以確保達到新式待命的最低電池使用時間目標。 在現代待命系統上,內嵌控制器針對電源和電池子系統所耗用的電力必須低於 5 毫秒。 在使用傳統 S3/S4 電源狀態的電腦上,請確定內嵌控制器不會影響電池生命週期目標。 使用 S3/S4 的系統沒有特定的電源需求。
使用 SPB 連線充電子系統的 ACPI 作業
平臺也可以使用低電源簡單周邊匯流排, (SPB) 例如 IーC,來連接電池和電源子系統連線到核心晶片組。 在這些設計中,ACPI GenericSerialBus 作業區域是用來在 ACPI 控制方法和電池子系統硬體之間進行通訊。 將電池子系統硬體連接到 GPIO 中斷可讓 ACPI 控制方法在電池狀態變更時執行。
當電池和電源子系統硬體使用 ILpC 連線時,ACPI 韌體必須定義下列專案:
- 連線 IIoC 中斷之 GPIO 控制器裝置的 Device () 節點,包括:
- 描述 GPIO 控制器硬體識別碼的 _HID 物件。
- _CSR 物件,描述 GPIO 控制器的中斷和硬體資源。
- _AEI物件,將一或多個 GPIO 行對應至 ACPI 事件方法執行。 這可讓 ACPI 方法執行,以回應 GPIO 行中斷。
- 裝置 () 節點,用於連線電池油量計和充電硬體的 IHttpC 控制器,包括:
- _HID和_CSR物件,這些物件描述 IーC 控制器的硬體識別碼和資源。
- I裝置範圍內的 GenericSerialBus 作業區域,描述 IUC 裝置的虛擬命令註冊。
- GenericSerialBus 作業區域中的欄位定義。 欄位定義可讓I裝置外部的 ASL 程式碼存取I 裝置的虛擬命令暫存器。
描述 GPIO 控制器,並將 GPIO 線路對應至 ACPI 事件,可讓控制方法控制電池狀態和通知,以在引發來自 IIoC 裝置的 GPIO 中斷時執行。 描述 GenericSerialBus 作業區域可讓 ACPI 程式碼的電池狀態透過 IUC 匯流排進行通訊,並從電池計量計和充電子系統讀取暫存器和資訊。
從充電子系統存取電池資訊
電池狀態可由 ACPI 控制方法執行,方法是透過電池子系統硬體所連線的 ILpC 匯流排傳送和接收命令。 控制方法程式碼會支援狀態和電池靜態資訊方法,從 ACPI 命名空間中所述的 GenericSerialBus 作業區域讀取和寫入資料。 控制方法程式碼可以透過 GenericSerialBus 作業區域,從燃料量測計裝置讀取電池容量和迴圈計數的靜態資訊。
當電池狀態變更 (子系統硬體) 時通知 Windows
電池子系統硬體可以在狀態變更時,或從核心晶片上的 GPIO 線路產生中斷。 GPIO 行可以使用 ACPI 中所述之 GPIO 控制器下的 _AEI 物件,對應至特定的控制項方法執行。 發生 GPIO 中斷時,Windows ACPI 子系統會執行與特定 GPIO 線路相關聯的方法,進而在 Control Method Battery 裝置上發出 Notify () 命令。 這會導致 Windows 重新評估狀態和靜態資訊方法來更新電池狀態。
電源和充電指標
Windows 提供作業系統中電源和電池狀態的指示。 這會在數個位置向使用者顯示,包括桌面上的電池匣圖示、[開始] 功能表上,以及直接在 [鎖定] 畫面上。
Windows 8平臺也可以向使用者顯示充電狀態的可見指標。 下圖顯示兩個 UI 範例。 所使用的指標對耗電量和使用者體驗的影響很小。
Windows 電源和充電使用者介面元素
Windows 提供三個主要位置的電源和充電狀態指示:
- 在鎖定畫面上。 電源和充電狀態的電池圖示隨即顯示。
- 停留在 [開始] 按鈕上的日期和時間指標上。 電源和充電狀態的電池圖示隨即顯示。
- 桌面上的電池圖示。 電源和充電狀態的電池圖示隨即顯示。 當您按一下電池圖示時,即可取得詳細資訊;這包括剩餘容量、預估剩餘時間,以及系統有多個電池時,每個電池的詳細資料
. 針對具有新式待命的平臺,如果系統位於 S0 中,而且如果存在) 未關閉,Windows 會在系統連線到 (電源並套用電源時,短暫地啟動顯示器。 這可讓使用者看到平臺回應連接充電站的動作。
平臺硬體充電指標
Windows 內建的使用者介面元素,可解決 Windows 正在執行的案例,而且使用者可以看到顯示器。 不過,當系統關機、休眠、睡眠或未執行時,看不到這些螢幕上的指標。
平臺可能包含 LED,以指出電源存在。 建議您不要將這類 LED 放在系統底座上。 相反地,它應該位於電源磚、電源纜線或電源連接器上。 或者,此 LED 也可以向使用者指出費用狀態。
如果提供 LED,它不應該隨著時間而改變強度或色彩,否則不會閃爍或閃爍,因為這會向使用者呈現干擾。 不過,它可能會變更色彩以指出費用狀態;例如,在充電時為黃色,當完全收費時為綠色,或在發生失敗時為紅色。
系統時鐘保留電池容量
維護精確的時間對於提供絕佳的使用者體驗至關重要。 此外,連線到 Microsoft Store 等服務需要精確的時間。 所有 Windows 系統都應該至少維護四周的精確時間,即使關閉也是如此。 一般而言,這是藉由使用不同的備份電池來維護 RTC) 的系統時鐘 (。 這不一定適用于高度可攜式尺寸。
系統設計工具可以使用專用電池,或保留一部分的主要系統電池。 由於 RTC 的電源需求偏低,相對低的保留閾值將保證符合目前電腦中存在的專用備份電池。
設計指導方針
OSPM 提供系統設計工具覆寫 Windows OS 關鍵電池事件的方法。 當電池在 milliwatt-hours) 中取得關鍵層級 (時,如_BIX (電池資訊擴充 - 控制方法電池實作中低) 方法的設計容量所定義,韌體會向 OS 發出 Notify 命令。 此時,Windows 會執行緊急關機或休眠以保留系統狀態。
所有設計都必須符合下列需求:
- _BIX 方法中的設計容量必須設定為至少 675 毫秒的完整設計容量 (,以及可靠地執行重要動作所需的容量) 。
- 上述保留容量必須小於完整設計容量的四%。
充電效能
完全充電系統電池所需的時間對使用者而言是一項考慮。 許多系統會在未與系統互動時,于隔天或于其他期間收費。 不過,當電池完全清空,且使用者想要以可攜式方式使用系統時,充電效能是主要考慮。
Windows 建議當系統開機且在新式待命中關閉螢幕時,所有平臺都能在四小時內將系統電池充電到 90%。
系統設計工具應該特別注意支援通用序列匯流排 (USB) 型充電的系統收費率。 只有 USB 充電和大型電池容量的系統可能不符合客戶對充電效能的預期。
如果大型電池容量的平臺上需要 USB 充電, (大於 30 小時) ,系統設計工具也應該提供高電源 DC 輸入,並將高電源 DC 電源與系統組合。 這也可讓平臺電池在互動式使用期間收費,否則在低輸入電源和高耗電量的情況下,可能會因為具有大量電池容量的 USB 充電平臺而無法收費。