Come fa Windows a sapere che è alimentato a batteria?


25

Le schede del controller DC-DC del laptop sono in qualche modo in grado di comunicare con Windows per vedere quanta batteria è rimasta, ma la mia ricerca non trova nulla.

Esiste una connessione dati dalle schede madri proprietarie presenti nei laptop che comunica questo? In tal caso, che tipo di connessione dati è e dove si collega effettivamente? È solo una porta PCI-E con un cavo a nastro?


12
Non è specifico per Windows o addirittura laptop, tutti i tablet e smartphone, nonché le fotocamere digitali e tutti i tipi di dispositivi che supportano la batteria utilizzano gli stessi concetti con implementazioni leggermente diverse
cat

1
@cat Ho pensato tanto, ma ho chiesto l'implementazione più vicina al mio obiettivo finale.
Rob

Risposte:


49

Il laptop contiene un chip di gestione della batteria con SMBus, come un BQ24721C .
Questo chip si trova all'interconnessione con la batteria, il caricabatterie e il regolatore di tensione del sistema.
Gestisce il rilevamento del caricabatterie e quindi gestisce la velocità di ricarica tramite un controller DC-DC incorporato. Controlla inoltre vari transistor per disabilitare o abilitare l'alimentazione da o verso la batteria o dall'alimentazione CA al sistema.
Questi chip hanno vari mezzi per comunicare con il resto del sistema.
Ha IRQ (richieste di interruzione), uscite analogiche, un segnale di buona potenza e SMbus.

Se la batteria è sostituibile, conterrà anche alcune informazioni utili per misurare lo stato della batteria e proteggerla. Questo utilizza SMbus o qualcosa di proprietario. Un esempio è un contatore Coulomb che misura la carica in entrata e in uscita dalla batteria (ad esempio: LTC2943 )

SMbus è basato su I2C ; è il "bus di gestione del sistema". Tutte le cose importanti si collegano a questo. Ad esempio è disponibile anche sui connettori PCI.
È caricato con piccoli dispositivi come termoregolatori, sensori di temperatura e luce ambientale o semplici interruttori e LED, come wi-fi on-off o coperchio chiuso.

Quindi spetta ai driver del sistema operativo conoscere il layout di questo bus e come funzionano i dispositivi. Alcuni di questi sono in qualche modo standardizzati in ACPI .


Sarebbe giusto supporre che solo le schede laptop appositamente progettate sarebbero in grado di farlo, non le schede madri desktop standard? Hai detto che i connettori PCI hanno questo a disposizione: una scheda PCI potrebbe gestire la funzionalità SMbus?
Rob,

Le schede madri @Rob Desktop non offrono controller di carica della batteria, perché dovrebbero? Un UPS per desktop utilizza una classificazione dei dispositivi di alimentazione HID USB per l'enumerazione ACPI standardizzata al sistema operativo come batteria.
Jeroen3,

Non mi aspettavo che lo facessero, ma ho pensato di chiedere se qualcosa in un consiglio commerciale potesse fare lo stesso. Per i posteri futuri, ho cercato le specifiche dei dispositivi di alimentazione HID USB nel caso in cui qualcuno ne avesse bisogno.
Rob,

37

Dai un'occhiata all'API APM ( Advanced Power Management ) e al suo successore ACPI ( Advanced Configuration and Power Interface ). Prima di APM, queste funzioni erano gestite dal BIOS.

Per Windows 8 e versioni successive, Microsoft ha questi consigli.

Dal punto di vista hardware, può essere semplice come un'interfaccia I 2 C (a due fili) per un sottosistema.


19
Includere quattro collegamenti anziché uno non rende questa non solo una risposta. Prendi in considerazione l'aggiunta del contenuto pertinente dai collegamenti tra virgolette o il riepilogo.
Todd Wilcox,

16

A parte cose come semplici sensori di tensione, non è assolutamente raro che si ottengano misuratori di potenza integrati che monitorano la potenza netta che fluisce da una batteria.

La domanda su come questi sensori comunicano con il sistema operativo è diversa e differirà da modello a modello.

Tuttavia, in genere, il firmware del laptop comunica con i sensori, elabora questi valori e li presenta al sistema operativo tramite un'interfaccia proprietaria o standard (ad esempio ACPI).

PCIe non è quasi certamente coinvolto come collegamento principale - è troppo costoso per ottenere qualche bit al minuto. Elettricamente, aspettatevi I²C, varianti come SMBUS, SPI semplice, UART 3.3V, possibilmente USB e tutti gli altri tipi di cose con cui è possibile collegare un controller di piattaforma (che in realtà è solo un MCU) con sensori.


3

Oltre alle connessioni del tipo di sensore indicate in altri commenti e risposte, i chipset per computer standard includono due segnali che provengono dalla scheda madre e riportano attraverso il chipset al BIOS e / o ai driver del sistema operativo. I due segnali sono chiamati:

AC_PRES - Indica la presenza AC. Nel caso di un laptop, questo sarà attivo quando è collegato l'alimentatore di mattoni esterno. Per un desktop questo sarà attivo quando è attiva l'alimentazione CA principale.

BATT_LOW - Indica che la batteria è scarica. Applicabile solo alla configurazione di un laptop o tablet; questo indicherà quando la batteria si è scaricata a un livello oltre il quale è rimasto solo un breve tempo operativo. (Notare che ciò non riguarda affatto la batteria dell'orologio in tempo reale).

È comune che i registri presenti nel chipset che contengono lo stato di questi segnali siano stati stabiliti come assegnazione legacy e tendano a rimanere gli stessi per molte generazioni di hardware.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.