朱紅育 李 郁 付學(xué)斌
(西安電子工程研究所 西安 710100)
隨著工業(yè)控制、信號(hào)處理和國(guó)防等領(lǐng)域?qū)偩€帶寬、傳輸實(shí)時(shí)性要求的不斷提高,傳統(tǒng)的VME、CPCI 等并行總線標(biāo)準(zhǔn)逐漸力不從心,VPX 作為一種基于高速串行總線技術(shù)的標(biāo)準(zhǔn)已經(jīng)悄然興起。除了引入了目前最新串行總線技術(shù)以支持更高的背板帶寬外,VPX 還引入了智能平臺(tái)管理接口(IPMI),用以監(jiān)控系統(tǒng)的運(yùn)行狀態(tài),提供系統(tǒng)的可靠性。本文對(duì)智能平臺(tái)管理接口IPMI 的功能做了詳細(xì)的介紹,給出了智能平臺(tái)管理接口在VPX 系統(tǒng)中的實(shí)現(xiàn)方法。
IPMI (智能平臺(tái)管理接口)是一種開放標(biāo)準(zhǔn)的硬件管理接口規(guī)格,定義了嵌入式管理子系統(tǒng)進(jìn)行通信的特定方法。用戶可以利用IPMI 監(jiān)視服務(wù)器的物理健康特征,如溫度、電壓、風(fēng)扇工作狀態(tài)、電源狀態(tài)等。
自誕生以來智能平臺(tái)管理接口IPMI 已經(jīng)得到了多家供應(yīng)商的支持,這使得其逐漸成為了一個(gè)完整地包括服務(wù)器和其他系統(tǒng)(如存儲(chǔ)設(shè)備、網(wǎng)絡(luò)和通信設(shè)備)的硬件管理規(guī)范,在服務(wù)器以及基于ATCA(高級(jí)通信計(jì)算機(jī)架構(gòu))的電信設(shè)備中的到了廣泛的應(yīng)用[1]。
基于IPMI 的智能平臺(tái)管理系統(tǒng)的主要組件如圖1 所示[2]。
a.分布式管理控制器——管理和監(jiān)控系統(tǒng)中每個(gè)FRU(現(xiàn)場(chǎng)可更換單元)的工作狀態(tài)和故障狀態(tài),包括ChMC(機(jī)框管理器)和IPMC(板載智能平臺(tái)管理控制器)。
b.IPMI 其他輔助功能部件——提供在分布式控制單元間以及與系統(tǒng)的總控制單元間的通信、管理和控制功能,如IPMB(智能平臺(tái)管理總線)接口和IPMI 以太網(wǎng)接口。
c.單板的基于TCP/IP 的高層管理服務(wù),如:遠(yuǎn)程啟動(dòng)、SNMP(簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)管理、遠(yuǎn)程磁盤服務(wù)和遠(yuǎn)程管理控制協(xié)議(RMCP)[3]。
ChMC 負(fù)責(zé)系統(tǒng)機(jī)框內(nèi)所有單板的上下電控制、溫度和電壓監(jiān)控信息的記錄和告警、單板運(yùn)行狀態(tài)上報(bào)、風(fēng)冷風(fēng)扇的轉(zhuǎn)速控制等功能。
IPMC 是FRU 上的管理控制器,主要職責(zé)是管理FRU(包括上電、復(fù)位、電壓溫度監(jiān)控等)、收集FRU 上的關(guān)鍵事件。
IPMC 和ChMC 之間的數(shù)據(jù)鏈路是兩條IPMB(I2C)總線,采用冗余的雙總線乒乓傳輸架構(gòu)大大提高了該數(shù)據(jù)鏈路的可靠性。
FRU 是現(xiàn)場(chǎng)可更換單元的總稱,現(xiàn)場(chǎng)可更換的板卡、冷卻風(fēng)機(jī)盤等均可稱之為FRU。
圖1 IPMI 智能平臺(tái)管理系統(tǒng)組成框圖
IPMI 基本工作原理如下:
IPMI 一般使用獨(dú)立的電源供電,且先于系統(tǒng)功能電路上電,板載IPMC 上電后,先獲取單板位置信息(槽位號(hào)),然后通過兩條IPMB 總線向ChMC 發(fā)送單板信息及上電請(qǐng)求。
ChMC 在對(duì)單板信息進(jìn)行確認(rèn)后,向各單板依次發(fā)送上電命令。
各單板IPMC 接收到上電命令后,控制本板負(fù)載進(jìn)行上電,同時(shí)開始監(jiān)控單板電壓、溫度并通過專用串行接口從CPU 獲取單板工作狀態(tài)。
當(dāng)單板電壓、溫度或工作狀態(tài)不正常時(shí)IPMC發(fā)送告警到ChMC。同時(shí)響應(yīng)ChMC 的查詢命令,將本板電壓、溫度及工作狀態(tài)等信息上報(bào)給ChMC。
ChMC 可以通過網(wǎng)絡(luò)接收來自上位機(jī)監(jiān)控系統(tǒng)的查詢請(qǐng)求,并向各單板IPMC 下發(fā)溫度、電壓、工作狀態(tài)等查詢請(qǐng)求,自動(dòng)向上位機(jī)監(jiān)控系統(tǒng)上報(bào)系統(tǒng)告警信息同時(shí)記錄系統(tǒng)工作日志。
VPX 系統(tǒng)在設(shè)計(jì)時(shí)也引入了IPMI 智能平臺(tái)管理接口,在P0 端子上預(yù)留了SM1——SM4 四個(gè)單端信號(hào)給兩路IPMB 總線使用。
圖2 給出了IPMI 在VPX 系統(tǒng)中的應(yīng)用框圖。
圖2 IPMI 在VPX 系統(tǒng)中的應(yīng)用框圖
考慮到ChMC 在IPMI 中的重要性,ChMC 設(shè)計(jì)多采用1 +1 冗余備份機(jī)制以提高IPMI 系統(tǒng)的可靠性。兩個(gè)ChMC 單元上電后通過主備競(jìng)爭(zhēng)機(jī)制確認(rèn)各自工作狀態(tài),同時(shí)通過心跳信息相互檢測(cè),當(dāng)發(fā)現(xiàn)對(duì)端工作異常時(shí)向其發(fā)送硬復(fù)位信號(hào),并自動(dòng)進(jìn)行主備切換,確保IPMI 系統(tǒng)能夠正常工作。
ChMC 在物理上可以是兩塊獨(dú)立的板卡,也可以是系統(tǒng)主控交換板卡上的獨(dú)立電路(主控交換板卡大都數(shù)情況下也采取1 +1 冗余備份的方法提高系統(tǒng)可靠性)。
板載IPMC 是各VPX 單板上的一個(gè)獨(dú)立的電路單元,采用背板3.3V-AUX 進(jìn)行供電。
IPMB 總線采用了I2C 通信技術(shù),定義在P0 端子的四個(gè)單端信號(hào)端子SM1-SM4 上,鑒于I2C 總線的固有特點(diǎn),雖然采用了冗余的乒乓通信方式,總線鎖死的現(xiàn)象仍無法避免,因此設(shè)計(jì)中需要注意如下方面:
a.總線隔離及熱插拔功能實(shí)現(xiàn)
依據(jù)IPMI 規(guī)范,IPMB 總線具有熱插拔功能,因此設(shè)計(jì)選用Linear 公司的LTC4307,該芯片是一顆專用的I2C 雙向隔離緩沖器,提供了上升時(shí)間加速器從而降低負(fù)載過重的總線上升時(shí)間,1V 預(yù)充電壓以降低總線干擾,還具備總線鎖死自動(dòng)檢測(cè)和恢復(fù)功能[4]。
b.總線驅(qū)動(dòng)能力計(jì)算
I2C 信號(hào)最大的容性負(fù)載能力為400pF,因此必須對(duì)IPMB 的負(fù)載能力進(jìn)行合理的設(shè)計(jì)。根據(jù)容性負(fù)載選擇合適的上拉電阻,以保證總線的驅(qū)動(dòng)能力[5]。
對(duì)于一個(gè)單板來說,容性負(fù)載包括以下幾個(gè)部分:
· 到背板的連接器容性負(fù)載:2pF
· 連接器PCB 通孔容性負(fù)載:1pF
· 引線和過孔容性負(fù)載:9pF
· I2C 驅(qū)動(dòng)器:10pF
此外背板走線的容性負(fù)載也需要考慮在內(nèi)。
在背板上通過計(jì)算好的上拉電阻,將IPMB 總線上拉到3.3V-AUX 電源,單板的插拔不會(huì)影響到總線的驅(qū)動(dòng)能力。
c.總線鎖死預(yù)判和處理
I2C 總線的鎖死根據(jù)原因可分為兩種情況,即:從設(shè)備未響應(yīng)導(dǎo)致總線鎖死或主設(shè)備故障導(dǎo)致總線鎖死。
在硬件上每個(gè)接入IPMB 總線的節(jié)點(diǎn)板卡都設(shè)計(jì)了LTC4307 隔離緩沖器,當(dāng)該器件檢測(cè)SCL 或SDA 信號(hào)線保持常低30ms 以上時(shí),會(huì)自動(dòng)將節(jié)點(diǎn)板卡從總線上斷開,同時(shí)向板卡側(cè)發(fā)送16 個(gè)SCL時(shí)鐘以及一個(gè)Stop 信號(hào),從而使總線恢復(fù)正常狀態(tài)。
在軟件上,也應(yīng)當(dāng)設(shè)計(jì)相應(yīng)的監(jiān)測(cè)和預(yù)判機(jī)制,以保證IPMB 總線的穩(wěn)定工作。
IPMC 單元一旦檢測(cè)到無法從IPMB 總線上獲取到心跳信息,立即控制LTC4307 將本板卡從IPMB 總線上斷開,記錄故障告警信息,再?gòu)?fù)位I2C控制器,重新打開LTC4307 嘗試與ChMC 進(jìn)行通信,如果依然失敗,將板卡從總線上斷開,并點(diǎn)亮告警指示燈提示人工干預(yù)。
ChMC 單元監(jiān)測(cè)所有板卡的心跳信息(包括冗余ChMC),當(dāng)檢測(cè)到某一板卡的IPMB 心跳信息丟失,而其他板卡的心跳信息正常時(shí),確認(rèn)該板卡拔出或故障,記錄并上傳告警信息。當(dāng)檢測(cè)到所有心跳信息丟失時(shí),確認(rèn)本板故障,立即控制LTC4307 將本板從IPMB 總線上斷開,記錄故障告警信息,再?gòu)?fù)位I2C 控制器,重新打卡LTC4307 嘗試與其他板卡進(jìn)行通信,如果依然失敗,將板卡從總線上斷開,并點(diǎn)亮告警指示燈提示人工干預(yù)。
IPMI 設(shè)計(jì)的應(yīng)依據(jù)如下原則:
a.低功耗——VPX 系統(tǒng)提供給每槽位IPMI 模塊的3.3V-AUX 電源功耗小于1A;
b.硬件一體化設(shè)計(jì)——節(jié)省為系統(tǒng)功能部分電路節(jié)省PCB 面積,同時(shí)低復(fù)雜度的硬件設(shè)計(jì)降低硬件故障風(fēng)險(xiǎn);
c.軟件設(shè)計(jì)簡(jiǎn)單化以降低軟件故障風(fēng)險(xiǎn),保證IPMI 部分軟件具有極高的可靠性;
依據(jù)上述原則,ChMC 硬件電路應(yīng)滿足如下需求:
a.具備2 路I2C 接口連接到兩路背板IPMB總線。
b.具備2 路UART(通用異步串口)接口,1 路用作和功能單元CPU 進(jìn)行通信,以獲取板卡運(yùn)行狀態(tài)信息,1 路用作調(diào)試接口。
c.具備多通道ADC 模塊,用以對(duì)功能電路各供電電源進(jìn)行監(jiān)測(cè)。
d.具備LAN(以太網(wǎng))通信接口,用以連接遠(yuǎn)端PC 接受上位系統(tǒng)管理系統(tǒng)控制。
e.具備豐富的GPIO 資源,用以控制功能電路上下電、復(fù)位、槽位信息獲取、單板溫度監(jiān)控等功能。
f.具備看門狗電路,以增加系統(tǒng)軟件的可靠性。
TI公司的ARM CortexTM-M3處理器LM3S6918,單芯片即可滿足上述功能,該處理器運(yùn)行速率最高可達(dá)50M,集成了RTC、看門狗功能,對(duì)外接口十分豐富,具備2 路I2C 接口,2 路UART 接口,集成10/100 以太網(wǎng)MAC 和PHY,最多可達(dá)38個(gè)GPIO,集成8 通道12 位ADC,典型功耗僅為100多毫安。
ChMC 的具體實(shí)現(xiàn)框圖如圖3 所示。
由于ChMC 負(fù)責(zé)整個(gè)機(jī)框的管理,所以ChMC應(yīng)是整個(gè)系統(tǒng)中可靠性最高的組件之一。除了在軟硬件設(shè)計(jì)上注重其可靠性設(shè)計(jì)外,大多數(shù)設(shè)計(jì)中均采用主備冗余設(shè)計(jì)方案來進(jìn)一步提高該單元的可靠性。而競(jìng)爭(zhēng)電路是主備冗余設(shè)計(jì)中的關(guān)鍵,下面給出一種ChMC 主備競(jìng)爭(zhēng)電路的實(shí)現(xiàn)方法(見圖4)。
圖3 機(jī)框管理單元ChMC 實(shí)現(xiàn)框圖
圖4 ChMC 主備競(jìng)爭(zhēng)電路
具體工作原理如下:
ChMC 上電工作后,先獲取槽位號(hào),接著發(fā)出對(duì)板OE 關(guān)閉信號(hào),然后獲取本板主備狀態(tài)信息。
當(dāng)兩個(gè)單板先后(插入機(jī)框)上電時(shí),后上電單板上的245 使能信號(hào)OE 會(huì)被先上電的單板關(guān)閉,同時(shí)它發(fā)出的對(duì)板OE 關(guān)閉信號(hào)被本板245 隔離掉了,因此后上電的單板讀取的主備狀態(tài)為“1”,即備用狀態(tài)。先上電的單板245 使能端默認(rèn)有效,讀取的主備狀態(tài)為“0”,即主用狀態(tài)。
當(dāng)兩個(gè)單板已經(jīng)在機(jī)框內(nèi)并同時(shí)上電時(shí),系統(tǒng)設(shè)計(jì)默認(rèn)某一槽位為主用ChMC,軟件設(shè)計(jì)時(shí)將根據(jù)槽位號(hào)在輸出對(duì)板OE 關(guān)閉信號(hào)時(shí)做不同的延遲,默認(rèn)備用的ChMC 在發(fā)出對(duì)板OE 關(guān)閉信號(hào)時(shí)會(huì)延遲若干微秒,以保證主用ChMC 先工作。
IPMI 正常工作時(shí),主備ChMC 定期互發(fā)心跳消息,同時(shí)監(jiān)控各單板IPMC 發(fā)出的心跳消息,當(dāng)備用ChMC 發(fā)現(xiàn)無法接收到主用ChMC 心跳消息,而又能監(jiān)控到各IPMC 心跳消息時(shí),即可確認(rèn)主用ChMC故障,發(fā)出主用ChMC 復(fù)位信號(hào),將其復(fù)位,主用ChMC 復(fù)位后會(huì)釋放對(duì)板OE 關(guān)閉信號(hào),同時(shí)會(huì)接收到備用ChMC 發(fā)出的OE 關(guān)閉信號(hào),備用ChMC 輪訓(xùn)到主備狀態(tài)變?yōu)椤?”時(shí),切換至主用狀態(tài),原主用ChMC 則會(huì)檢測(cè)到主備狀態(tài)指示變?yōu)椤?”,并據(jù)此切換本板至備用狀態(tài)。
ChMC 復(fù)位過程中會(huì)自動(dòng)通過I2C 隔離器件將自己從IPMB 總線上隔離,復(fù)位完成后再接入IPMB總線。
主備競(jìng)爭(zhēng)的信號(hào)在VPX 連接器中用戶自定義的單端信號(hào)上實(shí)現(xiàn)。
板載IPMC 和上述ChMC 相比較,最大的區(qū)別在于IPMI 管理層軟件的設(shè)計(jì),二者的硬件設(shè)計(jì)基本相似,具體可參見ChMC 單元進(jìn)行實(shí)現(xiàn)。
板載IPMC 除了監(jiān)控本板電壓、溫度信息外,還需要獲取本板功能電路的運(yùn)行狀態(tài),將功能電路的故障機(jī)告警信息上報(bào)到ChMC。功能電路狀態(tài)的監(jiān)控一般由本板CPU 進(jìn)行,通過專用串行串口將監(jiān)控信息上報(bào)給IPMC[6]。當(dāng)ChMC 作為一個(gè)硬件單元集成在某一功能板卡上時(shí),也實(shí)現(xiàn)上述功能。從可靠性和成本的角度出發(fā),大多數(shù)設(shè)計(jì)中均依據(jù)IPMI規(guī)范簡(jiǎn)化設(shè)計(jì),因此IPMC 在設(shè)計(jì)上不考慮以太網(wǎng)通信的實(shí)現(xiàn),也沒有主備冗余設(shè)計(jì)。
本文針對(duì)VPX 系統(tǒng)管理的具體應(yīng)用,介紹了IPMI 的一些基本功能,著重描述了IPMI 在VPX 系統(tǒng)中的實(shí)現(xiàn)示例,該方案以低功耗ARM 處理器為核心,即可以用作ChMC 電路的設(shè)計(jì)也用作板載IPMC 的設(shè)計(jì),僅需要在軟件上做相應(yīng)的改動(dòng)即可,此外還引入了ChMC 1 +1 冗余設(shè)計(jì)的概念,具有良好的靈活性和很高的可靠性。
[1]謝勇祥,曲道奎.ATCA 之機(jī)箱管理及高可靠性設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(2-2) :42-43.
[2]Intelligent Platform Management Interface Specification,V2.0[S].Intel,HP,NEC,Dell,2005.
[3]李威,尚學(xué)群,陳建全.ATCA 管理模塊模擬器的設(shè)計(jì)與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2010,10(5) :1271-1274.
[4]李彥英,鄒少云.PCA951X 在ATCA 架構(gòu)上的應(yīng)用[J].集成電路應(yīng)用,2005:70-71.
[5]趙輝,董德存.I2C 總線技術(shù)及其應(yīng)用實(shí)例[J].微型電腦應(yīng)用,2005,21(4) :61-63.
[6]李彥,陳德人,梁達(dá)明.基于IPMI 的虛擬遠(yuǎn)程串口終端[J].現(xiàn)代機(jī)械,2006,(3) :35-37.