蓝因子 IPMB 通讯流程
发布日期:2025-07-06 04:58    点击次数:139

在 IPMB 通讯流程中,首先由请求者(此时作为 Master,执行写操作)向响应者(此时作为 Slave)发送请求数据。响应者接收到请求后,对其进行处理,随后角色发生互换,响应者转变为 Master(执行写操作),向原先的请求者(此时作为 Slave)回复响应数据,至此完成一次完整的 IPMB 通讯流程。

IPMB 支持多主(Multi-Master)通信,在这种模式下会出现总线仲裁情况,当多个主设备同时发送起始条件(START)时,在地址或数据位的传输过程中,发送高电平(SDA = 1)的主设备需要退出竞争,而发送低电平(SDA = 0)的主设备则继续进行通信。也就是说,双方会逐比特地比较地址和数据,首先发送 “0” 的一方将赢得总线的使用权,而输掉竞争的一方则切换为从设备,监听胜方发送的消息。

此外,IPMB 通讯流程中设置了超时和重传机制,协议中未明确规定超时时间,OpenBMC 默认超时时间为 250ms。如果主设备在时效内未收到响应,会重新发送请求。在重传之前,建议主设备等待一段随机时间(例如 10~100ms),这样可以有效减少重复冲突的概率。

简单示例:

以通过 IPMB 获取设备 ID(Get Device ID)操作为例,整个通讯过程由请求者发起请求,随后响应者回复相应的响应数据。示例数据如下:

请求:

响应: