張 帥,于 昕,查文琦,張先云,陳 陽
(中國船舶集團有限公司第八研究院,南京 211153)
隨著現(xiàn)代雷達裝備綜合化、智能化程度的不斷提高,對裝備測試性的要求也越來越高,傳統(tǒng)的斷線測試、狀態(tài)指示、本地控制等檢測控制方式已無法滿足現(xiàn)代裝備智能監(jiān)測、綜合診斷等需求[1],在線狀態(tài)信息監(jiān)控技術日益顯示出其重要性。通過狀態(tài)信息監(jiān)控技術,系統(tǒng)監(jiān)控中樞可以獲得內部關鍵部件的工作狀態(tài)數(shù)據(jù),并對其實施控制。目前,相關功能件的狀態(tài)監(jiān)控功能主要采用專用硬件芯片實現(xiàn),與上位機的數(shù)據(jù)通信并非標準協(xié)議,適用性窄,上傳的狀態(tài)信息數(shù)量和類型也極為有限。
針對狀態(tài)信息監(jiān)控功能標準化的迫切需求,本文采取基于IPMI(Intelligent Platform Management Interface)協(xié)議的狀態(tài)信息監(jiān)控方法,實現(xiàn)了對功能件狀態(tài)信息的實時監(jiān)控。由于采用了標準化協(xié)議,本文方法具有通用性強,應用廣泛,狀態(tài)監(jiān)控信息類型全、數(shù)據(jù)多且可編程等優(yōu)點。
IPMI是智能型平臺管理接口的開放協(xié)議[2],可以在硬件或固件平臺管理中直接實現(xiàn)自主監(jiān)控和恢復功能。智能平臺管理獨立于主控制器和操作系統(tǒng),即使當系統(tǒng)處于關機狀態(tài)時,智能管理也能工作。
IPMI體系結構的核心是一個稱為基板管理控制器(Baseboard Management Controller,BMC)的微控制器,該控制器不依賴于服務器的處理、BIOS器或操作系統(tǒng),用于管理軟件系統(tǒng)和硬件平臺之間的接口,提供自主監(jiān)控、日志記錄、恢復控制功能[3],這也是智能平臺管理的關鍵特征。
IPMI系統(tǒng)中通常有一些附加的、遠離BMC的管理控制器,系統(tǒng)通過智能平臺管理總線(Intelligent Platform Management BUS,IPMB)將附加的管理控制器連接到系統(tǒng),從而支持平臺管理的擴展。IPMB是一個基于I2C的串行總線,它在主要的系統(tǒng)模塊之間路由,用于管理控制器之間的通信,提供了一種將BMC與機箱或其他管理器集成到一起的標準化方法。IPMI原理如圖1所示。
圖1 IPMI原理框圖
在系統(tǒng)架構中通常會多級分布多組功能。為簡化設計,最常見的做法是采用并聯(lián)方式實現(xiàn)對各功能件的狀態(tài)監(jiān)控管理。多臺組件的并聯(lián)IPMI監(jiān)控有2種實現(xiàn)方式:
一是單向通訊并聯(lián)監(jiān)控方式,如圖2所示。多個組件同時向上位機發(fā)送數(shù)據(jù),IPMB總線自帶多主機時鐘同步與仲裁機制,可以決定其中的一個組件獲取IPMB總線的控制權,因而上位機可以自動接收多個并聯(lián)組件發(fā)送的狀態(tài)信息;
二是雙向通訊并聯(lián)監(jiān)控方式,如圖3所示。在硬件上分配不同的地址給并聯(lián)組件,上位機循環(huán)發(fā)送包含地址信息的查詢命令給各個組件,組件接收到查詢命令后與自己的地址進行匹配, 地址匹配成功的組件響應上位機的查詢命令,上傳狀態(tài)信息。
圖2 并聯(lián)IPMI監(jiān)控功能
圖3 雙向通訊并聯(lián)監(jiān)控方式
狀態(tài)信息通信采用IPMI協(xié)議,該協(xié)議采用基于I2C數(shù)據(jù)傳輸?shù)腎PMB總線與上位機進行數(shù)據(jù)傳輸。I2C數(shù)據(jù)傳輸格式如圖4所示。
圖4 I2C數(shù)據(jù)格式
功能模塊數(shù)據(jù)處理軟件中的I2C模塊作為從機,打開I2C中斷,在中斷中進行I2C事件的程序操作。
軟件使能I2C外設時鐘,以及配置I2C_CTL1中時鐘相關寄存器來確保正確的I2C時序。之后,I2C運行在默認的從機模式狀態(tài),等待START起始位和地址。接收1個START起始位及隨后的地址,地址可以是7位也可以是10位格式,I2C硬件將I2C_STAT0寄存器的ADDSEND位置1,此位應該被軟件查詢或者中斷監(jiān)視,發(fā)現(xiàn)置位后,軟件應該依次讀I2C_STAT0和I2C_STAT1寄存器。主機應接著再產(chǎn)生1個START,并發(fā)送1個地址頭到I2C總線。從機在檢測到START和緊接著的地址頭之后會繼續(xù)將ADDSEND位置1。軟件也可以通過依次讀I2C_STAT0、I2C_STAT1寄存器來第2次清除ADDSEND位。
在倒數(shù)第2個字節(jié)發(fā)送期間,軟件寫最后一個數(shù)據(jù)到I2C_DATA寄存器,以清除TBE標志位,之后就不用再關心TBE的狀態(tài)。TBE位會在倒數(shù)第2個字節(jié)發(fā)送完成后置起,直到檢測到STOP結束位時被清0。
根據(jù)I2C協(xié)議,I2C主機將不會對接收到的最后1個字節(jié)發(fā)送應答,所以在最后1個字節(jié)發(fā)送結束后,I2C從機的AERR(應答錯誤)會置起,以通知軟件發(fā)送結束。軟件寫0到AERR位可以清除此位,如圖5所示。
圖5 I2C狀態(tài)信息上傳程序流程圖
IMPB總線在I2C總線的基礎上,增加了詳細的數(shù)據(jù)校驗及握手命令,其發(fā)送信息包指令如圖6所示,接收信息包指令如圖7所示。
圖6 IPMB總線發(fā)送信息包指令
圖7 IPMB總線接收信息包指令
IPMI通信程序流程如圖8所示,上位機向組件發(fā)送查詢命令,組件接收后,將查詢命令中的地址位與自己的地址位進行對比,如果匹配一致,則發(fā)送狀態(tài)信息給上位機;否則,繼續(xù)接收查詢命令,并判斷地址位是否匹配。
圖8 IPMI通信流程圖
某型VPX架構的通用電源組件[4]采用IPMI協(xié)議實現(xiàn)了對電源狀態(tài)信息的實時監(jiān)控,它在I2C協(xié)議的基礎上定義了與IPMB總線一致的數(shù)據(jù)校驗和握手命令等方式,能夠適配標準的IPMI系統(tǒng),通用性強,應用廣泛。
IPMI程序可以在MCU單片機、DSP或FPGA中實現(xiàn)。VPX架構的通用電源組件內置了MCU單片機,下面以MCU單片機為例進行設計。
VPX架構的通用電源組件的采樣電路分別對12 V、48 V、3.3 V輸出電壓、電流以及機殼溫度進行采樣,MCU接收采樣信息后,通過IPMB總線接口將狀態(tài)信息傳輸給上位機,從而實現(xiàn)對通用電源模塊狀態(tài)信息的實時監(jiān)控。狀態(tài)信息收集原理如圖9所示。
圖9 狀態(tài)信息采樣原理圖
IPMI系統(tǒng)具有遠程控制故障告警保護能力。VPX架構的通用電源組件的內置MCU接收12 V、48 V、3.3 V等3種電壓的過壓、欠壓、過流以及過溫故障信息。一方面,VPX架構的通用電源組件的內置MCU通過IPMB總線將故障信息傳輸給上位機;另一方面,以12 V輸出為例,當MCU檢測到12 V的輸出過壓、欠壓、過流故障后,MCU輸出關機命令,對12 V電源模塊進行控制保護。故障告警保護原理框圖如圖10所示。
圖10 故障保護原理框圖
VPX架構的通用電源組件能夠通過IPMI協(xié)議進行遠程控制。其內置的MCU接收上位機通過IPMB總線發(fā)送的遙控開關機、故障復位、狀態(tài)查詢命令。以12 V輸出為例,MCU根據(jù)接收到的遙控命令實現(xiàn)對12 V電源輸出的啟動、關機、故障復位、狀態(tài)查詢操作。遠程控制原理如圖11所示。
圖11 遠程遙控原理框圖
本文針對狀態(tài)信息監(jiān)控功能標準化的迫切需求,采取了基于IPMI協(xié)議的狀態(tài)信息監(jiān)控方法,實現(xiàn)了對組件狀態(tài)信息的實時監(jiān)控。從健康管理需求、標準化、通用化需求來說,IPMI協(xié)議實現(xiàn)了對組件狀態(tài)信息的實時監(jiān)控,通用性強,應用廣泛,狀態(tài)監(jiān)控信息類型全、數(shù)據(jù)多且可編程,協(xié)議的標準化極大地增強了組件的適用性。