10.2.2.6. _BMD(电池维护数据)
此可选对象返回与电池校准和充电器控制功能相关的电池能力及当前状态信息。如果 _BMC 对象(定义如下)出现在电池设备下,则此对象也必须存在。每当状态标志值发生变化时,AML 代码将发出 Notify(battery_device, 0x82)。此外,如果评估 _BMC 没有导致状态标志按照传递给 _BMC 的参数所指示的那样被设置,AML 也将发出 Notify(battery_device, 0x82)。如果在评估 _BMC 期间状态标志发生变化,除非该变化与传递给 _BMC 的参数不对应,否则 AML 不要求发出 Notify(battery_device, 0x82)。
参数:
无
返回值:
一个 Package,包含如下所述的电池维护数据
返回值信息:
_BMD 以如下格式返回一个 package:
Package {
Status Flags // Integer (DWORD)
Capability Flags // Integer (DWORD)
Recalibrate Count // Integer (DWORD)
Quick Recalibrate Time // Integer (DWORD)
Slow Recalibrate Time // Integer (DWORD)
}
表 10.6 BMD 返回包值
| 字段 | 格式 | 描述 |
|---|---|---|
| 状态标志 | Integer (DWORD) | 位值。位 [0] 与位 [1] 和位 [2] 互斥。如果充电器正在被手动控制,则不能存在 AML 控制的校准周期。位[0] - 1 表示电池正在运行 AML 控制的校准周期。位[1] - 1 表示已禁用充电。位[2] - 1 表示电池被配置为在交流电可用时放电。位[3] - 1 表示电池应重新校准。位[4] - 1 表示 OSPM 应将系统置于待机以在校准周期期间加快充电。如果“慢速重新校准时间”不等于 0x00000000,则这是可选的(基于用户偏好)。位[5] – 1 表示由于热条件不能暂停电池充电限制。位[6] – 1 表示由于电池保护原因不能暂停电池充电限制。位 [31:7] - 保留。 |
| 能力标志 | Integer (DWORD) | 描述电池系统能力的位值。这些位允许能力更有限的电池系统仍可由 OSPM 进行校准。位[0] - 1 表示支持 AML 控制的校准周期。位[1] - 1 表示支持禁用充电器。位[2] - 1 表示支持在使用交流电时放电。位[3] - 1 表示对一个电池调用 _BMC 会影响系统中所有电池的状态。这适用于不能单独控制电池的电池系统。位[4] - 1 表示校准应先将电池充满,然后再放电。不设置此位表示校准可通过简单地对电池放电来完成。位[5] – 1 表示支持电池充电限制暂停。位[31:6] - 保留 |
| 重新校准计数 | Integer (DWORD) | 这用于无法检测何时需要校准,但希望建议在一定循环次数后应对电池进行校准的电池系统。循环和部分循环的计数由 OSPM 完成。0x00000000 - 仅当状态标志位 [3] 被设置时才进行校准。0x00000000-0xFFFFFFFF - 在检测到这么多次电池循环后校准电池。 |
| 快速重新校准时间 | Integer (DWORD) | 返回在每当状态标志位 [4] 被设置时将系统置于待机的情况下,对电池进行校准所需的估计时间。当 AML 控制的校准周期正在进行时,此字段返回校准周期中的剩余时间。0x000000000 - 表示在校准电池时不支持待机。系统应保持在 S0,直到校准完成。0x00000001 - 0xFFFFFFFE - 以秒为单位的估计重新校准时间。0xFFFFFFFF - 表示重新校准电池所需的估计时间未知。 |
| 慢速重新校准时间 | Integer (DWORD) | 返回在忽略状态标志位 [4] 的情况下,对电池进行校准所需的估计时间。当 AML 控制的校准周期正在进行时,此字段返回校准周期中的剩余时间。0x000000000 - 表示如果忽略状态标志位 [4],电池校准可能不会成功。0x00000001 - 0xFFFFFFFE - 以秒为单位的估计重新校准时间。0xFFFFFFFF - 表示重新校准电池所需的估计时间未知。 |
有关更多信息,请参见电池校准。
能力标志和重新校准计数 用于指示哪些功能由 AML 控制,哪些功能由 OSPM 控制,如第 3.9.5 节“电池校准”中所述。如果系统未实现 AML 控制的校准周期(位 [0]),则它可以使用位 [1] 和位 [2] 指示 OSPM 可以控制一个通用校准周期,而无需提示用户移除电源线。重新校准计数可用于指示平台运行时固件无法确定何时应执行校准,因此状态标志的位 3 永远不会被设置。在这种情况下,OSPM 将尝试计数循环次数。
位 [3] 用于无法单独控制电池并且只能一次对系统中所有电池执行校准的系统。在这种系统上,如果一个电池请求校准而另一个电池不请求校准,则 OSPM 可以建议用户在启动校准周期之前移除不需要校准的电池。当设置此位时,从任一电池读取重新校准时间都应给出对系统中当前所有电池重新校准所需的时间。