¿Cómo sabe Windows que funciona con batería?

Las placas reguladoras DC-DC de las computadoras portátiles pueden comunicarse de alguna manera con Windows para ver cuánta batería queda, pero mi investigación no encuentra nada.

¿Existe una conexión de datos de las placas base propietarias que se encuentran en las computadoras portátiles que comunica esto? Si es así, ¿qué tipo de conexión de datos es y dónde se conecta realmente? ¿Es solo un puerto PCI-E con un cable plano?

No es específico de Windows o incluso de las computadoras portátiles, todas las tabletas y los teléfonos inteligentes, así como las cámaras digitales y todo tipo de dispositivos con batería, utilizan los mismos conceptos con implementaciones ligeramente diferentes.
@cat Me lo imaginé, pero pedí la implementación más cercana a mi objetivo final.

Respuestas (4)

La computadora portátil contiene un chip de administración de batería con SMBus, como un BQ24721C .
Este chip se encuentra en la interconexión con la batería, el cargador y el regulador de voltaje del sistema.
Maneja la detección del cargador y luego administra la tasa de carga a través de un controlador CC-CC incorporado. También controla varios transistores para deshabilitar o habilitar la alimentación desde o hacia la batería, o desde CA al sistema.
Estos chips tienen varios medios para comunicarse con el resto del sistema.
Tiene IRQs (solicitudes de interrupción), salidas analógicas, una buena señal de potencia y SMbus.

Si la batería es reemplazable, también contendrá algo de inteligencia para medir el estado de la batería y protegerla. Esto usa SMbus o algo propietario. Un ejemplo es un contador de Coulomb que mide la carga que entra y sale de la batería (p. ej.: LTC2943 )

SMbus se basa en I2C ; es el "Bus de gestión del sistema". Todas las cosas importantes se conectan a esto. Por ejemplo, también está disponible en los conectores PCI.
Está cargado con pequeños dispositivos como controladores de ventiladores, sensores de temperatura y luz ambiental o interruptores y LED simples, como el encendido y apagado de wi-fi o la tapa cerrada.

Luego depende de los controladores del sistema operativo conocer el diseño de este bus y cómo funcionan los dispositivos. Parte de esto está algo estandarizado en ACPI .

¿Sería justo suponer que solo las placas de portátiles especialmente diseñadas serían capaces de hacer esto, no las placas base de escritorio disponibles en el mercado? Mencionó que los conectores PCI tienen esto disponible: ¿podría una tarjeta PCI manejar la funcionalidad SMbus?
Las placas base @Rob Desktop no ofrecen controladores de carga de batería, ¿por qué lo harían? Un UPS para computadoras de escritorio utiliza una clasificación de dispositivos de alimentación USB HID para la enumeración ACPI estandarizada para el sistema operativo como una batería.
No esperaba que lo hicieran, pero pensé que podría preguntar si algo en una junta comercial podría hacer lo mismo. Para la posteridad futura, busqué las especificaciones de los dispositivos de alimentación USB HID en caso de que alguien los necesite.

Consulte la API APM ( Administración avanzada de energía ) y su sucesora ACPI ( Configuración avanzada e interfaz de energía ). Antes de APM, estas funciones eran manejadas por el BIOS.

Para Windows 8 y versiones posteriores, Microsoft tiene estas recomendaciones.

En cuanto al hardware, puede ser tan simple como una interfaz I 2 C (dos hilos) para un subsistema.

Incluir cuatro enlaces en lugar de uno no significa que esta no sea una respuesta de solo enlace. Considere agregar el contenido relevante de los enlaces entre comillas en bloque o resumirlo.

Además de cosas como sensores de voltaje simples, no es raro que obtenga medidores de potencia integrados que controlen la potencia neta que sale de una batería.

La pregunta de cómo estos sensores se comunican con el sistema operativo es diferente y diferirá de un modelo a otro.

Sin embargo, por lo general, el firmware de su computadora portátil se comunicará con sus sensores, procesará estos valores y los presentará a través de una interfaz patentada o estándar (por ejemplo, ACPI) a su sistema operativo.

Es casi seguro que PCIe no está involucrado como enlace principal; eso es demasiado costoso para obtener algunos bits por minuto. Eléctricamente, espere I²C, variantes como SMBUS, SPI simple, UART de 3,3 V, posiblemente USB y todo otro tipo de cosas con las que podría conectar un controlador de plataforma (que en realidad es solo una MCU) con sensores.

Además de las conexiones de tipo sensor indicadas en otros comentarios y respuestas, los conjuntos de chips de computadora estándar incluyen dos señales que provienen de la placa base y se envían a través del conjunto de chips al BIOS y/o a los controladores del sistema operativo. Las dos señales se llaman:

AC_PRES: esto indica la CA presente. En el caso de una computadora portátil, estará activo cuando la fuente de alimentación eléctrica externa esté enchufada. Para una computadora de escritorio, estará activo cuando la fuente de alimentación de CA principal esté activa.

BATT_LOW: esto indica una condición de batería baja. Aplicable solo a una configuración de computadora portátil o tableta; esto indicará cuando la batería se ha descargado a un nivel más allá del cual solo queda un breve tiempo de funcionamiento. (Tenga en cuenta que esto no tiene nada que ver con la batería del reloj de tiempo real).

Es común que los registros que están en el conjunto de chips que contienen el estado de estas señales se hayan establecido como una asignación heredada y tiendan a permanecer igual a través de muchas generaciones de hardware de computadora.