Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательский интерфейс для зарядки батареи
В этом разделе рассматриваются рекомендации по батарее и зарядке в Windows 10. Все устройства под управлением Windows имеют согласованные возможности зарядки батареи, независимо от форм-фактора, набора инструкций или архитектуры платформы. В результате пользователи имеют согласованный и качественный опыт работы с зарядкой батареи.
Зарядка всегда происходит при подключении к зарядному устройству.
За исключением случаев сбоя батареи, устройство под управлением Windows всегда может заряжать батарею всякий раз, когда оно подключено к зарядному устройству.
Windows всегда может загружаться при подключении к зарядному устройству.
Windows 10 для классических выпусков (домашняя, pro, корпоративная и для образовательных учреждений):
Если устройство находится в S5 (состояние завершения работы), оно всегда может загрузиться в Windows при подключении к зарядному устройству, независимо от уровня заряда батареи и наличия батареи, если аккумулятор съемный.
Windows 10 Mobile:
Аккумулятор должен присутствовать и иметь достаточный уровень заряда для загрузки системы.
Оборудование автономно управляет зарядкой.
Оборудование заряжает аккумулятор устройства, не требуя встроенного ПО, Windows, драйверов или другого программного обеспечения, работающего на main ЦП. Это требование применяется только к Windows 10 для систем классических выпусков. Windows 10 Mobile системам может потребоваться поддержка приложения для зарядки UEFI и (или) других программных компонентов для зарядки батареи.
Зарядка останавливается автоматически при полной зарядке аккумулятора или при возникновении сбоя.
Оборудование автоматически прекращает зарядку при полной зарядке батареи. Для этого не требуется встроенное ПО, Windows, драйверы или другое программное обеспечение, работающее на main ЦП. При возникновении неисправности батареи или температуры зарядка также автоматически останавливается.
Зарядка происходит при подключении к зарядному устройству
Пользователи ожидают, что их устройство будет заряжаться всякий раз, когда оно подключено к зарядному устройству. Таким образом, оборудование всегда должно пытаться заряжать аккумулятор всякий раз, когда устройство подключено к зарядному устройству независимо от состояния питания. Это ожидание верно для всех состояний питания, включая активные (S0), спящий режим (S3), гибернации (S4), завершение работы (S5), жесткое выключение (G2/G3) и S0 Простой S0. Зарядка может остановиться после полной зарядки батареи или при возникновении сбоя.
Не рекомендуется использовать конструкцию, которая заряжает батарею по сниженной скорости, когда Windows или встроенное ПО не загружены или не запущены. Например, аккумулятор может заряжаться медленнее, когда система полностью выключена и подключена к зарядному устройству и заряжаться с более высокой скоростью при загрузке устройства, а встроенное ПО ACPI можно использовать для периодического мониторинга батареи.
Наконец, конструкция может заряжать батарею с более низкой скоростью, когда система находится в тепловом состоянии. В этом сценарии тепло можно уменьшить, замедляя или полностью устраняя зарядку батареи. Тепловые условия являются исключением в любой хорошей системе.
Windows всегда загружается при подключении к сети переменного тока
Windows 10 для настольных компьютеров
Пользователи ожидают, что они могут немедленно загрузиться и использовать свое устройство всякий раз, когда оно подключено к зарядному устройству. Таким образом, устройство должно всегда загружаться и быть полностью пригодным для использования при подключении к сети переменного тока. Это верно независимо от уровня заряда батареи, состояния батареи или зарядного устройства и наличия батареи (если аккумулятор съемный).
Если устройству требуется минимальная емкость аккумулятора для загрузки встроенного ПО и Windows, оборудование должно гарантировать, что емкость батареи всегда зарезервирована платформой. Зарезервированная емкость батареи не должна быть предоставлена Windows.
Windows 10 Mobile
Если система подключена к сети переменного тока и присутствует батарея, система должна попытаться загрузиться в операционную систему, если батарея имеет достаточную заряда для питания системы во время загрузки.
Оборудование автономно управляет зарядкой
Как указано выше, пользователи ожидают, что их устройство будет заряжаться при подключении к зарядному устройству. В результате оборудование должно заряжать аккумулятор, не требуя встроенного ПО, Windows, драйверов или другого программного обеспечения, работающего на main ЦП, так как один или несколько из этих компонентов могут не работать или находиться в состоянии сбоя в любой момент времени. Это требование применяется только к Windows 10 для систем классических выпусков. Windows 10 Mobile системам может потребоваться поддержка приложения для зарядки UEFI и (или) других программных компонентов для зарядки батареи.
Зарядка останавливается автоматически при полной зарядке или при возникновении сбоя
Оборудование автоматически прекращает зарядку при полной зарядке аккумулятора или при возникновении сбоя. Как и в случае с зарядкой, это необходимо сделать без использования встроенного ПО, Windows, драйверов или другого программного обеспечения, работающего на main ЦП. Кроме того, оборудование должно соответствовать всем нормативным условиям безопасности батареи.
Индикаторы питания и зарядки
Windows предоставляет источник питания и индикатор состояния батареи с помощью значков, которые пользователь может видеть в нескольких местах. Места включают значок панели батареи и экран блокировки.
Устройство также может иметь физический индикатор, например светодиодный индикатор, указывающий состояние зарядки. Этот индикатор должен мало влиять на энергопотребление.
Значки питания и зарядки Windows
Windows отображает источник питания и состояние зарядки в трех местах:
На экране блокировки:
В Windows отображается значок батареи с источником питания и состоянием заряда.
Область задач для настольных компьютеров (Windows 10 только для настольных версий):
В Windows отображается значок батареи с источником питания и состоянием заряда. Когда пользователь щелкает значок батареи, он может просматривать такие сведения, как оставшаяся емкость, предполагаемое оставшееся время и сведения об каждой батарее (если они оснащены несколькими батареями).
Строка состояния (только номер SKU для мобильных устройств):
В Windows отображается значок батареи с источником питания и состоянием заряда. Когда пользователь проводит пальцем вниз от верхней части экрана, чтобы развернуть центр уведомлений, он может просмотреть фактический процент заряда батареи.
Параметры экономии заряда:
На странице параметров экономии заряда (Параметры —> Система —> Экономия заряда) Windows отображает общий процент заряда, состояние батареи (зарядка и разрядка) и предполагаемое оставшееся время зарядки/разрядки.
Для платформ, способных работать в режиме простоя S0, если отображается дисплей, Windows кратко освещает дисплей, когда система подключена к зарядному устройству или отключается от нее, чтобы уведомить пользователя об изменении источника питания.
Аппаратные индикаторы зарядки платформы
Значки, встроенные в Windows, адресуют только сценарии, в которых Windows работает и отображается пользователю. Однако индикаторы на экране не отображаются при завершении работы системы или состоянии простоя S0, когда дисплей выключен. Так как пользователь не может видеть визуальные подсказки на экране, платформа может включать физический индикатор зарядки, указывающий на наличие питания.
В следующем разделе приведены рекомендации по реализации клавиатур, мышей и сенсорных экранов на платформах S0 Idle с решениями для закрепления. В этом разделе также рассказывается о проблемах и принципах, а также о потенциальных решениях. Оба потенциальных решения применяются к стационарным док-станциям на мобильных устройствах и док-станциях с электросцехом.
Предоставление подсистемы питания и зарядки Windows
Каждое мобильное устройство под управлением Windows включает одну или несколько батарей и источник питания, например адаптер переменного тока. Сведения из этих подсистем передают пользователю состояние управления питанием. Состояние включает оставшуюся емкость батареи в любое время, состояние адаптера переменного тока и зарядки батареи, а также предполагаемое оставшееся время батареи. Сведения о подсистеме питания предоставляются в счетчике заряда Windows и других служебных программ диагностики управления питанием.
В следующем разделе приведены рекомендации по реализации клавиатур, мышей и сенсорных экранов на платформах S0 Idle с решениями для закрепления. В этом разделе также рассказывается о проблемах и принципах, а также о потенциальных решениях. Оба потенциальных решения применяются к стационарным док-станциям на мобильных устройствах и док-станциях с электросцехом.
Типичные аппаратные топологии подсистемы питания
Как правило, Windows ожидает одну из двух аппаратных топологий для подсистемы питания и зарядки.
На следующем рисунке показана первая топология, в которой используется встроенный контроллер платформы, который является общим на существующих устройствах под управлением Windows. Встроенный контроллер выполняет на мобильном устройстве несколько функций, включая управление источником питания, управление зарядом батареи, обнаружение кнопок питания или переключателей и ввод клавиатуры и мыши, совместимых с PS/2. Встроенный контроллер обычно подключается к основной микросхеме через шину LPC. Windows запрашивает и получает уведомления о сведениях подсистемы питания через встроенный интерфейс контроллера ACPI.
На следующем рисунке показана вторая топология, которая использует контроллер заряда батареи и компонент датчика топлива, подключенный непосредственно к основному кремнию платформы через упрощенную периферийную шину, например I²C. В этой конфигурации Windows запрашивает и получает уведомления об изменениях подсистемы питания через шину I²C. Вместо использования драйвера устройства для батареи или подсистемы зарядки среда метода управления ACPI расширяется за счет поддержки простой периферийной операционной области (SPB). Область операций SPB позволяет коду метода управления ACPI обмениваться данными с контроллером заряда батареи и компонентами датчика топлива, подключенными к основному кремнию по протоколу I²C.
Модель драйвера подсистемы питания и батареи
В Windows реализована надежная модель драйвера устройства подсистемы питания и батареи. Сведения об управлении питанием передаются диспетчеру питания Windows через драйвер устройства от батареи, а затем агрегируются и предоставляются в пользовательском интерфейсе Windows через irP устройства от батареи и набор программных API управления питанием.
Модель драйвера батареи — это модель порта или мини-порта, то есть модель батареи и интерфейсы определяются таким образом, чтобы новые типы аккумуляторов можно было предоставлять через мини-порт. Однако на практике существует только два минипорта, которые имеют какое-либо значительное применение в экосистеме Windows: драйвер мини-порта для батареек, поддерживающий батареи метода управления ACPI, и драйвер HID батареи miniport для подключенных по USB устройств без источника питания (ИП).
Ожидается, что все компьютеры будут предоставлять батареи и подсистему зарядки через интерфейс метода управления ACPI. Интерфейс мини-порта батареи не следует использовать для подсистем зарядки батареи для конкретной платформы. Существуют определяемые спецификацией ACPI методы управления, которые позволяют Windows опрашивать сведения о батарее и состоянии. Аналогичным образом существует управляемая событиями модель, позволяющая аппаратной платформе уведомлять Windows об изменениях батареи и источника питания, например о переходе от переменного тока к батарее.
Опрос состояния
Диспетчер питания Windows периодически запрашивает сведения о состоянии батареи, включая оставшуюся емкость заряда и текущую скорость стока. Этот запрос создается в диспетчере управления питанием, компоненте пользовательского интерфейса более высокого уровня или приложении. Диспетчер питания преобразует запрос в пакет запроса ввода-вывода (IRP) для устройств от батареи. Когда батарея предоставляется через интерфейс метода управления ACPI, драйвер батареи метода управления (cmbatt.sys) выполняет соответствующие методы управления ACPI. В случае со сведениями о состоянии выполняется метод _BST (состояние батареи).
Метод _BST требует, чтобы встроенное ПО ACPI получать текущие сведения из подсистемы питания, а затем упаковывать эти сведения в буфер в формате, определенном спецификацией ACPI. Конкретный код, необходимый для доступа к состоянию батареи из встроенного контроллера или зарядного устройства, подключенного через I²C, содержится в встроенном ПО ACPI и части кода, содержащего метод _BST. Результатом метода _BST является буфер необходимых сведений, который возвращается в драйвер батареи метода управления. Драйвер батареи метода управления, наконец, преобразует буфер в формат, необходимый для драйвера батареи и диспетчера питания Windows.
Уведомления об изменении состояния
Подсистема питания и батареи будет создавать в Windows несколько уведомлений об изменениях состояния, включая переходы от переменного тока к батарее. Опрос в Windows для этих изменений состояния не является практическим, учитывая высокую частоту, с которой требуется опрос. Поэтому аппаратная платформа должна использовать модель на основе событий, чтобы уведомлять Windows о значительном изменении состояния батареи.
При изменении состояния батареи, включая оставшуюся емкость или состояние зарядки, встроенное ПО ACPI выдает уведомление (0x80) на аккумуляторе метода управления. Затем драйвер батареи метода управления Windows оценивает метод _BST и возвращает обновленные сведения в диспетчер питания.
При изменении статических данных батареи, включая последнюю полную емкость заряда, проектную емкость и количество циклов, встроенное ПО ACPI выдает уведомление (0x81) на аккумуляторе метода управления. Затем драйвер батареи метода управления Windows оценивает метод _BIX и возвращает обновленные сведения в диспетчер питания.
Платформа прерывает среду встроенного ПО ACPI через прерывание управления системой (SCI) в случае платформы, оснащенной встроенным контроллером, и через GPIO в случае платформ с аппаратным обеспечением подсистемы батареи, подключенным непосредственно к основному кремнию.
Операция ACPI с внедренным контроллером
Платформы, подключенные к типичному встроенному контроллеру, используют область операций acPI Embedded Controller для упрощения взаимодействия между средой метода управления ACPI и оборудованием платформы.
Встроенное ПО ACPI должно определять встроенный контроллер в пространстве имен ACPI, как описано в разделе 12.11.1 спецификации ACPI, в том числе:
- Узел Device() для встроенного контроллера.
- Объект _HID, указывающий, что устройство является встроенным контроллером.
- Объект _CRS, обозначающий ресурсы ввода-вывода для встроенного контроллера.
- Объект _GPE, определяющий SCI для внедренного контроллера.
- Область операции, описывающая сведения, содержащиеся во встроенном контроллере, к которым можно получить доступ с помощью другого кода метода управления ACPI в пространстве имен, включая состояние батареи и информационные методы.
Полные сведения описаны в разделе 12 спецификации ACPI.
Доступ к сведениям об батарее из встроенного контроллера
Метод управления ACPI обращается к информации из встроенного контроллера, считывая значения, описанные в области операций встроенного контроллера.
Уведомление операционной системы при изменении состояния батареи
Когда встроенный контроллер обнаруживает изменение состояния батареи, включая изменение состояния зарядки или оставшейся емкости, как указано в _BTP, встроенный контроллер создает SCI и задает бит SCI_EVT в регистре команды состояния встроенного контроллера (EC_SC). Драйвер Windows ACPI будет взаимодействовать со встроенным контроллером и выдавать команду запроса (QR_EC) для запроса конкретных сведений об уведомлении. Затем внедренный контроллер задает байтовое значение, соответствующее выполняемой методу _QXX. Например, встроенный контроллер и встроенное ПО ACPI могут определять значение 0x33, чтобы быть обновлением сведений о состоянии батареи. Когда встроенный контроллер задает значение 0x33 в качестве уведомления, драйвер ACPI выполнит метод _QXX. Как правило, содержимое метода _QXX будет уведомлять(0x80) на устройстве батареи метода управления в пространстве имен.
Операция ACPI с подключенной системой зарядки I²C
Платформы также могут подключать батарею и подсистему питания, подключенную к базовому набору микросхем, через серийную шину с низким энергопотреблением, например I²C. В этих конструкциях область операций GenericSerialBus ACPI используется для взаимодействия между методами управления ACPI и оборудованием подсистемы батареи. Подключение оборудования подсистемы батареи к прерыванию GPIO позволяет выполнять методы управления ACPI при изменении состояния батареи.
Когда оборудование подсистемы питания и батареи подключено через I²C, встроенное ПО ACPI должно определить следующее:
Узел Device() для устройства контроллера GPIO, к которому подключено прерывание I²C, в том числе:
- _HID объект, описывающий идентификатор оборудования контроллера GPIO.
- _CSR объект, описывающий прерывания и аппаратные ресурсы контроллера GPIO.
- _AEI объект, который сопоставляет одну или несколько строк GPIO с выполнением метода события ACPI. Это позволяет выполнять методы ACPI в ответ на прерывания строк GPIO.
Узел Device() для контроллера I²C, к которому подключены датчик топлива батареи и оборудование для зарядки, в том числе:
- _HID и _CSR объекты, описывающие идентификатор оборудования и ресурсы контроллера I²C.
- GenericSerialBus OperationRegion в область устройства I²C с описанием виртуальной команды регистрируется для устройства I²C.
- Определения полей в GenericSerialBus OperationRegion. Определения полей позволяют коду ASL за пределами устройства I²C получить доступ к виртуальным регистрам команд для устройства I²C.
Описание контроллера GPIO и сопоставление линий GPIO с событиями ACPI позволяет выполнять методы управления состоянием батареи и уведомления при возникновении прерывания GPIO с устройства I²C. Описание области работы GenericSerialBus позволяет коду ACPI для состояния батареи передавать данные по шине I²C и считывать регистры и сведения из датчика топлива батареи и подсистемы зарядки.
Доступ к сведениям об аккумуляторе из системы зарядки
Состояние батареи можно выполнить методами управления ACPI, отправляя и получая команды через шину I²C, к которой подключено оборудование подсистемы батареи. Код метода управления, который поддерживает статические информационные методы состояния и батареи, считывает и записывает данные из областей операций GenericSerialBus, описанных в пространстве имен ACPI. Код метода управления считывает данные с устройства датчика топлива или статическую информацию о емкости батареи и количество циклов в шине I²C через область операций GenericSerialBus.
Уведомление Windows при изменении состояния батареи
Прерывание может быть создано оборудованием подсистемы батареи при изменении состояния и физическом подключении прерывания к линии GPIO на основном кремниевом элементе. Линия GPIO может быть сопоставлена с выполнением определенного метода управления с помощью объекта _AEI контроллера GPIO, описанного в ACPI. Когда происходит прерывание GPIO, подсистема Windows ACPI запускает метод, связанный с конкретной линией GPIO, который, в свою очередь, может выполнить notify() на устройстве с аккумулятором метода управления, в результате чего Windows повторно оценивает состояние и методы статической информации для обновления состояния батареи.
Реализация acPI объекта источника питания
Встроенное ПО ACPI должно реализовывать устройство источника питания ACPI. Этот объект должен сообщать о себе с идентификатором оборудования (_HID) ACPI0003. Этот объект также должен реализовывать метод ACPI _PSR (Power Source). Этот метод возвращает состояние источника питания и сообщает, находится ли источник питания в режиме "в сети" (питание переменного тока) или в автономном режиме (питание от батареи). Все источники питания для системы должны быть мультиплексированы с помощью одного метода _PSR. Например, _PSR должны передавать в сети, если система питается через соединитель постоянного тока или отдельный соединитель док-станции. Не используйте несколько устройств источника питания ACPI.
Метод _PSR должен сообщать о сети (питание переменного тока), только если система подключена к сети питания. При изменении состояния _PSR платформа должна создать прерывание и уведомление (0x80) на устройстве в пространстве имен ACPI. Это необходимо выполнить сразу после обнаружения изменения физического состояния платформой.
Реализация acpi для статических сведений о батарее
Встроенное ПО ACPI должно реализовывать метод acPI _BIX для каждой батареи, который предоставляет статические сведения о батарее, включая проектную емкость, число циклов и серийный номер. В приведенной ниже таблице подробно описаны определения полей, описанных в спецификации ACPI, и перечислены требования к этим сведениям для Windows.
Поле | Описание | Требования, относящиеся к Windows |
---|---|---|
Редакция | Указывает _BIX редакции | Должно быть задано значение 0x0 |
Блок питания | Определяет единицы измерения, сообщаемые оборудованием. Либо: MA/MAh или mW/mWh. | Должно быть задано значение 0x0, чтобы указать, что единицы измерения равны мВт/мВт/ч |
Проектная емкость | Указывает исходную емкость батареи в мВт.ч. | Должно быть задано точное значение и не может быть 0x0 или 0xFFFFFFFF |
Последняя полная емкость заряда | Указывает текущую полную емкость заряда батареи. | Должно быть задано точное значение и не может быть 0x0 или 0xFFFFFFFF Это значение должно обновляться при каждом увеличении количества циклов. |
Технология батареи | Указывает, является ли аккумулятор перезаряжаемым или одноразовым. | Должно быть задано значение 0x1, чтобы указать, что аккумулятор перезаряжается |
Конструктор напряжения | Указывает конструктивное напряжение батареи. | Должно быть задано конструктивное напряжение батареи при создании в мВ. Не должно быть задано значение 0x0 или 0xFFFFFFFF. |
Проектная емкость предупреждения | Указывает уровень предупреждения о низком заряде батареи, предоставляемый OEM. | Windows игнорирует это значение. |
Проектная емкость low | Указывает критический уровень заряда батареи, при котором Windows должна немедленно завершить работу или гибернировать перед выключением системы. | Необходимо задать значение в диапазоне от 0x0 до 5 % от проектной емкости батареи. |
Степень детализации емкости батареи 1 | Указывает минимальный объем оставшихся изменений заряда, которые могут быть обнаружены оборудованием между проектной емкостью предупреждения и проектной емкостью низкой. | Должно быть задано значение, не превышающее 1 % от проектной емкости батареи. |
Степень детализации емкости батареи 2 | Указывает минимальное изменение оставшихся зарядов, которое может быть обнаружено оборудованием между последней полной емкостью заряда и проектной емкостью предупреждения. | Должно быть задано значение, не превышающее 75 мВт (приблизительно 0,25 % от 25Whr батареи), что составляет (1/400) от проектной емкости батареи. |
Число циклов | Указывает количество циклов заряда батареи. | Значение должно быть больше 0x0. Не должно быть задано значение 0xFFFFFFFF. |
Точность измерения | Указывает точность измерения емкости батареи. | Должно быть задано значение 95 000 или выше, что указывает на точность 95 % или выше. |
Максимальное время выборки | Максимальное поддерживаемое время выборки между двумя последовательными _BST оценками, которые показывают разницу в оставшейся емкости. | Никаких конкретных требований. |
Минимальное время выборки | Минимальное поддерживаемое время выборки между двумя последовательными оценками _BST, которое показывает разницу в оставшейся емкости. | Никаких конкретных требований. |
Максимальный интервал усреднения | Максимальный интервал усреднения (в миллисекундах), поддерживаемый датчиком топлива батареи. | Никаких конкретных требований. |
Минимальный интервал усреднения | Минимальный интервал усреднения (в миллисекундах), поддерживаемый датчиком топлива батареи. | Никаких конкретных требований. |
Номер модели | Номер модели батареи, предоставленной изготовителем оборудования | Не должно иметь значение NULL. |
Серийный номер | Серийный номер батареи, предоставленный изготовителем оборудования | Не должно иметь значение NULL. |
Тип батареи | Сведения о типе батареи, предоставляемые изготовителем оборудования | Никаких конкретных требований. |
Сведения о изготовителе оборудования | Информация, предоставляемая изготовителем оборудования | Никаких конкретных требований. |
Реализация ACPI сведений о состоянии батареи в режиме реального времени
Встроенное ПО ACPI должно реализовать метод acPI _BST для каждого аккумулятора, который предоставляет сведения о состоянии батареи в режиме реального времени, включая оставшуюся емкость и текущую скорость стока. В приведенной ниже таблице подробно описаны определения полей, описанных в спецификации ACPI, и перечислены требования к этим сведениям для Windows.
Поле | Описание | Требования, относящиеся к Windows |
---|---|---|
Состояние батареи | Указывает, заряжается ли батарея, разряжается или находится в критическом состоянии. | Состояние батареи должно сообщать о зарядке, только если аккумулятор заряжается. Аналогичным образом, состояние батареи ДОЛЖНО сообщать о разрядке только в том случае, если батарея разрядится. Аккумулятор, который не заряжается и не разряжается, не должен сообщать ни о бите. |
Частота заряда батареи | Обеспечивает текущую скорость стока в мВт от батареи. | Значение должно быть больше 0x0 и меньше 0xFFFFFFFF. Должен быть точным в пределах значения Точности измерения в _BIX. |
Оставшаяся емкость батареи | Предоставляет оставшуюся емкость батареи в мВт.ч. | Значение должно быть больше 0x0 и меньше 0xFFFFFFFF. Должен быть точным в пределах значения точности измерения в _BIX |
Напряжение заряда батареи | Указывает текущее напряжение на клеммах батареи. | Должен находиться между значением 0x0 и 0xFFFFFFFF в mV. |
При изменении каких-либо данных в _BST платформа должна создать прерывание и notify(0x80) на устройстве батареи в пространстве имен ACPI. Это необходимо выполнить сразу после обнаружения изменения физического состояния платформой. Сюда входят любые изменения в поле Состояние батареи для разрядов зарядки (например, Bit0) или разрядов (т. е. Bit1).
Кроме того, платформа должна реализовать _BTP-Battery Trip Point-method. _BTP позволяет Windows указать оставшийся порог емкости, который при превышении платформы должен создать прерывание и уведомление (0x80) на устройстве батареи в пространстве имен ACPI. Метод _BTP не позволяет Windows периодически опрашивать батарею.
Методы управления батареей
Спецификация ACPI предоставляет методы управления для конкретного устройства и операционной системы с помощью метода Device-Specific или _DSM. _DSM описано в разделе 9.14.1 спецификации ACPI.
Windows поддерживает следующие методы _DSM для устройств с аккумулятором с помощью метода управления.
Направление скорости теплового заряда
Поле | Значение | Описание |
---|---|---|
UUID | 4c2067e3-887d-475c-9720-4af1d3ed602e | GUID, указывающий расширения для поддержки драйвера батареи для метода управления Windows |
Идентификатор редакции | 0x0 | Первая редакция этой возможности |
Индекс функции | 0x1 | Настройка регулирования заряда батареи |
Аргументы | Предел температуры | Целочисленное значение от 0 до 100, указывающее предел теплового заряда. Значение 40 % указывает, что батарея должна быть заряжена на 40 % от максимальной скорости. Значение 0 % указывает, что зарядка батареи должна быть остановлена до повторного вызова этого метода. |
Возвращаемые значения | Отсутствуют | Недоступно |
Обслуживаемый аккумулятор пользователя
Поле | Значение | Описание |
---|---|---|
UUID | 4c2067e3-887d-475c-9720-4af1d3ed602e | GUID, указывающий расширения для поддержки драйвера батареи для метода управления Windows |
Идентификатор редакции | 0x0 | Первая редакция этой возможности |
Индекс функции | 0x2 | Указывает, что это _DSM для OSPM, чтобы определить, является ли устройство батареи пригодным для обслуживания пользователя. |
Аргументы | None | Аргументы не требуются. |
Возвращаемые значения | Пакет, содержащий одно целое число. | 0x0, если батарея не поддерживает обслуживание пользователя и не может быть заменена конечным пользователем или может быть заменена конечным пользователем с помощью дополнительных инструментов. 0x1, если батарея может быть заменена конечным пользователем без дополнительных инструментов. |
Требуется зарядка сторожевой
Поле | Значение | Описание |
---|---|---|
UUID | 4c2067e3-887d-475c-9720-4af1d3ed602e | GUID, указывающий расширения для поддержки драйвера батареи для метода управления Windows |
Идентификатор редакции | 0x0 | Первая редакция этой возможности |
Индекс функции | 0x3 | Указывает, что этот _DSM для OSPM определяет, требуется ли периодическое сброс батареи метода управления для поддержания высокой текущей зарядки и период, в который необходимо сбросить сторожевой. |
Аргументы | None | Аргументы не требуются. |
Возвращаемые значения | Пакет, содержащий одно целое число. | 0x0, если аккумулятор не требует обслуживания сторожевого.
Значения, включая 0x0000001e и 0x12C указывать максимальный интервал проверки в секундах. Все остальные значения игнорируются и рассматриваются как 0x0 и сброс сторожевого режима не требуется. Если указан допустимый интервал наблюдения, Windows будет выполнять метод _BST с интервалом, не превышающим указанное значение наблюдателя всякий раз, когда для параметра BatteryState в методе _BST задано значение зарядки. Динамическое обновление этого значения не поддерживается. |
Сторонние драйверы батареи Miniport
В Windows 10 изготовители оборудования и IHV могут разрабатывать собственные сторонние мини-драйверы аккумуляторов, чтобы заменить драйвер Microsoft cmbatt.sys и напрямую взаимодействовать с аккумуляторным оборудованием. Пример драйвера батареи предоставляется корпорацией Майкрософт на GitHub и в составе комплекта примеров WDK .
Usb-зарядка (Windows 10 для настольных компьютеров)
Корпорация Майкрософт распознает значение, предоставляя возможность поддержки зарядки мобильного устройства по USB. Благодаря усилиям по стандартизации, таким как переход ЕС на стандартизацию зарядных устройств для мобильных телефонов, USB-зарядные устройства широко доступны и работают на самых разных устройствах, включая Windows Phone, MP3-проигрыватели, устройства GNSS и т. д. Корпорация Майкрософт понимает ценность предложения одного зарядного устройства, которое можно использовать для зарядки нескольких устройств, включая устройство под управлением Windows. Кроме того, с учетом широкой отраслевой поддержки usb-зарядки есть вспомогательные преимущества, которые снижают затраты и воздействие на окружающую среду.
Начиная с Windows 8, мобильное устройство может питаться и /или заряжаться через USB при условии соблюдения требований к зарядке батареи, описанных ниже. Кроме того, существует ряд требований, относящихся к USB, которые должны быть выполнены, чтобы обеспечить качественное взаимодействие с пользователем.
Питание и зарядка USB должны быть полностью реализованы в встроенном ПО платформы. Для поддержки не должна требоваться операционная система, драйвер или приложение.
Устройство НЕ ДОЛЖНО выполнять перечисление при подключении к другому устройству. В результате устройство не будет заряжаться при подключении к стандартному USB-порту пк, так как эти порты по умолчанию ограничены 500 мА. Единственным исключением является использование этого порта для отладки и начального программирования встроенного ПО фабрики.
Устройство поддерживает зарядку через выделенный usb-порт зарядки. Устройство должно заряжаться при подключении к зарядному устройству, которое соответствует спецификации зарядки usb-батареи версии 1.2. При подключении к стандартному зарядному устройству USB устройство не должно рисовать более 1,5 А на каждый стандарт зарядки. Изготовитель оборудования может выбрать поддержку более высокого текущего уровня при условии выполнения следующих условий:
- Устройство автоматически определяет тип зарядного устройства и заряжает его по тарифу, соответствующему конкретному типу зарядного устройства.
- Устройство и зарядное устройство соответствуют всем соответствующим стандартам электротехники и безопасности.
- Изготовитель оборудования поставляет зарядное устройство и связанный кабель с устройством.
Usb-зарядка поддерживается через стандартный разъем micro-AB, USB-C (рекомендуется) или собственный соединитель док-станции. На устройстве не допускается использование емкости micro-B. Если используется собственный соединитель док-станции, изготовитель оборудования должен поставить соответствующий кабель с устройством, чтобы включить зарядку от стандартного зарядного устройства USB.
Если реализован порт micro-AB, устройство должно автоматически определить тип кабеля, конфигурацию и взять на себя соответствующую роль. Если в разъем micro-B вставляется, а отладка не включена на порту, следует использовать роль зарядного устройства. Если в разъем micro-B вставляется и на порту включена отладка, следует использовать роль отладки (т. е. зарядка не поддерживается). Если вставлен разъем micro-A, предполагается, что роль узла USB принимается там, где подключенные USB-устройства распознаются Windows.
Если порт micro-AB также функционирует как отладочный порт, устройство должно предоставить средства через встроенное ПО для переключения между зарядным устройством и ролью отладки. Параметр по умолчанию, отправляемый конечному пользователю, должен иметь отладку DISABLED.
Если порт micro-AB также работает в качестве порта отладки, устройство должно предоставить альтернативный путь ввода питания через выделенный соединитель ствола или собственный соединитель док-станции.
Контрольные списки конструктора платформ и разработчика
Вы можете использовать следующие контрольные списки, чтобы убедиться, что конструкция платформы и встроенное ПО системы соответствуют рекомендациям по подсистеме батареи и зарядки.
Контрольный список реализации встроенного ПО ACPI и подсистемы батареи
Разработчики систем должны убедиться, что они выполнили следующие задачи в встроенном ПО ACPI, чтобы обеспечить правильное представление сведений о аккумуляторе и подсистеме питания в Windows:
Добавьте объект Device() для каждого устройства батареи в пространстве имен ACPI.
Каждое устройство от батареи должно предоставлять следующие методы и объекты управления:
- _HID со значением PNP0C0A.
- Сведения о _BIX батарее расширены:
Передает статические сведения о батарее, включая последнюю полную емкость заряда, проектную емкость и количество циклов.
Состояние _BST батареи:
Передает текущее состояние батареи, включая оставшуюся емкость, скорость стока и состояние зарядки.
_BTP точка поездки батареи:
Позволяет модели состояния батареи, управляемой событиями, сократить периодическую работу при опросе. _BTP позволяет Windows указать пороговое значение оставшейся емкости заряда, при котором платформа должна выдавать уведомления (0x80) на устройстве от батареи, чтобы запросить обновление сведений о состоянии батареи в Windows.
Общее состояние _STA:
Позволяет Windows узнать, присутствует ли батарея на устройстве, где аккумулятор может быть съемным или где может быть аккумулятор в переносной док-станции.
Добавьте один объект Device() для адаптера переменного тока или источника питания в пространство имен ACPI.
Устройство источника питания должно предоставлять следующие методы и объекты управления:
_HID со значением ACPI0003
источник _PSR power:
Указывает, находится ли источник питания в режиме "в сети" (питание от переменного тока) или в автономном режиме (питание от батареи). Все источники питания для устройства должны быть мультиплексированы с помощью метода _PSR. Например, _PSR должна передаваться в режиме "в сети", если устройство питается через соединитель ствола постоянного тока или отдельный соединитель док-станции. Не используйте несколько устройств источника питания ACPI.
Метод _BIX должен поддерживать поля и ограничения, описанные в описании статической батареи выше:
- Поле Редакция должно иметь значение 0x0.
- В поле Power Unit (Блок питания ) должно быть задано значение 0x0.
- Значения Design Capacity (Проектная емкость ) и Last Full Charge Capacity (Емкость последней полной зарядки ) должны иметь точные значения от аккумулятора и подсистемы зарядки, а не равные 0xFFFFFFFF или 0x00000000.
- Для поля Технология батареи должно быть задано значение 0x1.
- Поле Конструктор напряжения должно быть задано точно и не равно 0x00000000 или 0xFFFFFFFF.
- Для параметра Design Capacity (Низкая) необходимо задать минимальное значение, необходимое для гибернации или завершения работы системы из полного состояния.
- Полям Детализация емкости батареи 1 и Емкость батареи 2 должно быть задано значение, не превышающее 1 % от проектной емкости батареи.
- Поле "Число циклов " должно быть точно заполнено из подсистемы батареи.
- Для поля Точность измерения должно быть задано значение 80 000d или выше.
- Поля Номер модели и Серийный номер не должны иметь значение NULL.
Предоставьте метод _BST, который позволяет Windows опрашивать состояние батареи в режиме реального времени. Поля в методе _BST должны динамически возвращаться из базовой подсистемы питания и зарядки аккумулятора. Их точность должна быть в пределах значения точности измерения в методе _BIX.
Предоставьте метод _BTP, позволяющий Windows указать порог оставшейся емкости заряда, при котором платформа будет прерывать Работу Windows с уведомлением (0x80) на устройстве батареи.
Убедитесь, что уведомление (0x80) выдано только в ответ на изменение состояния батареи или _BTP поездку ограничения емкости заряда. Не выполняйте уведомление (0x80) периодически.
Когда уровень заряда батареи достигает значения, указанного в _BIX. DesignCapacityofLow платформа должна создать notify(0x80) на устройстве батареи метода управления.
Для систем с несколькими батареями полностью реализуйте метод управления для каждого аккумулятора.
- Первая батарея в пространстве имен должна быть основной батареей для системы, чтобы упростить отладку.
Реализуйте метод _DSM для каждого устройства батареи, чтобы указать, является ли аккумулятор пригодным для обслуживания пользователем.
Реализуйте метод _DSM, если во время зарядки требуется периодический сброс сторожевой системы, и Windows гарантирует периодическое выполнение метода _BST в этом окне опроса.
Реализуйте метод _DSM, если для тепловой модели на платформе требуется управление скоростью зарядки батареи.