InfiniteLooper Asked: 2023-05-30 22:47:40 +0800 CST2023-05-30 22:47:40 +0800 CST 2023-05-30 22:47:40 +0800 CST ACPI 电池信息从何而来? 772 使用 ACPI 接口,可以获得有关电池寿命的信息。这些信息从何而来? 有没有通过电源插头上的电流积分来计算能力的芯片?这是将电压转换为容量的电池芯片吗? hardware 1 个回答 Voted Best Answer Marcus Müller 2023-05-30T23:26:41+08:002023-05-30T23:26:41+08:00 标称电池容量的实际知识通常不是来自同一个地方。例如,我使用的小型嵌入式设备只会配备相同的电池类型——因此标称容量只是硬编码在内核驱动程序中(或设备树文件,我忘了是哪个,没关系,它的意思是“硬编码在 CPU 上运行的软件中”)。 其他设备将在计算机主板的电源控制器上运行固件,以跟踪容量。它是通过了解工厂容量作为常数来知道这一点,还是从微控制器或内置于电池组的存储器中获取容量,这再次取决于硬件设计。在没有操作系统支持的情况下重新校准的能力也是如此。 然后,关于当前电池状态的知识从何而来的问题:这又取决于硬件设计。简单的解决方案可能只读取当前电池电压(并有一个内部典型放电曲线,将电压映射到充电;这是您在哑铃时代所期望的:一个电池符号表示“相当满”、“有点满”、“几乎是空的”,就是这样),其他人至少会补偿温度,更好的人也会实际计算来自电池的焦耳数,通常会给出更准确的读数。 然后,无论是 ACPI 控制器,还是经常在非 ACPI 系统上,内核直接与这些设备对话(例如通过 SMBUS、USB、某些 CPU UART……)并将这些读数转换为您从内核接口(sysfs)看到的值).
标称电池容量的实际知识通常不是来自同一个地方。例如,我使用的小型嵌入式设备只会配备相同的电池类型——因此标称容量只是硬编码在内核驱动程序中(或设备树文件,我忘了是哪个,没关系,它的意思是“硬编码在 CPU 上运行的软件中”)。
其他设备将在计算机主板的电源控制器上运行固件,以跟踪容量。它是通过了解工厂容量作为常数来知道这一点,还是从微控制器或内置于电池组的存储器中获取容量,这再次取决于硬件设计。在没有操作系统支持的情况下重新校准的能力也是如此。
然后,关于当前电池状态的知识从何而来的问题:这又取决于硬件设计。简单的解决方案可能只读取当前电池电压(并有一个内部典型放电曲线,将电压映射到充电;这是您在哑铃时代所期望的:一个电池符号表示“相当满”、“有点满”、“几乎是空的”,就是这样),其他人至少会补偿温度,更好的人也会实际计算来自电池的焦耳数,通常会给出更准确的读数。
然后,无论是 ACPI 控制器,还是经常在非 ACPI 系统上,内核直接与这些设备对话(例如通过 SMBUS、USB、某些 CPU UART……)并将这些读数转换为您从内核接口(sysfs)看到的值).