APP下载

基于MTCA架构的智能管理电源设计与实现

2024-06-20胡晓钢

中国新通信 2024年6期

摘要:本文介绍了基于MTCA架构的智能管理电源设计与实现。该电源单元硬件管理协议符合工业标准智能平台管理接口(IPMI)规范,并具备热插拔、主备切换、电源通道智能开启或关闭、环境感知、与上层交互SDR信息等硬件智能管理的功能。

关键词:智能管理电源;IPMI;MTCA;热插拔;主备切换

一、引言

智能管理电源是MTCA架构中的一个重要组成部分。MTCA机箱硬件管理的基础是工业标准智能平台管理接口(IPMI)规范,在此基础上,MTCA规范通过增加单元热插拔、主备切换以及电源管理模块信息同步等能力,使得电源智能管理功能得到进一步加强。智能管理电源在整个MTCA架构的机箱管理功能中承担着不可或缺的角色,其在设备中的位置如图1所示。

二、总体设计

智能管理电源能够为MTCA机箱提供可靠稳定的供电,使得管理变得智能和便利,因此在设备中具有重要地位。其功能包括为设备内部在位单元提供管理电源(MP)和载荷电源(PWR),具备板级热插拔和主备切换的能力,同时还可以为主控单元管理模块提供开启或关闭任意电源通道的能力,并对外提供电源功率分配和电流、电压和温度等硬件健康状况信息。图2为智能管理电源的总体框图。

本电源单元由电压转换模块和电源智能管理模块两部分组成,其中电压转换模块将48V电压转成多路12V和3.3V电压的供电通道,与普通电源模块基本一致,在此不再赘述。而电源智能管理模块是本文设计的重点,该模块由具备丰富串行接口的单片机实现。模块需提供TWI和RS485用于用户远程管理,以及丰富的SPI和I2C接口用于挂载监控模块或连接控制模块。此外,模块可以根据需要通过I2C接口挂载一定数量的EEPROM,以实现FRU信息和SDR信息存储功能。本文选用的控制器为兆易创新GD32系列单片机,该系列MCU具备丰富的I/0、UART、SPI、I2C接口,具备灵活配置接口类型的能力。

三、IPMB管理接口

MTCA架构的硬件管理标准基于工业标准智能平台管理接口(IPMI)规范,并在IPMIv1.5指令集的基础上,增加了MTCA架构特有的管理命令。

在机箱内部,电源单元跟冷却单元和主控单元共用IPMB0总线,传输的是IPMB格式的报文。IPMB0是两条相互冗余备份的I2C总线(IPMB0_A和IPMB0_B),以确保以上几组重要模块之间的通信。电源单元管理模块的IPMB接口通信协议应当符合IPMIv1.5规范,并实现对IPMB包的封装和解析等操作。

IPMB接口在物理上基于I2C接口,并只使用读写模式中的写模式。IPMB是点对点通信,报文需指明发送方和接收方的地址,应答报文需将请求报文的收发地址对调。另外,IPMB采用req-ack方式通信,请求报文内含依次递增的报文序列号,当接收者响应该报文时需携带该序列号;若请求方未按时收到同序列号的应答报文,则判断请求丢失,重新发送请求报文。

IPMB报文中NetFn(Network Function)用于判断是否为机箱、网桥、传感器/事件或应用报文等类型的报文,以便报文的快速归类和处理[1]。

四、热插拔功能

热拔插功能的实现分为热插入过程和热拔出过程。当助拔器闭合后,电源管理程序经IPMB0总线向上汇报Module Hot Swap (关闭)消息,进入热插入过程;当助拔器开启且该电源单元处于激活状态时,电源管理模块经IPMB0总线向上汇报Module Hot Swap (开启)消息,进入热拔出过程[2]。

(一)热插入过程

电源管理模块通过检测PS1#信号是否有效来判断电源单元是否插入机箱。当检测到PS1#信号有效后,点亮蓝灯,进入M1状态并检测助拔器的闭合状态;当检测到助拔器处于闭合后,进入请求激活状态,启动热插入交互流程。在请求激活状态开始时,蓝灯慢闪,电源管理程序经IPMB0总线向上汇报Module Hot Swap (关闭)消息;从IPMB0总线分别接收到Set FRU Led State(长闪) 和Power Channel Control(备份电源)消息后,控制蓝灯由闪烁改为长闪,将本电源单元角色配置为备份电源,此后定时与主控管理模块交互心跳报文。在第一次收到心跳报文时,将PM_OK#信号置于有效状态;当接收到Set FRU Led State(关闭) 消息后,控制蓝灯灭,热插入过程结束。

(二)热拔出过程

主电源单元热拔出的前提是机箱内部有备份电源单元且该电源单元具备正常工作的能力。当检测到助拔器的状态为打开时,电源管理程序将向主控管理模块发送Module Hot Swap (开启)消息,并接收Set FRU Led State(快闪) 消息,蓝灯变为快闪,开启热拔出进程;当接收到主控单元发送的Get PM Status命令后,在确认备份电源工作正常且能完全接管主电源的情况下,将PM_OK#信号置于无效状态;当主电源的角色完全被备份电源接管后,将收到Set FRU Led State(亮),热拔出流程结束,可以直接拔出。

(三)电源主备配置和切换

为了保证机箱的正常工作,机箱内的多个电源单元通常做成冗余备份搭配。正常工作时,只有主电源单元为其他模块供电,配置为备份的电源单元则负责监测主电源单元的工作状态以及与主电源单元进行同步。一旦监测到主电源单元失效,备电源单元立刻接管所有失效槽位的电源控制,并向主控单元通报Redundancy Lost事件。电源单元的主从配置可以确保系统在主电源单元失效时不影响系统的正常运行,增加了系统可靠性和稳定性。

1.电源主备配置

主备之间的连接信号有:PM_OK#、RST_PM_[A/B/C]#和IPMB0。PM_OK#可以仲裁选定Startup电源,进入自动上电模式,给所有在位的主控单元和冷却单元供电。RST_PM_[A/B/C]#可以在接收到电源单元复位命令后,复位指定的电源单元。IPMB0可以接收主控单元管理模块发送过来的IPMI命令,也可以用于自定义必要的主备电源单元之间的通信。

(1)主电源功能设计原则

①主控单元管理模块通过获取设备内部各单元的FRU信息,掌握各电源单元的供电能力以及各业务单元板的电流需求,再根据这些需求决定如何分配电源单元的主备角色。

②设备中可以同时存在多个主电源单元为不同的通道提供电源。

③同一通道的一组管理电源和载荷电源将被配置在同一块主电源单元中。

④接收来自主控单元管理模块的周期性Heartbeat命令,一旦接收Heartbeat命令超时,则主电源单元将进入自动上电模式,给所有在位的主控单元和冷却单元提供电源。

⑤电源单元管理模块接收到Heartbeat命令后,需要恢复电源单元的工作状态(CC=00H表示工作在正常模式,CC=80H表示工作在自动上电模式)。

(2)备份电源功能设计原则

①设备中只能存在一个备份电源单元,其他都为主电源单元。

②备份电源单元不能被分配给其他通道提供电源。

③当有新的电源单元插入设备时,新的电源单元将成为设备的备电源单元,原来系统中的备电源单元将被设置为主电源单元。

④备份电源管理模块通过不断检测设备内部各主电源单元的PM_OK#信号,来判断主电源单元是否工作正常。

⑤第一接收到自主控单元发送过来的Heartbeat命令时,应当把自己的PM_OK#声明为有效(高电平为有效,低电平为无效)。

⑥同一通道的一组管理电源和载荷电源将被配置在同一块备电源单元中。

2.主备电源切换

(1)被动电源切换

当一块主电源单元负载电源异常时,整块主电源将失效。此时,该电源单元将尝试往主控单元管理模块发送一个Power Supply Failure事件,但不一定能成功发送,因为此电源处于不稳定状态。在配置有备电源单元的系统中,主电源单元出现异常时,备电源单元将关闭还在正常工作主电源单元管理的相应通道,接管故障电源单元管理的所有通道。备电源单元在完成接管后将转变成新的主电源单元角色,并向主控单元管理模块发送一个“Global Status Change”的Power Channel Notification事件来通知设备管理原来的备电源单元现在转变成主电源单元。在替换掉故障电源单元之后,新插入的电源单元将被主控单元管理模块配置成新设自备电源单元。主控单元管理模块命令新的备电源单元备份所有其它主电源单元已开启的电源通道。

(2)主动电源切换

当需要人为地替换某块正常工作的主电源单元时,拔出助拔器,上报热拔出请求事件。在收到主控单元管理模块发送的Set FRU Led State(短闪)命令之后,蓝灯短闪,该主电源单元检查备电源单元的PM_OK#是否有效,若无效则放弃去激活操作,不做任何操作;若有效则将自己的PM_OK#设置为无效。

备电源单元检查到主电源单元的PM_OK#无效将立刻进行主备切换操作。在收到主控单元管理模块发送的Set FRU Led State(常亮)命令之后,完成主备切换,蓝灯常亮,表示去激活完成,可以安全拔出。

(四)Sensor信息

SDR是各类传感器的配置信息和状态的记录,针对本单元,指助拔器、温度传感器、电压传感器和电流传感器相关的告警门限以及事件触发是否允许等配置信息。SDR功能方便主控单元管理模块获取电源单元的硬件信息,监测电源单元的状态并进行机箱管理和故障处理。为了实现智能电源单元的热拔插、主备切换和状态监控等功能,需要电源管理模块实现下列功能[3]:

①将整个电源单元作为sensor,并提供相应的SDR,以监测自身的电压转换、通信和内部温度等健康状况。一旦判断自身无法继续为设备提供服务后,应当立即尝试向主控单元管理模块发送Power Module Failure事件。

②将助拔器作为一个sensor,并提供相应的SDR。一旦检测到助拔器的状态(开启或闭合)发生改变,应当立即通过IPMB接口向主控单元管理模块发送Module Hot Swap(开启或闭合)事件。

③电源单元分别为检测温度、电压、电流的传感器实现相应的SDR。

④电源单元的entity instance numbe的值为在板号的基础上加96。

⑤Entity ID的值为10,event receiver地址取值32,LUN取值为0。

⑥需要实现Get Device SDR Info、Get Device SDR、Get Sensor Reading、Get Sensor Thresholds等命令。

⑦Get Device SDR Info:主控单元管理模块通过该命令,可以请求电源单元发送单元内部传感器总的数量、传感器数量是固定还是动态变化。如果动态变化,需要说明数据的更新时间。

⑧Get Device SDR:该命令用于获取指定传感器的SDR库,并为Get Sensor Reading命令做准备。其中,保留字段用于告知被请求在多个部分读取过程中,记录可能已经改变。

⑨Get Sensor Reading:上层管理通过该命令,可以获取指定传感器具体的测量值。

⑩Get Sensor Thresholds:该命令为上层管理提供了设置传感器非紧急、危险或致命事件的上下触发阈值的途径。

五、结束语

本文介绍了基于MTCA架构的智能管理电源以及硬件总体框架和各功能模块的实现方法。使电源单元,除具备普通的电源转换外,还具备热插拔、主备切换、SDR等智能硬件管理的功能。用户不但可以随时掌握电源的健康状况,还可以在设备不断电的情况下进行电源更换和维护,增加了设备供电的稳定性和管理的智能化。

作者单位:胡晓钢 中国电子科技集团公司第七研究所

参考文献

[1]IPMI,Intelligent Platform Management Interface Specification v1.5[S].Intel,2002.

[2]MTCA.0 R1.0,Micro Telecommunications Computing Architecture Base Specification[S],PICMG,2006.

[3]PICMG3.0 Revision 2.0,AdvancedTCA? Base Specification[S],PICMG,2005.