一种通过服务器CPLD扩展管理通道的系统及方法与流程
- 国知局
- 2024-08-05 12:14:11
本发明涉及服务器管理,尤其涉及一种通过服务器cpld扩展管理通道的系统及方法。
背景技术:
1、随着对服务器容量需求的增加,服务器的硬盘背板上设置的硬盘盘位也越来越多;其中,nvme硬盘由于其出色的读写速度和小巧的体积占比,使其越来越多地部署到服务器场景中。
2、现阶段服务器的硬盘背板的带外管理通常采用i2c接口,bmc模组通过i2c接口去访问硬盘背板的fru信息、温度传感器以及nvme硬盘的fur信息、状态信息等。由于各nvme硬盘的i2c地址相同,因此,当前设计通过在硬盘背板上采用9545进行i2c通道的扩展,实现框图如图2所示。
3、但是该技术存在如下缺点:1.如果板卡过大以及i2c的设备过多的话,所需要的9545的数量也会很多,并且bmc_i2c的走线也会较长,从而产生i2c的信号质量问题,严重的会引起背板或者nvme盘得信息获取异常,造成系统异常故障;2.板卡上采用的多个9545芯片,会使板卡物料成本增加;3.在硬盘背板这种高密度的板卡上放置较多的9545器件会导致板卡布局布线困难,并且增加pcb层数,进而增加板卡设计成本。
4、因此,需要一种通过服务器cpld扩展管理通道的系统及方法来解决上述技术问题。
技术实现思路
1、为解决上述技术问题,本发明提供的一种通过服务器cpld扩展管理通道的系统,包括bmc模组、cpld模组和若干i2c从设备,所述bmc模组通过i2c接口与cpld模组建立bmc_i2c总线链路;所述cpld模组设置在硬盘背板上,包括bmc侧接口、i2c slave模块、从设备选择控制单元、从设备传输控制单元和若干i2c从设备接口;所述i2c从设备与对应的i2c从设备接口电性连接;其中,
2、所述bmc_i2c总线链路包括i2c_scl时钟线和i2c_sda双向数据线,所述bmc侧接口在外部分别与i2c_scl时钟线和i2c_sda双向数据线电性连接,在内部分别引对应的bmc_i2c_scl时钟链路和bmc_i2c_sda双向数据链路,并分别与i2c slave模块电性连接;
3、所述i2c slave模块包括从设备选择控制端i2c_sw_reg、时钟使能状态控制端scl_en和数据使能状态控制端sda_en;所述从设备选择控制单元包括从设备时钟选择开关i2c_scl_sw和从设备数据选择开关i2c_sda_sw,所述从设备传输控制单元包括若干时钟传输控制模块和若干双向数据传输控制模块,所述i2c从设备接口包括scl接口和sda接口;
4、所述从设备选择控制端i2c_sw_reg分别与从设备时钟选择开关i2c_scl_sw和从设备数据选择开关i2c_sda_sw电性连接;所述时钟使能状态控制端scl_en与从设备时钟选择开关i2c_scl_sw电性连接,所述数据使能状态控制端sda_en与从设备数据选择开关i2c_sda_sw电性连接;
5、所述从设备时钟选择开关i2c_scl_sw设置有若干从设备时钟使能控制端,并分别与对应的时钟传输控制模块电性连接;所述从设备数据选择开关i2c_sda_sw设置有若干从设备数据使能控制端,并分别与对应的双向数据传输控制模块电性连接;各所述时钟传输控制模块分别与对应的scl接口电性连接,各所述双向数据传输控制模块分别与对应的sda接口电性连接。
6、作为更进一步的解决方案,所述i2c slave模块中设置有状态机;其中,所述状态机包括master状态和slave状态;其中,所述master状态用于控制双向数据传输控制模块切换至只由master主设备对i2c从设备发送数据;其中,所述master主设备包括bmc模组;所述slave状态用于控制双向数据传输控制模块切换至只由i2c从设备对master主设备发送数据。
7、作为更进一步的解决方案,所述时钟传输控制模块包括时钟使能触发端、时钟使能输入端和时钟使能输出端;其中,所述时钟使能触发端与从设备时钟使能控制端电性连接,所述时钟使能输入端与bmc_i2c_scl时钟链路电性连接,所述时钟使能输出端与scl接口电性连接。
8、作为更进一步的解决方案,所述双向数据传输控制模块包括bmc侧数据传输端、从设备侧数据传输端和双向使能触发端;其中,所述bmc侧数据传输端与bmc_i2c_sda双向数据链路电性连接,所述从设备侧数据传输端与sda接口电性连接,所述双向使能触发端与从设备数据使能控制端接口电性连接。
9、作为更进一步的解决方案,所述bmc模组和cpld模组之间通过数据报文进行通信连接;其中,所述数据报文包括选择通道数据addr和选中地址数据data。
10、一种通过服务器cpld扩展管理通道的方法,运用于如上任一项所述的一种通过服务器cpld扩展管理通道的系统中,其特征在于,通过如下步骤管理通道:
11、步骤1:bmc模组通过bmc_i2c总线链路向cpld模组发送第一数据报文;其中,选中地址数据addr为0x71;选择通道数据data为0x00;
12、步骤2:cpld模组通过i2c slave模块接收并解析第一数据报文;通过0x71选中cpld模组对从设备选择控制单元进行调节,通过0x00调节从设备时钟选择开关i2c_scl_sw和从设备数据选择开关i2c_sda_sw进行复位,使得所有i2c从设备接口均不被选通;
13、步骤3:bmc模组通过bmc_i2c总线链路向cpld模组发送第二数据报文,其中,选中地址数据:0x71;选择通道数据:0x01;
14、步骤4:cpld模组通过i2c slave模块接收并解析第二数据报文;通过0x71选中cpld模组对从设备选择控制单元进行调节,通过0x01调节从设备时钟选择开关i2c_scl_sw和从设备数据选择开关i2c_sda_sw进行选择,使得目标i2c从设备接口被选通;
15、步骤5:bmc模组通过bmc_i2c总线链路向cpld模组发送第三数据报文,其中,选中地址数据:0x55;选择通道数据:0xaa;
16、步骤6:cpld模组通过i2c slave模块接收并解析第三数据报文;通过0x55选中i2cslave模块实时监控;
17、步骤7:状态机切换至master状态,cpld模组通过从设备数据选择开关i2c_sda_sw控制对应的从设备数据使能控制端拉低,bmc模组并通过bmc_i2c总线链路向目标i2c从设备接口发送读写地址和读写位;
18、步骤8:状态机切换至slave状态,cpld模组通过从设备数据选择开关i2c_sda_sw控制对应的从设备数据使能控制端拉高,i2c从设备向bmc模组发送ac k位数据;
19、步骤9: bmc模组判断是否继续进行双向数据通信;若是,则返回步骤7;若否,则执行步骤10;
20、步骤10:bmc模组判断是否访问下一i2c从设备;若是,则返回至步骤1并更新0x00至下一i2c从设备;若否,则执行步骤1复位后退出。
21、与相关技术相比较,本发明提供的一种通过服务器cpld扩展管理通道的系统及方法具有如下有益效果:
22、本发明通过bmc模组与cpld模组建立bmc_i2c总线链路,结合cpld模组的bmc侧接口、i2c slave模块、从设备选择控制单元、从设备传输控制单元和若干i2c从设备接口,并执行管理步骤实现通过服务器cpld扩展管理通道;在成本上不额外使用ic器件,减少了原理图的pin数,降低了板卡的设计成本以及物料成本。在设计上采用cpld进行i2c管理接口的拓展,理论上可以扩展很多i2c接口,使得板卡的硬件设计更加具有灵活性;在功能上bmc模组的i2c信号在硬盘背板的cpld处终结,避免了长距离走线的信号完整性问题。
本文地址:https://www.jishuxx.com/zhuanli/20240802/261710.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。