引言
智能平台管理接口(Intelligent Platform Management Interface,IPMI)是一项应用于服务器管理系统设计的标准,旨在简化并规范服务器的监控和管理业务,用户可以利用IPMI远程监视服务器的物理健康状况,极大地方便了系统的维护管理。而ATCA(Advanced Telecommunication Computing Architecture)是PICMG于2002年发布的,由于它具有模块化、可扩展、开放性等优点,广泛应用于电信设备中。ATCA和IPMI的结合代表了一种新的行业规范,具有广泛的应用前景。本文从一个具体的解决方案入手,详细地描述了IPMI的设计实现,有较高的参考价值。
1 系统结构及总体设计
以一个ATCA机箱系统为例,机架管理器ShMC(Shelf Management Controller)负责整个机箱的健康管理,每个机箱配备主备用的两个机架管理器,而IPMC(IPM Controller)模块位于单板上,负责单板的健康管理,包括电压、温度、上下电、Ekey等。IPMC通过主备的两条I2C总线IPMBA和IPMBB与ShMC通信,可将单板的状态信息告知ShMC,同时也接收ShMC下达的命令。系统总体结构设计如图1所示。
图1 系统总体结构设计
2 模块硬件设计
IPMC模块控制器采用瑞萨公司的一片32位RISC架构单片机,该单片机具有6条独立的I2C总线,分别连接AMC子卡管理总线、后插板RTM管理总线、主备的2条IPMB总线、本地总线以及备用总线。除本地总线不需要热插拔以外,其他总线都采用了缓冲隔离。本地总线经过扩展后分别管理2个片内温度传感器、4个环境温度传感器和3个EEPROM存储器。模块硬件设计如图2所示。
图2 模块硬件设计
片内温度传感器采用AD7461,用来对IC内部集成的热敏二极管进行采集和转换,最后的数字量通过I2C总线输出,同时可以设定温度门限,以中断的方式向IPMC报警,精度为±1 ℃。环境温度传感器采用DS75,DS75本身集成热敏二极管和数字量化电路,直接输出数字量,通过I2C总线传输至单片机进行数据转换。这6个温度传感器分别监测两个重要器件的内部温度和单板4个高温点的环境温度,高温点一般选择在器件密集区、大功率器件的下风口和机箱出风口。
3个EEPROM采用64 Kb存储器AT24C64,分别存储FRU(现场替换单元)、SDR(传感器数据)以及SEL(系统事件记录)等信息。FRU EEPROM不仅存储单板名称、序列号、版本号、生产日期等单板属性信息,而且也存储了接口电平、速率等Ekey信息;SDR EEPROM用于存储各个传感器的实时数据;SEL EEPROM用于存储各种告警事件、访问记录等日志文件。
单片机内集成8路A/D转换接口,用来监测单板不同种类的电压,若所需监测电压种类超过8个,还可以通过一片AD7997从本地I2C总线扩展。本方案设计从12~0.8 V共16种常用电压类型,能够满足大部分应用需要。
大多数复杂芯片对上电顺序都有要求,本方案设计支持10步上电,分别由PWR_EN0到PWR_EN9控制。
人机交互方面提供3个LED指示灯,分别指示:热插拔(Hot Swap)、服务中(In Service)和不在服务中(Out Of Service)。电路原理图如图3所示。
图3 电路原理图
3 模块软件设计
软件流程图如图4所示。
图4 软件流程图
单板上电后,-48 V电源模块首先输出+3.3 V电源供IPMC工作。IPMC首先关闭Ekey,之后对外围器件进行一系列地初始化操作,待系统自检通过后,才给Payload单板上电。同时IPMC进入任务主体while(1)的大循环,如轮询单板的在位状态、响应ShMC的命令等。
ShMC与IPMC的交互流程是这样的:ShMC通过IPMB将信息发送给IPMC,IPMC将信息暂存到缓冲区中,经I2C协议处理后,将指令信息内容存入另一个缓冲区中,然后再经过IPMI协议解析后执行相关命令,执行处理完成后,再通过层层打包,将所需信息传送给ShMC。
4 实验结果
通过ATCA主控板上的ShMC访问单板IPMC,从Linux操作终端输入sensor list命令后的打印结果如图5所示,可以看到不同电压的标称值和实测值以及温度传感器的实测值。经过长时间测试,整个系统工作状况良好。
结语
本文提出一个实用可靠的解决方案,并对软硬件设计进行了阐述,目前该系统已在电信设备中得到应用,具有较好的应用前景。
图5 实验结果