鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

概述

BMC采用统一的接口与协议实现对组件的管理,SMC(Satellite Manager Controller)用于智能组件管理,具有以下特点:

  • 采用命令+响应的方式交互数据。
  • 通信容量大。
  • 采用I2C作为底层链路,链路设计简单,节约IO资源。
  • 整个传输过程自带CRC校验,数据传输可靠。

图1所示,I2C根链路接地址固定为0xAE的EEPROM,BMC到每个组件的根链路下下挂SMC器件,BMC通过SMC命令字访问CPLD,CPLD的SMC模块的默认I2C地址为0x60。

图1 典型组件管理拓扑示意图

一次完整的读取流程包括读取请求和读取响应两个部分,如图2图3所示。两个部分必须配套使用,中间不能穿插其他命令。数据字段描述定义了读取流程的详细信息,如表1所示。

图2 SMC读取请求信息
图3 SMC读取响应信息
表1 数据字段描述

字段

描述

详细定义

SlaveAddress

SMC从设备地址

从机I2C地址

CommondCode

命令类型

20h:Write Opcode<br>

21h:ReadBuffer<br>

22h:WriteOpcodeWithData<br>

30h:WriteOpcode-Forward<br>

31h:ReadBuffer-Forward

Length

命令长度

表示命令中Length之后,CRC之前的数据个数

Completion Code

完成码

0h:Success<br>

1h:Opcode Not Support<br>

2h:Data Not Ready<br>

3h:Parameter Error<br>

4h:Internal Error<br>

5h:CRC Error<br>

6h:Device Error

CRC8

CRC校验码

参考Smbus PEC机制,CRC多项式使用x8+x2+x1+1,从DEV_ADDR开始计算

Opcode

命令字

详见图4

SMC使用命令字进行管脚功能配置,命令字的格式描述如表2所示。

表2 SMC命令字描述

Function(6bit)

Command(24)

MS(1)

RW(1)

Parameter(8)

0:公共功能<br>

1:扩展组件管理功能<br>

2:机箱部件管理功能<br>

3:计算部件管理功能<br>

4:内存部件管理功能<br>

5:存储部件管理功能<br>

6:散热部件管理功能<br>

7:IO扩展部件管理功能<br>

8:加速扩展部件管理功能<br>

命令字<br>

见接口定义

0:多个读取<br>

1:单个读取

0:写入<br>

1:读取

1-N:获取/设置第N个设备信息

协议定义了位读,块读,位写、块写四种操作模式。

  • 位读:M/S=1;RW=1;Param=要读取的设备/对象序号; 返回单个对象的数据。
  • 块读:M/S=0;RW=1;Param=0;返回该命令所有数据。
  • 位写:M/S=1;RW=0;Param=要读取的设备/对象序号。
  • 块写:M/S=0;RW=0;Param=0。

Function、Command、MS和RW组合在一起为Opcode,定义如图4所示。具体的SMC命令字信息参考表1/表1

图4 Opcode定义