12.10. SMBus 设备
嵌入式控制器接口为系统提供了一种访问 SMBus 上设备的标准方法。它并未定义任何特定 SMBus 设备所使用的数据和/或访问协议。进一步说,嵌入式控制器可以(并且很可能会)充当守门者,以防止对 SMBus 上设备的意外或恶意访问。
某些 SMBus 设备通过其地址以及描述该数据和用于访问该数据的协议的规范来定义。例如,智能电池系统设备由一系列规范定义,包括:
智能电池数据规范
智能电池充电器规范
智能电池选择器规范
智能电池系统管理器规范
嵌入式控制器还可用于模拟(部分或全部)任何 SMBus 设备。
12.10.1. SMBus 设备访问限制
在某些情况下,嵌入式控制器接口将不允许访问特定的 SMBus 设备。某些 SMBus 设备能够并且确实会彼此直接通信。意外访问可能会干扰它们的正常运行并导致不可预测的结果。
12.10.2. SMBus 设备命令访问限制
在某些情况下,SMBus 设备的部分命令是公开的,而其他命令是私有的。对这些命令进行无关的访问尝试可能会干扰 SMBus 设备的正常运行。
智能电池和智能电池充电器是不应暴露其整个命令集的设备的良好示例。智能电池命令智能电池充电器提供特定的充电电压和充电电流。任何人试图更改这些值都可能对电池或移动系统造成损害。为保护系统完整性,嵌入式控制器接口可以通过返回以下错误代码之一来限制对这些命令的访问:设备命令访问被拒绝(0x12)或设备访问被拒绝(0x17)。