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