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