系統(tǒng)設(shè)計(jì)人員一直致力於改善運(yùn)算、嵌入式及消費(fèi)電子系統(tǒng)的穩(wěn)定性和強(qiáng)韌性。如在伺服器管理中,可靠性就顯得特別重要。伺服器的停機(jī)、數(shù)據(jù)毀壞和硬體故障都會(huì)對(duì)公司營(yíng)運(yùn)產(chǎn)生直接影響。因此,伺服器製造商設(shè)計(jì)了系統(tǒng)管理架構(gòu),透過(guò)提供分層式管理、自主監(jiān)控和可測(cè)量性來(lái)提升可靠性。
伺服器管理架構(gòu)所管理的元件,是一些控制和監(jiān)測(cè)電壓軌、啟動(dòng)狀態(tài)和系統(tǒng)冷卻的元件。此外,所管理的元件還提供即時(shí)時(shí)脈功能,並在非揮發(fā)性記憶體中儲(chǔ)存故障數(shù)據(jù)。為了實(shí)現(xiàn)上述功能,通常使用各種功能固定、目的單一的元件。
不過(guò),整合了串列通訊週邊設(shè)備的微控制器能為此類(lèi)應(yīng)用增值,因?yàn)樗茏屵@些應(yīng)用更靈活、整合度更高且成本更低。這種解決方案不僅適用於伺服器管理應(yīng)用,而且也適用於任何著重靈活性、整合度和降低成本的串列通訊應(yīng)用。
常用的系統(tǒng)管理架構(gòu)
目前常見(jiàn)的系統(tǒng)管理架構(gòu)通常採(cǎi)用單一且功能強(qiáng)大的處理器來(lái)進(jìn)行管理。此類(lèi)處理器通常是專(zhuān)用積體電路(ASIC)、系統(tǒng)單晶片(SoC)或高性能16位元微控制器。圖1是系統(tǒng)管理架構(gòu)範(fàn)例,透過(guò)I2C匯流排進(jìn)行通訊。I2C匯流排是目前最通用的匯流排,因?yàn)樗枰耐ㄓ嵕€數(shù)很少,硬體開(kāi)銷(xiāo)低,而且能獨(dú)立尋址連接在匯流排上的大量元件。
圖1:微處理器系統(tǒng)管理架構(gòu)圖。
在典型的系統(tǒng)管理架構(gòu)中,可將高階處理器視為系統(tǒng)的‘大腦’。它和系統(tǒng)內(nèi)的各元件通訊並進(jìn)行控制,為用戶(hù)決策提供依據(jù)。依照相同考量,可將外部元件視為系統(tǒng)的眼睛和手腳。每個(gè)元件的目的單一,且能自主工作,保證系統(tǒng)的可靠性。高階處理器與每個(gè)獨(dú)立IC進(jìn)行通訊,以根據(jù)作業(yè)人員的輸入資訊來(lái)管理和監(jiān)控系統(tǒng)執(zhí)行狀態(tài)。
圖1所示的各個(gè)獨(dú)立IC模組展示了部份伺服器系統(tǒng)管理架構(gòu)所負(fù)責(zé)的功能。電源管理和供電時(shí)序在伺服器應(yīng)用中是必須的,因?yàn)锳SIC、SoC和其它高階處理元件的上電條件(電壓上升斜率和上電順序)均有明確的規(guī)定。通常,通訊匯流排上的獨(dú)立IC會(huì)根據(jù)這些元件的規(guī)格管理其上電順序和電壓上升斜率。
熱管理IC會(huì)監(jiān)控系統(tǒng)溫度並最佳化風(fēng)扇轉(zhuǎn)速,使系統(tǒng)保持在特定溫度,以防止熱失控情形,確保溫度不會(huì)超過(guò)元件規(guī)格。高階處理器能尋址熱管理元件,以便監(jiān)控風(fēng)扇轉(zhuǎn)速和功能,並調(diào)節(jié)風(fēng)扇速度使溫度達(dá)到設(shè)定值。
即時(shí)時(shí)脈元件用來(lái)為數(shù)據(jù)記錄提供準(zhǔn)確時(shí)間。由於元件具有I2C功能,使時(shí)間暫存器可依高階處理器的請(qǐng)求進(jìn)行讀取。在這種情況下,時(shí)間保持功能可自動(dòng)完成。
在系統(tǒng)關(guān)閉時(shí),配置參數(shù)和診斷數(shù)據(jù)都保存在EEPROM中。這將能記錄元件故障參數(shù),找出引起硬體故障的根本原因。根據(jù)具體應(yīng)用,其他單一目的的IC也可能連接到匯流排上,對(duì)系統(tǒng)進(jìn)行管理。
目前,系統(tǒng)管理的方法是利用各種獨(dú)立元件來(lái)執(zhí)行。這些獨(dú)立元件的靈活性受到其設(shè)計(jì)規(guī)格的限制。例如,熱管理控制器可測(cè)量溫度,並採(cǎi)用開(kāi)放迴路控制法來(lái)控制風(fēng)扇轉(zhuǎn)速。這對(duì)滿足系統(tǒng)管理要求而言或許足夠了;然而,若將來(lái)這些要求或規(guī)格產(chǎn)生變化,如要求風(fēng)扇轉(zhuǎn)速採(cǎi)用封閉迴路控制,那麼就可能需要購(gòu)買(mǎi)新元件並改變硬體。如果無(wú)法找到符合需求的元件,那麼系統(tǒng)開(kāi)發(fā)人員可能要與ASIC製造商合作,設(shè)計(jì)專(zhuān)用元件來(lái)滿足這些需求─這樣做的成本顯然很高。如果沒(méi)有新的元件設(shè)計(jì)流程,專(zhuān)用元件在增加或改變功能特性上也缺乏靈活性。
微控制器方案
微控制器為現(xiàn)行的系統(tǒng)管理方法提供了另一個(gè)可選擇的解決方案。由於小型微控制器整合了整合週邊設(shè)備和韌體,所以可用來(lái)實(shí)現(xiàn)幾乎所有的系統(tǒng)管理功能。除了微控制器,唯一需要的是串列通訊週邊設(shè)備,因?yàn)榈湫偷南到y(tǒng)管理架構(gòu)均使用諸如I2C之類(lèi)的串列通訊匯流排來(lái)管理元件。
許多微控制器除具有內(nèi)部振盪器、可編程記憶體、EEPROM、脈寬調(diào)變(PWM)模組和比較器這些能用於實(shí)現(xiàn)各種系統(tǒng)管理功能的模組外,晶片上還具有串列通訊週邊設(shè)備。
Microchip的PIC16F886微控制器整合了主同步串列埠(MSSP)模組,支援SPI和I2C硬體,並整合了數(shù)據(jù)EEPROM模組,提供256位元組的非揮發(fā)性記憶體;該晶片還整合了一個(gè)比較器和一個(gè)類(lèi)比數(shù)位轉(zhuǎn)換器(ADC),用於測(cè)量和監(jiān)控輸入電壓。其輸出可透過(guò)捕捉、比較及PWM(CCP)模組進(jìn)行控制。圖2為PIC16F886的結(jié)構(gòu)圖。
圖2:典型的小型微控制器(如PIC16F886)結(jié)構(gòu)圖。
PIC16F886可實(shí)現(xiàn)許多系統(tǒng)管理功能,如熱管理控制器;串列EEPROM;串列ADC;帶日曆的即時(shí)時(shí)脈等。
熱管理控制器
高性能系統(tǒng)必須進(jìn)行熱管理。隨著PC、伺服器和視訊轉(zhuǎn)換盒中處理器所含的電晶體數(shù)量不斷成長(zhǎng),對(duì)系統(tǒng)冷卻的要求也不斷提升。熱管理控制器可測(cè)量機(jī)箱內(nèi)部、處理器管芯或風(fēng)扇通風(fēng)孔出口的系統(tǒng)溫度。溫度輸出可透過(guò)熱感應(yīng)電阻測(cè)量並在軟體中線性化,或從溫度感測(cè)器(如Microchip的MCP9700)直接獲得線性輸出。在測(cè)得溫度後,熱管理控制器將最佳化風(fēng)扇轉(zhuǎn)速,使溫度不會(huì)超出限定範(fàn)圍。儘管風(fēng)扇控制的細(xì)節(jié)不在本文討論範(fàn)圍之內(nèi),不過(guò),典型的三線風(fēng)扇控制方法是採(cǎi)用低速PWM。改變PWM工作週期,實(shí)際上將改變提供給風(fēng)扇的直流功率,進(jìn)而控制風(fēng)扇轉(zhuǎn)速。典型的PWM輸出-溫度關(guān)係曲線如圖3所示。
圖3:熱控制器工作週期輸出-溫度。
低頻PWM(10~100Hz)由於頻率太低,無(wú)法由硬體PWM週邊設(shè)備產(chǎn)生。然而,諸如定時(shí)器等其他週邊設(shè)備可產(chǎn)生非常精確的低頻PWM,其方法是反覆開(kāi)關(guān)I/O接腳。適當(dāng)設(shè)計(jì)微控制器韌體,可動(dòng)態(tài)地計(jì)算最小和最大溫度間的直線斜率。風(fēng)扇轉(zhuǎn)速可透過(guò)測(cè)量三線風(fēng)扇轉(zhuǎn)速計(jì)輸出的脈衝時(shí)間來(lái)計(jì)算,轉(zhuǎn)速計(jì)輸出能連接到比較器的輸入端,以產(chǎn)生測(cè)量中斷。
現(xiàn)有的熱控制器方案很容易被取代。韌體的靈活性使系統(tǒng)設(shè)計(jì)人員能增加和改進(jìn)其功能特性。例如,我們討論的熱控制實(shí)現(xiàn)方法是開(kāi)放迴路控制。控制目標(biāo)是把轉(zhuǎn)速作為溫度的函數(shù),線性地改變轉(zhuǎn)速。但問(wèn)題在於,PWM工作週期與風(fēng)扇轉(zhuǎn)速不成比例。實(shí)際上,風(fēng)扇轉(zhuǎn)速與PWM工作週期的關(guān)係根本不是線性的,如圖4所示。數(shù)位設(shè)計(jì)人員能實(shí)現(xiàn)數(shù)位比例-積分-微分(PID)演算法的封閉迴路控制,大幅改善風(fēng)扇轉(zhuǎn)速與PWM工作週期間的線性度。此外,還可以最佳化PID常數(shù),改進(jìn)轉(zhuǎn)速的階躍響應(yīng),滿足對(duì)可聞噪音的要求。
圖4:基於微控制器的風(fēng)扇轉(zhuǎn)速控制,提供了線性度更好的穩(wěn)態(tài)響應(yīng)與可編程動(dòng)態(tài)響應(yīng)。
其他功能
MSSP模組提供了主從I2C和SPI模式。透過(guò)編寫(xiě)串列元件的韌體和定義其通用RAM(GPR),能完成對(duì)數(shù)據(jù)的尋址,尋址方式與現(xiàn)有的串列元件相同。
例如,現(xiàn)有的串列EEPROM元件可用PIC16F886內(nèi)256位元組的數(shù)據(jù)EEPROM來(lái)模擬。諸如頁(yè)面緩衝和應(yīng)答輪詢(xún)等特性,都可透過(guò)微控制器韌體來(lái)實(shí)現(xiàn),甚至加以改良。採(cǎi)用微控制器韌體和晶片上10位元ADC,可模擬串列ADC元件,還能根據(jù)現(xiàn)有規(guī)格對(duì)數(shù)據(jù)進(jìn)行格式化。最後,PIC16F886也能實(shí)現(xiàn)帶日曆的即時(shí)時(shí)脈,可定義RAM變量使其與現(xiàn)有暫存器映射匹配。僅需的外部硬體是產(chǎn)生精確時(shí)基的32.768kHz晶振。微控制器內(nèi)部的低功耗晶振電路能驅(qū)動(dòng)外部晶振,把訊號(hào)轉(zhuǎn)換到定時(shí)器週邊設(shè)備中,使韌體能適當(dāng)?shù)馗聲r(shí)間暫存器。
利用整合週邊設(shè)備,微控制器可實(shí)現(xiàn)現(xiàn)有的系統(tǒng)管理功能。Microchip的MSSP串列通訊週邊設(shè)備能保護(hù)I2C地址。I2C從模式特性允許微控制器週邊設(shè)備響應(yīng)多個(gè)地址的尋址。換句話說(shuō),一個(gè)微控制器能以多個(gè)地址出現(xiàn),如同I2C匯流排上的多個(gè)元件一樣。這將使上述的所有系統(tǒng)管理功能均能同時(shí)在微控制器上實(shí)現(xiàn),並具有獨(dú)立的可尋址特性。圖5展示了改良後的系統(tǒng)管理架構(gòu)圖,它採(cǎi)用PIC16F886 8位元微控制器。
圖5:改進(jìn)後的微處理器系統(tǒng)管理架構(gòu)圖。
微控制器優(yōu)勢(shì)
採(cǎi)用微控制器實(shí)現(xiàn)系統(tǒng)管理功能帶來(lái)許多優(yōu)勢(shì),包括靈活性、整合度和低成本。靈活性源於微控制器的可編程性??删幊绦栽试S設(shè)計(jì)人員根據(jù)規(guī)格定製功能。設(shè)計(jì)人員可定義RAM變量,使之與串列元件的現(xiàn)有暫存器映射匹配。透過(guò)韌體還能提高系統(tǒng)的智慧功能。
在本文討論的例子中,可透過(guò)實(shí)現(xiàn)封閉迴路控制以改善現(xiàn)有熱控制器的執(zhí)行。採(cǎi)用編碼結(jié)構(gòu)(如軟體狀態(tài)機(jī)和看門(mén)狗定時(shí)器)可保證整合系統(tǒng)的靈活及可靠度??删幊绦阅芤皂g體實(shí)現(xiàn)升級(jí),無(wú)需採(cǎi)用昂貴的硬體修改或開(kāi)發(fā)ASIC。此外,元件整合降低了系統(tǒng)總體成本,不用再為單一任務(wù)購(gòu)買(mǎi)IC,僅需一顆小型微控制器就能完成所有任務(wù)。
本文小結(jié)
本文提出的解決方案討論了微控制器韌體和週邊設(shè)備在實(shí)現(xiàn)現(xiàn)有系統(tǒng)管理功能時(shí)的靈活性,還討論了整合這些功能的方法。本文闡述的系統(tǒng)可以作為現(xiàn)有方法的替代方案,並帶來(lái)更多優(yōu)勢(shì),如節(jié)省成本和改善性能。最重要的是,此類(lèi)整合系統(tǒng)把控制權(quán)交給了設(shè)計(jì)人員,設(shè)計(jì)人員能為應(yīng)用定製和最佳化解決方案。文中提出的解決方案不僅適合系統(tǒng)管理應(yīng)用,同時(shí)也適用於任何著重靈活性、整合度和成本縮減的串列通訊應(yīng)用。