cPCI臺熱切換原理和實現(xiàn)
摘要:描述了cPCI平臺實現(xiàn)熱切換的動作機制,引入一種方法將cPCI設備熱插拔動作轉為獨享中斷,用LED指示處理進程,并給出依此方法實現(xiàn)無控制臺進行全熱切換的軟硬件設計方案。
關鍵詞:cPCI 熱切換 即插即用 設備驅動中斷服務程序
cPCI(即Compact PCI)是PICMIG制定的、更加堅固耐用的PCI版本,廣泛應用于工業(yè)和嵌入式控制系統(tǒng)中。它在電氣、邏輯和軟件功能方面與PCI完全兼容。除機械特性不一致外,cPCI與PCI最大的差別在于cPCI具有支持熱切換(HotSwap)的能力。隨著電子產(chǎn)品成本的下降和市場對工業(yè)產(chǎn)品尤其是電信應用產(chǎn)品可靠性要求的提高,基于cPCI平臺的設計逐漸成為電信設備廠商的首選。
1 cPCI熱切換原理
1.1 熱切換基礎
cPCI標準定義的機械、電氣特性是實現(xiàn)熱切換的基礎。它采用的連接器符合IEC917和IEC1074-101標準,其插針引腳分別有最長、中長、最短三種長度。當插入一個卡到插槽時,首先最長的引腳(電源和地)被連接,卡邏輯將所有PCI信號引腳預設到一個固定電平1V;接著是中長度引腳的PCI信號連接,這些信號的電平已經(jīng)固定且尚未開始,不會對系統(tǒng)造成干擾;最后才輪到最短的此腳,即BD_SEL#信號連接,告知卡邏輯可以開始工作??ò纬龅捻樞蛘孟喾?,BD_SEL#首先斷開,PCI信號被調(diào)整到一固定電平,最后才斷開電源和地信號。在電路方面,cPCI增加一個ENUM#信號,即系統(tǒng)枚舉信號。當一個cPCI設備卡被插入或拔出時,ENUM#被激活。
除cPCI本身的特性以外,要實現(xiàn)熱切換,具有支持即插即用(PnP)的操作系統(tǒng)也是必要條件之一,只有支持PnP才能實現(xiàn)設備驅動程序的動態(tài)安裝和卸載。
1.2 三種層次熱切換
1.2.1 基本熱切換
最基本的熱切換方式需要用戶干預。用戶通過控制臺通知OS(操作系統(tǒng))即將進行設備卡插入或拔出。當插入一個卡時,其詳細流程如下:
(a)通過系統(tǒng)界面,用戶通知OS即將在一個槽中插入一個卡;
(b)用戶插入卡,對卡完成上電初始化;
(c)用戶通知系統(tǒng),卡已經(jīng)插入,要求OS重新枚舉總線;
(d)OS執(zhí)行總線枚舉,確定新卡需要的資源;
(e)OS對卡的PCI配置寄存器編程,向其分配資源;
(f)OS裝入適當?shù)脑O備驅動程序,并調(diào)用其初始化代碼;
(g)設備驅動程序初始化完成,卡開始工作。
當拔出一個卡時,流程類似,需要用戶預先通知OS將要拔出設備卡,OS卸載設備驅動程序并回收設備資源后,才能拔出設備。
1.2.2 全熱切換
全熱切換是在基本熱切換的基礎上,在卡的插入/拔出機構中添加一個微開關裝置。這個開關藏在手柄中。當cPCI卡被插入或拔出時,在卡開始或??üぷ髦埃㈤_關首先改變狀態(tài),產(chǎn)生ENUM#信號,該信號通過某種途徑通知OS將要插入或拔出一個卡,OS再執(zhí)行總線枚舉、安裝驅動程序或卸載驅動程序等動作。
1.2.3 高可用性熱切換
高可用性熱切換是在全熱切換的基礎上建立的。它要求在系統(tǒng)卡和每個設備卡之間實現(xiàn)點對點的RST#和信號隔離。這使OS可以自動隔離一個壞卡,然后將一個替代卡(已經(jīng)安裝)啟動,接著壞卡繼續(xù)工作。所以它通常也稱作無縫切換或無間斷切換,是一種冗余設計方案。
三種熱切換的自動化層次不同,實現(xiàn)的復雜程度也各有不同。下面介紹一種支持全熱切換的cPCI平臺的HotSwap子系統(tǒng)實現(xiàn)方案,對其硬件電路和軟件設計分別進行介紹。
2 cPCI熱切換子系統(tǒng)硬件實現(xiàn)
2.1 橋接芯片
在硬件電路上需要一兼容cPCI規(guī)范的PCI-to-PCI的橋接芯片,以便熱插拔卡時實現(xiàn)引腳控制邏輯和支持全熱切換功能。以PLX PCI6150為例,它提供一個HotSwap寄存器,記錄設備插拔狀態(tài),其定義如表1所示。
表1 HotSwap寄存器定義
bit15~8 | 7 | 6 | 5,4 | 3 | 2 | 1 | 0 |
保留 | INS | EXT | PI | LOO | PIE | EIM | DHA |
DHA:Device Hiding Arm,設備隱藏處理,在設備卡剛插入尚未正常工作前或被驅動程序停止之間可隱藏后級總線設備。
EIM:Enable or Disable ENUM#,使能或禁止ENUM#輸出。
PIF:Pending Insert or Extrace act,暫時掛起插入或者拔出動作。
LOO:LEN On or Off,LED指示控制,與芯片的LED引腳相對應。
PI:Programming Interface,可編程接口,軟件觸發(fā)插入/拔出等動作。
EXT:Extraction State,拔出狀態(tài)位,當微開關斷開時,此狀態(tài)位為1。
INS:Insertion State,插入狀態(tài)位,在PCI6150上電復位成功后,此狀態(tài)位為1。
2.2 硬件電路邏輯
系統(tǒng)卡電路在邏輯上就是一普遍PC主機板,它與熱切換相關的部分集中在對來自cPCI連接器的ENUM#信號的處理。在設計時,將它接在系統(tǒng)板Super I/O芯片Winbond W83627HF的IRQIN0引腳,以擴展中斷輸入的ISA中斷方式實現(xiàn)。這樣設計的好處是:可避免與其它PCI設備共享中斷,而獨點一個中斷以保證中斷的響應速度;該引腳輸入是可編程的,可根據(jù)系統(tǒng)的中斷使用情況分配任意空閑中斷;而且該中斷可以不掛靠任何物理設備而獨立存在,這樣驅動程序也就可以設計成一靜態(tài)服務程序,靜態(tài)服務程序安裝/卸載比物理設備驅動程序要簡單得多。ENUM#是低電平有效,而IRQIN0輸入是邊沿觸方式,需要一邏輯電路進行轉換。系統(tǒng)卡邏輯框圖如圖1所示。
設備卡電路中與熱切換相關的部分是微開關電路和狀態(tài)LED驅動,PCI6150的ENUM#信號直接與cPCI連接器的同名信號相連。EUNM#信號還和LED信號一起被用來驅動一雙色LED,ENUM#信號為低時,LED被驅動為紅色閃爍;ENUME信號為高、LOO信號為高時LED被驅動為紅色,LOO信號為低時LED信號被驅動為綠色。設備卡邏輯電路如圖2所示。
整個系統(tǒng)電路的邏輯工作是:當設備卡插入時,PCI6150上電初始化,芯片邏輯置HotSwap寄存器INS狀態(tài)位,觸發(fā)ENUM#信號為低,LED閃爍紅色,ENUM#經(jīng)cPCI底板到達系統(tǒng)卡,經(jīng)電平/邊沿轉換,生成中斷請求有效信號IRQIN0,處理器響應中斷,進入中斷服務程序,ENUM#信號被撤除,設備驅動程序成功安裝后置LOO位,狀態(tài)指示為紅色,設備開始工作。當要拔出設備卡時,EJECT微開關先被斷開,PCI5160置HotSwap寄存器EXT位,激活ENUM#信號,狀態(tài)LED為閃爍紅色,處理器響應中斷,ENUM#被撤除,通知OS卸載設備驅動程序,之后熱交換軟件清LOO位,狀態(tài)LED指示藍色,設備可以安全拔出。整個過程無需用戶與操作系統(tǒng)交互,根據(jù)LED的顯示即可判斷卡的工作狀態(tài),安全順利實現(xiàn)熱切換。
3 cPCI熱切換子程序軟件實現(xiàn)
軟件系統(tǒng)的目標是實現(xiàn)中斷的響應處理,與操作系統(tǒng)交互,以正確及時地安裝或卸載對應的設備驅動程序,確保整個軟件系統(tǒng)安全運行。
3.1 軟件分層設計
本系統(tǒng)軟件分成三層:最底層為設備驅動程序hotswap.sys,它執(zhí)行與硬件相關的操作,如響應熱切換過程中產(chǎn)生的中斷事件、對Hotswap寄存器的操作,包括控制LED指示、清除INS/EXT狀態(tài)位、隱藏設備等;中間層為熱切換處理程序,一個由HSMonitor.exe創(chuàng)建的建立線程,一方面接收來自驅動程序的通知,另一方面通知OS重新枚舉cPCI總線或卸載某一設備驅動程序;最上層為一圖形界面應用程序HSMonitor.exe,為用戶提供可見的設備插拔動態(tài)信息。軟件結構如圖3所示。
3.2 軟件流程
ENUM#信號有效時,首先設備驅動程序hotSwap.sys的中斷服務程序被執(zhí)行,中斷服務程序掃描整個cPCI總線,讀取PIC6150的熱切換寄存器,清除相應狀態(tài),并根據(jù)設備的INS/EXT狀態(tài)位建立設備變更清單,通知熱切換處理線程。熱切換線程讀取設備變更清單,如果有剛插入的設備,則通知OS重新枚舉cPCI總線,如果有待拔出的設備,則利用設備槽信息(總線號/設備號)換算成PnP DevNode地址,通知OS移除該DevNode。OS在移除一個DevNode后或枚舉總線時發(fā)現(xiàn)了新設備則發(fā)消息到應用程序HSMonitor.exe,該應用程序被設計成每次開機時自運行且注冊為該消息的接收者。HSMonitor.exe獲取剛被處理過的DevNode及處理結果。包括設備驅動加載成功、設備被成功移除等,以日志形式顯示到控制臺,供用戶查詢。
cPCI平臺產(chǎn)品因為其可靠性和堅固性逐漸被國內(nèi)電信設備三商采用,本設計中的cPCI平臺產(chǎn)品被廣泛應用于語音呼叫中心和自動應答系統(tǒng),其基于cPCI的全熱切換設計保證了系統(tǒng)的不間斷運行,極大地提高了系統(tǒng)可靠性。本產(chǎn)品近一年的市場應用表明,該設計方案成本低廉,容易實現(xiàn),用戶使用方便。
評論