Как Windows узнает, что работает от батареи?

25

Платы регулятора DC-DC ноутбука каким-то образом способны связываться с Windows, чтобы видеть, сколько заряда батареи осталось, но мои исследования ничего не нашли.

Есть ли в ноутбуках соединение для передачи данных от проприетарных материнских плат? Если да, то что это за соединение для передачи данных и где оно на самом деле соединяется? Это просто порт PCI-E с ленточным кабелем?

обкрадывать
источник
12
Это не относится к Windows или даже ноутбукам, всем планшетам и смартфонам, а также цифровым камерам и всевозможным устройствам с батарейным питанием, которые используют одни и те же концепции с немного отличающимися реализациями
cat
1
@cat Я рассчитывал столько же, но попросил максимально приблизить к моей конечной цели.
Роб

Ответы:

49

Ноутбук содержит чип управления батареей с SMBus, такой как BQ24721C .
Этот чип находится на соединении с аккумулятором, зарядным устройством и регулятором напряжения системы.
Он управляет обнаружением зарядного устройства, а затем управляет скоростью зарядки через встроенный контроллер постоянного тока. Он также управляет различными транзисторами для отключения или включения питания от батареи или от батареи, или от сети переменного тока в систему.
Эти чипы имеют различные средства связи с остальной частью системы.
Он имеет IRQ (запросы на прерывание), аналоговые выходы, сигнал исправной мощности и SMbus.

Если аккумулятор является заменяемым, он также будет содержать некоторый интеллект для измерения состояния аккумулятора и его защиты. Это использует SMbus или что-то проприетарное. Примером является кулоновский счетчик, который измеряет заряд, входящий и выходящий из батареи (например: LTC2943 )

SMbus построен на I2C ; это «Шина управления системой». Все важные вещи связаны с этим. Например, он также доступен на разъемах PCI.
Он загружен небольшими устройствами, такими как контроллеры вентиляторов, датчики температуры и окружающего освещения или простыми переключателями и светодиодами, такими как включение-выключение Wi-Fi или закрытие крышки.

Затем драйверы операционной системы должны знать расположение этой шины и то, как работают устройства. Некоторые из них несколько стандартизированы в ACPI .

Jeroen3
источник
Было бы справедливо предположить, что на это способны только специально разработанные платы для ноутбуков, а не стандартные материнские платы для настольных ПК? Вы упомянули, что это доступно для разъемов PCI - может ли плата PCI поддерживать функциональность SMbus?
Роб
Материнские платы @Rob Desktop не имеют контроллеров заряда батареи, с чего бы это? ИБП для настольных компьютеров использует классификацию устройств питания USB HID для стандартизированного перечисления ACPI в операционной системе в качестве батареи.
Jeroen3
Я не ожидал, что они это сделают, но подумал, что могу спросить, может ли что-нибудь на коммерческой доске сделать то же самое. Для будущих поколений я посмотрел спецификации для USB HID Power Devices на случай, если они кому-нибудь понадобятся.
Роб
37

Ознакомьтесь с API APM ( Advanced Power Management ) и его преемником ACPI ( Advanced Configuration и Power Interface ). До APM эти функции обрабатывались BIOS.

Для Windows 8 и более поздних версий у Microsoft есть эти рекомендации.

Аппаратно это может быть так же просто, как интерфейс I 2 C (двухпроводный) к подсистеме.

Спехро Пефхани
источник
19
Включение четырех ссылок вместо одной не делает этот ответ не только ссылкой. Попробуйте добавить соответствующий контент по ссылкам в кавычки или суммировать его.
Тодд Уилкокс,
16

Помимо таких вещей, как простые датчики напряжения, весьма часто встречаются интегрированные измерители мощности, которые контролируют чистую мощность, вытекающую из батареи.

Вопрос о том, как эти датчики взаимодействуют с ОС, отличается и будет отличаться от модели к модели.

Однако, как правило, встроенное программное обеспечение вашего ноутбука будет взаимодействовать с вашими датчиками, обрабатывать эти значения и представлять их через собственный или стандартный интерфейс (например, ACPI) для вашей ОС.

PCIe почти наверняка не используется в качестве основного канала - это слишком дорого, чтобы пропускать несколько бит каждую минуту. Электрически, ожидайте I²C, варианты, такие как SMBUS, обычный SPI, 3.3 В UART, возможно, USB, и все другие виды вещей, с которыми вы могли бы подключить контроллер платформы (который на самом деле просто MCU) с датчиками.

Маркус Мюллер
источник
3

В дополнение к типу подключения датчиков, указанному в других комментариях и ответах, стандартные компьютерные чипсеты включают в себя два сигнала, которые поступают от материнской платы и передаются через чипсет в BIOS и / или драйверы операционной системы. Два сигнала называются:

AC_PRES - указывает на наличие переменного тока. В случае ноутбука он будет активен, когда подключен внешний блок питания. Для настольного компьютера он будет активен, когда активен основной источник питания переменного тока.

BATT_LOW - указывает на низкий уровень заряда батареи. Применимо только к конфигурации ноутбука или планшета; это будет указывать, когда батарея разряжается до уровня, после которого остается только короткое время работы. (Обратите внимание, что это не касается батареи часов реального времени).

Как правило, регистры в наборе микросхем, которые содержат состояние этих сигналов, были созданы как унаследованное назначение и, как правило, остаются неизменными во многих поколениях компьютерного оборудования.

Майкл Карас
источник