Como o Windows sabe que está usando a bateria?

25

As placas reguladoras DC-DC de laptops são capazes de se comunicar com o Windows para ver quanta energia resta da bateria, mas minha pesquisa não encontra nada.

Existe uma conexão de dados das placas-mãe proprietárias encontradas nos laptops que comunica isso? Em caso afirmativo, que tipo de conexão de dados é e onde ele realmente se conecta? É apenas uma porta PCI-E com um cabo de fita?

Roubar
fonte
12
Não é específico para o Windows ou até mesmo laptops, todos os tablets e smartphones, assim como câmeras digitais e todos os tipos de dispositivos de bateria com capacidade de utilizar os mesmos conceitos com um pouco diferentes implementações
gato
11
@cat eu percebi isso, mas pedi a implementação mais próxima do meu objetivo final.
Rob

Respostas:

49

O laptop contém um chip de gerenciamento de bateria com SMBus, como um BQ24721C .
Este chip fica na interconexão com a bateria, o carregador e o regulador de tensão do sistema.
Ele lida com a detecção do carregador e gerencia a taxa de carregamento através de um controlador DC-DC incorporado. Ele também controla vários transistores para desativar ou ativar a energia da ou para a bateria ou da CA para o sistema.
Esses chips possuem vários meios de comunicação com o restante do sistema.
Possui IRQs (solicitações de interrupção), saídas analógicas, sinal de boa potência e SMbus.

Se a bateria for substituível, ela também conterá alguma inteligência para medir e proteger o status da bateria. Isso usa SMbus ou algo proprietário. Um exemplo é um contador Coulomb que mede a carga que entra e sai da bateria (por exemplo: LTC2943 )

O SMbus é construído em I2C ; é o "System Management Bus". Todas as coisas importantes se conectam a isso. Por exemplo, também está disponível nos conectores PCI.
Ele é carregado com pequenos dispositivos, como controladores de ventilador, sensores de temperatura e luz ambiente ou interruptores e LEDs simples, como wi-fi ligado ou desligado.

Cabe aos drivers do sistema operacional conhecer o layout desse barramento e como os dispositivos funcionam. Algumas delas são um pouco padronizadas no ACPI .

Jeroen3
fonte
Seria justo supor que apenas placas de laptop especialmente projetadas seriam capazes disso, não de placas-mãe de mesa prontas para uso? Você mencionou que os conectores PCI têm esse recurso disponível - uma placa PCI pode lidar com a funcionalidade SMbus?
7267 Rob
As placas-mãe do @Rob Desktop não oferecem controladores de carga da bateria, por que eles ofereceriam? Um no-break para desktops usa uma Classificação de dispositivos de energia HID USB para enumeração padronizada de ACPI no sistema operacional como bateria.
precisa saber é o seguinte
Não esperava que sim, mas pensei em perguntar se algo em um conselho comercial poderia fazer o mesmo. Para futura posteridade, procurei as especificações dos dispositivos de alimentação USB HID, caso alguém precise deles.
7267 Rob
37

Confira a API do APM ( Advanced Power Management ) e seu sucessor ACPI ( Advanced Configuration and Power Interface ). Antes do APM, essas funções eram manipuladas pelo BIOS.

Para o Windows 8 e posterior, a Microsoft tem essas recomendações.

Em termos de hardware, pode ser tão simples quanto uma interface I 2 C (dois fios) para um subsistema.

Spehro Pefhany
fonte
19
A inclusão de quatro links em vez de um não faz com que isso não seja uma resposta apenas de link. Considere adicionar o conteúdo relevante dos links entre aspas ou resumir.
Todd Wilcox
16

Além de simples sensores de tensão, não é incomum que você obtenha medidores de energia que monitoram a energia líquida que sai da bateria.

A questão de como esses sensores conversam com o sistema operacional é diferente e será diferente de modelo para modelo.

No entanto, geralmente, o firmware do seu laptop conversa com seus sensores, processa esses valores e os apresenta através de uma interface proprietária ou padrão (por exemplo, ACPI) para o seu sistema operacional.

O PCIe quase certamente não está envolvido como elo principal - é muito caro para obter alguns bits a cada minuto. Eletricamente, espere I²C, variantes como SMBUS, SPI simples, UARTs de 3,3V, possivelmente USB e todos os outros tipos de coisas com as quais você pode conectar um controlador de plataforma (que realmente é apenas um MCU) com sensores.

Marcus Müller
fonte
3

Além das conexões do tipo de sensor mencionadas em outros comentários e respostas, os chipsets de computador padrão incluem dois sinais que saem da placa mãe e são reportados pelo chipset ao BIOS e / ou drivers do sistema operacional. Os dois sinais são chamados:

AC_PRES - Indica o AC presente. No caso de um laptop, ele estará ativo quando a fonte de alimentação externa de tijolos estiver conectada. Para um desktop, isso estará ativo quando a fonte de alimentação CA principal estiver ativa.

BATT_LOW - Indica uma condição de bateria fraca. Aplicável apenas a uma configuração de laptop ou tablet; isso indicará quando a bateria descarregou para um nível além do qual resta apenas um curto tempo operacional. (Observe que isso não diz respeito à bateria do relógio em tempo real).

É comum que os registros que estão no chipset que contêm o status desses sinais tenham sido estabelecidos como uma atribuição herdada e tendem a permanecer os mesmos por muitas gerações de hardware de computador.

Michael Karas
fonte