ZHDU025 December 2025 UCD91160 , UCD91320
ACCESS_CONTROL 命令使用写入字命令格式进行写入,使用过程调用格式进行读取,如 PMBus 标准中所述。此命令允许系统集成商按照自己的意愿、受 PASSKEY 锁定/解锁状态限制(请参阅节 22.3)或永久地将读写访问限制为受支持的命令。
表 22-4 展示了 ACCESS_CONTROL 命令每个写入字节的解释。表 22-5 展示了 ACCESS_CONTROL 选项字节中可用的值和字段,以及 UCD91xxx 系列器件中支持哪些值和哪些值可存储。所有非安全相关的 UCD91xxx 命令均受支持,并具有自己的访问控制字节和独立设置。不支持以下命令:
(0Eh) PASSKEY
(0Fh) ACCESS_CONTROL
字节编号(写入) | 有效载荷编号 | 说明 |
|---|---|---|
0 | COMMAND_BYTE = 0Fh | |
1 | 0 | ACCESS_CONTROL 目标命令代码 |
2 | 1 | 访问控制选项字节 |
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
值 | WRITE_ACCESS | READ_ACCESS | AUTHENTICATED_WRITE | NVM_STORE | NVM_RESTORE | WRITE_ONCE | NO_MORE | NEVER_AGAIN |
UCD91xx 支持 | 是 | 是 | 否 | 否 | 否 | 是 | 是 | 是 |
可存储 | 是 | 是 | 否 | 否 | 否 | 是 | 否 | 是 |
WRITE_ACCESS:设置此位时,会限制对目标命令代码的写入。尝试写入这些命令会在 STATUS_CML 寄存器中设置无效数据错误。
READ_ACCESS:设置此位时,会限制对目标命令代码的读取,并且尝试读取这些命令会在 STATUS_CML 寄存器中设置无效数据错误。
WRITE_ONCE:设置此位时,目标命令代码将仅允许进行单次写入,并且此后将限制 WRITE_ACCESS。需要进行 POR 来复位允许的写入次数。请注意,尝试写入 READ_ONLY 命令不会在写入尝试后更新 ACCESS_CONTROL 字节设置,因为对这些命令的写入已经受到限制。
NO_MORE:设置此位时,在下一次 POR 之前,目标命令代码的 ACCESS_CONTROL 字节设置将不允许进行更多次写入。即使 PASSKEY 已解锁,也是如此。此位不可存储。
NEVER_AGAIN:设置此位时,其行为与 NO_MORE 位相同。当使用 STORE_DEFAULT_ALL 命令存储它并执行 POR 时,给定目标命令代码的 ACCESS_CONTROL 字节将被永久锁定。如果尚未存储该位,进行 POR 可以清除此位状态。
当启用 WRITE_ONCE 功能并针对给定命令执行单次写入时,WRITE_ACCESS 位将被视为已设置。此时执行 STORE_DEFAULT_ALL 命令将存储 WRITE_ACCESS 值,对该命令的后续 POR 写入将被禁用。在执行 STORE_DEFAULT_ALL 命令之前,用户必须确保要存储的 ACCESS_CONTROL 值正确。
表 22-6 显示了用于读取 ACCESS_CONTROL 命令的格式。ACCESS_CONTROL 字节的返回值取决于读取选项字节的值,如表 22-7 中所述。
字节编号 | 写入/读取 | 说明 |
|---|---|---|
0 | 写入 | COMMAND_BYTE = 0Fh |
1 | 写入 | 目标命令代码 |
2 | 写入 | 读取选项 |
重复启动 + 地址字节 | ||
3 | 读取 | 目标命令代码 |
4 | 读取 | 访问控制字节 |
写入的读取选项 | 访问控制字节值 |
|---|---|
0x00 | 当前访问控制字节设置 |
0x02 | 支持的访问控制字节设置 |
0x80 | 可存储的访问控制字节设置 |