摘要:本文介紹了基于MTCA架構(gòu)的智能管理電源設(shè)計(jì)與實(shí)現(xiàn)。該電源單元硬件管理協(xié)議符合工業(yè)標(biāo)準(zhǔn)智能平臺(tái)管理接口(IPMI)規(guī)范,并具備熱插拔、主備切換、電源通道智能開(kāi)啟或關(guān)閉、環(huán)境感知、與上層交互SDR信息等硬件智能管理的功能。
關(guān)鍵詞:智能管理電源;IPMI;MTCA;熱插拔;主備切換
一、引言
智能管理電源是MTCA架構(gòu)中的一個(gè)重要組成部分。MTCA機(jī)箱硬件管理的基礎(chǔ)是工業(yè)標(biāo)準(zhǔn)智能平臺(tái)管理接口(IPMI)規(guī)范,在此基礎(chǔ)上,MTCA規(guī)范通過(guò)增加單元熱插拔、主備切換以及電源管理模塊信息同步等能力,使得電源智能管理功能得到進(jìn)一步加強(qiáng)。智能管理電源在整個(gè)MTCA架構(gòu)的機(jī)箱管理功能中承擔(dān)著不可或缺的角色,其在設(shè)備中的位置如圖1所示。
二、總體設(shè)計(jì)
智能管理電源能夠?yàn)镸TCA機(jī)箱提供可靠穩(wěn)定的供電,使得管理變得智能和便利,因此在設(shè)備中具有重要地位。其功能包括為設(shè)備內(nèi)部在位單元提供管理電源(MP)和載荷電源(PWR),具備板級(jí)熱插拔和主備切換的能力,同時(shí)還可以為主控單元管理模塊提供開(kāi)啟或關(guān)閉任意電源通道的能力,并對(duì)外提供電源功率分配和電流、電壓和溫度等硬件健康狀況信息。圖2為智能管理電源的總體框圖。
本電源單元由電壓轉(zhuǎn)換模塊和電源智能管理模塊兩部分組成,其中電壓轉(zhuǎn)換模塊將48V電壓轉(zhuǎn)成多路12V和3.3V電壓的供電通道,與普通電源模塊基本一致,在此不再贅述。而電源智能管理模塊是本文設(shè)計(jì)的重點(diǎn),該模塊由具備豐富串行接口的單片機(jī)實(shí)現(xiàn)。模塊需提供TWI和RS485用于用戶(hù)遠(yuǎn)程管理,以及豐富的SPI和I2C接口用于掛載監(jiān)控模塊或連接控制模塊。此外,模塊可以根據(jù)需要通過(guò)I2C接口掛載一定數(shù)量的EEPROM,以實(shí)現(xiàn)FRU信息和SDR信息存儲(chǔ)功能。本文選用的控制器為兆易創(chuàng)新GD32系列單片機(jī),該系列MCU具備豐富的I/0、UART、SPI、I2C接口,具備靈活配置接口類(lèi)型的能力。
三、IPMB管理接口
MTCA架構(gòu)的硬件管理標(biāo)準(zhǔn)基于工業(yè)標(biāo)準(zhǔn)智能平臺(tái)管理接口(IPMI)規(guī)范,并在IPMIv1.5指令集的基礎(chǔ)上,增加了MTCA架構(gòu)特有的管理命令。
在機(jī)箱內(nèi)部,電源單元跟冷卻單元和主控單元共用IPMB0總線(xiàn),傳輸?shù)氖荌PMB格式的報(bào)文。IPMB0是兩條相互冗余備份的I2C總線(xiàn)(IPMB0_A和IPMB0_B),以確保以上幾組重要模塊之間的通信。電源單元管理模塊的IPMB接口通信協(xié)議應(yīng)當(dāng)符合IPMIv1.5規(guī)范,并實(shí)現(xiàn)對(duì)IPMB包的封裝和解析等操作。
IPMB接口在物理上基于I2C接口,并只使用讀寫(xiě)模式中的寫(xiě)模式。IPMB是點(diǎn)對(duì)點(diǎn)通信,報(bào)文需指明發(fā)送方和接收方的地址,應(yīng)答報(bào)文需將請(qǐng)求報(bào)文的收發(fā)地址對(duì)調(diào)。另外,IPMB采用req-ack方式通信,請(qǐng)求報(bào)文內(nèi)含依次遞增的報(bào)文序列號(hào),當(dāng)接收者響應(yīng)該報(bào)文時(shí)需攜帶該序列號(hào);若請(qǐng)求方未按時(shí)收到同序列號(hào)的應(yīng)答報(bào)文,則判斷請(qǐng)求丟失,重新發(fā)送請(qǐng)求報(bào)文。
IPMB報(bào)文中NetFn(Network Function)用于判斷是否為機(jī)箱、網(wǎng)橋、傳感器/事件或應(yīng)用報(bào)文等類(lèi)型的報(bào)文,以便報(bào)文的快速歸類(lèi)和處理[1]。
四、熱插拔功能
熱拔插功能的實(shí)現(xiàn)分為熱插入過(guò)程和熱拔出過(guò)程。當(dāng)助拔器閉合后,電源管理程序經(jīng)IPMB0總線(xiàn)向上匯報(bào)Module Hot Swap (關(guān)閉)消息,進(jìn)入熱插入過(guò)程;當(dāng)助拔器開(kāi)啟且該電源單元處于激活狀態(tài)時(shí),電源管理模塊經(jīng)IPMB0總線(xiàn)向上匯報(bào)Module Hot Swap (開(kāi)啟)消息,進(jìn)入熱拔出過(guò)程[2]。
(一)熱插入過(guò)程
電源管理模塊通過(guò)檢測(cè)PS1#信號(hào)是否有效來(lái)判斷電源單元是否插入機(jī)箱。當(dāng)檢測(cè)到PS1#信號(hào)有效后,點(diǎn)亮藍(lán)燈,進(jìn)入M1狀態(tài)并檢測(cè)助拔器的閉合狀態(tài);當(dāng)檢測(cè)到助拔器處于閉合后,進(jìn)入請(qǐng)求激活狀態(tài),啟動(dòng)熱插入交互流程。在請(qǐng)求激活狀態(tài)開(kāi)始時(shí),藍(lán)燈慢閃,電源管理程序經(jīng)IPMB0總線(xiàn)向上匯報(bào)Module Hot Swap (關(guān)閉)消息;從IPMB0總線(xiàn)分別接收到Set FRU Led State(長(zhǎng)閃) 和Power Channel Control(備份電源)消息后,控制藍(lán)燈由閃爍改為長(zhǎng)閃,將本電源單元角色配置為備份電源,此后定時(shí)與主控管理模塊交互心跳報(bào)文。在第一次收到心跳報(bào)文時(shí),將PM_OK#信號(hào)置于有效狀態(tài);當(dāng)接收到Set FRU Led State(關(guān)閉) 消息后,控制藍(lán)燈滅,熱插入過(guò)程結(jié)束。
(二)熱拔出過(guò)程
主電源單元熱拔出的前提是機(jī)箱內(nèi)部有備份電源單元且該電源單元具備正常工作的能力。當(dāng)檢測(cè)到助拔器的狀態(tài)為打開(kāi)時(shí),電源管理程序?qū)⑾蛑骺毓芾砟K發(fā)送Module Hot Swap (開(kāi)啟)消息,并接收Set FRU Led State(快閃) 消息,藍(lán)燈變?yōu)榭扉W,開(kāi)啟熱拔出進(jìn)程;當(dāng)接收到主控單元發(fā)送的Get PM Status命令后,在確認(rèn)備份電源工作正常且能完全接管主電源的情況下,將PM_OK#信號(hào)置于無(wú)效狀態(tài);當(dāng)主電源的角色完全被備份電源接管后,將收到Set FRU Led State(亮),熱拔出流程結(jié)束,可以直接拔出。
(三)電源主備配置和切換
為了保證機(jī)箱的正常工作,機(jī)箱內(nèi)的多個(gè)電源單元通常做成冗余備份搭配。正常工作時(shí),只有主電源單元為其他模塊供電,配置為備份的電源單元?jiǎng)t負(fù)責(zé)監(jiān)測(cè)主電源單元的工作狀態(tài)以及與主電源單元進(jìn)行同步。一旦監(jiān)測(cè)到主電源單元失效,備電源單元立刻接管所有失效槽位的電源控制,并向主控單元通報(bào)Redundancy Lost事件。電源單元的主從配置可以確保系統(tǒng)在主電源單元失效時(shí)不影響系統(tǒng)的正常運(yùn)行,增加了系統(tǒng)可靠性和穩(wěn)定性。
1.電源主備配置
主備之間的連接信號(hào)有:PM_OK#、RST_PM_[A/B/C]#和IPMB0。PM_OK#可以仲裁選定Startup電源,進(jìn)入自動(dòng)上電模式,給所有在位的主控單元和冷卻單元供電。RST_PM_[A/B/C]#可以在接收到電源單元復(fù)位命令后,復(fù)位指定的電源單元。IPMB0可以接收主控單元管理模塊發(fā)送過(guò)來(lái)的IPMI命令,也可以用于自定義必要的主備電源單元之間的通信。
(1)主電源功能設(shè)計(jì)原則
①主控單元管理模塊通過(guò)獲取設(shè)備內(nèi)部各單元的FRU信息,掌握各電源單元的供電能力以及各業(yè)務(wù)單元板的電流需求,再根據(jù)這些需求決定如何分配電源單元的主備角色。
②設(shè)備中可以同時(shí)存在多個(gè)主電源單元為不同的通道提供電源。
③同一通道的一組管理電源和載荷電源將被配置在同一塊主電源單元中。
④接收來(lái)自主控單元管理模塊的周期性Heartbeat命令,一旦接收Heartbeat命令超時(shí),則主電源單元將進(jìn)入自動(dòng)上電模式,給所有在位的主控單元和冷卻單元提供電源。
⑤電源單元管理模塊接收到Heartbeat命令后,需要恢復(fù)電源單元的工作狀態(tài)(CC=00H表示工作在正常模式,CC=80H表示工作在自動(dòng)上電模式)。
(2)備份電源功能設(shè)計(jì)原則
①設(shè)備中只能存在一個(gè)備份電源單元,其他都為主電源單元。
②備份電源單元不能被分配給其他通道提供電源。
③當(dāng)有新的電源單元插入設(shè)備時(shí),新的電源單元將成為設(shè)備的備電源單元,原來(lái)系統(tǒng)中的備電源單元將被設(shè)置為主電源單元。
④備份電源管理模塊通過(guò)不斷檢測(cè)設(shè)備內(nèi)部各主電源單元的PM_OK#信號(hào),來(lái)判斷主電源單元是否工作正常。
⑤第一接收到自主控單元發(fā)送過(guò)來(lái)的Heartbeat命令時(shí),應(yīng)當(dāng)把自己的PM_OK#聲明為有效(高電平為有效,低電平為無(wú)效)。
⑥同一通道的一組管理電源和載荷電源將被配置在同一塊備電源單元中。
2.主備電源切換
(1)被動(dòng)電源切換
當(dāng)一塊主電源單元負(fù)載電源異常時(shí),整塊主電源將失效。此時(shí),該電源單元將嘗試往主控單元管理模塊發(fā)送一個(gè)Power Supply Failure事件,但不一定能成功發(fā)送,因?yàn)榇穗娫刺幱诓环€(wěn)定狀態(tài)。在配置有備電源單元的系統(tǒng)中,主電源單元出現(xiàn)異常時(shí),備電源單元將關(guān)閉還在正常工作主電源單元管理的相應(yīng)通道,接管故障電源單元管理的所有通道。備電源單元在完成接管后將轉(zhuǎn)變成新的主電源單元角色,并向主控單元管理模塊發(fā)送一個(gè)“Global Status Change”的Power Channel Notification事件來(lái)通知設(shè)備管理原來(lái)的備電源單元現(xiàn)在轉(zhuǎn)變成主電源單元。在替換掉故障電源單元之后,新插入的電源單元將被主控單元管理模塊配置成新設(shè)自備電源單元。主控單元管理模塊命令新的備電源單元備份所有其它主電源單元已開(kāi)啟的電源通道。
(2)主動(dòng)電源切換
當(dāng)需要人為地替換某塊正常工作的主電源單元時(shí),拔出助拔器,上報(bào)熱拔出請(qǐng)求事件。在收到主控單元管理模塊發(fā)送的Set FRU Led State(短閃)命令之后,藍(lán)燈短閃,該主電源單元檢查備電源單元的PM_OK#是否有效,若無(wú)效則放棄去激活操作,不做任何操作;若有效則將自己的PM_OK#設(shè)置為無(wú)效。
備電源單元檢查到主電源單元的PM_OK#無(wú)效將立刻進(jìn)行主備切換操作。在收到主控單元管理模塊發(fā)送的Set FRU Led State(常亮)命令之后,完成主備切換,藍(lán)燈常亮,表示去激活完成,可以安全拔出。
(四)Sensor信息
SDR是各類(lèi)傳感器的配置信息和狀態(tài)的記錄,針對(duì)本單元,指助拔器、溫度傳感器、電壓傳感器和電流傳感器相關(guān)的告警門(mén)限以及事件觸發(fā)是否允許等配置信息。SDR功能方便主控單元管理模塊獲取電源單元的硬件信息,監(jiān)測(cè)電源單元的狀態(tài)并進(jìn)行機(jī)箱管理和故障處理。為了實(shí)現(xiàn)智能電源單元的熱拔插、主備切換和狀態(tài)監(jiān)控等功能,需要電源管理模塊實(shí)現(xiàn)下列功能[3]:
①將整個(gè)電源單元作為sensor,并提供相應(yīng)的SDR,以監(jiān)測(cè)自身的電壓轉(zhuǎn)換、通信和內(nèi)部溫度等健康狀況。一旦判斷自身無(wú)法繼續(xù)為設(shè)備提供服務(wù)后,應(yīng)當(dāng)立即嘗試向主控單元管理模塊發(fā)送Power Module Failure事件。
②將助拔器作為一個(gè)sensor,并提供相應(yīng)的SDR。一旦檢測(cè)到助拔器的狀態(tài)(開(kāi)啟或閉合)發(fā)生改變,應(yīng)當(dāng)立即通過(guò)IPMB接口向主控單元管理模塊發(fā)送Module Hot Swap(開(kāi)啟或閉合)事件。
③電源單元分別為檢測(cè)溫度、電壓、電流的傳感器實(shí)現(xiàn)相應(yīng)的SDR。
④電源單元的entity instance numbe的值為在板號(hào)的基礎(chǔ)上加96。
⑤Entity ID的值為10,event receiver地址取值32,LUN取值為0。
⑥需要實(shí)現(xiàn)Get Device SDR Info、Get Device SDR、Get Sensor Reading、Get Sensor Thresholds等命令。
⑦Get Device SDR Info:主控單元管理模塊通過(guò)該命令,可以請(qǐng)求電源單元發(fā)送單元內(nèi)部傳感器總的數(shù)量、傳感器數(shù)量是固定還是動(dòng)態(tài)變化。如果動(dòng)態(tài)變化,需要說(shuō)明數(shù)據(jù)的更新時(shí)間。
⑧Get Device SDR:該命令用于獲取指定傳感器的SDR庫(kù),并為Get Sensor Reading命令做準(zhǔn)備。其中,保留字段用于告知被請(qǐng)求在多個(gè)部分讀取過(guò)程中,記錄可能已經(jīng)改變。
⑨Get Sensor Reading:上層管理通過(guò)該命令,可以獲取指定傳感器具體的測(cè)量值。
⑩Get Sensor Thresholds:該命令為上層管理提供了設(shè)置傳感器非緊急、危險(xiǎn)或致命事件的上下觸發(fā)閾值的途徑。
五、結(jié)束語(yǔ)
本文介紹了基于MTCA架構(gòu)的智能管理電源以及硬件總體框架和各功能模塊的實(shí)現(xiàn)方法。使電源單元,除具備普通的電源轉(zhuǎn)換外,還具備熱插拔、主備切換、SDR等智能硬件管理的功能。用戶(hù)不但可以隨時(shí)掌握電源的健康狀況,還可以在設(shè)備不斷電的情況下進(jìn)行電源更換和維護(hù),增加了設(shè)備供電的穩(wěn)定性和管理的智能化。
作者單位:胡曉鋼 中國(guó)電子科技集團(tuán)公司第七研究所
參考文獻(xiàn)
[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.