Gibt es ein Standard-I2C/SM-Busprotokoll für Laptop-Akkupacks?

Ich baue einen Laptop mit einem benutzerdefinierten Akku. Ich weiß, dass das Paket über einen I2C/SM-Port auf dem Motherboard kommunizieren muss, aber ich weiß nicht, wie ich das BIOS/OS dazu bringen kann, es zu erkennen. Gibt es eine bestimmte I2C-Adresse und ein Standardprotokoll zusätzlich zu I2C für den Austausch von Batteriezustandsinformationen? Wenn ja - wo finde ich die Dokumentation dafür? Wenn nein - ist das Protokoll nur proprietär für den BIOS-Hersteller und das Betriebssystem liest es dann aus dem BIOS? Ich werde I2C vom Mikrocontroller bitbangen, der die Batterie reguliert, damit ich tun kann, was immer nötig ist.

Antworten (2)

Da Sie den SMBus bereits kennen, sollten Sie sich die Smart Battery Data Specification oder die Smart Battery Charger Specification ansehen , da Sie diese simulieren müssen. Dies wird jedoch nicht beschreiben, ob der System Management Chip einige zusätzliche Funktionen hat, die undokumentiert sind ;-)

Es gibt keine wirkliche Norm. [Bearbeiten: Da liege ich falsch - siehe andere Antwort]

Die meisten Batterien werden jedoch mehr oder weniger auf die gleiche Weise hergestellt: Sie haben einen I2C-EEPROM-Chip (häufig einen Industriestandard-Chip), der alle statischen Informationen über die Batterie enthält (Modell, Seriennummer, Herstellungsdatum, Kapazität usw. ..), und ein weiterer Chip namens "Batterie-Gasanzeige" oder "Batterie-Kraftstoffanzeige", der den tatsächlichen Ladezustand und alle dynamischen Dinge überwacht.

TI bietet eine ganze Reihe von Batteriemesschips an: http://www.ti.com/lsds/ti/power-management/battery-fuel-gauge-overview.page . Wahrscheinlich enthält der Akku Ihres Laptops einen solchen Chip.

Im Grunde weiß also nur der Laptop-Hersteller genau, wie er mit dem Akku kommuniziert, aber alles basiert normalerweise auf weit verbreiteten, dokumentierten Chips (na ja, es könnte auch einige zusätzliche MCU mit proprietärer Firmware geben, die sich schließlich um zusätzliche Dinge kümmern ). Wenn Sie also eine Batterie zurückentwickeln müssen, haben Sie möglicherweise eine gewisse Chance, tatsächlich erfolgreich zu sein. Hier ist ein Dokument, das interessante Informationen liefert: Battery Firmware Hacking

Nun zum Software-Teil: Tatsächlich nimmt das Unternehmen, das das BIOS erstellt, basierend auf den Informationen des Laptop-/Batterieherstellers alle relevanten I2C-Nachrichten in das BIOS selbst auf, und das Betriebssystem fragt das BIOS, wenn es dies wissen muss.

Danke, es sieht so aus, als müsste ich an einem Laptop-Akku ein Reverse Engineering durchführen, um herauszufinden, welche Pakete er tatsächlich sendet, aber zumindest kann ich ziemlich sicher sein, dass es mit jedem BIOS funktioniert, da die Chips Standard sind
Ich verwende keinen Standard-Laptop-Akku, der diese Chips bereits hätte
Anscheinend hatte ich nicht recht. Tom L hat eine echte Spezifikation gefunden, die ich nicht kannte. Du akzeptierst besser seine Antwort als meine, er hat sie besser verdient.
Ja, ich habe die Spezifikation nur ein wenig überflogen, um sicherzustellen, dass sie tatsächlich das enthält, wonach ich gesucht habe.
Mach dir keine Sorge; in der Tat haben Sie teilweise Recht. Viele Pakete aus der realen Welt enthalten die erwähnte Spezifikation, ABER die Spezifikation spezifiziert auch einen "Hersteller"-Datenblock ... wenn Sie es nicht selbst spezifizieren, könnte dies alles sein - angefangen von einer einfachen Zeichenfolge bis hin zu einem verschlüsselten Datenblock.